diff -Nrcpad gcc-11.3.0/ChangeLog gcc-11.4.0/ChangeLog
*** gcc-11.3.0/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,15 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2022-06-26  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Correct use of $host.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/INSTALL/binaries.html gcc-11.4.0/INSTALL/binaries.html
*** gcc-11.3.0/INSTALL/binaries.html	Thu Apr 21 07:59:39 2022
--- gcc-11.4.0/INSTALL/binaries.html	Mon May 29 08:49:50 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Binaries</title>
  
  <meta name="description" content="Installing GCC: Binaries">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 85,92 ****
  
  
  
! <a name="index-Binaries"></a>
! <a name="index-Installing-GCC_003a-Binaries"></a>
  
  <p>We are often asked about pre-compiled versions of GCC.  While we cannot
  provide these for all platforms, below you&rsquo;ll find links to binaries for
--- 79,86 ----
  
  
  
! <span id="index-Binaries"></span>
! <span id="index-Installing-GCC_003a-Binaries"></span>
  
  <p>We are often asked about pre-compiled versions of GCC.  While we cannot
  provide these for all platforms, below you&rsquo;ll find links to binaries for
diff -Nrcpad gcc-11.3.0/INSTALL/build.html gcc-11.4.0/INSTALL/build.html
*** gcc-11.3.0/INSTALL/build.html	Thu Apr 21 07:59:38 2022
--- gcc-11.4.0/INSTALL/build.html	Mon May 29 08:49:50 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Building</title>
  
  <meta name="description" content="Installing GCC: Building">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 82,88 ****
  
  
  
! <a name="index-Installing-GCC_003a-Building"></a>
  
  <p>Now that GCC is configured, you are ready to build the compiler and
  runtime libraries.
--- 76,82 ----
  
  
  
! <span id="index-Installing-GCC_003a-Building"></span>
  
  <p>Now that GCC is configured, you are ready to build the compiler and
  runtime libraries.
*************** documentation, you need version 4.7 or l
*** 129,135 ****
  want Info documentation to be regenerated.  Releases contain Info
  documentation pre-built for the unmodified documentation in the release.
  </p>
! <a name="Building-a-native-compiler"></a>
  <h3 class="section">Building a native compiler</h3>
  
  <p>For a native build, the default configuration is to perform
--- 123,129 ----
  want Info documentation to be regenerated.  Releases contain Info
  documentation pre-built for the unmodified documentation in the release.
  </p>
! <div class="section" id="Building-a-native-compiler">
  <h3 class="section">Building a native compiler</h3>
  
  <p>For a native build, the default configuration is to perform
*************** following example.  This will save rough
*** 172,179 ****
  the bootstrap and the final installation.  (Libraries will still contain
  debugging information.)
  </p>
! <div class="smallexample">
! <pre class="smallexample">make BOOT_CFLAGS='-O' bootstrap
  </pre></div>
  
  <p>You can place non-default optimization flags into <code>BOOT_CFLAGS</code>; they
--- 166,173 ----
  the bootstrap and the final installation.  (Libraries will still contain
  debugging information.)
  </p>
! <div class="example">
! <pre class="example">make BOOT_CFLAGS='-O' bootstrap
  </pre></div>
  
  <p>You can place non-default optimization flags into <code>BOOT_CFLAGS</code>; they
*************** configure option <samp>--with-build-conf
*** 224,241 ****
  examples of supported build configurations are:
  </p>
  <dl compact="compact">
! <dt>&lsquo;<samp>bootstrap-O1</samp>&rsquo;</dt>
  <dd><p>Removes any <samp>-O</samp>-started option from <code>BOOT_CFLAGS</code>, and adds
  <samp>-O1</samp> to it.  &lsquo;<samp>BUILD_CONFIG=bootstrap-O1</samp>&rsquo; is equivalent to
  &lsquo;<samp>BOOT_CFLAGS='-g -O1'</samp>&rsquo;.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-O3</samp>&rsquo;</dt>
! <dt>&lsquo;<samp>bootstrap-Og</samp>&rsquo;</dt>
  <dd><p>Analogous to <code>bootstrap-O1</code>.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-lto</samp>&rsquo;</dt>
  <dd><p>Enables Link-Time Optimization for host tools during bootstrapping.
  &lsquo;<samp>BUILD_CONFIG=bootstrap-lto</samp>&rsquo; is equivalent to adding
  <samp>-flto</samp> to &lsquo;<samp>BOOT_CFLAGS</samp>&rsquo;.  This option assumes that the host
--- 218,235 ----
  examples of supported build configurations are:
  </p>
  <dl compact="compact">
! <dt><span>&lsquo;<samp>bootstrap-O1</samp>&rsquo;</span></dt>
  <dd><p>Removes any <samp>-O</samp>-started option from <code>BOOT_CFLAGS</code>, and adds
  <samp>-O1</samp> to it.  &lsquo;<samp>BUILD_CONFIG=bootstrap-O1</samp>&rsquo; is equivalent to
  &lsquo;<samp>BOOT_CFLAGS='-g -O1'</samp>&rsquo;.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-O3</samp>&rsquo;</span></dt>
! <dt><span>&lsquo;<samp>bootstrap-Og</samp>&rsquo;</span></dt>
  <dd><p>Analogous to <code>bootstrap-O1</code>.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-lto</samp>&rsquo;</span></dt>
  <dd><p>Enables Link-Time Optimization for host tools during bootstrapping.
  &lsquo;<samp>BUILD_CONFIG=bootstrap-lto</samp>&rsquo; is equivalent to adding
  <samp>-flto</samp> to &lsquo;<samp>BOOT_CFLAGS</samp>&rsquo;.  This option assumes that the host
*************** supports the linker plugin (e.g. GNU ld
*** 243,249 ****
  version 2.21 or later).
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-lto-noplugin</samp>&rsquo;</dt>
  <dd><p>This option is similar to <code>bootstrap-lto</code>, but is intended for
  hosts that do not support the linker plugin.  Without the linker plugin 
  static libraries are not compiled with link-time optimizations.  Since 
--- 237,243 ----
  version 2.21 or later).
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-lto-noplugin</samp>&rsquo;</span></dt>
  <dd><p>This option is similar to <code>bootstrap-lto</code>, but is intended for
  hosts that do not support the linker plugin.  Without the linker plugin 
  static libraries are not compiled with link-time optimizations.  Since 
*************** the GCC middle end and back end are in <
*** 251,264 ****
  that only the front end is actually LTO optimized.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-lto-lean</samp>&rsquo;</dt>
  <dd><p>This option is similar to <code>bootstrap-lto</code>, but is intended for
  faster build by only using LTO in the final bootstrap stage.
  With &lsquo;<samp>make profiledbootstrap</samp>&rsquo; the LTO frontend
  is trained only on generator files.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug</samp>&rsquo;</dt>
  <dd><p>Verifies that the compiler generates the same executable code, whether
  or not it is asked to emit debug information.  To this end, this
  option builds stage2 host programs without debug information, and uses
--- 245,258 ----
  that only the front end is actually LTO optimized.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-lto-lean</samp>&rsquo;</span></dt>
  <dd><p>This option is similar to <code>bootstrap-lto</code>, but is intended for
  faster build by only using LTO in the final bootstrap stage.
  With &lsquo;<samp>make profiledbootstrap</samp>&rsquo; the LTO frontend
  is trained only on generator files.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-debug</samp>&rsquo;</span></dt>
  <dd><p>Verifies that the compiler generates the same executable code, whether
  or not it is asked to emit debug information.  To this end, this
  option builds stage2 host programs without debug information, and uses
*************** info into identical object files.  In ad
*** 271,277 ****
  coverage, this option makes default bootstraps faster and leaner.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-big</samp>&rsquo;</dt>
  <dd><p>Rather than comparing stripped object files, as in
  <code>bootstrap-debug</code>, this option saves internal compiler dumps
  during stage2 and stage3 and compares them as well, which helps catch
--- 265,271 ----
  coverage, this option makes default bootstraps faster and leaner.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-debug-big</samp>&rsquo;</span></dt>
  <dd><p>Rather than comparing stripped object files, as in
  <code>bootstrap-debug</code>, this option saves internal compiler dumps
  during stage2 and stage3 and compares them as well, which helps catch
*************** additional potential problems, but at a
*** 279,285 ****
  space.  It can be specified in addition to &lsquo;<samp>bootstrap-debug</samp>&rsquo;.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-lean</samp>&rsquo;</dt>
  <dd><p>This option saves disk space compared with <code>bootstrap-debug-big</code>,
  but at the expense of some recompilation.  Instead of saving the dumps
  of stage2 and stage3 until the final compare, it uses
--- 273,279 ----
  space.  It can be specified in addition to &lsquo;<samp>bootstrap-debug</samp>&rsquo;.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-debug-lean</samp>&rsquo;</span></dt>
  <dd><p>This option saves disk space compared with <code>bootstrap-debug-big</code>,
  but at the expense of some recompilation.  Instead of saving the dumps
  of stage2 and stage3 until the final compare, it uses
*************** during stage3, repeating the compilation
*** 288,294 ****
  stage2, whose dumps were not saved.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-lib</samp>&rsquo;</dt>
  <dd><p>This option tests executable code invariance over debug information
  generation on target libraries, just like <code>bootstrap-debug-lean</code>
  tests it on host programs.  It builds stage3 libraries with
--- 282,288 ----
  stage2, whose dumps were not saved.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-debug-lib</samp>&rsquo;</span></dt>
  <dd><p>This option tests executable code invariance over debug information
  generation on target libraries, just like <code>bootstrap-debug-lean</code>
  tests it on host programs.  It builds stage3 libraries with
*************** in stage2 are used in stage3 host progra
*** 302,308 ****
  compile stage2 libraries with different options for comparison purposes.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-ckovw</samp>&rsquo;</dt>
  <dd><p>Arranges for error messages to be issued if the compiler built on any
  stage is run without the option <samp>-fcompare-debug</samp>.  This is
  useful to verify the full <samp>-fcompare-debug</samp> testing coverage.  It
--- 296,302 ----
  compile stage2 libraries with different options for comparison purposes.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-debug-ckovw</samp>&rsquo;</span></dt>
  <dd><p>Arranges for error messages to be issued if the compiler built on any
  stage is run without the option <samp>-fcompare-debug</samp>.  This is
  useful to verify the full <samp>-fcompare-debug</samp> testing coverage.  It
*************** must be used along with <code>bootstrap-
*** 310,316 ****
  <code>bootstrap-debug-lib</code>.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-cet</samp>&rsquo;</dt>
  <dd><p>This option enables Intel CET for host tools during bootstrapping.
  &lsquo;<samp>BUILD_CONFIG=bootstrap-cet</samp>&rsquo; is equivalent to adding
  <samp>-fcf-protection</samp> to &lsquo;<samp>BOOT_CFLAGS</samp>&rsquo;.  This option
--- 304,310 ----
  <code>bootstrap-debug-lib</code>.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-cet</samp>&rsquo;</span></dt>
  <dd><p>This option enables Intel CET for host tools during bootstrapping.
  &lsquo;<samp>BUILD_CONFIG=bootstrap-cet</samp>&rsquo; is equivalent to adding
  <samp>-fcf-protection</samp> to &lsquo;<samp>BOOT_CFLAGS</samp>&rsquo;.  This option
*************** assumes that the host supports Intel CET
*** 318,335 ****
  2.30 or later).
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-time</samp>&rsquo;</dt>
  <dd><p>Arranges for the run time of each program started by the GCC driver,
  built in any stage, to be logged to <samp>time.log</samp>, in the top level of
  the build tree.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-asan</samp>&rsquo;</dt>
  <dd><p>Compiles GCC itself using Address Sanitization in order to catch invalid memory
  accesses within the GCC code.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-hwasan</samp>&rsquo;</dt>
  <dd><p>Compiles GCC itself using HWAddress Sanitization in order to catch invalid
  memory accesses within the GCC code.  This option is only available on AArch64
  systems that are running Linux kernel version 5.4 or later.
--- 312,329 ----
  2.30 or later).
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-time</samp>&rsquo;</span></dt>
  <dd><p>Arranges for the run time of each program started by the GCC driver,
  built in any stage, to be logged to <samp>time.log</samp>, in the top level of
  the build tree.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-asan</samp>&rsquo;</span></dt>
  <dd><p>Compiles GCC itself using Address Sanitization in order to catch invalid memory
  accesses within the GCC code.
  </p>
  </dd>
! <dt><span>&lsquo;<samp>bootstrap-hwasan</samp>&rsquo;</span></dt>
  <dd><p>Compiles GCC itself using HWAddress Sanitization in order to catch invalid
  memory accesses within the GCC code.  This option is only available on AArch64
  systems that are running Linux kernel version 5.4 or later.
*************** systems that are running Linux kernel ve
*** 337,343 ****
  </dd>
  </dl>
  
! <a name="Building-a-cross-compiler"></a>
  <h3 class="section">Building a cross compiler</h3>
  
  <p>When building a cross compiler, it is not generally possible to do a
--- 331,338 ----
  </dd>
  </dl>
  
! </div>
! <div class="section" id="Building-a-cross-compiler">
  <h3 class="section">Building a cross compiler</h3>
  
  <p>When building a cross compiler, it is not generally possible to do a
*************** configuring GCC.  Put them in the direct
*** 375,394 ****
  you should put in this directory:
  </p>
  <dl compact="compact">
! <dt><samp>as</samp></dt>
  <dd><p>This should be the cross-assembler.
  </p>
  </dd>
! <dt><samp>ld</samp></dt>
  <dd><p>This should be the cross-linker.
  </p>
  </dd>
! <dt><samp>ar</samp></dt>
  <dd><p>This should be the cross-archiver: a program which can manipulate
  archive files (linker libraries) in the target machine&rsquo;s format.
  </p>
  </dd>
! <dt><samp>ranlib</samp></dt>
  <dd><p>This should be a program to construct a symbol table in an archive file.
  </p></dd>
  </dl>
--- 370,389 ----
  you should put in this directory:
  </p>
  <dl compact="compact">
! <dt><span><samp>as</samp></span></dt>
  <dd><p>This should be the cross-assembler.
  </p>
  </dd>
! <dt><span><samp>ld</samp></span></dt>
  <dd><p>This should be the cross-linker.
  </p>
  </dd>
! <dt><span><samp>ar</samp></span></dt>
  <dd><p>This should be the cross-archiver: a program which can manipulate
  archive files (linker libraries) in the target machine&rsquo;s format.
  </p>
  </dd>
! <dt><span><samp>ranlib</samp></span></dt>
  <dd><p>This should be a program to construct a symbol table in an archive file.
  </p></dd>
  </dl>
*************** alternatives for <samp>crt0.o</samp>, fo
*** 415,421 ****
  compilation options.  Check your target&rsquo;s definition of
  <code>STARTFILE_SPEC</code> to find out what start files it uses.
  </p>
! <a name="Building-in-parallel"></a>
  <h3 class="section">Building in parallel</h3>
  
  <p>GNU Make 3.80 and above, which is necessary to build GCC, support
--- 410,417 ----
  compilation options.  Check your target&rsquo;s definition of
  <code>STARTFILE_SPEC</code> to find out what start files it uses.
  </p>
! </div>
! <div class="section" id="Building-in-parallel">
  <h3 class="section">Building in parallel</h3>
  
  <p>GNU Make 3.80 and above, which is necessary to build GCC, support
*************** your machine will result in fewer and sh
*** 426,437 ****
  improving overall throughput; this is especially true for slow drives
  and network filesystems.
  </p>
! <a name="Building-the-Ada-compiler"></a>
  <h3 class="section">Building the Ada compiler</h3>
  
  <p><a href="prerequisites.html#GNAT-prerequisite">GNAT prerequisites</a>.
  </p>
! <a name="Building-with-profile-feedback"></a>
  <h3 class="section">Building with profile feedback</h3>
  
  <p>It is possible to use profile feedback to optimize the compiler itself.  This
--- 422,435 ----
  improving overall throughput; this is especially true for slow drives
  and network filesystems.
  </p>
! </div>
! <div class="section" id="Building-the-Ada-compiler">
  <h3 class="section">Building the Ada compiler</h3>
  
  <p><a href="prerequisites.html#GNAT-prerequisite">GNAT prerequisites</a>.
  </p>
! </div>
! <div class="section" id="Building-with-profile-feedback">
  <h3 class="section">Building with profile feedback</h3>
  
  <p>It is possible to use profile feedback to optimize the compiler itself.  This
*************** the code quality may be much worse.
*** 472,478 ****
  
  
  
! <hr>
  
  
  
--- 470,476 ----
  
  
  
! <hr></div>
  
  
  
diff -Nrcpad gcc-11.3.0/INSTALL/configure.html gcc-11.4.0/INSTALL/configure.html
*** gcc-11.3.0/INSTALL/configure.html	Thu Apr 21 07:59:38 2022
--- gcc-11.4.0/INSTALL/configure.html	Mon May 29 08:49:49 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Configuration</title>
  
  <meta name="description" content="Installing GCC: Configuration">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 81,88 ****
  
  
  
! <a name="index-Configuration"></a>
! <a name="index-Installing-GCC_003a-Configuration"></a>
  
  <p>Like most GNU software, GCC must be configured before it can be built.
  This document describes the recommended configuration procedure
--- 75,82 ----
  
  
  
! <span id="index-Configuration"></span>
! <span id="index-Installing-GCC_003a-Configuration"></span>
  
  <p>Like most GNU software, GCC must be configured before it can be built.
  This document describes the recommended configuration procedure
*************** scripts may fail.
*** 128,148 ****
  
  <p>To configure GCC:
  </p>
! <div class="smallexample">
! <pre class="smallexample">% mkdir <var>objdir</var>
  % cd <var>objdir</var>
  % <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
  </pre></div>
  
! <a name="Distributor-options"></a>
! <h3 class="heading">Distributor options</h3>
  
  <p>If you will be distributing binary versions of GCC, with modifications
  to the source code, you should use the options described in this
  section to make clear that your version contains modifications.
  </p>
  <dl compact="compact">
! <dt><code>--with-pkgversion=<var>version</var></code></dt>
  <dd><p>Specify a string that identifies your package.  You may wish
  to include a build number or build date.  This version string will be
  included in the output of <code>gcc --version</code>.  This suffix does
--- 122,141 ----
  
  <p>To configure GCC:
  </p>
! <div class="example">
! <pre class="example">% mkdir <var>objdir</var>
  % cd <var>objdir</var>
  % <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
  </pre></div>
  
! <span id="Distributor-options"></span><h3 class="heading">Distributor options</h3>
  
  <p>If you will be distributing binary versions of GCC, with modifications
  to the source code, you should use the options described in this
  section to make clear that your version contains modifications.
  </p>
  <dl compact="compact">
! <dt><span><code>--with-pkgversion=<var>version</var></code></span></dt>
  <dd><p>Specify a string that identifies your package.  You may wish
  to include a build number or build date.  This version string will be
  included in the output of <code>gcc --version</code>.  This suffix does
*************** not replace the default version string,
*** 151,157 ****
  <p>The default value is &lsquo;<samp>GCC</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-bugurl=<var>url</var></code></dt>
  <dd><p>Specify the URL that users should visit if they wish to report a bug.
  You are of course welcome to forward bugs reported to you to the FSF,
  if you determine that they are not bugs in your modifications.
--- 144,150 ----
  <p>The default value is &lsquo;<samp>GCC</samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--with-bugurl=<var>url</var></code></span></dt>
  <dd><p>Specify the URL that users should visit if they wish to report a bug.
  You are of course welcome to forward bugs reported to you to the FSF,
  if you determine that they are not bugs in your modifications.
*************** if you determine that they are not bugs
*** 159,172 ****
  <p>The default value refers to the FSF&rsquo;s GCC bug tracker.
  </p>
  </dd>
! <dt><code>--with-documentation-root-url=<var>url</var></code></dt>
  <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><code>--with-changes-root-url=<var>url</var></code></dt>
  <dd><p>Specify the URL root that contains information about changes in GCC
  releases like <code>gcc-<var>version</var>/changes.html</code>.
  The <var>url</var> should end with a <code>/</code> character.
--- 152,165 ----
  <p>The default value refers to the FSF&rsquo;s GCC bug tracker.
  </p>
  </dd>
! <dt><span><code>--with-documentation-root-url=<var>url</var></code></span></dt>
  <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>
  <dd><p>Specify the URL root that contains information about changes in GCC
  releases like <code>gcc-<var>version</var>/changes.html</code>.
  The <var>url</var> should end with a <code>/</code> character.
*************** The <var>url</var> should end with a <co
*** 176,183 ****
  </dd>
  </dl>
  
! <a name="Target-specification"></a>
! <h3 class="heading">Target specification</h3>
  <ul>
  <li> GCC has code to correctly determine the correct value for <var>target</var>
  for nearly all native systems.  Therefore, we highly recommend you do
--- 169,175 ----
  </dd>
  </dl>
  
! <span id="Target-specification"></span><h3 class="heading">Target specification</h3>
  <ul>
  <li> GCC has code to correctly determine the correct value for <var>target</var>
  for nearly all native systems.  Therefore, we highly recommend you do
*************** implies that the host defaults to <var>t
*** 192,199 ****
  </li></ul>
  
  
! <a name="Options-specification"></a>
! <h3 class="heading">Options specification</h3>
  
  <p>Use <var>options</var> to override several configure time options for
  GCC.  A list of supported <var>options</var> follows; &lsquo;<samp>configure
--- 184,190 ----
  </li></ul>
  
  
! <span id="Options-specification"></span><h3 class="heading">Options specification</h3>
  
  <p>Use <var>options</var> to override several configure time options for
  GCC.  A list of supported <var>options</var> follows; &lsquo;<samp>configure
*************** work and should not normally be used.
*** 205,211 ****
  corresponding <samp>--without</samp> option.
  </p>
  <dl compact="compact">
! <dt><code>--prefix=<var>dirname</var></code></dt>
  <dd><p>Specify the toplevel installation
  directory.  This is the recommended way to install the tools into a directory
  other than the default.  The toplevel installation directory defaults to
--- 196,202 ----
  corresponding <samp>--without</samp> option.
  </p>
  <dl compact="compact">
! <dt><span><code>--prefix=<var>dirname</var></code></span></dt>
  <dd><p>Specify the toplevel installation
  directory.  This is the recommended way to install the tools into a directory
  other than the default.  The toplevel installation directory defaults to
*************** beneath a user&rsquo;s home directory tr
*** 220,282 ****
  <p>The following standard <code>autoconf</code> options are supported.  Normally you
  should not need to use these options.
  </p><dl compact="compact">
! <dt><code>--exec-prefix=<var>dirname</var></code></dt>
  <dd><p>Specify the toplevel installation directory for architecture-dependent
  files.  The default is <samp><var>prefix</var></samp>.
  </p>
  </dd>
! <dt><code>--bindir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for the executables called by users
  (such as <code>gcc</code> and <code>g++</code>).  The default is
  <samp><var>exec-prefix</var>/bin</samp>.
  </p>
  </dd>
! <dt><code>--libdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for object code libraries and
  internal data files of GCC.  The default is <samp><var>exec-prefix</var>/lib</samp>.
  </p>
  </dd>
! <dt><code>--libexecdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for internal executables of GCC.
  The default is <samp><var>exec-prefix</var>/libexec</samp>.
  </p>
  </dd>
! <dt><code>--with-slibdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for the shared libgcc library.  The
  default is <samp><var>libdir</var></samp>.
  </p>
  </dd>
! <dt><code>--datarootdir=<var>dirname</var></code></dt>
  <dd><p>Specify the root of the directory tree for read-only architecture-independent
  data files referenced by GCC.  The default is <samp><var>prefix</var>/share</samp>.
  </p>
  </dd>
! <dt><code>--infodir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for documentation in info format.
  The default is <samp><var>datarootdir</var>/info</samp>.
  </p>
  </dd>
! <dt><code>--datadir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for some architecture-independent
  data files referenced by GCC.  The default is <samp><var>datarootdir</var></samp>.
  </p>
  </dd>
! <dt><code>--docdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for documentation files (other
  than Info) for GCC.  The default is <samp><var>datarootdir</var>/doc</samp>.
  </p>
  </dd>
! <dt><code>--htmldir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for HTML documentation files.
  The default is <samp><var>docdir</var></samp>.
  </p>
  </dd>
! <dt><code>--pdfdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for PDF documentation files.
  The default is <samp><var>docdir</var></samp>.
  </p>
  </dd>
! <dt><code>--mandir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for manual pages.  The default is
  <samp><var>datarootdir</var>/man</samp>.  (Note that the manual pages are only extracts
  from the full GCC manuals, which are provided in Texinfo format.  The manpages
--- 211,273 ----
  <p>The following standard <code>autoconf</code> options are supported.  Normally you
  should not need to use these options.
  </p><dl compact="compact">
! <dt><span><code>--exec-prefix=<var>dirname</var></code></span></dt>
  <dd><p>Specify the toplevel installation directory for architecture-dependent
  files.  The default is <samp><var>prefix</var></samp>.
  </p>
  </dd>
! <dt><span><code>--bindir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for the executables called by users
  (such as <code>gcc</code> and <code>g++</code>).  The default is
  <samp><var>exec-prefix</var>/bin</samp>.
  </p>
  </dd>
! <dt><span><code>--libdir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for object code libraries and
  internal data files of GCC.  The default is <samp><var>exec-prefix</var>/lib</samp>.
  </p>
  </dd>
! <dt><span><code>--libexecdir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for internal executables of GCC.
  The default is <samp><var>exec-prefix</var>/libexec</samp>.
  </p>
  </dd>
! <dt><span><code>--with-slibdir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for the shared libgcc library.  The
  default is <samp><var>libdir</var></samp>.
  </p>
  </dd>
! <dt><span><code>--datarootdir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the root of the directory tree for read-only architecture-independent
  data files referenced by GCC.  The default is <samp><var>prefix</var>/share</samp>.
  </p>
  </dd>
! <dt><span><code>--infodir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for documentation in info format.
  The default is <samp><var>datarootdir</var>/info</samp>.
  </p>
  </dd>
! <dt><span><code>--datadir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for some architecture-independent
  data files referenced by GCC.  The default is <samp><var>datarootdir</var></samp>.
  </p>
  </dd>
! <dt><span><code>--docdir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for documentation files (other
  than Info) for GCC.  The default is <samp><var>datarootdir</var>/doc</samp>.
  </p>
  </dd>
! <dt><span><code>--htmldir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for HTML documentation files.
  The default is <samp><var>docdir</var></samp>.
  </p>
  </dd>
! <dt><span><code>--pdfdir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for PDF documentation files.
  The default is <samp><var>docdir</var></samp>.
  </p>
  </dd>
! <dt><span><code>--mandir=<var>dirname</var></code></span></dt>
  <dd><p>Specify the installation directory for manual pages.  The default is
  <samp><var>datarootdir</var>/man</samp>.  (Note that the manual pages are only extracts
  from the full GCC manuals, which are provided in Texinfo format.  The manpages
*************** are derived by an automatic conversion p
*** 284,297 ****
  manual.)
  </p>
  </dd>
! <dt><code>--with-gxx-include-dir=<var>dirname</var></code></dt>
  <dd><p>Specify
  the installation directory for G++ header files.  The default depends
  on other configuration options, and differs between cross and native
  configurations.
  </p>
  </dd>
! <dt><code>--with-specs=<var>specs</var></code></dt>
  <dd><p>Specify additional command line driver SPECS.
  This can be useful if you need to turn on a non-standard feature by
  default without modifying the compiler&rsquo;s source code, for instance
--- 275,288 ----
  manual.)
  </p>
  </dd>
! <dt><span><code>--with-gxx-include-dir=<var>dirname</var></code></span></dt>
  <dd><p>Specify
  the installation directory for G++ header files.  The default depends
  on other configuration options, and differs between cross and native
  configurations.
  </p>
  </dd>
! <dt><span><code>--with-specs=<var>specs</var></code></span></dt>
  <dd><p>Specify additional command line driver SPECS.
  This can be useful if you need to turn on a non-standard feature by
  default without modifying the compiler&rsquo;s source code, for instance
*************** See &ldquo;Spec Files&rdquo; in the main
*** 302,308 ****
  </dl>
  
  </dd>
! <dt><code>--program-prefix=<var>prefix</var></code></dt>
  <dd><p>GCC supports some transformations of the names of its programs when
  installing them.  This option prepends <var>prefix</var> to the names of
  programs to install in <var>bindir</var> (see above).  For example, specifying
--- 293,299 ----
  </dl>
  
  </dd>
! <dt><span><code>--program-prefix=<var>prefix</var></code></span></dt>
  <dd><p>GCC supports some transformations of the names of its programs when
  installing them.  This option prepends <var>prefix</var> to the names of
  programs to install in <var>bindir</var> (see above).  For example, specifying
*************** programs to install in <var>bindir</var>
*** 310,323 ****
  being installed as <samp>/usr/local/bin/foo-gcc</samp>.
  </p>
  </dd>
! <dt><code>--program-suffix=<var>suffix</var></code></dt>
  <dd><p>Appends <var>suffix</var> to the names of programs to install in <var>bindir</var>
  (see above).  For example, specifying <samp>--program-suffix=-3.1</samp>
  would result in &lsquo;<samp>gcc</samp>&rsquo; being installed as
  <samp>/usr/local/bin/gcc-3.1</samp>.
  </p>
  </dd>
! <dt><code>--program-transform-name=<var>pattern</var></code></dt>
  <dd><p>Applies the &lsquo;<samp>sed</samp>&rsquo; script <var>pattern</var> to be applied to the names
  of programs to install in <var>bindir</var> (see above).  <var>pattern</var> has to
  consist of one or more basic &lsquo;<samp>sed</samp>&rsquo; editing commands, separated by
--- 301,314 ----
  being installed as <samp>/usr/local/bin/foo-gcc</samp>.
  </p>
  </dd>
! <dt><span><code>--program-suffix=<var>suffix</var></code></span></dt>
  <dd><p>Appends <var>suffix</var> to the names of programs to install in <var>bindir</var>
  (see above).  For example, specifying <samp>--program-suffix=-3.1</samp>
  would result in &lsquo;<samp>gcc</samp>&rsquo; being installed as
  <samp>/usr/local/bin/gcc-3.1</samp>.
  </p>
  </dd>
! <dt><span><code>--program-transform-name=<var>pattern</var></code></span></dt>
  <dd><p>Applies the &lsquo;<samp>sed</samp>&rsquo; script <var>pattern</var> to be applied to the names
  of programs to install in <var>bindir</var> (see above).  <var>pattern</var> has to
  consist of one or more basic &lsquo;<samp>sed</samp>&rsquo; editing commands, separated by
*************** resulting binary would be installed as
*** 350,356 ****
  transformed yet, which will be fixed in some time.
  </p>
  </dd>
! <dt><code>--with-local-prefix=<var>dirname</var></code></dt>
  <dd><p>Specify the
  installation directory for local include files.  The default is
  <samp>/usr/local</samp>.  Specify this option if you want the compiler to
--- 341,347 ----
  transformed yet, which will be fixed in some time.
  </p>
  </dd>
! <dt><span><code>--with-local-prefix=<var>dirname</var></code></span></dt>
  <dd><p>Specify the
  installation directory for local include files.  The default is
  <samp>/usr/local</samp>.  Specify this option if you want the compiler to
*************** install part of GCC.  Perhaps they make
*** 423,434 ****
  installing GCC creates the directory.
  </p>
  </dd>
! <dt><code>--with-gcc-major-version-only</code></dt>
  <dd><p>Specifies that GCC should use only the major number rather than
  <var>major</var>.<var>minor</var>.<var>patchlevel</var> in filesystem paths.
  </p>
  </dd>
! <dt><code>--with-native-system-header-dir=<var>dirname</var></code></dt>
  <dd><p>Specifies that <var>dirname</var> is the directory that contains native system
  header files, rather than <samp>/usr/include</samp>.  This option is most useful
  if you are creating a compiler that should be isolated from the system
--- 414,425 ----
  installing GCC creates the directory.
  </p>
  </dd>
! <dt><span><code>--with-gcc-major-version-only</code></span></dt>
  <dd><p>Specifies that GCC should use only the major number rather than
  <var>major</var>.<var>minor</var>.<var>patchlevel</var> in filesystem paths.
  </p>
  </dd>
! <dt><span><code>--with-native-system-header-dir=<var>dirname</var></code></span></dt>
  <dd><p>Specifies that <var>dirname</var> is the directory that contains native system
  header files, rather than <samp>/usr/include</samp>.  This option is most useful
  if you are creating a compiler that should be isolated from the system
*************** as much as possible.  It is most commonl
*** 437,443 ****
  <var>dirname</var> inside the system root specified by that option.
  </p>
  </dd>
! <dt><code>--enable-shared[=<var>package</var>[,&hellip;]]</code></dt>
  <dd><p>Build shared versions of libraries, if shared libraries are supported on
  the target platform.  Unlike GCC 2.95.x and earlier, shared libraries
  are enabled by default on all platforms that support shared libraries.
--- 428,434 ----
  <var>dirname</var> inside the system root specified by that option.
  </p>
  </dd>
! <dt><span><code>--enable-shared[=<var>package</var>[,&hellip;]]</code></span></dt>
  <dd><p>Build shared versions of libraries, if shared libraries are supported on
  the target platform.  Unlike GCC 2.95.x and earlier, shared libraries
  are enabled by default on all platforms that support shared libraries.
*************** argument, only <samp>--enable-shared</sa
*** 458,464 ****
  code.
  </p>
  </dd>
! <dt><code>--enable-host-shared</code></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.
--- 449,455 ----
  code.
  </p>
  </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.
*************** but yielding a slightly slower compiler.
*** 469,475 ****
  libraries.
  </p>
  </dd>
! <dt><code><a name="with-gnu-as"></a>--with-gnu-as</code></dt>
  <dd><p>Specify that the compiler should assume that the
  assembler it finds is the GNU assembler.  However, this does not modify
  the rules to find an assembler and will result in confusion if the
--- 460,466 ----
  libraries.
  </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
  the rules to find an assembler and will result in confusion if the
*************** whether you use the GNU assembler.  On a
*** 492,498 ****
  </li></ul>
  
  </dd>
! <dt><code><a name="with-as"></a>--with-as=<var>pathname</var></code></dt>
  <dd><p>Specify that the compiler should use the assembler pointed to by
  <var>pathname</var>, rather than the one found by the standard rules to find
  an assembler, which are:
--- 483,489 ----
  </li></ul>
  
  </dd>
! <dt><span><code><span id="with-as"></span>--with-as=<var>pathname</var></code></span></dt>
  <dd><p>Specify that the compiler should use the assembler pointed to by
  <var>pathname</var>, rather than the one found by the standard rules to find
  an assembler, which are:
*************** assemblers installed and want to choose
*** 525,559 ****
  above rules.
  </p>
  </dd>
! <dt><code><a name="with-gnu-ld"></a>--with-gnu-ld</code></dt>
  <dd><p>Same as <a href="#with-gnu-as"><samp>--with-gnu-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><code>--with-ld=<var>pathname</var></code></dt>
  <dd><p>Same as <a href="#with-as"><samp>--with-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><code>--with-dsymutil=<var>pathname</var></code></dt>
  <dd><p>Same as <a href="#with-as"><samp>--with-as</samp></a>
  but for the debug linker (only used on Darwin platforms so far).
  </p>
  </dd>
! <dt><code>--with-stabs</code></dt>
  <dd><p>Specify that stabs debugging
  information should be used instead of whatever format the host normally
  uses.  Normally GCC uses the same debug format as the host system.
  </p>
  </dd>
! <dt><code>--with-tls=<var>dialect</var></code></dt>
  <dd><p>Specify the default TLS dialect, for systems were there is a choice.
  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.
  </p>
  </dd>
! <dt><code>--enable-multiarch</code></dt>
  <dd><p>Specify whether to enable or disable multiarch support.  The default is
  to check for glibc start files in a multiarch location, and enable it
  if the files are found.  The auto detection is enabled for native builds,
--- 516,550 ----
  above rules.
  </p>
  </dd>
! <dt><span><code><span id="with-gnu-ld"></span>--with-gnu-ld</code></span></dt>
  <dd><p>Same as <a href="#with-gnu-as"><samp>--with-gnu-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><span><code>--with-ld=<var>pathname</var></code></span></dt>
  <dd><p>Same as <a href="#with-as"><samp>--with-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><span><code>--with-dsymutil=<var>pathname</var></code></span></dt>
  <dd><p>Same as <a href="#with-as"><samp>--with-as</samp></a>
  but for the debug linker (only used on Darwin platforms so far).
  </p>
  </dd>
! <dt><span><code>--with-stabs</code></span></dt>
  <dd><p>Specify that stabs debugging
  information should be used instead of whatever format the host normally
  uses.  Normally GCC uses the same debug format as the host system.
  </p>
  </dd>
! <dt><span><code>--with-tls=<var>dialect</var></code></span></dt>
  <dd><p>Specify the default TLS dialect, for systems were there is a choice.
  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.
  </p>
  </dd>
! <dt><span><code>--enable-multiarch</code></span></dt>
  <dd><p>Specify whether to enable or disable multiarch support.  The default is
  to check for glibc start files in a multiarch location, and enable it
  if the files are found.  The auto detection is enabled for native builds,
*************** More documentation about multiarch can b
*** 563,575 ****
  <a href="https://wiki.debian.org/Multiarch">https://wiki.debian.org/Multiarch</a>.
  </p>
  </dd>
! <dt><code>--enable-sjlj-exceptions</code></dt>
  <dd><p>Force use of the <code>setjmp</code>/<code>longjmp</code>-based scheme for exceptions.
  &lsquo;<samp>configure</samp>&rsquo; ordinarily picks the correct value based on the platform.
  Only use this option if you are sure you need a different setting.
  </p>
  </dd>
! <dt><code>--enable-vtable-verify</code></dt>
  <dd><p>Specify whether to enable or disable the vtable verification feature.
  Enabling this feature causes libstdc++ to be built with its virtual calls
  in verifiable mode.  This means that, when linked with libvtv, every
--- 554,566 ----
  <a href="https://wiki.debian.org/Multiarch">https://wiki.debian.org/Multiarch</a>.
  </p>
  </dd>
! <dt><span><code>--enable-sjlj-exceptions</code></span></dt>
  <dd><p>Force use of the <code>setjmp</code>/<code>longjmp</code>-based scheme for exceptions.
  &lsquo;<samp>configure</samp>&rsquo; ordinarily picks the correct value based on the platform.
  Only use this option if you are sure you need a different setting.
  </p>
  </dd>
! <dt><span><code>--enable-vtable-verify</code></span></dt>
  <dd><p>Specify whether to enable or disable the vtable verification feature.
  Enabling this feature causes libstdc++ to be built with its virtual calls
  in verifiable mode.  This means that, when linked with libvtv, every
*************** still be built (see <samp>--disable-libv
*** 582,593 ****
  <samp>--disable-vtable-verify</samp> is the default.
  </p>
  </dd>
! <dt><code>--disable-gcov</code></dt>
  <dd><p>Specify that the run-time library used for coverage analysis
  and associated host tools should not be built.
  </p>
  </dd>
! <dt><code>--disable-multilib</code></dt>
  <dd><p>Specify that multiple target
  libraries to support different target variants, calling
  conventions, etc. should not be built.  The default is to build a
--- 573,584 ----
  <samp>--disable-vtable-verify</samp> is the default.
  </p>
  </dd>
! <dt><span><code>--disable-gcov</code></span></dt>
  <dd><p>Specify that the run-time library used for coverage analysis
  and associated host tools should not be built.
  </p>
  </dd>
! <dt><span><code>--disable-multilib</code></span></dt>
  <dd><p>Specify that multiple target
  libraries to support different target variants, calling
  conventions, etc. should not be built.  The default is to build a
*************** predefined set of them.
*** 596,618 ****
  <p>Some targets provide finer-grained control over which multilibs are built
  (e.g., <samp>--disable-softfloat</samp>):
  </p><dl compact="compact">
! <dt><code>arm-*-*</code></dt>
  <dd><p>fpu, 26bit, underscore, interwork, biendian, nofmult.
  </p>
  </dd>
! <dt><code>m68*-*-*</code></dt>
  <dd><p>softfloat, m68881, m68000, m68020.
  </p>
  </dd>
! <dt><code>mips*-*-*</code></dt>
  <dd><p>single-float, biendian, softfloat.
  </p>
  </dd>
! <dt><code>msp430-*-*</code></dt>
  <dd><p>no-exceptions
  </p>
  </dd>
! <dt><code>powerpc*-*-*, rs6000*-*-*</code></dt>
  <dd><p>aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
  sysv, aix.
  </p>
--- 587,609 ----
  <p>Some targets provide finer-grained control over which multilibs are built
  (e.g., <samp>--disable-softfloat</samp>):
  </p><dl compact="compact">
! <dt><span><code>arm-*-*</code></span></dt>
  <dd><p>fpu, 26bit, underscore, interwork, biendian, nofmult.
  </p>
  </dd>
! <dt><span><code>m68*-*-*</code></span></dt>
  <dd><p>softfloat, m68881, m68000, m68020.
  </p>
  </dd>
! <dt><span><code>mips*-*-*</code></span></dt>
  <dd><p>single-float, biendian, softfloat.
  </p>
  </dd>
! <dt><span><code>msp430-*-*</code></span></dt>
  <dd><p>no-exceptions
  </p>
  </dd>
! <dt><span><code>powerpc*-*-*, rs6000*-*-*</code></span></dt>
  <dd><p>aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
  sysv, aix.
  </p>
*************** sysv, aix.
*** 620,634 ****
  </dl>
  
  </dd>
! <dt><code>--with-multilib-list=<var>list</var></code></dt>
! <dt><code>--without-multilib-list</code></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*-*-*, riscv*-*-*, sh*-*-* and x86-64-*-linux*.  The
  accepted values and meaning for each target is given below.
  </p>
  <dl compact="compact">
! <dt><code>aarch64*-*-*</code></dt>
  <dd><p><var>list</var> is a comma separated list of <code>ilp32</code>, and <code>lp64</code>
  to enable ILP32 and LP64 run-time libraries, respectively.  If
  <var>list</var> is empty, then there will be no multilibs and only the
--- 611,625 ----
  </dl>
  
  </dd>
! <dt><span><code>--with-multilib-list=<var>list</var></code></span></dt>
! <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*-*-*, riscv*-*-*, sh*-*-* and x86-64-*-linux*.  The
  accepted values and meaning for each target is given below.
  </p>
  <dl compact="compact">
! <dt><span><code>aarch64*-*-*</code></span></dt>
  <dd><p><var>list</var> is a comma separated list of <code>ilp32</code>, and <code>lp64</code>
  to enable ILP32 and LP64 run-time libraries, respectively.  If
  <var>list</var> is empty, then there will be no multilibs and only the
*************** default set of libraries is selected bas
*** 638,644 ****
  <samp>--target</samp>.
  </p>
  </dd>
! <dt><code>arm*-*-*</code></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
  profiles respectively.  Note that, due to some limitation of the current
--- 629,635 ----
  <samp>--target</samp>.
  </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
  profiles respectively.  Note that, due to some limitation of the current
*************** profile.  The union of these options is
*** 700,706 ****
  </table>
  
  </dd>
! <dt><code>riscv*-*-*</code></dt>
  <dd><p><var>list</var> is a single ABI name.  The target architecture must be either
  <code>rv32gc</code> or <code>rv64gc</code>.  This will build a single multilib for the
  specified architecture and ABI pair.  If <code>--with-multilib-list</code> is not
--- 691,697 ----
  </table>
  
  </dd>
! <dt><span><code>riscv*-*-*</code></span></dt>
  <dd><p><var>list</var> is a single ABI name.  The target architecture must be either
  <code>rv32gc</code> or <code>rv64gc</code>.  This will build a single multilib for the
  specified architecture and ABI pair.  If <code>--with-multilib-list</code> is not
*************** given, then a default set of multilibs i
*** 708,714 ****
  <samp>--target</samp>.  This is usually a large set of multilibs.
  </p>
  </dd>
! <dt><code>sh*-*-*</code></dt>
  <dd><p><var>list</var> is a comma separated list of CPU names.  These must be of the
  form <code>sh*</code> or <code>m*</code> (in which case they match the compiler option
  for that processor).  The list should not contain any endian options -
--- 699,705 ----
  <samp>--target</samp>.  This is usually a large set of multilibs.
  </p>
  </dd>
! <dt><span><code>sh*-*-*</code></span></dt>
  <dd><p><var>list</var> is a comma separated list of CPU names.  These must be of the
  form <code>sh*</code> or <code>m*</code> (in which case they match the compiler option
  for that processor).  The list should not contain any endian options -
*************** specialized subset.
*** 729,747 ****
  </p>
  <p>Example 1: to configure a compiler for SH4A only, but supporting both
  endians, with little endian being the default:
! </p><div class="smallexample">
! <pre class="smallexample">--with-cpu=sh4a --with-endian=little,big --with-multilib-list=
  </pre></div>
  
  <p>Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with
  only little endian SH4AL:
! </p><div class="smallexample">
! <pre class="smallexample">--with-cpu=sh4a --with-endian=little,big \
  --with-multilib-list=sh4al,!mb/m4al
  </pre></div>
  
  </dd>
! <dt><code>x86-64-*-linux*</code></dt>
  <dd><p><var>list</var> is a comma separated list of <code>m32</code>, <code>m64</code> and
  <code>mx32</code> to enable 32-bit, 64-bit and x32 run-time libraries,
  respectively.  If <var>list</var> is empty, then there will be no multilibs
--- 720,738 ----
  </p>
  <p>Example 1: to configure a compiler for SH4A only, but supporting both
  endians, with little endian being the default:
! </p><div class="example">
! <pre class="example">--with-cpu=sh4a --with-endian=little,big --with-multilib-list=
  </pre></div>
  
  <p>Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with
  only little endian SH4AL:
! </p><div class="example">
! <pre class="example">--with-cpu=sh4a --with-endian=little,big \
  --with-multilib-list=sh4al,!mb/m4al
  </pre></div>
  
  </dd>
! <dt><span><code>x86-64-*-linux*</code></span></dt>
  <dd><p><var>list</var> is a comma separated list of <code>m32</code>, <code>m64</code> and
  <code>mx32</code> to enable 32-bit, 64-bit and x32 run-time libraries,
  respectively.  If <var>list</var> is empty, then there will be no multilibs
*************** and only the default run-time library wi
*** 753,759 ****
  </dl>
  
  </dd>
! <dt><code>--with-multilib-generator=<var>config</var></code></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
  for riscv*-*-elf*.  The accepted values and meanings are given below.
--- 744,750 ----
  </dl>
  
  </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
  for riscv*-*-elf*.  The accepted values and meanings are given below.
*************** for riscv*-*-elf*.  The accepted values
*** 763,787 ****
  reuse rule with architecture string and reuse rule with sub-extension.
  </p>
  <p>Example 1: Add multi-lib suppport for rv32i with ilp32.
! </p><div class="smallexample">
! <pre class="smallexample">rv32i-ilp32--
  </pre></div>
  
  <p>Example 2: Add multi-lib suppport for rv32i with ilp32 and rv32imafd with ilp32.
! </p><div class="smallexample">
! <pre class="smallexample">rv32i-ilp32--;rv32imafd-ilp32--
  </pre></div>
  
  <p>Example 3: Add multi-lib suppport for rv32i with ilp32; rv32im with ilp32 and
  rv32ic with ilp32 will reuse this multi-lib set.
! </p><div class="smallexample">
! <pre class="smallexample">rv32i-ilp32-rv32im-c
  </pre></div>
  
  <p>Example 4: Add multi-lib suppport for rv64ima with lp64; rv64imaf with lp64,
  rv64imac with lp64 and rv64imafc with lp64 will reuse this multi-lib set.
! </p><div class="smallexample">
! <pre class="smallexample">rv64ima-lp64--f,c,fc
  </pre></div>
  
  <p><samp>--with-multilib-generator</samp> have an optional configuration argument
--- 754,778 ----
  reuse rule with architecture string and reuse rule with sub-extension.
  </p>
  <p>Example 1: Add multi-lib suppport for rv32i with ilp32.
! </p><div class="example">
! <pre class="example">rv32i-ilp32--
  </pre></div>
  
  <p>Example 2: Add multi-lib suppport for rv32i with ilp32 and rv32imafd with ilp32.
! </p><div class="example">
! <pre class="example">rv32i-ilp32--;rv32imafd-ilp32--
  </pre></div>
  
  <p>Example 3: Add multi-lib suppport for rv32i with ilp32; rv32im with ilp32 and
  rv32ic with ilp32 will reuse this multi-lib set.
! </p><div class="example">
! <pre class="example">rv32i-ilp32-rv32im-c
  </pre></div>
  
  <p>Example 4: Add multi-lib suppport for rv64ima with lp64; rv64imaf with lp64,
  rv64imac with lp64 and rv64imafc with lp64 will reuse this multi-lib set.
! </p><div class="example">
! <pre class="example">rv64ima-lp64--f,c,fc
  </pre></div>
  
  <p><samp>--with-multilib-generator</samp> have an optional configuration argument
*************** currently we support medlow and medany.
*** 791,829 ****
  </p>
  <p>Example 5: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and
  medlow code model
! </p><div class="smallexample">
! <pre class="smallexample">rv64ima-lp64--;--cmodel=medlow
  </pre></div>
  
  <p>Example 6: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and
  medlow code model; rv64ima with lp64 and medany code model
! </p><div class="smallexample">
! <pre class="smallexample">rv64ima-lp64--;--cmodel=medlow,medany
  </pre></div>
  
  </dd>
! <dt><code>--with-endian=<var>endians</var></code></dt>
  <dd><p>Specify what endians to use.
  Currently only implemented for sh*-*-*.
  </p>
  <p><var>endians</var> may be one of the following:
  </p><dl compact="compact">
! <dt><code>big</code></dt>
  <dd><p>Use big endian exclusively.
  </p></dd>
! <dt><code>little</code></dt>
  <dd><p>Use little endian exclusively.
  </p></dd>
! <dt><code>big,little</code></dt>
  <dd><p>Use big endian by default.  Provide a multilib for little endian.
  </p></dd>
! <dt><code>little,big</code></dt>
  <dd><p>Use little endian by default.  Provide a multilib for big endian.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>--enable-threads</code></dt>
  <dd><p>Specify that the target
  supports threads.  This affects the Objective-C compiler and runtime
  library, and exception handling for other languages like C++.
--- 782,820 ----
  </p>
  <p>Example 5: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and
  medlow code model
! </p><div class="example">
! <pre class="example">rv64ima-lp64--;--cmodel=medlow
  </pre></div>
  
  <p>Example 6: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and
  medlow code model; rv64ima with lp64 and medany code model
! </p><div class="example">
! <pre class="example">rv64ima-lp64--;--cmodel=medlow,medany
  </pre></div>
  
  </dd>
! <dt><span><code>--with-endian=<var>endians</var></code></span></dt>
  <dd><p>Specify what endians to use.
  Currently only implemented for sh*-*-*.
  </p>
  <p><var>endians</var> may be one of the following:
  </p><dl compact="compact">
! <dt><span><code>big</code></span></dt>
  <dd><p>Use big endian exclusively.
  </p></dd>
! <dt><span><code>little</code></span></dt>
  <dd><p>Use little endian exclusively.
  </p></dd>
! <dt><span><code>big,little</code></span></dt>
  <dd><p>Use big endian by default.  Provide a multilib for little endian.
  </p></dd>
! <dt><span><code>little,big</code></span></dt>
  <dd><p>Use little endian by default.  Provide a multilib for big endian.
  </p></dd>
  </dl>
  
  </dd>
! <dt><span><code>--enable-threads</code></span></dt>
  <dd><p>Specify that the target
  supports threads.  This affects the Objective-C compiler and runtime
  library, and exception handling for other languages like C++.
*************** available for the system.  In this case,
*** 836,890 ****
  alias for <samp>--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><code>--disable-threads</code></dt>
  <dd><p>Specify that threading support should be disabled for the system.
  This is an alias for <samp>--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><code>--enable-threads=<var>lib</var></code></dt>
  <dd><p>Specify that
  <var>lib</var> is the thread support library.  This affects the Objective-C
  compiler and runtime library, and exception handling for other languages
  like C++.  The possibilities for <var>lib</var> are:
  </p>
  <dl compact="compact">
! <dt><code>aix</code></dt>
  <dd><p>AIX thread support.
  </p></dd>
! <dt><code>dce</code></dt>
  <dd><p>DCE thread support.
  </p></dd>
! <dt><code>lynx</code></dt>
  <dd><p>LynxOS thread support.
  </p></dd>
! <dt><code>mipssde</code></dt>
  <dd><p>MIPS SDE thread support.
  </p></dd>
! <dt><code>no</code></dt>
  <dd><p>This is an alias for &lsquo;<samp>single</samp>&rsquo;.
  </p></dd>
! <dt><code>posix</code></dt>
  <dd><p>Generic POSIX/Unix98 thread support.
  </p></dd>
! <dt><code>rtems</code></dt>
  <dd><p>RTEMS thread support.
  </p></dd>
! <dt><code>single</code></dt>
  <dd><p>Disable thread support, should work for all platforms.
  </p></dd>
! <dt><code>tpf</code></dt>
  <dd><p>TPF thread support.
  </p></dd>
! <dt><code>vxworks</code></dt>
  <dd><p>VxWorks thread support.
  </p></dd>
! <dt><code>win32</code></dt>
  <dd><p>Microsoft Win32 API thread support.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>--enable-tls</code></dt>
  <dd><p>Specify that the target supports TLS (Thread Local Storage).  Usually
  configure can correctly determine if TLS is supported.  In cases where
  it guesses incorrectly, TLS can be explicitly enabled or disabled with
--- 827,881 ----
  alias for <samp>--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><span><code>--disable-threads</code></span></dt>
  <dd><p>Specify that threading support should be disabled for the system.
  This is an alias for <samp>--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-threads=<var>lib</var></code></span></dt>
  <dd><p>Specify that
  <var>lib</var> is the thread support library.  This affects the Objective-C
  compiler and runtime library, and exception handling for other languages
  like C++.  The possibilities for <var>lib</var> are:
  </p>
  <dl compact="compact">
! <dt><span><code>aix</code></span></dt>
  <dd><p>AIX thread support.
  </p></dd>
! <dt><span><code>dce</code></span></dt>
  <dd><p>DCE thread support.
  </p></dd>
! <dt><span><code>lynx</code></span></dt>
  <dd><p>LynxOS thread support.
  </p></dd>
! <dt><span><code>mipssde</code></span></dt>
  <dd><p>MIPS SDE thread support.
  </p></dd>
! <dt><span><code>no</code></span></dt>
  <dd><p>This is an alias for &lsquo;<samp>single</samp>&rsquo;.
  </p></dd>
! <dt><span><code>posix</code></span></dt>
  <dd><p>Generic POSIX/Unix98 thread support.
  </p></dd>
! <dt><span><code>rtems</code></span></dt>
  <dd><p>RTEMS thread support.
  </p></dd>
! <dt><span><code>single</code></span></dt>
  <dd><p>Disable thread support, should work for all platforms.
  </p></dd>
! <dt><span><code>tpf</code></span></dt>
  <dd><p>TPF thread support.
  </p></dd>
! <dt><span><code>vxworks</code></span></dt>
  <dd><p>VxWorks thread support.
  </p></dd>
! <dt><span><code>win32</code></span></dt>
  <dd><p>Microsoft Win32 API thread support.
  </p></dd>
  </dl>
  
  </dd>
! <dt><span><code>--enable-tls</code></span></dt>
  <dd><p>Specify that the target supports TLS (Thread Local Storage).  Usually
  configure can correctly determine if TLS is supported.  In cases where
  it guesses incorrectly, TLS can be explicitly enabled or disabled with
*************** the assembler supports TLS but the C lib
*** 893,912 ****
  assumptions made by the configure test are incorrect.
  </p>
  </dd>
! <dt><code>--disable-tls</code></dt>
  <dd><p>Specify that the target does not support TLS.
  This is an alias for <samp>--enable-tls=no</samp>.
  </p>
  </dd>
! <dt><code>--disable-tm-clone-registry</code></dt>
  <dd><p>Disable TM clone registry in libgcc. It is enabled in libgcc by default.
  This option helps to reduce code size for embedded targets which do
  not use transactional memory.
  </p>
  </dd>
! <dt><code>--with-cpu=<var>cpu</var></code></dt>
! <dt><code>--with-cpu-32=<var>cpu</var></code></dt>
! <dt><code>--with-cpu-64=<var>cpu</var></code></dt>
  <dd><p>Specify which cpu variant the compiler should generate code for by default.
  <var>cpu</var> will be used as the default value of the <samp>-mcpu=</samp> switch.
  This option is only supported on some targets, including ARC, ARM, i386, M68k,
--- 884,903 ----
  assumptions made by the configure test are incorrect.
  </p>
  </dd>
! <dt><span><code>--disable-tls</code></span></dt>
  <dd><p>Specify that the target does not support TLS.
  This is an alias for <samp>--enable-tls=no</samp>.
  </p>
  </dd>
! <dt><span><code>--disable-tm-clone-registry</code></span></dt>
  <dd><p>Disable TM clone registry in libgcc. It is enabled in libgcc by default.
  This option helps to reduce code size for embedded targets which do
  not use transactional memory.
  </p>
  </dd>
! <dt><span><code>--with-cpu=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-cpu-32=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-cpu-64=<var>cpu</var></code></span></dt>
  <dd><p>Specify which cpu variant the compiler should generate code for by default.
  <var>cpu</var> will be used as the default value of the <samp>-mcpu=</samp> switch.
  This option is only supported on some targets, including ARC, ARM, i386, M68k,
*************** PowerPC, and SPARC.  It is mandatory for
*** 916,931 ****
  x86-64, PowerPC, and SPARC.
  </p>
  </dd>
! <dt><code>--with-schedule=<var>cpu</var></code></dt>
! <dt><code>--with-arch=<var>cpu</var></code></dt>
! <dt><code>--with-arch-32=<var>cpu</var></code></dt>
! <dt><code>--with-arch-64=<var>cpu</var></code></dt>
! <dt><code>--with-tune=<var>cpu</var></code></dt>
! <dt><code>--with-tune-32=<var>cpu</var></code></dt>
! <dt><code>--with-tune-64=<var>cpu</var></code></dt>
! <dt><code>--with-abi=<var>abi</var></code></dt>
! <dt><code>--with-fpu=<var>type</var></code></dt>
! <dt><code>--with-float=<var>type</var></code></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
--- 907,922 ----
  x86-64, PowerPC, and SPARC.
  </p>
  </dd>
! <dt><span><code>--with-schedule=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-arch=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-arch-32=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-arch-64=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-tune=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-tune-32=<var>cpu</var></code></span></dt>
! <dt><span><code>--with-tune-64=<var>cpu</var></code></span></dt>
! <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>
  <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
*************** options and for <samp>-mhard-float</samp
*** 933,969 ****
  of the arguments depend on the target.
  </p>
  </dd>
! <dt><code>--with-mode=<var>mode</var></code></dt>
  <dd><p>Specify if the compiler should default to <samp>-marm</samp> or <samp>-mthumb</samp>.
  This option is only supported on ARM targets.
  </p>
  </dd>
! <dt><code>--with-stack-offset=<var>num</var></code></dt>
  <dd><p>This option sets the default for the -mstack-offset=<var>num</var> option,
  and will thus generally also control the setting of this option for
  libraries.  This option is only supported on Epiphany targets.
  </p>
  </dd>
! <dt><code>--with-fpmath=<var>isa</var></code></dt>
  <dd><p>This options sets <samp>-mfpmath=sse</samp> by default and specifies the default
  ISA for floating-point arithmetics.  You can select either &lsquo;<samp>sse</samp>&rsquo; which
  enables <samp>-msse2</samp> or &lsquo;<samp>avx</samp>&rsquo; which enables <samp>-mavx</samp> by default.
  This option is only supported on i386 and x86-64 targets.
  </p>
  </dd>
! <dt><code>--with-fp-32=<var>mode</var></code></dt>
  <dd><p>On MIPS targets, set the default value for the <samp>-mfp</samp> option when using
  the o32 ABI.  The possibilities for <var>mode</var> are:
  </p><dl compact="compact">
! <dt><code>32</code></dt>
  <dd><p>Use the o32 FP32 ABI extension, as with the <samp>-mfp32</samp> command-line
  option.
  </p></dd>
! <dt><code>xx</code></dt>
  <dd><p>Use the o32 FPXX ABI extension, as with the <samp>-mfpxx</samp> command-line
  option.
  </p></dd>
! <dt><code>64</code></dt>
  <dd><p>Use the o32 FP64 ABI extension, as with the <samp>-mfp64</samp> command-line
  option.
  </p></dd>
--- 924,960 ----
  of the arguments depend on the target.
  </p>
  </dd>
! <dt><span><code>--with-mode=<var>mode</var></code></span></dt>
  <dd><p>Specify if the compiler should default to <samp>-marm</samp> or <samp>-mthumb</samp>.
  This option is only supported on ARM targets.
  </p>
  </dd>
! <dt><span><code>--with-stack-offset=<var>num</var></code></span></dt>
  <dd><p>This option sets the default for the -mstack-offset=<var>num</var> option,
  and will thus generally also control the setting of this option for
  libraries.  This option is only supported on Epiphany targets.
  </p>
  </dd>
! <dt><span><code>--with-fpmath=<var>isa</var></code></span></dt>
  <dd><p>This options sets <samp>-mfpmath=sse</samp> by default and specifies the default
  ISA for floating-point arithmetics.  You can select either &lsquo;<samp>sse</samp>&rsquo; which
  enables <samp>-msse2</samp> or &lsquo;<samp>avx</samp>&rsquo; which enables <samp>-mavx</samp> by default.
  This option is only supported on i386 and x86-64 targets.
  </p>
  </dd>
! <dt><span><code>--with-fp-32=<var>mode</var></code></span></dt>
  <dd><p>On MIPS targets, set the default value for the <samp>-mfp</samp> option when using
  the o32 ABI.  The possibilities for <var>mode</var> are:
  </p><dl compact="compact">
! <dt><span><code>32</code></span></dt>
  <dd><p>Use the o32 FP32 ABI extension, as with the <samp>-mfp32</samp> command-line
  option.
  </p></dd>
! <dt><span><code>xx</code></span></dt>
  <dd><p>Use the o32 FPXX ABI extension, as with the <samp>-mfpxx</samp> command-line
  option.
  </p></dd>
! <dt><span><code>64</code></span></dt>
  <dd><p>Use the o32 FP64 ABI extension, as with the <samp>-mfp64</samp> command-line
  option.
  </p></dd>
*************** option.
*** 972,998 ****
  FP32 ABI extension.
  </p>
  </dd>
! <dt><code>--with-odd-spreg-32</code></dt>
  <dd><p>On MIPS targets, set the <samp>-modd-spreg</samp> option by default when using
  the o32 ABI.
  </p>
  </dd>
! <dt><code>--without-odd-spreg-32</code></dt>
  <dd><p>On MIPS targets, set the <samp>-mno-odd-spreg</samp> option by default when using
  the o32 ABI.  This is normally used in conjunction with
  <samp>--with-fp-32=64</samp> in order to target the o32 FP64A ABI extension.
  </p>
  </dd>
! <dt><code>--with-nan=<var>encoding</var></code></dt>
  <dd><p>On MIPS targets, set the default encoding convention to use for the
  special not-a-number (NaN) IEEE 754 floating-point data.  The
  possibilities for <var>encoding</var> are:
  </p><dl compact="compact">
! <dt><code>legacy</code></dt>
  <dd><p>Use the legacy encoding, as with the <samp>-mnan=legacy</samp> command-line
  option.
  </p></dd>
! <dt><code>2008</code></dt>
  <dd><p>Use the 754-2008 encoding, as with the <samp>-mnan=2008</samp> command-line
  option.
  </p></dd>
--- 963,989 ----
  FP32 ABI extension.
  </p>
  </dd>
! <dt><span><code>--with-odd-spreg-32</code></span></dt>
  <dd><p>On MIPS targets, set the <samp>-modd-spreg</samp> option by default when using
  the o32 ABI.
  </p>
  </dd>
! <dt><span><code>--without-odd-spreg-32</code></span></dt>
  <dd><p>On MIPS targets, set the <samp>-mno-odd-spreg</samp> option by default when using
  the o32 ABI.  This is normally used in conjunction with
  <samp>--with-fp-32=64</samp> in order to target the o32 FP64A ABI extension.
  </p>
  </dd>
! <dt><span><code>--with-nan=<var>encoding</var></code></span></dt>
  <dd><p>On MIPS targets, set the default encoding convention to use for the
  special not-a-number (NaN) IEEE 754 floating-point data.  The
  possibilities for <var>encoding</var> are:
  </p><dl compact="compact">
! <dt><span><code>legacy</code></span></dt>
  <dd><p>Use the legacy encoding, as with the <samp>-mnan=legacy</samp> command-line
  option.
  </p></dd>
! <dt><span><code>2008</code></span></dt>
  <dd><p>Use the 754-2008 encoding, as with the <samp>-mnan=2008</samp> command-line
  option.
  </p></dd>
*************** the legacy encoding, as when neither of
*** 1004,1053 ****
  <samp>-mnan=legacy</samp> command-line options has been used.
  </p>
  </dd>
! <dt><code>--with-divide=<var>type</var></code></dt>
  <dd><p>Specify how the compiler should generate code for checking for
  division by zero.  This option is only supported on the MIPS target.
  The possibilities for <var>type</var> are:
  </p><dl compact="compact">
! <dt><code>traps</code></dt>
  <dd><p>Division by zero checks use conditional traps (this is the default on
  systems that support conditional traps).
  </p></dd>
! <dt><code>breaks</code></dt>
  <dd><p>Division by zero checks use the break instruction.
  </p></dd>
  </dl>
  
  
  </dd>
! <dt><code>--with-llsc</code></dt>
  <dd><p>On MIPS targets, make <samp>-mllsc</samp> the default when no
  <samp>-mno-llsc</samp> option is passed.  This is the default for
  Linux-based targets, as the kernel will emulate them if the ISA does
  not provide them.
  </p>
  </dd>
! <dt><code>--without-llsc</code></dt>
  <dd><p>On MIPS targets, make <samp>-mno-llsc</samp> the default when no
  <samp>-mllsc</samp> option is passed.
  </p>
  </dd>
! <dt><code>--with-synci</code></dt>
  <dd><p>On MIPS targets, make <samp>-msynci</samp> the default when no
  <samp>-mno-synci</samp> option is passed.
  </p>
  </dd>
! <dt><code>--without-synci</code></dt>
  <dd><p>On MIPS targets, make <samp>-mno-synci</samp> the default when no
  <samp>-msynci</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code>--with-lxc1-sxc1</code></dt>
  <dd><p>On MIPS targets, make <samp>-mlxc1-sxc1</samp> the default when no
  <samp>-mno-lxc1-sxc1</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code>--without-lxc1-sxc1</code></dt>
  <dd><p>On MIPS targets, make <samp>-mno-lxc1-sxc1</samp> the default when no
  <samp>-mlxc1-sxc1</samp> option is passed.  The indexed load/store
  instructions are not directly a problem but can lead to unexpected
--- 995,1044 ----
  <samp>-mnan=legacy</samp> command-line options has been used.
  </p>
  </dd>
! <dt><span><code>--with-divide=<var>type</var></code></span></dt>
  <dd><p>Specify how the compiler should generate code for checking for
  division by zero.  This option is only supported on the MIPS target.
  The possibilities for <var>type</var> are:
  </p><dl compact="compact">
! <dt><span><code>traps</code></span></dt>
  <dd><p>Division by zero checks use conditional traps (this is the default on
  systems that support conditional traps).
  </p></dd>
! <dt><span><code>breaks</code></span></dt>
  <dd><p>Division by zero checks use the break instruction.
  </p></dd>
  </dl>
  
  
  </dd>
! <dt><span><code>--with-llsc</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mllsc</samp> the default when no
  <samp>-mno-llsc</samp> option is passed.  This is the default for
  Linux-based targets, as the kernel will emulate them if the ISA does
  not provide them.
  </p>
  </dd>
! <dt><span><code>--without-llsc</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mno-llsc</samp> the default when no
  <samp>-mllsc</samp> option is passed.
  </p>
  </dd>
! <dt><span><code>--with-synci</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-msynci</samp> the default when no
  <samp>-mno-synci</samp> option is passed.
  </p>
  </dd>
! <dt><span><code>--without-synci</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mno-synci</samp> the default when no
  <samp>-msynci</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><span><code>--with-lxc1-sxc1</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mlxc1-sxc1</samp> the default when no
  <samp>-mno-lxc1-sxc1</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><span><code>--without-lxc1-sxc1</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mno-lxc1-sxc1</samp> the default when no
  <samp>-mlxc1-sxc1</samp> option is passed.  The indexed load/store
  instructions are not directly a problem but can lead to unexpected
*************** pure 32-bit environment and can hold tru
*** 1063,1074 ****
  the address space is accurately set to be 32-bit for o32 and n32.
  </p>
  </dd>
! <dt><code>--with-madd4</code></dt>
  <dd><p>On MIPS targets, make <samp>-mmadd4</samp> the default when no
  <samp>-mno-madd4</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code>--without-madd4</code></dt>
  <dd><p>On MIPS targets, make <samp>-mno-madd4</samp> the default when no
  <samp>-mmadd4</samp> option is passed.  The <code>madd4</code> instruction
  family can be problematic when targeting a combination of cores that
--- 1054,1065 ----
  the address space is accurately set to be 32-bit for o32 and n32.
  </p>
  </dd>
! <dt><span><code>--with-madd4</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mmadd4</samp> the default when no
  <samp>-mno-madd4</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><span><code>--without-madd4</code></span></dt>
  <dd><p>On MIPS targets, make <samp>-mno-madd4</samp> the default when no
  <samp>-mmadd4</samp> option is passed.  The <code>madd4</code> instruction
  family can be problematic when targeting a combination of cores that
*************** only way to ensure compatible code is ge
*** 1079,1098 ****
  a performance penalty.
  </p>
  </dd>
! <dt><code>--with-mips-plt</code></dt>
  <dd><p>On MIPS targets, make use of copy relocations and PLTs.
  These features are extensions to the traditional
  SVR4-based MIPS ABIs and require support from GNU binutils
  and the runtime C library.
  </p>
  </dd>
! <dt><code>--with-stack-clash-protection-guard-size=<var>size</var></code></dt>
  <dd><p>On certain targets this option sets the default stack clash protection guard
  size as a power of two in bytes.  On AArch64 <var>size</var> is required to be either
  12 (4KB) or 16 (64KB).
  </p>
  </dd>
! <dt><code>--enable-__cxa_atexit</code></dt>
  <dd><p>Define if you want to use __cxa_atexit, rather than atexit, to
  register C++ destructors for local statics and global objects.
  This is essential for fully standards-compliant handling of
--- 1070,1089 ----
  a performance penalty.
  </p>
  </dd>
! <dt><span><code>--with-mips-plt</code></span></dt>
  <dd><p>On MIPS targets, make use of copy relocations and PLTs.
  These features are extensions to the traditional
  SVR4-based MIPS ABIs and require support from GNU binutils
  and the runtime C library.
  </p>
  </dd>
! <dt><span><code>--with-stack-clash-protection-guard-size=<var>size</var></code></span></dt>
  <dd><p>On certain targets this option sets the default stack clash protection guard
  size as a power of two in bytes.  On AArch64 <var>size</var> is required to be either
  12 (4KB) or 16 (64KB).
  </p>
  </dd>
! <dt><span><code>--enable-__cxa_atexit</code></span></dt>
  <dd><p>Define if you want to use __cxa_atexit, rather than atexit, to
  register C++ destructors for local statics and global objects.
  This is essential for fully standards-compliant handling of
*************** only available on systems with GNU libc.
*** 1101,1128 ****
  <samp>-fuse-cxa-atexit</samp> to be passed by default.
  </p>
  </dd>
! <dt><code>--enable-gnu-indirect-function</code></dt>
  <dd><p>Define if you want to enable the <code>ifunc</code> attribute.  This option is
  currently only available on systems with GNU libc on certain targets.
  </p>
  </dd>
! <dt><code>--enable-target-optspace</code></dt>
  <dd><p>Specify that target
  libraries should be optimized for code space instead of code speed.
  This is the default for the m32r platform.
  </p>
  </dd>
! <dt><code>--with-cpp-install-dir=<var>dirname</var></code></dt>
  <dd><p>Specify that the user visible <code>cpp</code> program should be installed
  in <samp><var>prefix</var>/<var>dirname</var>/cpp</samp>, in addition to <var>bindir</var>.
  </p>
  </dd>
! <dt><code>--enable-comdat</code></dt>
  <dd><p>Enable COMDAT group support.  This is primarily used to override the
  automatically detected value.
  </p>
  </dd>
! <dt><code>--enable-initfini-array</code></dt>
  <dd><p>Force the use of sections <code>.init_array</code> and <code>.fini_array</code>
  (instead of <code>.init</code> and <code>.fini</code>) for constructors and
  destructors.  Option <samp>--disable-initfini-array</samp> has the
--- 1092,1119 ----
  <samp>-fuse-cxa-atexit</samp> to be passed by default.
  </p>
  </dd>
! <dt><span><code>--enable-gnu-indirect-function</code></span></dt>
  <dd><p>Define if you want to enable the <code>ifunc</code> attribute.  This option is
  currently only available on systems with GNU libc on certain targets.
  </p>
  </dd>
! <dt><span><code>--enable-target-optspace</code></span></dt>
  <dd><p>Specify that target
  libraries should be optimized for code space instead of code speed.
  This is the default for the m32r platform.
  </p>
  </dd>
! <dt><span><code>--with-cpp-install-dir=<var>dirname</var></code></span></dt>
  <dd><p>Specify that the user visible <code>cpp</code> program should be installed
  in <samp><var>prefix</var>/<var>dirname</var>/cpp</samp>, in addition to <var>bindir</var>.
  </p>
  </dd>
! <dt><span><code>--enable-comdat</code></span></dt>
  <dd><p>Enable COMDAT group support.  This is primarily used to override the
  automatically detected value.
  </p>
  </dd>
! <dt><span><code>--enable-initfini-array</code></span></dt>
  <dd><p>Force the use of sections <code>.init_array</code> and <code>.fini_array</code>
  (instead of <code>.init</code> and <code>.fini</code>) for constructors and
  destructors.  Option <samp>--disable-initfini-array</samp> has the
*************** will try to guess whether the <code>.ini
*** 1131,1143 ****
  <code>.fini_array</code> sections are supported and, if they are, use them.
  </p>
  </dd>
! <dt><code>--enable-link-mutex</code></dt>
  <dd><p>When building GCC, use a mutex to avoid linking the compilers for
  multiple languages at the same time, to avoid thrashing on build
  systems with limited free memory.  The default is not to use such a mutex.
  </p>
  </dd>
! <dt><code>--enable-link-serialization</code></dt>
  <dd><p>When building GCC, use make dependencies to serialize linking the compilers for
  multiple languages, to avoid thrashing on build
  systems with limited free memory.  The default is not to add such
--- 1122,1134 ----
  <code>.fini_array</code> sections are supported and, if they are, use them.
  </p>
  </dd>
! <dt><span><code>--enable-link-mutex</code></span></dt>
  <dd><p>When building GCC, use a mutex to avoid linking the compilers for
  multiple languages at the same time, to avoid thrashing on build
  systems with limited free memory.  The default is not to use such a mutex.
  </p>
  </dd>
! <dt><span><code>--enable-link-serialization</code></span></dt>
  <dd><p>When building GCC, use make dependencies to serialize linking the compilers for
  multiple languages, to avoid thrashing on build
  systems with limited free memory.  The default is not to add such
*************** compilers concurrently.  If the argument
*** 1146,1152 ****
  that number of concurrent link processes for the large binaries.
  </p>
  </dd>
! <dt><code>--enable-maintainer-mode</code></dt>
  <dd><p>The build rules that regenerate the Autoconf and Automake output files as
  well as the GCC master message catalog <samp>gcc.pot</samp> are normally
  disabled.  This is because it can only be rebuilt if the complete source
--- 1137,1143 ----
  that number of concurrent link processes for the large binaries.
  </p>
  </dd>
! <dt><span><code>--enable-maintainer-mode</code></span></dt>
  <dd><p>The build rules that regenerate the Autoconf and Automake output files as
  well as the GCC master message catalog <samp>gcc.pot</samp> are normally
  disabled.  This is because it can only be rebuilt if the complete source
*************** this.  Note that you need a recent versi
*** 1156,1169 ****
  to do so.
  </p>
  </dd>
! <dt><code>--disable-bootstrap</code></dt>
  <dd><p>For a native build, the default configuration is to perform
  a 3-stage bootstrap of the compiler when &lsquo;<samp>make</samp>&rsquo; is invoked,
  testing that GCC can compile itself correctly.  If you want to disable
  this process, you can configure with <samp>--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code>--enable-bootstrap</code></dt>
  <dd><p>In special cases, you may want to perform a 3-stage build
  even if the target and host triplets are different.
  This is possible when the host can run code compiled for
--- 1147,1160 ----
  to do so.
  </p>
  </dd>
! <dt><span><code>--disable-bootstrap</code></span></dt>
  <dd><p>For a native build, the default configuration is to perform
  a 3-stage bootstrap of the compiler when &lsquo;<samp>make</samp>&rsquo; is invoked,
  testing that GCC can compile itself correctly.  If you want to disable
  this process, you can configure with <samp>--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-bootstrap</code></span></dt>
  <dd><p>In special cases, you may want to perform a 3-stage build
  even if the target and host triplets are different.
  This is possible when the host can run code compiled for
*************** Starting from GCC 4.2, to do this you ha
*** 1172,1178 ****
  with <samp>--enable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code>--enable-generated-files-in-srcdir</code></dt>
  <dd><p>Neither the .c and .h files that are generated from Bison and flex nor the
  info manuals and man pages that are built from the .texi files are present
  in the repository development tree.  When building GCC from that development tree,
--- 1163,1169 ----
  with <samp>--enable-bootstrap</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-generated-files-in-srcdir</code></span></dt>
  <dd><p>Neither the .c and .h files that are generated from Bison and flex nor the
  info manuals and man pages that are built from the .texi files are present
  in the repository development tree.  When building GCC from that development tree,
*************** is not a requirement that the users of s
*** 1187,1193 ****
  or makeinfo.
  </p>
  </dd>
! <dt><code>--enable-version-specific-runtime-libs</code></dt>
  <dd><p>Specify
  that runtime libraries should be installed in the compiler specific
  subdirectory (<samp><var>libdir</var>/gcc</samp>) rather than the usual places.  In
--- 1178,1184 ----
  or makeinfo.
  </p>
  </dd>
! <dt><span><code>--enable-version-specific-runtime-libs</code></span></dt>
  <dd><p>Specify
  that runtime libraries should be installed in the compiler specific
  subdirectory (<samp><var>libdir</var>/gcc</samp>) rather than the usual places.  In
*************** parallel.  The default is &lsquo;<samp>y
*** 1199,1205 ****
  the remaining libraries.
  </p>
  </dd>
! <dt><code><a name="WithAixSoname"></a>--with-aix-soname=&lsquo;<samp>aix</samp>&rsquo;, &lsquo;<samp>svr4</samp>&rsquo; or &lsquo;<samp>both</samp>&rsquo;</code></dt>
  <dd><p>Traditional AIX shared library versioning (versioned <code>Shared Object</code>
  files as members of unversioned <code>Archive Library</code> files named
  &lsquo;<samp>lib.a</samp>&rsquo;) causes numerous headaches for package managers. However,
--- 1190,1196 ----
  the remaining libraries.
  </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
  &lsquo;<samp>lib.a</samp>&rsquo;) causes numerous headaches for package managers. However,
*************** where this is called the &quot;SONAME&qu
*** 1210,1223 ****
  linker does search for &lsquo;<samp>libNAME.so</samp>&rsquo; before &lsquo;<samp>libNAME.a</samp>&rsquo; library
  filenames with the &lsquo;<samp>-lNAME</samp>&rsquo; linker flag.
  </p>
! <a name="AixLdCommand"></a><p>For detailed information please refer to the AIX
  <a href="https://www.ibm.com/support/knowledgecenter/search/%22the%20ld%20command%2C%20also%20called%20the%20linkage%20editor%20or%20binder%22">ld
  Command</a> reference.
  </p>
  <p>As long as shared library creation is enabled, upon:
  </p><dl compact="compact">
! <dt><code>--with-aix-soname=aix</code></dt>
! <dt><code>--with-aix-soname=both</code></dt>
  <dd><p>A (traditional AIX) <code>Shared Archive Library</code> file is created:
   </p><ul>
  <li> using the &lsquo;<samp>libNAME.a</samp>&rsquo; filename scheme
--- 1201,1214 ----
  linker does search for &lsquo;<samp>libNAME.so</samp>&rsquo; before &lsquo;<samp>libNAME.a</samp>&rsquo; library
  filenames with the &lsquo;<samp>-lNAME</samp>&rsquo; linker flag.
  </p>
! <span id="AixLdCommand"></span><p>For detailed information please refer to the AIX
  <a href="https://www.ibm.com/support/knowledgecenter/search/%22the%20ld%20command%2C%20also%20called%20the%20linkage%20editor%20or%20binder%22">ld
  Command</a> reference.
  </p>
  <p>As long as shared library creation is enabled, upon:
  </p><dl compact="compact">
! <dt><span><code>--with-aix-soname=aix</code></span></dt>
! <dt><span><code>--with-aix-soname=both</code></span></dt>
  <dd><p>A (traditional AIX) <code>Shared Archive Library</code> file is created:
   </p><ul>
  <li> using the &lsquo;<samp>libNAME.a</samp>&rsquo; filename scheme
*************** Command</a> reference.
*** 1234,1241 ****
    </li></ul>
  </li></ul>
  </dd>
! <dt><code>--with-aix-soname=both</code></dt>
! <dt><code>--with-aix-soname=svr4</code></dt>
  <dd><p>A (second) <code>Shared Archive Library</code> file is created:
   </p><ul>
  <li> using the &lsquo;<samp>libNAME.so.V</samp>&rsquo; filename scheme
--- 1225,1232 ----
    </li></ul>
  </li></ul>
  </dd>
! <dt><span><code>--with-aix-soname=both</code></span></dt>
! <dt><span><code>--with-aix-soname=svr4</code></span></dt>
  <dd><p>A (second) <code>Shared Archive Library</code> file is created:
   </p><ul>
  <li> using the &lsquo;<samp>libNAME.so.V</samp>&rsquo; filename scheme
*************** Command</a> reference.
*** 1273,1279 ****
  
  <p>As long as static library creation is enabled, upon:
  </p><dl compact="compact">
! <dt><code>--with-aix-soname=svr4</code></dt>
  <dd><p>A <code>Static Archive Library</code> is created:
   </p><ul>
  <li> using the &lsquo;<samp>libNAME.a</samp>&rsquo; filename scheme
--- 1264,1270 ----
  
  <p>As long as static library creation is enabled, upon:
  </p><dl compact="compact">
! <dt><span><code>--with-aix-soname=svr4</code></span></dt>
  <dd><p>A <code>Static Archive Library</code> is created:
   </p><ul>
  <li> using the &lsquo;<samp>libNAME.a</samp>&rsquo; filename scheme
*************** this option is still experimental and no
*** 1305,1317 ****
  <p>Default is the traditional behavior <samp>--with-aix-soname=&lsquo;<samp>aix</samp>&rsquo;</samp>.
  </p>
  </dd>
! <dt><code>--enable-languages=<var>lang1</var>,<var>lang2</var>,&hellip;</code></dt>
  <dd><p>Specify that only a particular subset of compilers and
  their runtime libraries should be built.  For a list of valid values for
  <var>langN</var> you can issue the following command in the
  <samp>gcc</samp> directory of your GCC source tree:<br>
! </p><div class="smallexample">
! <pre class="smallexample">grep ^language= */config-lang.in
  </pre></div>
  <p>Currently, you can use any of the following:
  <code>all</code>, <code>default</code>, <code>ada</code>, <code>c</code>, <code>c++</code>, <code>d</code>,
--- 1296,1308 ----
  <p>Default is the traditional behavior <samp>--with-aix-soname=&lsquo;<samp>aix</samp>&rsquo;</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-languages=<var>lang1</var>,<var>lang2</var>,&hellip;</code></span></dt>
  <dd><p>Specify that only a particular subset of compilers and
  their runtime libraries should be built.  For a list of valid values for
  <var>langN</var> you can issue the following command in the
  <samp>gcc</samp> directory of your GCC source tree:<br>
! </p><div class="example">
! <pre class="example">grep ^language= */config-lang.in
  </pre></div>
  <p>Currently, you can use any of the following:
  <code>all</code>, <code>default</code>, <code>ada</code>, <code>c</code>, <code>c++</code>, <code>d</code>,
*************** exception is <code>jit</code> language,
*** 1327,1333 ****
  <samp>--enable-host-shared</samp> to be included with <code>all</code>.
  </p>
  </dd>
! <dt><code>--enable-stage1-languages=<var>lang1</var>,<var>lang2</var>,&hellip;</code></dt>
  <dd><p>Specify that a particular subset of compilers and their runtime
  libraries should be built with the system C compiler during stage 1 of
  the bootstrap process, rather than only in later stages with the
--- 1318,1324 ----
  <samp>--enable-host-shared</samp> to be included with <code>all</code>.
  </p>
  </dd>
! <dt><span><code>--enable-stage1-languages=<var>lang1</var>,<var>lang2</var>,&hellip;</code></span></dt>
  <dd><p>Specify that a particular subset of compilers and their runtime
  libraries should be built with the system C compiler during stage 1 of
  the bootstrap process, rather than only in later stages with the
*************** stage1-bubble all-target</code>, or run
*** 1343,1394 ****
  for the specified languages using <code>make stage1-start check-gcc</code>.
  </p>
  </dd>
! <dt><code>--disable-libada</code></dt>
  <dd><p>Specify that the run-time libraries and tools used by GNAT should not
  be built.  This can be useful for debugging, or for compatibility with
  previous Ada build procedures, when it was required to explicitly
  do a &lsquo;<samp>make -C gcc gnatlib_and_tools</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--disable-libsanitizer</code></dt>
  <dd><p>Specify that the run-time libraries for the various sanitizers should
  not be built.
  </p>
  </dd>
! <dt><code>--disable-libssp</code></dt>
  <dd><p>Specify that the run-time libraries for stack smashing protection
  should not be built or linked against.  On many targets library support
  is provided by the C library instead.
  </p>
  </dd>
! <dt><code>--disable-libquadmath</code></dt>
  <dd><p>Specify that the GCC quad-precision math library should not be built.
  On some systems, the library is required to be linkable when building
  the Fortran front end, unless <samp>--disable-libquadmath-support</samp>
  is used.
  </p>
  </dd>
! <dt><code>--disable-libquadmath-support</code></dt>
  <dd><p>Specify that the Fortran front end and <code>libgfortran</code> do not add
  support for <code>libquadmath</code> on systems supporting it.
  </p>
  </dd>
! <dt><code>--disable-libgomp</code></dt>
  <dd><p>Specify that the GNU Offloading and Multi Processing Runtime Library
  should not be built.
  </p>
  </dd>
! <dt><code>--disable-libvtv</code></dt>
  <dd><p>Specify that the run-time libraries used by vtable verification
  should not be built.
  </p>
  </dd>
! <dt><code>--with-dwarf2</code></dt>
  <dd><p>Specify that the compiler should
  use DWARF 2 debugging information as the default.
  </p>
  </dd>
! <dt><code>--with-advance-toolchain=<var>at</var></code></dt>
  <dd><p>On 64-bit PowerPC Linux systems, configure the compiler to use the
  header files, library files, and the dynamic linker from the Advance
  Toolchain release <var>at</var> instead of the default versions that are
--- 1334,1385 ----
  for the specified languages using <code>make stage1-start check-gcc</code>.
  </p>
  </dd>
! <dt><span><code>--disable-libada</code></span></dt>
  <dd><p>Specify that the run-time libraries and tools used by GNAT should not
  be built.  This can be useful for debugging, or for compatibility with
  previous Ada build procedures, when it was required to explicitly
  do a &lsquo;<samp>make -C gcc gnatlib_and_tools</samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--disable-libsanitizer</code></span></dt>
  <dd><p>Specify that the run-time libraries for the various sanitizers should
  not be built.
  </p>
  </dd>
! <dt><span><code>--disable-libssp</code></span></dt>
  <dd><p>Specify that the run-time libraries for stack smashing protection
  should not be built or linked against.  On many targets library support
  is provided by the C library instead.
  </p>
  </dd>
! <dt><span><code>--disable-libquadmath</code></span></dt>
  <dd><p>Specify that the GCC quad-precision math library should not be built.
  On some systems, the library is required to be linkable when building
  the Fortran front end, unless <samp>--disable-libquadmath-support</samp>
  is used.
  </p>
  </dd>
! <dt><span><code>--disable-libquadmath-support</code></span></dt>
  <dd><p>Specify that the Fortran front end and <code>libgfortran</code> do not add
  support for <code>libquadmath</code> on systems supporting it.
  </p>
  </dd>
! <dt><span><code>--disable-libgomp</code></span></dt>
  <dd><p>Specify that the GNU Offloading and Multi Processing Runtime Library
  should not be built.
  </p>
  </dd>
! <dt><span><code>--disable-libvtv</code></span></dt>
  <dd><p>Specify that the run-time libraries used by vtable verification
  should not be built.
  </p>
  </dd>
! <dt><span><code>--with-dwarf2</code></span></dt>
  <dd><p>Specify that the compiler should
  use DWARF 2 debugging information as the default.
  </p>
  </dd>
! <dt><span><code>--with-advance-toolchain=<var>at</var></code></span></dt>
  <dd><p>On 64-bit PowerPC Linux systems, configure the compiler to use the
  header files, library files, and the dynamic linker from the Advance
  Toolchain release <var>at</var> instead of the default versions that are
*************** intended for the developers of GCC, and
*** 1397,1404 ****
  use.
  </p>
  </dd>
! <dt><code>--enable-targets=all</code></dt>
! <dt><code>--enable-targets=<var>target_list</var></code></dt>
  <dd><p>Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
  These are compilers that are able to generate either 64-bit or 32-bit
  code.  Typically, the corresponding 32-bit target, e.g.
--- 1388,1395 ----
  use.
  </p>
  </dd>
! <dt><span><code>--enable-targets=all</code></span></dt>
! <dt><span><code>--enable-targets=<var>target_list</var></code></span></dt>
  <dd><p>Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
  These are compilers that are able to generate either 64-bit or 32-bit
  code.  Typically, the corresponding 32-bit target, e.g.
*************** Currently, this option only affects spar
*** 1412,1436 ****
  mips-linux and s390-linux.
  </p>
  </dd>
! <dt><code>--enable-default-pie</code></dt>
  <dd><p>Turn on <samp>-fPIE</samp> and <samp>-pie</samp> by default.
  </p>
  </dd>
! <dt><code>--enable-secureplt</code></dt>
  <dd><p>This option enables <samp>-msecure-plt</samp> by default for powerpc-linux.
  See &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><code>--enable-default-ssp</code></dt>
  <dd><p>Turn on <samp>-fstack-protector-strong</samp> by default.
  </p>
  </dd>
! <dt><code>--enable-cld</code></dt>
  <dd><p>This option enables <samp>-mcld</samp> by default for 32-bit x86 targets.
  See &ldquo;i386 and x86-64 Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><code>--enable-large-address-aware</code></dt>
  <dd><p>The <samp>--enable-large-address-aware</samp> option arranges for MinGW
  executables to be linked using the <samp>--large-address-aware</samp>
  option, that enables the use of more than 2GB of memory.  If GCC is
--- 1403,1427 ----
  mips-linux and s390-linux.
  </p>
  </dd>
! <dt><span><code>--enable-default-pie</code></span></dt>
  <dd><p>Turn on <samp>-fPIE</samp> and <samp>-pie</samp> by default.
  </p>
  </dd>
! <dt><span><code>--enable-secureplt</code></span></dt>
  <dd><p>This option enables <samp>-msecure-plt</samp> by default for powerpc-linux.
  See &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><span><code>--enable-default-ssp</code></span></dt>
  <dd><p>Turn on <samp>-fstack-protector-strong</samp> by default.
  </p>
  </dd>
! <dt><span><code>--enable-cld</code></span></dt>
  <dd><p>This option enables <samp>-mcld</samp> by default for 32-bit x86 targets.
  See &ldquo;i386 and x86-64 Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><span><code>--enable-large-address-aware</code></span></dt>
  <dd><p>The <samp>--enable-large-address-aware</samp> option arranges for MinGW
  executables to be linked using the <samp>--large-address-aware</samp>
  option, that enables the use of more than 2GB of memory.  If GCC is
*************** configured with this option, its effects
*** 1439,1452 ****
  compiler driver.
  </p>
  </dd>
! <dt><code>--enable-win32-registry</code></dt>
! <dt><code>--enable-win32-registry=<var>key</var></code></dt>
! <dt><code>--disable-win32-registry</code></dt>
  <dd><p>The <samp>--enable-win32-registry</samp> option enables Microsoft Windows-hosted GCC
  to look up installations paths in the registry using the following key:
  </p>
! <div class="smallexample">
! <pre class="smallexample"><code>HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\<var>key</var></code>
  </pre></div>
  
  <p><var>key</var> defaults to GCC version number, and can be overridden by the
--- 1430,1443 ----
  compiler driver.
  </p>
  </dd>
! <dt><span><code>--enable-win32-registry</code></span></dt>
! <dt><span><code>--enable-win32-registry=<var>key</var></code></span></dt>
! <dt><span><code>--disable-win32-registry</code></span></dt>
  <dd><p>The <samp>--enable-win32-registry</samp> option enables Microsoft Windows-hosted GCC
  to look up installations paths in the registry using the following key:
  </p>
! <div class="example">
! <pre class="example"><code>HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\<var>key</var></code>
  </pre></div>
  
  <p><var>key</var> defaults to GCC version number, and can be overridden by the
*************** by default, and can be disabled by <samp
*** 1458,1473 ****
  option.  This option has no effect on the other hosts.
  </p>
  </dd>
! <dt><code>--nfp</code></dt>
  <dd><p>Specify that the machine does not have a floating point unit.  This
  option only applies to &lsquo;<samp>m68k-sun-sunos<var>n</var></samp>&rsquo;.  On any other
  system, <samp>--nfp</samp> has no effect.
  </p>
  </dd>
! <dt><code>--enable-werror</code></dt>
! <dt><code>--disable-werror</code></dt>
! <dt><code>--enable-werror=yes</code></dt>
! <dt><code>--enable-werror=no</code></dt>
  <dd><p>When you specify this option, it controls whether certain files in the
  compiler are built with <samp>-Werror</samp> in bootstrap stage2 and later.
  If you don&rsquo;t specify it, <samp>-Werror</samp> is turned on for the main
--- 1449,1464 ----
  option.  This option has no effect on the other hosts.
  </p>
  </dd>
! <dt><span><code>--nfp</code></span></dt>
  <dd><p>Specify that the machine does not have a floating point unit.  This
  option only applies to &lsquo;<samp>m68k-sun-sunos<var>n</var></samp>&rsquo;.  On any other
  system, <samp>--nfp</samp> has no effect.
  </p>
  </dd>
! <dt><span><code>--enable-werror</code></span></dt>
! <dt><span><code>--disable-werror</code></span></dt>
! <dt><span><code>--enable-werror=yes</code></span></dt>
! <dt><span><code>--enable-werror=no</code></span></dt>
  <dd><p>When you specify this option, it controls whether certain files in the
  compiler are built with <samp>-Werror</samp> in bootstrap stage2 and later.
  If you don&rsquo;t specify it, <samp>-Werror</samp> is turned on for the main
*************** final releases.  The specific files whic
*** 1476,1484 ****
  controlled by the Makefiles.
  </p>
  </dd>
! <dt><code>--enable-checking</code></dt>
! <dt><code>--disable-checking</code></dt>
! <dt><code>--enable-checking=<var>list</var></code></dt>
  <dd><p>This option controls performing internal consistency checks in the compiler.
  It does not change the generated code, but adds error checking of the
  requested complexity.  This slows down the compiler and may only work
--- 1467,1475 ----
  controlled by the Makefiles.
  </p>
  </dd>
! <dt><span><code>--enable-checking</code></span></dt>
! <dt><span><code>--disable-checking</code></span></dt>
! <dt><span><code>--enable-checking=<var>list</var></code></span></dt>
  <dd><p>This option controls performing internal consistency checks in the compiler.
  It does not change the generated code, but adds error checking of the
  requested complexity.  This slows down the compiler and may only work
*************** expensive and the &lsquo;<samp>df</samp>
*** 1516,1524 ****
  expensive.
  </p>
  </dd>
! <dt><code>--disable-stage1-checking</code></dt>
! <dt><code>--enable-stage1-checking</code></dt>
! <dt><code>--enable-stage1-checking=<var>list</var></code></dt>
  <dd><p>This option affects only bootstrap build.  If no <samp>--enable-checking</samp>
  option is specified the stage1 compiler is built with &lsquo;<samp>yes</samp>&rsquo; checking
  enabled, otherwise the stage1 checking flags are the same as specified by
--- 1507,1515 ----
  expensive.
  </p>
  </dd>
! <dt><span><code>--disable-stage1-checking</code></span></dt>
! <dt><span><code>--enable-stage1-checking</code></span></dt>
! <dt><span><code>--enable-stage1-checking=<var>list</var></code></span></dt>
  <dd><p>This option affects only bootstrap build.  If no <samp>--enable-checking</samp>
  option is specified the stage1 compiler is built with &lsquo;<samp>yes</samp>&rsquo; checking
  enabled, otherwise the stage1 checking flags are the same as specified by
*************** with checking for stage1 enabled, you ca
*** 1530,1537 ****
  to disable checking for the stage1 compiler.
  </p>
  </dd>
! <dt><code>--enable-coverage</code></dt>
! <dt><code>--enable-coverage=<var>level</var></code></dt>
  <dd><p>With this option, the compiler is built to collect self coverage
  information, every time it is run.  This is for internal development
  purposes, and only works when the compiler is being built with gcc.  The
--- 1521,1528 ----
  to disable checking for the stage1 compiler.
  </p>
  </dd>
! <dt><span><code>--enable-coverage</code></span></dt>
! <dt><span><code>--enable-coverage=<var>level</var></code></span></dt>
  <dd><p>With this option, the compiler is built to collect self coverage
  information, every time it is run.  This is for internal development
  purposes, and only works when the compiler is being built with gcc.  The
*************** enable optimization.  When coverage is e
*** 1542,1572 ****
  without optimization.
  </p>
  </dd>
! <dt><code>--enable-gather-detailed-mem-stats</code></dt>
  <dd><p>When this option is specified more detailed information on memory
  allocation is gathered.  This information is printed when using
  <samp>-fmem-report</samp>.
  </p>
  </dd>
! <dt><code>--enable-valgrind-annotations</code></dt>
  <dd><p>Mark selected memory related operations in the compiler when run under
  valgrind to suppress false positives.
  </p>
  </dd>
! <dt><code>--enable-nls</code></dt>
! <dt><code>--disable-nls</code></dt>
  <dd><p>The <samp>--enable-nls</samp> option enables Native Language Support (NLS),
  which lets GCC output diagnostics in languages other than American
  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><code>--with-included-gettext</code></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><code>--with-catgets</code></dt>
  <dd><p>If NLS is enabled, and if the host lacks <code>gettext</code> but has the
  inferior <code>catgets</code> interface, the GCC build procedure normally
  ignores <code>catgets</code> and instead uses GCC&rsquo;s copy of the GNU
--- 1533,1563 ----
  without optimization.
  </p>
  </dd>
! <dt><span><code>--enable-gather-detailed-mem-stats</code></span></dt>
  <dd><p>When this option is specified more detailed information on memory
  allocation is gathered.  This information is printed when using
  <samp>-fmem-report</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-valgrind-annotations</code></span></dt>
  <dd><p>Mark selected memory related operations in the compiler when run under
  valgrind to suppress false positives.
  </p>
  </dd>
! <dt><span><code>--enable-nls</code></span></dt>
! <dt><span><code>--disable-nls</code></span></dt>
  <dd><p>The <samp>--enable-nls</samp> option enables Native Language Support (NLS),
  which lets GCC output diagnostics in languages other than American
  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
  inferior <code>catgets</code> interface, the GCC build procedure normally
  ignores <code>catgets</code> and instead uses GCC&rsquo;s copy of the GNU
*************** ignores <code>catgets</code> and instead
*** 1574,1585 ****
  build procedure to use the host&rsquo;s <code>catgets</code> in this situation.
  </p>
  </dd>
! <dt><code>--with-libiconv-prefix=<var>dir</var></code></dt>
  <dd><p>Search for libiconv header files in <samp><var>dir</var>/include</samp> and
  libiconv library files in <samp><var>dir</var>/lib</samp>.
  </p>
  </dd>
! <dt><code>--enable-obsolete</code></dt>
  <dd><p>Enable configuration for an obsoleted system.  If you attempt to
  configure GCC for a system (build, host, or target) which has been
  obsoleted, and you do not specify this flag, configure will halt with an
--- 1565,1576 ----
  build procedure to use the host&rsquo;s <code>catgets</code> in this situation.
  </p>
  </dd>
! <dt><span><code>--with-libiconv-prefix=<var>dir</var></code></span></dt>
  <dd><p>Search for libiconv header files in <samp><var>dir</var>/include</samp> and
  libiconv library files in <samp><var>dir</var>/lib</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-obsolete</code></span></dt>
  <dd><p>Enable configuration for an obsoleted system.  If you attempt to
  configure GCC for a system (build, host, or target) which has been
  obsoleted, and you do not specify this flag, configure will halt with an
*************** is removed entirely in the next major re
*** 1590,1601 ****
  forward to maintain the port.
  </p>
  </dd>
! <dt><code>--enable-decimal-float</code></dt>
! <dt><code>--enable-decimal-float=yes</code></dt>
! <dt><code>--enable-decimal-float=no</code></dt>
! <dt><code>--enable-decimal-float=bid</code></dt>
! <dt><code>--enable-decimal-float=dpd</code></dt>
! <dt><code>--disable-decimal-float</code></dt>
  <dd><p>Enable (or disable) support for the C decimal floating point extension
  that is in the IEEE 754-2008 standard.  This is enabled by default only
  on PowerPC, i386, and x86_64 GNU/Linux systems.  Other systems may also
--- 1581,1592 ----
  forward to maintain the port.
  </p>
  </dd>
! <dt><span><code>--enable-decimal-float</code></span></dt>
! <dt><span><code>--enable-decimal-float=yes</code></span></dt>
! <dt><span><code>--enable-decimal-float=no</code></span></dt>
! <dt><span><code>--enable-decimal-float=bid</code></span></dt>
! <dt><span><code>--enable-decimal-float=dpd</code></span></dt>
! <dt><span><code>--disable-decimal-float</code></span></dt>
  <dd><p>Enable (or disable) support for the C decimal floating point extension
  that is in the IEEE 754-2008 standard.  This is enabled by default only
  on PowerPC, i386, and x86_64 GNU/Linux systems.  Other systems may also
*************** format is default on i386 and x86_64 sys
*** 1606,1620 ****
  (densely packed decimal) format is default on PowerPC systems.
  </p>
  </dd>
! <dt><code>--enable-fixed-point</code></dt>
! <dt><code>--disable-fixed-point</code></dt>
  <dd><p>Enable (or disable) support for C fixed-point arithmetic.
  This option is enabled by default for some targets (such as MIPS) which
  have hardware-support for fixed-point operations.  On other targets, you
  may enable this option manually.
  </p>
  </dd>
! <dt><code>--with-long-double-128</code></dt>
  <dd><p>Specify if <code>long double</code> type should be 128-bit by default on selected
  GNU/Linux architectures.  If using <code>--without-long-double-128</code>,
  <code>long double</code> will be by default 64-bit, the same as <code>double</code> type.
--- 1597,1611 ----
  (densely packed decimal) format is default on PowerPC systems.
  </p>
  </dd>
! <dt><span><code>--enable-fixed-point</code></span></dt>
! <dt><span><code>--disable-fixed-point</code></span></dt>
  <dd><p>Enable (or disable) support for C fixed-point arithmetic.
  This option is enabled by default for some targets (such as MIPS) which
  have hardware-support for fixed-point operations.  On other targets, you
  may enable this option manually.
  </p>
  </dd>
! <dt><span><code>--with-long-double-128</code></span></dt>
  <dd><p>Specify if <code>long double</code> type should be 128-bit by default on selected
  GNU/Linux architectures.  If using <code>--without-long-double-128</code>,
  <code>long double</code> will be by default 64-bit, the same as <code>double</code> type.
*************** When neither of these configure options
*** 1623,1630 ****
  64-bit <code>long double</code> otherwise.
  </p>
  </dd>
! <dt><code>--with-long-double-format=ibm</code></dt>
! <dt><code>--with-long-double-format=ieee</code></dt>
  <dd><p>Specify whether <code>long double</code> uses the IBM extended double format
  or the IEEE 128-bit floating point format on PowerPC Linux systems.
  This configuration switch will only work on little endian PowerPC
--- 1614,1621 ----
  64-bit <code>long double</code> otherwise.
  </p>
  </dd>
! <dt><span><code>--with-long-double-format=ibm</code></span></dt>
! <dt><span><code>--with-long-double-format=ieee</code></span></dt>
  <dd><p>Specify whether <code>long double</code> uses the IBM extended double format
  or the IEEE 128-bit floating point format on PowerPC Linux systems.
  This configuration switch will only work on little endian PowerPC
*************** the compiler using the <samp>--with-syst
*** 1653,1671 ****
  will be generated.
  </p>
  </dd>
! <dt><code>--enable-fdpic</code></dt>
  <dd><p>On SH Linux systems, generate ELF FDPIC code.
  </p>
  </dd>
! <dt><code>--with-gmp=<var>pathname</var></code></dt>
! <dt><code>--with-gmp-include=<var>pathname</var></code></dt>
! <dt><code>--with-gmp-lib=<var>pathname</var></code></dt>
! <dt><code>--with-mpfr=<var>pathname</var></code></dt>
! <dt><code>--with-mpfr-include=<var>pathname</var></code></dt>
! <dt><code>--with-mpfr-lib=<var>pathname</var></code></dt>
! <dt><code>--with-mpc=<var>pathname</var></code></dt>
! <dt><code>--with-mpc-include=<var>pathname</var></code></dt>
! <dt><code>--with-mpc-lib=<var>pathname</var></code></dt>
  <dd><p>If you want to build GCC but do not have the GMP library, the MPFR
  library and/or the MPC library installed in a standard location and
  do not have their sources present in the GCC source tree then you
--- 1644,1662 ----
  will be generated.
  </p>
  </dd>
! <dt><span><code>--enable-fdpic</code></span></dt>
  <dd><p>On SH Linux systems, generate ELF FDPIC code.
  </p>
  </dd>
! <dt><span><code>--with-gmp=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-gmp-include=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-gmp-lib=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-mpfr=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-mpfr-include=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-mpfr-lib=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-mpc=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-mpc-include=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-mpc-lib=<var>pathname</var></code></span></dt>
  <dd><p>If you want to build GCC but do not have the GMP library, the MPFR
  library and/or the MPC library installed in a standard location and
  do not have their sources present in the GCC source tree then you
*************** variable (<code>LD_LIBRARY_PATH</code> o
*** 1692,1700 ****
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><code>--with-isl=<var>pathname</var></code></dt>
! <dt><code>--with-isl-include=<var>pathname</var></code></dt>
! <dt><code>--with-isl-lib=<var>pathname</var></code></dt>
  <dd><p>If you do not have the isl library installed in a standard location and you
  want to build GCC, you can explicitly specify the directory where it is
  installed (&lsquo;<samp>--with-isl=<var>islinstalldir</var></samp>&rsquo;). The
--- 1683,1691 ----
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><span><code>--with-isl=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-isl-include=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-isl-lib=<var>pathname</var></code></span></dt>
  <dd><p>If you do not have the isl library installed in a standard location and you
  want to build GCC, you can explicitly specify the directory where it is
  installed (&lsquo;<samp>--with-isl=<var>islinstalldir</var></samp>&rsquo;). The
*************** include and lib options directly.
*** 1708,1714 ****
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><code>--with-stage1-ldflags=<var>flags</var></code></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 1 of GCC.  These are also used when linking GCC if configured with
  <samp>--disable-bootstrap</samp>.  If <samp>--with-stage1-libs</samp> is not set to a
--- 1699,1705 ----
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><span><code>--with-stage1-ldflags=<var>flags</var></code></span></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 1 of GCC.  These are also used when linking GCC if configured with
  <samp>--disable-bootstrap</samp>.  If <samp>--with-stage1-libs</samp> is not set to a
*************** value, then the default is &lsquo;<samp>
*** 1716,1746 ****
  supported.
  </p>
  </dd>
! <dt><code>--with-stage1-libs=<var>libs</var></code></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 1
  of GCC.  These are also used when linking GCC if configured with
  <samp>--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code>--with-boot-ldflags=<var>flags</var></code></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 2 and later when bootstrapping GCC.  If &ndash;with-boot-libs
  is not is set to a value, then the default is
  &lsquo;<samp>-static-libstdc++ -static-libgcc</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-boot-libs=<var>libs</var></code></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 2
  and later when bootstrapping GCC.
  </p>
  </dd>
! <dt><code>--with-debug-prefix-map=<var>map</var></code></dt>
  <dd><p>Convert source directory names using <samp>-fdebug-prefix-map</samp> when
  building runtime libraries.  &lsquo;<samp><var>map</var></samp>&rsquo; is a space-separated
  list of maps of the form &lsquo;<samp><var>old</var>=<var>new</var></samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--enable-linker-build-id</code></dt>
  <dd><p>Tells GCC to pass <samp>--build-id</samp> option to the linker for all final
  links (links performed without the <samp>-r</samp> or <samp>--relocatable</samp>
  option), if the linker supports it.  If you specify
--- 1707,1737 ----
  supported.
  </p>
  </dd>
! <dt><span><code>--with-stage1-libs=<var>libs</var></code></span></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 1
  of GCC.  These are also used when linking GCC if configured with
  <samp>--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><span><code>--with-boot-ldflags=<var>flags</var></code></span></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 2 and later when bootstrapping GCC.  If &ndash;with-boot-libs
  is not is set to a value, then the default is
  &lsquo;<samp>-static-libstdc++ -static-libgcc</samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--with-boot-libs=<var>libs</var></code></span></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 2
  and later when bootstrapping GCC.
  </p>
  </dd>
! <dt><span><code>--with-debug-prefix-map=<var>map</var></code></span></dt>
  <dd><p>Convert source directory names using <samp>-fdebug-prefix-map</samp> when
  building runtime libraries.  &lsquo;<samp><var>map</var></samp>&rsquo; is a space-separated
  list of maps of the form &lsquo;<samp><var>old</var>=<var>new</var></samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--enable-linker-build-id</code></span></dt>
  <dd><p>Tells GCC to pass <samp>--build-id</samp> option to the linker for all final
  links (links performed without the <samp>-r</samp> or <samp>--relocatable</samp>
  option), if the linker supports it.  If you specify
*************** support <samp>--build-id</samp> option,
*** 1749,1769 ****
  <samp>--enable-linker-build-id</samp> option is ignored.  The default is off.
  </p>
  </dd>
! <dt><code>--with-linker-hash-style=<var>choice</var></code></dt>
  <dd><p>Tells GCC to pass <samp>--hash-style=<var>choice</var></samp> option to the
  linker for all final links. <var>choice</var> can be one of
  &lsquo;<samp>sysv</samp>&rsquo;, &lsquo;<samp>gnu</samp>&rsquo;, and &lsquo;<samp>both</samp>&rsquo; where &lsquo;<samp>sysv</samp>&rsquo; is the default.
  </p>
  </dd>
! <dt><code>--enable-gnu-unique-object</code></dt>
! <dt><code>--disable-gnu-unique-object</code></dt>
  <dd><p>Tells GCC to use the gnu_unique_object relocation for C++ template
  static data members and inline function local statics.  Enabled by
  default for a toolchain with an assembler that accepts it and
  GLIBC 2.11 or above, otherwise disabled.
  </p>
  </dd>
! <dt><code>--with-diagnostics-color=<var>choice</var></code></dt>
  <dd><p>Tells GCC to use <var>choice</var> as the default for <samp>-fdiagnostics-color=</samp>
  option (if not used explicitly on the command line).  <var>choice</var>
  can be one of &lsquo;<samp>never</samp>&rsquo;, &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>always</samp>&rsquo;, and &lsquo;<samp>auto-if-env</samp>&rsquo;
--- 1740,1760 ----
  <samp>--enable-linker-build-id</samp> option is ignored.  The default is off.
  </p>
  </dd>
! <dt><span><code>--with-linker-hash-style=<var>choice</var></code></span></dt>
  <dd><p>Tells GCC to pass <samp>--hash-style=<var>choice</var></samp> option to the
  linker for all final links. <var>choice</var> can be one of
  &lsquo;<samp>sysv</samp>&rsquo;, &lsquo;<samp>gnu</samp>&rsquo;, and &lsquo;<samp>both</samp>&rsquo; where &lsquo;<samp>sysv</samp>&rsquo; is the default.
  </p>
  </dd>
! <dt><span><code>--enable-gnu-unique-object</code></span></dt>
! <dt><span><code>--disable-gnu-unique-object</code></span></dt>
  <dd><p>Tells GCC to use the gnu_unique_object relocation for C++ template
  static data members and inline function local statics.  Enabled by
  default for a toolchain with an assembler that accepts it and
  GLIBC 2.11 or above, otherwise disabled.
  </p>
  </dd>
! <dt><span><code>--with-diagnostics-color=<var>choice</var></code></span></dt>
  <dd><p>Tells GCC to use <var>choice</var> as the default for <samp>-fdiagnostics-color=</samp>
  option (if not used explicitly on the command line).  <var>choice</var>
  can be one of &lsquo;<samp>never</samp>&rsquo;, &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>always</samp>&rsquo;, and &lsquo;<samp>auto-if-env</samp>&rsquo;
*************** is present and non-empty in the environm
*** 1773,1779 ****
  <samp>-fdiagnostics-color=never</samp> otherwise.
  </p>
  </dd>
! <dt><code>--with-diagnostics-urls=<var>choice</var></code></dt>
  <dd><p>Tells GCC to use <var>choice</var> as the default for <samp>-fdiagnostics-urls=</samp>
  option (if not used explicitly on the command line).  <var>choice</var>
  can be one of &lsquo;<samp>never</samp>&rsquo;, &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>always</samp>&rsquo;, and &lsquo;<samp>auto-if-env</samp>&rsquo;
--- 1764,1770 ----
  <samp>-fdiagnostics-color=never</samp> otherwise.
  </p>
  </dd>
! <dt><span><code>--with-diagnostics-urls=<var>choice</var></code></span></dt>
  <dd><p>Tells GCC to use <var>choice</var> as the default for <samp>-fdiagnostics-urls=</samp>
  option (if not used explicitly on the command line).  <var>choice</var>
  can be one of &lsquo;<samp>never</samp>&rsquo;, &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>always</samp>&rsquo;, and &lsquo;<samp>auto-if-env</samp>&rsquo;
*************** or <code>TERM_URLS</code> is present and
*** 1783,1796 ****
  compiler, and <samp>-fdiagnostics-urls=never</samp> otherwise.
  </p>
  </dd>
! <dt><code>--enable-lto</code></dt>
! <dt><code>--disable-lto</code></dt>
  <dd><p>Enable support for link-time optimization (LTO).  This is enabled by
  default, and may be disabled using <samp>--disable-lto</samp>.
  </p>
  </dd>
! <dt><code>--enable-linker-plugin-configure-flags=FLAGS</code></dt>
! <dt><code>--enable-linker-plugin-flags=FLAGS</code></dt>
  <dd><p>By default, linker plugins (such as the LTO plugin) are built for the
  host system architecture.  For the case that the linker has a
  different (but run-time compatible) architecture, these flags can be
--- 1774,1787 ----
  compiler, and <samp>-fdiagnostics-urls=never</samp> otherwise.
  </p>
  </dd>
! <dt><span><code>--enable-lto</code></span></dt>
! <dt><span><code>--disable-lto</code></span></dt>
  <dd><p>Enable support for link-time optimization (LTO).  This is enabled by
  default, and may be disabled using <samp>--disable-lto</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-linker-plugin-configure-flags=FLAGS</code></span></dt>
! <dt><span><code>--enable-linker-plugin-flags=FLAGS</code></span></dt>
  <dd><p>By default, linker plugins (such as the LTO plugin) are built for the
  host system architecture.  For the case that the linker has a
  different (but run-time compatible) architecture, these flags can be
*************** GNU/Linux (&lsquo;<samp>i686-pc-linux-gn
*** 1801,1815 ****
  executable on the former system), you can configure GCC as follows for
  getting compatible linker plugins:
  </p>
! <div class="smallexample">
! <pre class="smallexample">% <var>srcdir</var>/configure \
      --host=x86_64-pc-linux-gnu \
      --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
      --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
  </pre></div>
  
  </dd>
! <dt><code>--with-plugin-ld=<var>pathname</var></code></dt>
  <dd><p>Enable an alternate linker to be used at link-time optimization (LTO)
  link time when <samp>-fuse-linker-plugin</samp> is enabled.
  This linker should have plugin support such as gold starting with
--- 1792,1806 ----
  executable on the former system), you can configure GCC as follows for
  getting compatible linker plugins:
  </p>
! <div class="example">
! <pre class="example">% <var>srcdir</var>/configure \
      --host=x86_64-pc-linux-gnu \
      --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
      --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
  </pre></div>
  
  </dd>
! <dt><span><code>--with-plugin-ld=<var>pathname</var></code></span></dt>
  <dd><p>Enable an alternate linker to be used at link-time optimization (LTO)
  link time when <samp>-fuse-linker-plugin</samp> is enabled.
  This linker should have plugin support such as gold starting with
*************** version 2.20 or GNU ld starting with ver
*** 1817,1824 ****
  See <samp>-fuse-linker-plugin</samp> for details.
  </p>
  </dd>
! <dt><code>--enable-canonical-system-headers</code></dt>
! <dt><code>--disable-canonical-system-headers</code></dt>
  <dd><p>Enable system header path canonicalization for <samp>libcpp</samp>.  This can
  produce shorter header file paths in diagnostics and dependency output
  files, but these changed header paths may conflict with some compilation
--- 1808,1815 ----
  See <samp>-fuse-linker-plugin</samp> for details.
  </p>
  </dd>
! <dt><span><code>--enable-canonical-system-headers</code></span></dt>
! <dt><span><code>--disable-canonical-system-headers</code></span></dt>
  <dd><p>Enable system header path canonicalization for <samp>libcpp</samp>.  This can
  produce shorter header file paths in diagnostics and dependency output
  files, but these changed header paths may conflict with some compilation
*************** environments.  Enabled by default, and m
*** 1826,1832 ****
  <samp>--disable-canonical-system-headers</samp>.
  </p>
  </dd>
! <dt><code>--with-glibc-version=<var>major</var>.<var>minor</var></code></dt>
  <dd><p>Tell GCC that when the GNU C Library (glibc) is used on the target it
  will be version <var>major</var>.<var>minor</var> or later.  Normally this can
  be detected from the C library&rsquo;s header files, but this option may be
--- 1817,1823 ----
  <samp>--disable-canonical-system-headers</samp>.
  </p>
  </dd>
! <dt><span><code>--with-glibc-version=<var>major</var>.<var>minor</var></code></span></dt>
  <dd><p>Tell GCC that when the GNU C Library (glibc) is used on the target it
  will be version <var>major</var>.<var>minor</var> or later.  Normally this can
  be detected from the C library&rsquo;s header files, but this option may be
*************** However, such configurations may not wor
*** 1839,1863 ****
  configuration in GCC is on a per-multilib basis.
  </p>
  </dd>
! <dt><code>--enable-as-accelerator-for=<var>target</var></code></dt>
  <dd><p>Build as offload target compiler. Specify offload host triple by <var>target</var>.
  </p>
  </dd>
! <dt><code>--enable-offload-targets=<var>target1</var>[=<var>path1</var>],&hellip;,<var>targetN</var>[=<var>pathN</var>]</code></dt>
  <dd><p>Enable offloading to targets <var>target1</var>, &hellip;, <var>targetN</var>.
  Offload compilers are expected to be already installed.  Default search
  path for them is <samp><var>exec-prefix</var></samp>, but it can be changed by
  specifying paths <var>path1</var>, &hellip;, <var>pathN</var>.
  </p>
! <div class="smallexample">
! <pre class="smallexample">% <var>srcdir</var>/configure \
      --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/path/to/x86_64/compiler,nvptx-none
  </pre></div>
  
  </dd>
! <dt><code>--with-hsa-runtime=<var>pathname</var></code></dt>
! <dt><code>--with-hsa-runtime-include=<var>pathname</var></code></dt>
! <dt><code>--with-hsa-runtime-lib=<var>pathname</var></code></dt>
  <dd>
  <p>If you configure GCC with offloading which uses an HSA run-time such as
  AMDGCN but do not have the HSA run-time library installed in a standard
--- 1830,1854 ----
  configuration in GCC is on a per-multilib basis.
  </p>
  </dd>
! <dt><span><code>--enable-as-accelerator-for=<var>target</var></code></span></dt>
  <dd><p>Build as offload target compiler. Specify offload host triple by <var>target</var>.
  </p>
  </dd>
! <dt><span><code>--enable-offload-targets=<var>target1</var>[=<var>path1</var>],&hellip;,<var>targetN</var>[=<var>pathN</var>]</code></span></dt>
  <dd><p>Enable offloading to targets <var>target1</var>, &hellip;, <var>targetN</var>.
  Offload compilers are expected to be already installed.  Default search
  path for them is <samp><var>exec-prefix</var></samp>, but it can be changed by
  specifying paths <var>path1</var>, &hellip;, <var>pathN</var>.
  </p>
! <div class="example">
! <pre class="example">% <var>srcdir</var>/configure \
      --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/path/to/x86_64/compiler,nvptx-none
  </pre></div>
  
  </dd>
! <dt><span><code>--with-hsa-runtime=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-hsa-runtime-include=<var>pathname</var></code></span></dt>
! <dt><span><code>--with-hsa-runtime-lib=<var>pathname</var></code></span></dt>
  <dd>
  <p>If you configure GCC with offloading which uses an HSA run-time such as
  AMDGCN but do not have the HSA run-time library installed in a standard
*************** is a shorthand for
*** 1868,1875 ****
  <samp>--with-hsa-runtime-include=<var>hsainstalldir</var>/include</samp>.
  </p>
  </dd>
! <dt><code>--enable-cet</code></dt>
! <dt><code>--disable-cet</code></dt>
  <dd><p>Enable building target run-time libraries with control-flow
  instrumentation, see <samp>-fcf-protection</samp> option.  When
  <code>--enable-cet</code> is specified target libraries are configured
--- 1859,1866 ----
  <samp>--with-hsa-runtime-include=<var>hsainstalldir</var>/include</samp>.
  </p>
  </dd>
! <dt><span><code>--enable-cet</code></span></dt>
! <dt><span><code>--disable-cet</code></span></dt>
  <dd><p>Enable building target run-time libraries with control-flow
  instrumentation, see <samp>-fcf-protection</samp> option.  When
  <code>--enable-cet</code> is specified target libraries are configured
*************** otherwise.  In this case, the target lib
*** 1882,1888 ****
  additional <samp>-fcf-protection</samp> option.
  </p>
  </dd>
! <dt><code>--with-riscv-attribute=&lsquo;<samp>yes</samp>&rsquo;, &lsquo;<samp>no</samp>&rsquo; or &lsquo;<samp>default</samp>&rsquo;</code></dt>
  <dd><p>Generate RISC-V attribute by default, in order to record extra build
  information in object.
  </p>
--- 1873,1879 ----
  additional <samp>-fcf-protection</samp> option.
  </p>
  </dd>
! <dt><span><code>--with-riscv-attribute=&lsquo;<samp>yes</samp>&rsquo;, &lsquo;<samp>no</samp>&rsquo; or &lsquo;<samp>default</samp>&rsquo;</code></span></dt>
  <dd><p>Generate RISC-V attribute by default, in order to record extra build
  information in object.
  </p>
*************** information in object.
*** 1890,1897 ****
  target if target binutils supported.
  </p>
  </dd>
! <dt><code>--enable-s390-excess-float-precision</code></dt>
! <dt><code>--disable-s390-excess-float-precision</code></dt>
  <dd><p>On s390(x) targets, enable treatment of float expressions with double precision
  when in standards-compliant mode (e.g., when <code>--std=c99</code> or
  <code>-fexcess-precision=standard</code> are given).
--- 1881,1888 ----
  target if target binutils supported.
  </p>
  </dd>
! <dt><span><code>--enable-s390-excess-float-precision</code></span></dt>
! <dt><span><code>--disable-s390-excess-float-precision</code></span></dt>
  <dd><p>On s390(x) targets, enable treatment of float expressions with double precision
  when in standards-compliant mode (e.g., when <code>--std=c99</code> or
  <code>-fexcess-precision=standard</code> are given).
*************** disabled.
*** 1903,1920 ****
  </p></dd>
  </dl>
  
! <a name="Cross-Compiler-Specific-Options"></a>
! <h4 class="subheading">Cross-Compiler-Specific Options</h4>
  <p>The following options only apply to building cross compilers.
  </p>
  <dl compact="compact">
! <dt><code>--with-toolexeclibdir=<var>dir</var></code></dt>
  <dd><p>Specify the installation directory for libraries built with a cross compiler.
  The default is <samp>${gcc_tooldir}/lib</samp>.
  </p>
  </dd>
! <dt><code>--with-sysroot</code></dt>
! <dt><code>--with-sysroot=<var>dir</var></code></dt>
  <dd><p>Tells GCC to consider <var>dir</var> as the root of a tree that contains
  (a subset of) the root filesystem of the target operating system.
  Target system headers, libraries and run-time object files will be
--- 1894,1910 ----
  </p></dd>
  </dl>
  
! <span id="Cross-Compiler-Specific-Options"></span><h4 class="subheading">Cross-Compiler-Specific Options</h4>
  <p>The following options only apply to building cross compilers.
  </p>
  <dl compact="compact">
! <dt><span><code>--with-toolexeclibdir=<var>dir</var></code></span></dt>
  <dd><p>Specify the installation directory for libraries built with a cross compiler.
  The default is <samp>${gcc_tooldir}/lib</samp>.
  </p>
  </dd>
! <dt><span><code>--with-sysroot</code></span></dt>
! <dt><span><code>--with-sysroot=<var>dir</var></code></span></dt>
  <dd><p>Tells GCC to consider <var>dir</var> as the root of a tree that contains
  (a subset of) the root filesystem of the target operating system.
  Target system headers, libraries and run-time object files will be
*************** option then the compiler will search tha
*** 1938,1945 ****
  native system headers rather than the default <samp>/usr/include</samp>.
  </p>
  </dd>
! <dt><code>--with-build-sysroot</code></dt>
! <dt><code>--with-build-sysroot=<var>dir</var></code></dt>
  <dd><p>Tells GCC to consider <var>dir</var> as the system root (see
  <samp>--with-sysroot</samp>) while building target libraries, instead of
  the directory specified with <samp>--with-sysroot</samp>.  This option is
--- 1928,1935 ----
  native system headers rather than the default <samp>/usr/include</samp>.
  </p>
  </dd>
! <dt><span><code>--with-build-sysroot</code></span></dt>
! <dt><span><code>--with-build-sysroot=<var>dir</var></code></span></dt>
  <dd><p>Tells GCC to consider <var>dir</var> as the system root (see
  <samp>--with-sysroot</samp>) while building target libraries, instead of
  the directory specified with <samp>--with-sysroot</samp>.  This option is
*************** option then the compiler will search tha
*** 1957,1964 ****
  native system headers rather than the default <samp>/usr/include</samp>.
  </p>
  </dd>
! <dt><code>--with-headers</code></dt>
! <dt><code>--with-headers=<var>dir</var></code></dt>
  <dd><p>Deprecated in favor of <samp>--with-sysroot</samp>.
  Specifies that target headers are available when building a cross compiler.
  The <var>dir</var> argument specifies a directory which has the target include
--- 1947,1954 ----
  native system headers rather than the default <samp>/usr/include</samp>.
  </p>
  </dd>
! <dt><span><code>--with-headers</code></span></dt>
! <dt><span><code>--with-headers=<var>dir</var></code></span></dt>
  <dd><p>Deprecated in favor of <samp>--with-sysroot</samp>.
  Specifies that target headers are available when building a cross compiler.
  The <var>dir</var> argument specifies a directory which has the target include
*************** pre-exist, the <var>dir</var> argument m
*** 1970,1983 ****
  will be run on these files to make them compatible with GCC.
  </p>
  </dd>
! <dt><code>--without-headers</code></dt>
  <dd><p>Tells GCC not use any target headers from a libc when building a cross
  compiler.  When crossing to GNU/Linux, you need the headers so GCC
  can build the exception handling for libgcc.
  </p>
  </dd>
! <dt><code>--with-libs</code></dt>
! <dt><code>--with-libs=&quot;<var>dir1</var> <var>dir2</var> &hellip; <var>dirN</var>&quot;</code></dt>
  <dd><p>Deprecated in favor of <samp>--with-sysroot</samp>.
  Specifies a list of directories which contain the target runtime
  libraries.  These libraries will be copied into the <samp>gcc</samp> install
--- 1960,1973 ----
  will be run on these files to make them compatible with GCC.
  </p>
  </dd>
! <dt><span><code>--without-headers</code></span></dt>
  <dd><p>Tells GCC not use any target headers from a libc when building a cross
  compiler.  When crossing to GNU/Linux, you need the headers so GCC
  can build the exception handling for libgcc.
  </p>
  </dd>
! <dt><span><code>--with-libs</code></span></dt>
! <dt><span><code>--with-libs=&quot;<var>dir1</var> <var>dir2</var> &hellip; <var>dirN</var>&quot;</code></span></dt>
  <dd><p>Deprecated in favor of <samp>--with-sysroot</samp>.
  Specifies a list of directories which contain the target runtime
  libraries.  These libraries will be copied into the <samp>gcc</samp> install
*************** directory.  If the directory list is omi
*** 1985,1991 ****
  effect.
  </p>
  </dd>
! <dt><code>--with-newlib</code></dt>
  <dd><p>Specifies that &lsquo;<samp>newlib</samp>&rsquo; is
  being used as the target C library.  This causes <code>__eprintf</code> to be
  omitted from <samp>libgcc.a</samp> on the assumption that it will be provided by
--- 1975,1981 ----
  effect.
  </p>
  </dd>
! <dt><span><code>--with-newlib</code></span></dt>
  <dd><p>Specifies that &lsquo;<samp>newlib</samp>&rsquo; is
  being used as the target C library.  This causes <code>__eprintf</code> to be
  omitted from <samp>libgcc.a</samp> on the assumption that it will be provided by
*************** omitted from <samp>libgcc.a</samp> on th
*** 1993,1999 ****
  </p>
  <a name="avr"></a>
  </dd>
! <dt><code>--with-avrlibc</code></dt>
  <dd><p>Only supported for the AVR target. Specifies that &lsquo;<samp>AVR-Libc</samp>&rsquo; is
  being used as the target C&nbsp; library.  This causes float support
  functions like <code>__addsf3</code> to be omitted from <samp>libgcc.a</samp> on
--- 1983,1989 ----
  </p>
  <a name="avr"></a>
  </dd>
! <dt><span><code>--with-avrlibc</code></span></dt>
  <dd><p>Only supported for the AVR target. Specifies that &lsquo;<samp>AVR-Libc</samp>&rsquo; is
  being used as the target C&nbsp; library.  This causes float support
  functions like <code>__addsf3</code> to be omitted from <samp>libgcc.a</samp> on
*************** RTEMS configurations, which currently us
*** 2004,2011 ****
  supported since version 4.7.2 and is the default in 4.8.0 and newer.
  </p>
  </dd>
! <dt><code>--with-double={32|64|32,64|64,32}</code></dt>
! <dt><code>--with-long-double={32|64|32,64|64,32|double}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify the default layout available for the C/C++ &lsquo;<samp>double</samp>&rsquo;
  and &lsquo;<samp>long double</samp>&rsquo; type, respectively. The following rules apply:
--- 1994,2001 ----
  supported since version 4.7.2 and is the default in 4.8.0 and newer.
  </p>
  </dd>
! <dt><span><code>--with-double={32|64|32,64|64,32}</code></span></dt>
! <dt><span><code>--with-long-double={32|64|32,64|64,32|double}</code></span></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify the default layout available for the C/C++ &lsquo;<samp>double</samp>&rsquo;
  and &lsquo;<samp>long double</samp>&rsquo; type, respectively. The following rules apply:
*************** that &lsquo;<samp>long double</samp>&rsq
*** 2032,2038 ****
  32&nbsp;bits wide.
  </p>
  </dd>
! <dt><code>--with-double-comparison={tristate|bool|libf7}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify what result format is returned by library functions that
  compare 64-bit floating point values (<code>DFmode</code>).
--- 2022,2028 ----
  32&nbsp;bits wide.
  </p>
  </dd>
! <dt><span><code>--with-double-comparison={tristate|bool|libf7}</code></span></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify what result format is returned by library functions that
  compare 64-bit floating point values (<code>DFmode</code>).
*************** The GCC default is &lsquo;<samp>tristate
*** 2040,2046 ****
  implementation returns a boolean instead, set it to &lsquo;<samp>bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-libf7={libgcc|math|math-symbols|no}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify to which degree code from LibF7 is included in libgcc.
  LibF7 is an ad-hoc, AVR-specific, 64-bit floating point emulation
--- 2030,2036 ----
  implementation returns a boolean instead, set it to &lsquo;<samp>bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--with-libf7={libgcc|math|math-symbols|no}</code></span></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify to which degree code from LibF7 is included in libgcc.
  LibF7 is an ad-hoc, AVR-specific, 64-bit floating point emulation
*************** from elsewhere.  This option sets <samp>
*** 2056,2068 ****
  to &lsquo;<samp>bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-nds32-lib=<var>library</var></code></dt>
  <dd><p>Specifies that <var>library</var> setting is used for building <samp>libgcc.a</samp>.
  Currently, the valid <var>library</var> is &lsquo;<samp>newlib</samp>&rsquo; or &lsquo;<samp>mculib</samp>&rsquo;.
  This option is only supported for the NDS32 target.
  </p>
  </dd>
! <dt><code>--with-build-time-tools=<var>dir</var></code></dt>
  <dd><p>Specifies where to find the set of target tools (assembler, linker, etc.)
  that will be used while building GCC itself.  This option can be useful
  if the directory layouts are different between the system you are building
--- 2046,2058 ----
  to &lsquo;<samp>bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--with-nds32-lib=<var>library</var></code></span></dt>
  <dd><p>Specifies that <var>library</var> setting is used for building <samp>libgcc.a</samp>.
  Currently, the valid <var>library</var> is &lsquo;<samp>newlib</samp>&rsquo; or &lsquo;<samp>mculib</samp>&rsquo;.
  This option is only supported for the NDS32 target.
  </p>
  </dd>
! <dt><span><code>--with-build-time-tools=<var>dir</var></code></span></dt>
  <dd><p>Specifies where to find the set of target tools (assembler, linker, etc.)
  that will be used while building GCC itself.  This option can be useful
  if the directory layouts are different between the system you are building
*************** tools.
*** 2081,2088 ****
  </p></dd>
  </dl>
  
! <a name="Overriding-configure-test-results"></a>
! <h4 class="subsubheading">Overriding <code>configure</code> test results</h4>
  
  <p>Sometimes, it might be necessary to override the result of some
  <code>configure</code> test, for example in order to ease porting to a new
--- 2071,2077 ----
  </p></dd>
  </dl>
  
! <span id="Overriding-configure-test-results"></span><h4 class="subsubheading">Overriding <code>configure</code> test results</h4>
  
  <p>Sometimes, it might be necessary to override the result of some
  <code>configure</code> test, for example in order to ease porting to a new
*************** system or work around a bug in a test.
*** 2090,2110 ****
  script provides three variables for this:
  </p>
  <dl compact="compact">
! <dt><code>build_configargs</code></dt>
! <dd><a name="index-build_005fconfigargs"></a>
! <p>The contents of this variable is passed to all build <code>configure</code>
  scripts.
  </p>
  </dd>
! <dt><code>host_configargs</code></dt>
! <dd><a name="index-host_005fconfigargs"></a>
! <p>The contents of this variable is passed to all host <code>configure</code>
  scripts.
  </p>
  </dd>
! <dt><code>target_configargs</code></dt>
! <dd><a name="index-target_005fconfigargs"></a>
! <p>The contents of this variable is passed to all target <code>configure</code>
  scripts.
  </p>
  </dd>
--- 2079,2096 ----
  script provides three variables for this:
  </p>
  <dl compact="compact">
! <dt id='index-build_005fconfigargs'><span><code>build_configargs</code><a href='#index-build_005fconfigargs' class='copiable-anchor'> &para;</a></span></dt>
! <dd><p>The contents of this variable is passed to all build <code>configure</code>
  scripts.
  </p>
  </dd>
! <dt id='index-host_005fconfigargs'><span><code>host_configargs</code><a href='#index-host_005fconfigargs' class='copiable-anchor'> &para;</a></span></dt>
! <dd><p>The contents of this variable is passed to all host <code>configure</code>
  scripts.
  </p>
  </dd>
! <dt id='index-target_005fconfigargs'><span><code>target_configargs</code><a href='#index-target_005fconfigargs' class='copiable-anchor'> &para;</a></span></dt>
! <dd><p>The contents of this variable is passed to all target <code>configure</code>
  scripts.
  </p>
  </dd>
*************** scripts.
*** 2114,2126 ****
  overrides, you can pass a setting for <code>CONFIG_SITE</code> and set
  variables in the site file.
  </p>
! <a name="Objective-C-Specific-Options"></a>
! <h4 class="subheading">Objective-C-Specific Options</h4>
  
  <p>The following options apply to the build of the Objective-C runtime library.
  </p>
  <dl compact="compact">
! <dt><code>--enable-objc-gc</code></dt>
  <dd><p>Specify that an additional variant of the GNU Objective-C runtime library
  is built, using an external build of the Boehm-Demers-Weiser garbage
  collector (<a href="https://www.hboehm.info/gc/">https://www.hboehm.info/gc/</a>).  This library needs to be
--- 2100,2111 ----
  overrides, you can pass a setting for <code>CONFIG_SITE</code> and set
  variables in the site file.
  </p>
! <span id="Objective-C-Specific-Options"></span><h4 class="subheading">Objective-C-Specific Options</h4>
  
  <p>The following options apply to the build of the Objective-C runtime library.
  </p>
  <dl compact="compact">
! <dt><span><code>--enable-objc-gc</code></span></dt>
  <dd><p>Specify that an additional variant of the GNU Objective-C runtime library
  is built, using an external build of the Boehm-Demers-Weiser garbage
  collector (<a href="https://www.hboehm.info/gc/">https://www.hboehm.info/gc/</a>).  This library needs to be
*************** additional runtime library is skipped wh
*** 2130,2138 ****
  continues.
  </p>
  </dd>
! <dt><code>--with-target-bdw-gc=<var>list</var></code></dt>
! <dt><code>--with-target-bdw-gc-include=<var>list</var></code></dt>
! <dt><code>--with-target-bdw-gc-lib=<var>list</var></code></dt>
  <dd><p>Specify search directories for the garbage collector header files and
  libraries. <var>list</var> is a comma separated list of key value pairs of the
  form &lsquo;<samp><var>multilibdir</var>=<var>path</var></samp>&rsquo;, where the default multilib key
--- 2115,2123 ----
  continues.
  </p>
  </dd>
! <dt><span><code>--with-target-bdw-gc=<var>list</var></code></span></dt>
! <dt><span><code>--with-target-bdw-gc-include=<var>list</var></code></span></dt>
! <dt><span><code>--with-target-bdw-gc-lib=<var>list</var></code></span></dt>
  <dd><p>Specify search directories for the garbage collector header files and
  libraries. <var>list</var> is a comma separated list of key value pairs of the
  form &lsquo;<samp><var>multilibdir</var>=<var>path</var></samp>&rsquo;, where the default multilib key
*************** default locations.
*** 2151,2165 ****
  </p></dd>
  </dl>
  
! <a name="D-Specific-Options"></a>
! <h4 class="subheading">D-Specific Options</h4>
  
  <p>The following options apply to the build of the D runtime library.
  </p>
  <dl compact="compact">
! <dt><code>--enable-libphobos-checking</code></dt>
! <dt><code>--disable-libphobos-checking</code></dt>
! <dt><code>--enable-libphobos-checking=<var>list</var></code></dt>
  <dd><p>This option controls whether run-time checks and contracts are compiled into
  the D runtime library.  When the option is not specified, the library is built
  with &lsquo;<samp>release</samp>&rsquo; checking.  When the option is specified without a
--- 2136,2149 ----
  </p></dd>
  </dl>
  
! <span id="D-Specific-Options"></span><h4 class="subheading">D-Specific Options</h4>
  
  <p>The following options apply to the build of the D runtime library.
  </p>
  <dl compact="compact">
! <dt><span><code>--enable-libphobos-checking</code></span></dt>
! <dt><span><code>--disable-libphobos-checking</code></span></dt>
! <dt><span><code>--enable-libphobos-checking=<var>list</var></code></span></dt>
  <dd><p>This option controls whether run-time checks and contracts are compiled into
  the D runtime library.  When the option is not specified, the library is built
  with &lsquo;<samp>release</samp>&rsquo; checking.  When the option is specified without a
*************** libphobos with <samp>-fno-release</samp>
*** 2176,2183 ****
  with an extra option <samp>-fassert</samp>).
  </p>
  </dd>
! <dt><code>--with-libphobos-druntime-only</code></dt>
! <dt><code>--with-libphobos-druntime-only=<var>choice</var></code></dt>
  <dd><p>Specify whether to build only the core D runtime library (druntime), or both
  the core and standard library (phobos) into libphobos.  This is useful for
  targets that have full support in druntime, but no or incomplete support
--- 2160,2167 ----
  with an extra option <samp>-fassert</samp>).
  </p>
  </dd>
! <dt><span><code>--with-libphobos-druntime-only</code></span></dt>
! <dt><span><code>--with-libphobos-druntime-only=<var>choice</var></code></span></dt>
  <dd><p>Specify whether to build only the core D runtime library (druntime), or both
  the core and standard library (phobos) into libphobos.  This is useful for
  targets that have full support in druntime, but no or incomplete support
*************** When the option is specified without a <
*** 2190,2196 ****
  &lsquo;<samp>--with-libphobos-druntime-only=yes</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-target-system-zlib</code></dt>
  <dd><p>Use installed &lsquo;<samp>zlib</samp>&rsquo; rather than that included with GCC.  This needs
  to be available for each multilib variant, unless configured with
  <samp>--with-target-system-zlib=&lsquo;<samp>auto</samp>&rsquo;</samp> in which case the GCC&nbsp;included
--- 2174,2180 ----
  &lsquo;<samp>--with-libphobos-druntime-only=yes</samp>&rsquo;.
  </p>
  </dd>
! <dt><span><code>--with-target-system-zlib</code></span></dt>
  <dd><p>Use installed &lsquo;<samp>zlib</samp>&rsquo; rather than that included with GCC.  This needs
  to be available for each multilib variant, unless configured with
  <samp>--with-target-system-zlib=&lsquo;<samp>auto</samp>&rsquo;</samp> in which case the GCC&nbsp;included
diff -Nrcpad gcc-11.3.0/INSTALL/download.html gcc-11.4.0/INSTALL/download.html
*** gcc-11.3.0/INSTALL/download.html	Thu Apr 21 07:59:38 2022
--- gcc-11.4.0/INSTALL/download.html	Mon May 29 08:49:49 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Downloading GCC</title>
  
  <meta name="description" content="Downloading GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 80,87 ****
  
  
  
! <a name="index-Downloading-GCC"></a>
! <a name="index-Downloading-the-Source"></a>
  
  <p>GCC is distributed via <a href="http://gcc.gnu.org/git.html">git</a> and via
  HTTPS as tarballs compressed with <code>gzip</code> or <code>bzip2</code>.
--- 74,81 ----
  
  
  
! <span id="index-Downloading-GCC"></span>
! <span id="index-Downloading-the-Source"></span>
  
  <p>GCC is distributed via <a href="http://gcc.gnu.org/git.html">git</a> and via
  HTTPS as tarballs compressed with <code>gzip</code> or <code>bzip2</code>.
diff -Nrcpad gcc-11.3.0/INSTALL/finalinstall.html gcc-11.4.0/INSTALL/finalinstall.html
*** gcc-11.3.0/INSTALL/finalinstall.html	Thu Apr 21 07:59:39 2022
--- gcc-11.4.0/INSTALL/finalinstall.html	Mon May 29 08:49:50 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Final installation</title>
  
  <meta name="description" content="Installing GCC: Final installation">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 86,93 ****
  
  
  <p>Now that GCC has been built (and optionally tested), you can install it with
! </p><div class="smallexample">
! <pre class="smallexample">cd <var>objdir</var> &amp;&amp; make install
  </pre></div>
  
  <p>We strongly recommend to install into a target directory where there is
--- 80,87 ----
  
  
  <p>Now that GCC has been built (and optionally tested), you can install it with
! </p><div class="example">
! <pre class="example">cd <var>objdir</var> &amp;&amp; make install
  </pre></div>
  
  <p>We strongly recommend to install into a target directory where there is
*************** binutils, including assembler and linker
*** 119,126 ****
  <p>Installation into a temporary staging area or into a <code>chroot</code>
  jail can be achieved with the command
  </p>
! <div class="smallexample">
! <pre class="smallexample">make DESTDIR=<var>path-to-rootdir</var> install
  </pre></div>
  
  <p>where <var>path-to-rootdir</var> is the absolute path of
--- 113,120 ----
  <p>Installation into a temporary staging area or into a <code>chroot</code>
  jail can be achieved with the command
  </p>
! <div class="example">
! <pre class="example">make DESTDIR=<var>path-to-rootdir</var> install
  </pre></div>
  
  <p>where <var>path-to-rootdir</var> is the absolute path of
*************** using the <code>DESTDIR</code> feature.
*** 139,146 ****
  </p>
  <p>You can install stripped programs and libraries with
  </p>
! <div class="smallexample">
! <pre class="smallexample">make install-strip
  </pre></div>
  
  <p>If you are bootstrapping a released version of GCC then please
--- 133,140 ----
  </p>
  <p>You can install stripped programs and libraries with
  </p>
! <div class="example">
! <pre class="example">make install-strip
  </pre></div>
  
  <p>If you are bootstrapping a released version of GCC then please
diff -Nrcpad gcc-11.3.0/INSTALL/gfdl.html gcc-11.4.0/INSTALL/gfdl.html
*** gcc-11.3.0/INSTALL/gfdl.html	Thu Apr 21 07:59:40 2022
--- gcc-11.4.0/INSTALL/gfdl.html	Mon May 29 08:49:51 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: GNU Free Documentation License</title>
  
  <meta name="description" content="Installing GCC: GNU Free Documentation License">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 90,96 ****
  
  <h1 align="center">Installing GCC: GNU Free Documentation License</h1>
  
! <a name="index-FDL_002c-GNU-Free-Documentation-License"></a>
  <div align="center">Version 1.3, 3 November 2008
  </div>
  <div class="display">
--- 84,90 ----
  
  <h1 align="center">Installing GCC: GNU Free Documentation License</h1>
  
! <span id="index-FDL_002c-GNU-Free-Documentation-License"></span>
  <div align="center">Version 1.3, 3 November 2008
  </div>
  <div class="display">
*************** provided the MMC is eligible for relicen
*** 523,537 ****
  </p>
  </li></ol>
  
! <a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
  <h3 class="unnumberedsec">ADDENDUM: How to use this License for your documents</h3>
  
  <p>To use this License in a document you have written, include a copy of
  the License in the document and put the following copyright and
  license notices just after the title page:
  </p>
! <div class="smallexample">
! <pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
--- 517,531 ----
  </p>
  </li></ol>
  
! <div class="unnumberedsec" id="ADDENDUM_003a-How-to-use-this-License-for-your-documents">
  <h3 class="unnumberedsec">ADDENDUM: How to use this License for your documents</h3>
  
  <p>To use this License in a document you have written, include a copy of
  the License in the document and put the following copyright and
  license notices just after the title page:
  </p>
! <div class="example">
! <pre class="example">  Copyright (C)  <var>year</var>  <var>your name</var>.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
*************** license notices just after the title pag
*** 543,550 ****
  <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
  replace the &ldquo;with...Texts.&rdquo; line with this:
  </p>
! <div class="smallexample">
! <pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
      the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
      being <var>list</var>.
  </pre></div>
--- 537,544 ----
  <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
  replace the &ldquo;with...Texts.&rdquo; line with this:
  </p>
! <div class="example">
! <pre class="example">    with the Invariant Sections being <var>list their titles</var>, with
      the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
      being <var>list</var>.
  </pre></div>
*************** to permit their use in free software.
*** 564,570 ****
  <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
! <hr>
  
  
  
--- 558,564 ----
  <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
! <hr></div>
  
  
  
diff -Nrcpad gcc-11.3.0/INSTALL/index.html gcc-11.4.0/INSTALL/index.html
*** gcc-11.3.0/INSTALL/index.html	Thu Apr 21 07:59:37 2022
--- gcc-11.4.0/INSTALL/index.html	Mon May 29 08:49:48 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC</title>
  
  <meta name="description" content="Installing GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** Free Documentation License</a>&rdquo;.
*** 149,155 ****
  
  
  
- 
  
  
  
--- 143,148 ----
diff -Nrcpad gcc-11.3.0/INSTALL/old.html gcc-11.4.0/INSTALL/old.html
*** gcc-11.3.0/INSTALL/old.html	Thu Apr 21 07:59:39 2022
--- gcc-11.4.0/INSTALL/old.html	Mon May 29 08:49:50 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Old documentation</title>
  
  <meta name="description" content="Installing GCC: Old documentation">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** the same as the host machine.
*** 130,137 ****
  </p>
  <p>Here is an example:
  </p>
! <div class="smallexample">
! <pre class="smallexample">./configure --host=sparc-sun-sunos4.1
  </pre></div>
  
  <p>A configuration name may be canonical or it may be more or less
--- 124,131 ----
  </p>
  <p>Here is an example:
  </p>
! <div class="example">
! <pre class="example">./configure --host=sparc-sun-sunos4.1
  </pre></div>
  
  <p>A configuration name may be canonical or it may be more or less
*************** section before proceeding any further wi
*** 157,164 ****
  </p>
  </li></ol>
  
! <h2><a name="Configurations"></a>Configurations Supported by GCC</h2>
! <a name="index-configurations-supported-by-GCC"></a>
  
  <p>Here are the possible CPU types:
  </p>
--- 151,158 ----
  </p>
  </li></ol>
  
! <h2><span id="Configurations"></span>Configurations Supported by GCC</h2>
! <span id="index-configurations-supported-by-GCC"></span>
  
  <p>Here are the possible CPU types:
  </p>
diff -Nrcpad gcc-11.3.0/INSTALL/prerequisites.html gcc-11.4.0/INSTALL/prerequisites.html
*** gcc-11.3.0/INSTALL/prerequisites.html	Thu Apr 21 07:59:37 2022
--- gcc-11.4.0/INSTALL/prerequisites.html	Mon May 29 08:49:49 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Prerequisites for GCC</title>
  
  <meta name="description" content="Prerequisites for GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 79,94 ****
  
  
  
! <a name="index-Prerequisites"></a>
  
  <p>GCC requires that various tools and packages be available for use in the
  build procedure.  Modifying GCC sources requires additional tools
  described below.
  </p>
! <a name="Tools_002fpackages-necessary-for-building-GCC"></a>
! <h3 class="heading">Tools/packages necessary for building GCC</h3>
  <dl compact="compact">
! <dt>ISO C++11 compiler</dt>
  <dd><p>Necessary to bootstrap GCC.
  </p>
  <p>Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98
--- 73,87 ----
  
  
  
! <span id="index-Prerequisites"></span>
  
  <p>GCC requires that various tools and packages be available for use in the
  build procedure.  Modifying GCC sources requires additional tools
  described below.
  </p>
! <span id="Tools_002fpackages-necessary-for-building-GCC"></span><h3 class="heading">Tools/packages necessary for building GCC</h3>
  <dl compact="compact">
! <dt><span>ISO C++11 compiler</span></dt>
  <dd><p>Necessary to bootstrap GCC.
  </p>
  <p>Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98
*************** bootstrapping the compiler with such ear
*** 107,113 ****
  discouraged.
  </p>
  </dd>
! <dt>C standard library and headers</dt>
  <dd>
  <p>In order to build GCC, the C standard library and headers must be present
  for all target variants for which target libraries will be built (and not
--- 100,106 ----
  discouraged.
  </p>
  </dd>
! <dt><span>C standard library and headers</span></dt>
  <dd>
  <p>In order to build GCC, the C standard library and headers must be present
  for all target variants for which target libraries will be built (and not
*************** name of the package depends on your dist
*** 124,130 ****
  &lsquo;<samp>fatal error: gnu/stubs-32.h: No such file</samp>&rsquo;
  </p>
  </dd>
! <dt><a name="GNAT-prerequisite"></a>GNAT</dt>
  <dd>
  <p>In order to build GNAT, the Ada compiler, you need a working GNAT
  compiler (GCC version 4.7 or later).
--- 117,123 ----
  &lsquo;<samp>fatal error: gnu/stubs-32.h: No such file</samp>&rsquo;
  </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
  compiler (GCC version 4.7 or later).
*************** by verifying that &lsquo;<samp>gnatls -v
*** 154,160 ****
  section.
  </p>
  </dd>
! <dt>A &ldquo;working&rdquo; POSIX compatible shell, or GNU bash</dt>
  <dd>
  <p>Necessary when running <code>configure</code> because some
  <code>/bin/sh</code> shells have bugs and may crash when configuring the
--- 147,153 ----
  section.
  </p>
  </dd>
! <dt><span>A &ldquo;working&rdquo; POSIX compatible shell, or GNU bash</span></dt>
  <dd>
  <p>Necessary when running <code>configure</code> because some
  <code>/bin/sh</code> shells have bugs and may crash when configuring the
*************** environment to your &ldquo;good&rdquo; s
*** 173,212 ****
  work when configuring GCC.
  </p>
  </dd>
! <dt>A POSIX or SVR4 awk</dt>
  <dd>
  <p>Necessary for creating some of the generated source files for GCC.
  If in doubt, use a recent GNU awk version, as some of the older ones
  are broken.  GNU awk version 3.1.5 is known to work.
  </p>
  </dd>
! <dt>GNU binutils</dt>
  <dd>
  <p>Necessary in some circumstances, optional in others.  See the
  host/target specific instructions for your platform for the exact
  requirements.
  </p>
  </dd>
! <dt>gzip version 1.2.4 (or later) or</dt>
! <dt>bzip2 version 1.0.2 (or later)</dt>
  <dd>
  <p>Necessary to uncompress GCC <code>tar</code> files when source code is
  obtained via HTTPS mirror sites.
  </p>
  </dd>
! <dt>GNU make version 3.80 (or later)</dt>
  <dd>
  <p>You must have GNU make installed to build GCC.
  </p>
  </dd>
! <dt>GNU tar version 1.14 (or later)</dt>
  <dd>
  <p>Necessary (only on some platforms) to untar the source code.  Many
  systems&rsquo; <code>tar</code> programs will also work, only try GNU
  <code>tar</code> if you have problems.
  </p>
  </dd>
! <dt>Perl version between 5.6.1 and 5.6.24</dt>
  <dd>
  <p>Necessary when targeting Darwin, building &lsquo;<samp>libstdc++</samp>&rsquo;,
  and not using <samp>--disable-symvers</samp>.
--- 166,205 ----
  work when configuring GCC.
  </p>
  </dd>
! <dt><span>A POSIX or SVR4 awk</span></dt>
  <dd>
  <p>Necessary for creating some of the generated source files for GCC.
  If in doubt, use a recent GNU awk version, as some of the older ones
  are broken.  GNU awk version 3.1.5 is known to work.
  </p>
  </dd>
! <dt><span>GNU binutils</span></dt>
  <dd>
  <p>Necessary in some circumstances, optional in others.  See the
  host/target specific instructions for your platform for the exact
  requirements.
  </p>
  </dd>
! <dt><span>gzip version 1.2.4 (or later) or</span></dt>
! <dt><span>bzip2 version 1.0.2 (or later)</span></dt>
  <dd>
  <p>Necessary to uncompress GCC <code>tar</code> files when source code is
  obtained via HTTPS mirror sites.
  </p>
  </dd>
! <dt><span>GNU make version 3.80 (or later)</span></dt>
  <dd>
  <p>You must have GNU make installed to build GCC.
  </p>
  </dd>
! <dt><span>GNU tar version 1.14 (or later)</span></dt>
  <dd>
  <p>Necessary (only on some platforms) to untar the source code.  Many
  systems&rsquo; <code>tar</code> programs will also work, only try GNU
  <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>.
*************** support libraries then using those packa
*** 235,241 ****
  install the libraries.
  </p>
  <dl compact="compact">
! <dt>GNU Multiple Precision Library (GMP) version 4.3.2 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  If a GMP source distribution is found in a
  subdirectory of your GCC sources named <samp>gmp</samp>, it will be built
--- 228,234 ----
  install the libraries.
  </p>
  <dl compact="compact">
! <dt><span>GNU Multiple Precision Library (GMP) version 4.3.2 (or later)</span></dt>
  <dd>
  <p>Necessary to build GCC.  If a GMP source distribution is found in a
  subdirectory of your GCC sources named <samp>gmp</samp>, it will be built
*************** The in-tree build is only supported with
*** 247,253 ****
  download_prerequisites installs.
  </p>
  </dd>
! <dt>MPFR Library version 3.1.0 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
  <a href="https://www.mpfr.org">https://www.mpfr.org</a>.  If an MPFR source distribution is found
--- 240,246 ----
  download_prerequisites installs.
  </p>
  </dd>
! <dt><span>MPFR Library version 3.1.0 (or later)</span></dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
  <a href="https://www.mpfr.org">https://www.mpfr.org</a>.  If an MPFR source distribution is found
*************** The in-tree build is only supported with
*** 260,266 ****
  download_prerequisites installs.
  </p>
  </dd>
! <dt>MPC Library version 1.0.1 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
  <a href="http://www.multiprecision.org/mpc/">http://www.multiprecision.org/mpc/</a>.  If an MPC source distribution
--- 253,259 ----
  download_prerequisites installs.
  </p>
  </dd>
! <dt><span>MPC Library version 1.0.1 (or later)</span></dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
  <a href="http://www.multiprecision.org/mpc/">http://www.multiprecision.org/mpc/</a>.  If an MPC source distribution
*************** The in-tree build is only supported with
*** 273,279 ****
  download_prerequisites installs.
  </p>
  </dd>
! <dt>isl Library version 0.15 or later.</dt>
  <dd>
  <p>Necessary to build GCC with the Graphite loop optimizations.
  It can be downloaded from <a href="https://gcc.gnu.org/pub/gcc/infrastructure/">https://gcc.gnu.org/pub/gcc/infrastructure/</a>.
--- 266,272 ----
  download_prerequisites installs.
  </p>
  </dd>
! <dt><span>isl Library version 0.15 or later.</span></dt>
  <dd>
  <p>Necessary to build GCC with the Graphite loop optimizations.
  It can be downloaded from <a href="https://gcc.gnu.org/pub/gcc/infrastructure/">https://gcc.gnu.org/pub/gcc/infrastructure/</a>.
*************** option should be used if isl is not inst
*** 284,290 ****
  search path.
  </p>
  </dd>
! <dt>zstd Library.</dt>
  <dd>
  <p>Necessary to build GCC with zstd compression used for LTO bytecode.
  The library is searched in your default library patch search.
--- 277,283 ----
  search path.
  </p>
  </dd>
! <dt><span>zstd Library.</span></dt>
  <dd>
  <p>Necessary to build GCC with zstd compression used for LTO bytecode.
  The library is searched in your default library patch search.
*************** Alternatively, the <samp>--with-zstd</sa
*** 293,309 ****
  </dd>
  </dl>
  
! <a name="Tools_002fpackages-necessary-for-modifying-GCC"></a>
! <h3 class="heading">Tools/packages necessary for modifying GCC</h3>
  <dl compact="compact">
! <dt>autoconf version 2.69</dt>
! <dt>GNU m4 version 1.4.6 (or later)</dt>
  <dd>
  <p>Necessary when modifying <samp>configure.ac</samp>, <samp>aclocal.m4</samp>, etc.
  to regenerate <samp>configure</samp> and <samp>config.in</samp> files.
  </p>
  </dd>
! <dt>automake version 1.15.1</dt>
  <dd>
  <p>Necessary when modifying a <samp>Makefile.am</samp> file to regenerate its
  associated <samp>Makefile.in</samp>.
--- 286,301 ----
  </dd>
  </dl>
  
! <span id="Tools_002fpackages-necessary-for-modifying-GCC"></span><h3 class="heading">Tools/packages necessary for modifying GCC</h3>
  <dl compact="compact">
! <dt><span>autoconf version 2.69</span></dt>
! <dt><span>GNU m4 version 1.4.6 (or later)</span></dt>
  <dd>
  <p>Necessary when modifying <samp>configure.ac</samp>, <samp>aclocal.m4</samp>, etc.
  to regenerate <samp>configure</samp> and <samp>config.in</samp> files.
  </p>
  </dd>
! <dt><span>automake version 1.15.1</span></dt>
  <dd>
  <p>Necessary when modifying a <samp>Makefile.am</samp> file to regenerate its
  associated <samp>Makefile.in</samp>.
*************** to a newer version, please update all th
*** 319,346 ****
  to the latest released version.
  </p>
  </dd>
! <dt>gettext version 0.14.5 (or later)</dt>
  <dd>
  <p>Needed to regenerate <samp>gcc.pot</samp>.
  </p>
  </dd>
! <dt>gperf version 2.7.2 (or later)</dt>
  <dd>
  <p>Necessary when modifying <code>gperf</code> input files, e.g.
  <samp>gcc/cp/cfns.gperf</samp> to regenerate its associated header file, e.g.
  <samp>gcc/cp/cfns.h</samp>.
  </p>
  </dd>
! <dt>DejaGnu 1.4.4</dt>
! <dt>Expect</dt>
! <dt>Tcl</dt>
  <dd>
  <p>Necessary to run the GCC testsuite; see the section on testing for
  details.
  </p>
  </dd>
! <dt>autogen version 5.5.4 (or later) and</dt>
! <dt>guile version 1.4.1 (or later)</dt>
  <dd>
  <p>Necessary to regenerate <samp>fixinc/fixincl.x</samp> from
  <samp>fixinc/inclhack.def</samp> and <samp>fixinc/*.tpl</samp>.
--- 311,338 ----
  to the latest released version.
  </p>
  </dd>
! <dt><span>gettext version 0.14.5 (or later)</span></dt>
  <dd>
  <p>Needed to regenerate <samp>gcc.pot</samp>.
  </p>
  </dd>
! <dt><span>gperf version 2.7.2 (or later)</span></dt>
  <dd>
  <p>Necessary when modifying <code>gperf</code> input files, e.g.
  <samp>gcc/cp/cfns.gperf</samp> to regenerate its associated header file, e.g.
  <samp>gcc/cp/cfns.h</samp>.
  </p>
  </dd>
! <dt><span>DejaGnu 1.4.4</span></dt>
! <dt><span>Expect</span></dt>
! <dt><span>Tcl</span></dt>
  <dd>
  <p>Necessary to run the GCC testsuite; see the section on testing for
  details.
  </p>
  </dd>
! <dt><span>autogen version 5.5.4 (or later) and</span></dt>
! <dt><span>guile version 1.4.1 (or later)</span></dt>
  <dd>
  <p>Necessary to regenerate <samp>fixinc/fixincl.x</samp> from
  <samp>fixinc/inclhack.def</samp> and <samp>fixinc/*.tpl</samp>.
*************** details.
*** 351,357 ****
  <samp>Makefile.tpl</samp> and <samp>Makefile.def</samp>.
  </p>
  </dd>
! <dt>Flex version 2.5.4 (or later)</dt>
  <dd>
  <p>Necessary when modifying <samp>*.l</samp> files.
  </p>
--- 343,349 ----
  <samp>Makefile.tpl</samp> and <samp>Makefile.def</samp>.
  </p>
  </dd>
! <dt><span>Flex version 2.5.4 (or later)</span></dt>
  <dd>
  <p>Necessary when modifying <samp>*.l</samp> files.
  </p>
*************** files are not included in the version-co
*** 360,366 ****
  They are included in releases.
  </p>
  </dd>
! <dt>Texinfo version 4.7 (or later)</dt>
  <dd>
  <p>Necessary for running <code>makeinfo</code> when modifying <samp>*.texi</samp>
  files to test your changes.
--- 352,358 ----
  They are included in releases.
  </p>
  </dd>
! <dt><span>Texinfo version 4.7 (or later)</span></dt>
  <dd>
  <p>Necessary for running <code>makeinfo</code> when modifying <samp>*.texi</samp>
  files to test your changes.
*************** generated output files are not included
*** 374,405 ****
  included in releases.
  </p>
  </dd>
! <dt>TeX (any working version)</dt>
  <dd>
  <p>Necessary for running <code>texi2dvi</code> and <code>texi2pdf</code>, which
  are used when running <code>make dvi</code> or <code>make pdf</code> to create
  DVI or PDF files, respectively.
  </p>
  </dd>
! <dt>Sphinx version 1.0 (or later)</dt>
  <dd>
  <p>Necessary to regenerate <samp>jit/docs/_build/texinfo</samp> from the <samp>.rst</samp>
  files in the directories below <samp>jit/docs</samp>.
  </p>
  </dd>
! <dt>git (any version)</dt>
! <dt>SSH (any version)</dt>
  <dd>
  <p>Necessary to access the source repository.  Public releases and weekly
  snapshots of the development sources are also available via HTTPS.
  </p>
  </dd>
! <dt>GNU diffutils version 2.7 (or later)</dt>
  <dd>
  <p>Useful when submitting patches for the GCC source code.
  </p>
  </dd>
! <dt>patch version 2.5.4 (or later)</dt>
  <dd>
  <p>Necessary when applying patches, created with <code>diff</code>, to one&rsquo;s
  own sources.
--- 366,397 ----
  included in releases.
  </p>
  </dd>
! <dt><span>TeX (any working version)</span></dt>
  <dd>
  <p>Necessary for running <code>texi2dvi</code> and <code>texi2pdf</code>, which
  are used when running <code>make dvi</code> or <code>make pdf</code> to create
  DVI or PDF files, respectively.
  </p>
  </dd>
! <dt><span>Sphinx version 1.0 (or later)</span></dt>
  <dd>
  <p>Necessary to regenerate <samp>jit/docs/_build/texinfo</samp> from the <samp>.rst</samp>
  files in the directories below <samp>jit/docs</samp>.
  </p>
  </dd>
! <dt><span>git (any version)</span></dt>
! <dt><span>SSH (any version)</span></dt>
  <dd>
  <p>Necessary to access the source repository.  Public releases and weekly
  snapshots of the development sources are also available via HTTPS.
  </p>
  </dd>
! <dt><span>GNU diffutils version 2.7 (or later)</span></dt>
  <dd>
  <p>Useful when submitting patches for the GCC source code.
  </p>
  </dd>
! <dt><span>patch version 2.5.4 (or later)</span></dt>
  <dd>
  <p>Necessary when applying patches, created with <code>diff</code>, to one&rsquo;s
  own sources.
diff -Nrcpad gcc-11.3.0/INSTALL/specific.html gcc-11.4.0/INSTALL/specific.html
*** gcc-11.3.0/INSTALL/specific.html	Thu Apr 21 07:59:37 2022
--- gcc-11.4.0/INSTALL/specific.html	Mon May 29 08:49:49 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Host/Target specific installation notes for GCC</title>
  
  <meta name="description" content="Host/Target specific installation notes for GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 86,96 ****
  
  
  
! <a name="index-Specific"></a>
! <a name="index-Specific-installation-notes"></a>
! <a name="index-Target-specific-installation"></a>
! <a name="index-Host-specific-installation"></a>
! <a name="index-Target-specific-installation-notes"></a>
  
  <p>Please read this document carefully <em>before</em> installing the
  GNU Compiler Collection on your machine.
--- 80,90 ----
  
  
  
! <span id="index-Specific"></span>
! <span id="index-Specific-installation-notes"></span>
! <span id="index-Target-specific-installation"></span>
! <span id="index-Host-specific-installation"></span>
! <span id="index-Target-specific-installation-notes"></span>
  
  <p>Please read this document carefully <em>before</em> installing the
  GNU Compiler Collection on your machine.
*************** information have to.
*** 180,187 ****
  
  <!-- -------- host/target specific issues start here ---------------- -->
  <hr />
! <a name="aarch64-x-x"></a><a name="aarch64*-*-*"></a>
! <h3 class="heading">aarch64*-*-*</h3>
  <p>Binutils pre 2.24 does not have support for selecting <samp>-mabi</samp> and
  does not support ILP32.  If it is used to build GCC 4.9 or later, GCC will
  not support option <samp>-mabi=ilp32</samp>.
--- 174,180 ----
  
  <!-- -------- host/target specific issues start here ---------------- -->
  <hr />
! <span id="aarch64-x-x"></span><span id="aarch64*-*-*"></span><h3 class="heading">aarch64*-*-*</h3>
  <p>Binutils pre 2.24 does not have support for selecting <samp>-mabi</samp> and
  does not support ILP32.  If it is used to build GCC 4.9 or later, GCC will
  not support option <samp>-mabi=ilp32</samp>.
*************** protections by default.  This mechanism
*** 218,237 ****
  of the options are given at configure time.
  </p>
  <hr />
! <a name="alpha-x-x"></a><a name="alpha*-*-*"></a>
! <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 />
! <a name="amd64-x-solaris2"></a><a name="amd64-*-solaris2*"></a>
! <h3 class="heading">amd64-*-solaris2*</h3>
  <p>This is a synonym for &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo;.
  </p>
  <hr />
! <a name="amdgcn-x-amdhsa"></a><a name="amdgcn-*-amdhsa"></a>
! <h3 class="heading">amdgcn-*-amdhsa</h3>
  <p>AMD GCN GPU target.
  </p>
  <p>Instead of GNU Binutils, you will need to install LLVM 6, or later, and copy
--- 211,227 ----
  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>
  <hr />
! <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 6, or later, and copy
*************** section, please read all other sections
*** 249,270 ****
  on the GPU.
  </p>
  <hr />
! <a name="arc-x-elf32"></a><a name="arc-*-elf32"></a>
! <h3 class="heading">arc-*-elf32</h3>
  
  <p>Use &lsquo;<samp>configure --target=arc-elf32 --with-cpu=<var>cpu</var> --enable-languages=&quot;c,c++&quot;</samp>&rsquo;
  to configure GCC, with <var>cpu</var> being one of &lsquo;<samp>arc600</samp>&rsquo;, &lsquo;<samp>arc601</samp>&rsquo;,
  or &lsquo;<samp>arc700</samp>&rsquo;.
  </p>
  <hr />
! <a name="arc-linux-uclibc"></a><a name="arc-linux-uclibc-1"></a>
! <h3 class="heading">arc-linux-uclibc</h3>
  
  <p>Use &lsquo;<samp>configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages=&quot;c,c++&quot;</samp>&rsquo; to configure GCC.
  </p>
  <hr />
! <a name="arm-x-eabi"></a><a name="arm-*-eabi"></a>
! <h3 class="heading">arm-*-eabi</h3>
  <p>ARM-family processors.
  </p>
  <p>Building the Ada frontend commonly fails (an infinite loop executing
--- 239,257 ----
  on the GPU.
  </p>
  <hr />
! <span id="arc-x-elf32"></span><span id="arc-*-elf32"></span><h3 class="heading">arc-*-elf32</h3>
  
  <p>Use &lsquo;<samp>configure --target=arc-elf32 --with-cpu=<var>cpu</var> --enable-languages=&quot;c,c++&quot;</samp>&rsquo;
  to configure GCC, with <var>cpu</var> being one of &lsquo;<samp>arc600</samp>&rsquo;, &lsquo;<samp>arc601</samp>&rsquo;,
  or &lsquo;<samp>arc700</samp>&rsquo;.
  </p>
  <hr />
! <span id="arc-linux-uclibc"></span><span id="arc-linux-uclibc-1"></span><h3 class="heading">arc-linux-uclibc</h3>
  
  <p>Use &lsquo;<samp>configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages=&quot;c,c++&quot;</samp>&rsquo; to configure GCC.
  </p>
  <hr />
! <span id="arm-x-eabi"></span><span id="arm-*-eabi"></span><h3 class="heading">arm-*-eabi</h3>
  <p>ARM-family processors.
  </p>
  <p>Building the Ada frontend commonly fails (an infinite loop executing
*************** or &lsquo;<samp>arc700</samp>&rsquo;.
*** 272,279 ****
  GNAT 4.6, 4.9 or 5 release branches are known to succeed.
  </p>
  <hr />
! <a name="avr"></a><a name="avr-1"></a>
! <h3 class="heading">avr</h3>
  <p>ATMEL AVR-family micro controllers.  These are used in embedded
  applications.  There are no standard Unix configurations.
  See &ldquo;AVR Options&rdquo; in the main manual
--- 259,265 ----
  GNAT 4.6, 4.9 or 5 release branches are known to succeed.
  </p>
  <hr />
! <span id="avr"></span><span id="avr-1"></span><h3 class="heading">avr</h3>
  <p>ATMEL AVR-family micro controllers.  These are used in embedded
  applications.  There are no standard Unix configurations.
  See &ldquo;AVR Options&rdquo; in the main manual
*************** can also be obtained from:
*** 290,304 ****
  </li></ul>
  
  <p>The following error:
! </p><div class="smallexample">
! <pre class="smallexample">Error: register required
  </pre></div>
  
  <p>indicates that you should upgrade to a newer version of the binutils.
  </p>
  <hr />
! <a name="bfin"></a><a name="Blackfin"></a>
! <h3 class="heading">Blackfin</h3>
  <p>The Blackfin processor, an Analog Devices DSP.
  See &ldquo;Blackfin Options&rdquo; in the main manual
  </p>
--- 276,289 ----
  </li></ul>
  
  <p>The following error:
! </p><div class="example">
! <pre class="example">Error: register required
  </pre></div>
  
  <p>indicates that you should upgrade to a newer version of the binutils.
  </p>
  <hr />
! <span id="bfin"></span><span id="Blackfin"></span><h3 class="heading">Blackfin</h3>
  <p>The Blackfin processor, an Analog Devices DSP.
  See &ldquo;Blackfin Options&rdquo; in the main manual
  </p>
*************** See &ldquo;Blackfin Options&rdquo; in th
*** 306,313 ****
  are available at <a href="https://sourceforge.net/projects/adi-toolchain/">https://sourceforge.net/projects/adi-toolchain/</a>.
  </p>
  <hr />
! <a name="cr16"></a><a name="CR16"></a>
! <h3 class="heading">CR16</h3>
  <p>The CR16 CompactRISC architecture is a 16-bit architecture. This
  architecture is used in embedded applications.
  </p>
--- 291,297 ----
  are available at <a href="https://sourceforge.net/projects/adi-toolchain/">https://sourceforge.net/projects/adi-toolchain/</a>.
  </p>
  <hr />
! <span id="cr16"></span><span id="CR16"></span><h3 class="heading">CR16</h3>
  <p>The CR16 CompactRISC architecture is a 16-bit architecture. This
  architecture is used in embedded applications.
  </p>
*************** GCC&nbsp;for building a CR16 elf cross-c
*** 321,328 ****
  configure GCC&nbsp;for building a CR16 uclinux cross-compiler.
  </p>
  <hr />
! <a name="cris"></a><a name="CRIS"></a>
! <h3 class="heading">CRIS</h3>
  <p>CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for
  example the ETRAX series.  These are used in embedded applications.
  </p>
--- 305,311 ----
  configure GCC&nbsp;for building a CR16 uclinux cross-compiler.
  </p>
  <hr />
! <span id="cris"></span><span id="CRIS"></span><h3 class="heading">CRIS</h3>
  <p>CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for
  example the ETRAX series.  These are used in embedded applications.
  </p>
*************** for a list of CRIS-specific options.
*** 332,339 ****
  <p>Use &lsquo;<samp>configure --target=cris-elf</samp>&rsquo; to configure GCC&nbsp;for building
  a cross-compiler for CRIS.
  <hr />
! <a name="dos"></a></p><a name="DOS"></a>
! <h3 class="heading">DOS</h3>
  <p>Please have a look at the <a href="binaries.html">binaries page</a>.
  </p>
  <p>You cannot install GCC by itself on MSDOS; it will not compile under
--- 315,321 ----
  <p>Use &lsquo;<samp>configure --target=cris-elf</samp>&rsquo; to configure GCC&nbsp;for building
  a cross-compiler for CRIS.
  <hr />
! <span id="dos"></span></p><span id="DOS"></span><h3 class="heading">DOS</h3>
  <p>Please have a look at the <a href="binaries.html">binaries page</a>.
  </p>
  <p>You cannot install GCC by itself on MSDOS; it will not compile under
*************** compilation package DJGPP, which include
*** 342,355 ****
  and includes all the necessary compilation tools and libraries.
  </p>
  <hr />
! <a name="epiphany-x-elf"></a><a name="epiphany-*-elf"></a>
! <h3 class="heading">epiphany-*-elf</h3>
  <p>Adapteva Epiphany.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="x-x-freebsd"></a><a name="g_t*-*-freebsd*"></a>
! <h3 class="heading">*-*-freebsd*</h3>
  <p>Support for FreeBSD 1 was discontinued in GCC 3.2.  Support for
  FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was
  discontinued in GCC 4.0.
--- 324,335 ----
  and includes all the necessary compilation tools and libraries.
  </p>
  <hr />
! <span id="epiphany-x-elf"></span><span id="epiphany-*-elf"></span><h3 class="heading">epiphany-*-elf</h3>
  <p>Adapteva Epiphany.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="x-x-freebsd"></span><span id="g_t*-*-freebsd*"></span><h3 class="heading">*-*-freebsd*</h3>
  <p>Support for FreeBSD 1 was discontinued in GCC 3.2.  Support for
  FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was
  discontinued in GCC 4.0.
*************** properly on FreeBSD prior to the FreeBSD
*** 384,397 ****
  after 2.16.1.
  </p>
  <hr />
! <a name="ft32-x-elf"></a><a name="ft32-*-elf"></a>
! <h3 class="heading">ft32-*-elf</h3>
  <p>The FT32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="h8300-hms"></a><a name="h8300-hms-1"></a>
! <h3 class="heading">h8300-hms</h3>
  <p>Renesas H8/300 series of processors.
  </p>
  <p>Please have a look at the <a href="binaries.html">binaries page</a>.
--- 364,375 ----
  after 2.16.1.
  </p>
  <hr />
! <span id="ft32-x-elf"></span><span id="ft32-*-elf"></span><h3 class="heading">ft32-*-elf</h3>
  <p>The FT32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="h8300-hms"></span><span id="h8300-hms-1"></span><h3 class="heading">h8300-hms</h3>
  <p>Renesas H8/300 series of processors.
  </p>
  <p>Please have a look at the <a href="binaries.html">binaries page</a>.
*************** first three arguments in function calls
*** 402,409 ****
  longer a multiple of 2 bytes.
  </p>
  <hr />
! <a name="hppa-hp-hpux"></a><a name="hppa*-hp-hpux*"></a>
! <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
--- 380,386 ----
  longer a multiple of 2 bytes.
  </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
*************** a list of the predefines used with each
*** 453,460 ****
  <p>More specific information to &lsquo;<samp>hppa*-hp-hpux*</samp>&rsquo; targets follows.
  </p>
  <hr />
! <a name="hppa-hp-hpux10"></a><a name="hppa*-hp-hpux10"></a>
! <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>
--- 430,436 ----
  <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>
*************** problems in using C++ on this target.  H
*** 464,471 ****
  with the one implemented under HP-UX 11 using secondary definitions.
  </p>
  <hr />
! <a name="hppa-hp-hpux11"></a><a name="hppa*-hp-hpux11"></a>
! <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>
--- 440,446 ----
  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>
*************** versioning with <samp>--disable-symvers<
*** 568,582 ****
  supported, so <samp>--enable-threads=dce</samp> does not work.
  </p>
  <hr />
! <a name="x-x-linux-gnu"></a><a name="g_t*-*-linux-gnu"></a>
! <h3 class="heading">*-*-linux-gnu</h3>
  <p>Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
  in glibc 2.2.5 and later.  More information is available in the
  libstdc++-v3 documentation.
  </p>
  <hr />
! <a name="ix86-x-linux"></a><a name="i_003f86-*-linux*"></a>
! <h3 class="heading">i?86-*-linux*</h3>
  <p>As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
  See <a href="http://gcc.gnu.org/PR10877">bug 10877</a> for more information.
  </p>
--- 543,555 ----
  supported, so <samp>--enable-threads=dce</samp> does not work.
  </p>
  <hr />
! <span id="x-x-linux-gnu"></span><span id="g_t*-*-linux-gnu"></span><h3 class="heading">*-*-linux-gnu</h3>
  <p>Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
  in glibc 2.2.5 and later.  More information is available in the
  libstdc++-v3 documentation.
  </p>
  <hr />
! <span id="ix86-x-linux"></span><span id="i_003f86-*-linux*"></span><h3 class="heading">i?86-*-linux*</h3>
  <p>As of GCC 3.3, binutils 2.13.1 or later is required for this platform.
  See <a href="http://gcc.gnu.org/PR10877">bug 10877</a> for more information.
  </p>
*************** possible you have a hardware problem.  F
*** 585,592 ****
  found on <a href="http://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>.
  </p>
  <hr />
! <a name="ix86-x-solaris2"></a><a name="i_003f86-*-solaris2*"></a>
! <h3 class="heading">i?86-*-solaris2*</h3>
  <p>Use this for Solaris 11.3 or later on x86 and x86-64 systems.  Starting
  with GCC 4.7, there is also a 64-bit &lsquo;<samp>amd64-*-solaris2*</samp>&rsquo; or
  &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo; configuration that corresponds to
--- 558,564 ----
  found on <a href="http://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>.
  </p>
  <hr />
! <span id="ix86-x-solaris2"></span><span id="i_003f86-*-solaris2*"></span><h3 class="heading">i?86-*-solaris2*</h3>
  <p>Use this for Solaris 11.3 or later on x86 and x86-64 systems.  Starting
  with GCC 4.7, there is also a 64-bit &lsquo;<samp>amd64-*-solaris2*</samp>&rsquo; or
  &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo; configuration that corresponds to
*************** to configure with <samp>--without-gnu-ld
*** 610,617 ****
  guarantee use of Solaris <code>ld</code>.
  </p>
  <hr />
! <a name="ia64-x-linux"></a><a name="ia64-*-linux"></a>
! <h3 class="heading">ia64-*-linux</h3>
  <p>IA-64 processor (also known as IPF, or Itanium Processor Family)
  running GNU/Linux.
  </p>
--- 582,588 ----
  guarantee use of Solaris <code>ld</code>.
  </p>
  <hr />
! <span id="ia64-x-linux"></span><span id="ia64-*-linux"></span><h3 class="heading">ia64-*-linux</h3>
  <p>IA-64 processor (also known as IPF, or Itanium Processor Family)
  running GNU/Linux.
  </p>
*************** As of version 3.1 GCC is believed to be
*** 629,636 ****
  more major ABI changes are expected.
  </p>
  <hr />
! <a name="ia64-x-hpux"></a><a name="ia64-*-hpux*"></a>
! <h3 class="heading">ia64-*-hpux*</h3>
  <p>Building GCC on this target requires the GNU Assembler.  The bundled HP
  assembler will not work.  To prevent GCC from using the wrong assembler,
  the option <samp>--with-gnu-as</samp> may be necessary.
--- 600,606 ----
  more major ABI changes are expected.
  </p>
  <hr />
! <span id="ia64-x-hpux"></span><span id="ia64-*-hpux*"></span><h3 class="heading">ia64-*-hpux*</h3>
  <p>Building GCC on this target requires the GNU Assembler.  The bundled HP
  assembler will not work.  To prevent GCC from using the wrong assembler,
  the option <samp>--with-gnu-as</samp> may be necessary.
*************** removed and the system libunwind library
*** 643,650 ****
  </p>
  <hr />
  <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
! <a name="x-ibm-aix"></a><a name="g_t*-ibm-aix*"></a>
! <h3 class="heading">*-ibm-aix*</h3>
  <p>Support for AIX version 3 and older was discontinued in GCC 3.4.
  Support for AIX version 4.2 and older was discontinued in GCC 4.5.
  </p>
--- 613,619 ----
  </p>
  <hr />
  <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
! <span id="x-ibm-aix"></span><span id="g_t*-ibm-aix*"></span><h3 class="heading">*-ibm-aix*</h3>
  <p>Support for AIX version 3 and older was discontinued in GCC 3.4.
  Support for AIX version 4.2 and older was discontinued in GCC 4.5.
  </p>
*************** with an earlier release of GCC is recomm
*** 661,668 ****
  requires a larger data segment, which can be enabled through the
  <var>LDR_CNTRL</var> environment variable, e.g.,
  </p>
! <div class="smallexample">
! <pre class="smallexample">% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  </pre></div>
  
--- 630,637 ----
  requires a larger data segment, which can be enabled through the
  <var>LDR_CNTRL</var> environment variable, e.g.,
  </p>
! <div class="example">
! <pre class="example">% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  </pre></div>
  
*************** with a version of GCC built for an earli
*** 673,680 ****
  <p>To speed up the configuration phases of bootstrapping and installing GCC,
  one may use GNU Bash instead of AIX <code>/bin/sh</code>, e.g.,
  </p>
! <div class="smallexample">
! <pre class="smallexample">% CONFIG_SHELL=/opt/freeware/bin/bash
  % export CONFIG_SHELL
  </pre></div>
  
--- 642,649 ----
  <p>To speed up the configuration phases of bootstrapping and installing GCC,
  one may use GNU Bash instead of AIX <code>/bin/sh</code>, e.g.,
  </p>
! <div class="example">
! <pre class="example">% CONFIG_SHELL=/opt/freeware/bin/bash
  % export CONFIG_SHELL
  </pre></div>
  
*************** APAR IY26685 (AIX 4.3) or APAR IY25528 (
*** 724,730 ****
  fix for another AIX Assembler bug and a co-dependent AIX Archiver fix
  referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
  </p>
! <a name="TransferAixShobj"></a><p>&lsquo;<samp>libstdc++</samp>&rsquo; in GCC 3.4 increments the major version number of the
  shared object and GCC installation places the <samp>libstdc++.a</samp>
  shared library in a common location which will overwrite the and GCC
  3.3 version of the shared library.  Applications either need to be
--- 693,699 ----
  fix for another AIX Assembler bug and a co-dependent AIX Archiver fix
  referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
  </p>
! <span id="TransferAixShobj"></span><p>&lsquo;<samp>libstdc++</samp>&rsquo; in GCC 3.4 increments the major version number of the
  shared object and GCC installation places the <samp>libstdc++.a</samp>
  shared library in a common location which will overwrite the and GCC
  3.3 version of the shared library.  Applications either need to be
*************** multilib <samp>libstdc++.a</samp> instal
*** 738,757 ****
  </p>
  <p>Extract the shared objects from the currently installed
  <samp>libstdc++.a</samp> archive:
! </p><div class="smallexample">
! <pre class="smallexample">% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Enable the &lsquo;<samp>F_LOADONLY</samp>&rsquo; flag so that the shared object will be
  available for runtime dynamic loading, but not linking:
! </p><div class="smallexample">
! <pre class="smallexample">% strip -e libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Archive the runtime-only shared object in the GCC 3.4
  <samp>libstdc++.a</samp> archive:
! </p><div class="smallexample">
! <pre class="smallexample">% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Eventually, the
--- 707,726 ----
  </p>
  <p>Extract the shared objects from the currently installed
  <samp>libstdc++.a</samp> archive:
! </p><div class="example">
! <pre class="example">% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Enable the &lsquo;<samp>F_LOADONLY</samp>&rsquo; flag so that the shared object will be
  available for runtime dynamic loading, but not linking:
! </p><div class="example">
! <pre class="example">% strip -e libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Archive the runtime-only shared object in the GCC 3.4
  <samp>libstdc++.a</samp> archive:
! </p><div class="example">
! <pre class="example">% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Eventually, the
*************** environment variable to &lsquo;<samp>C</
*** 808,845 ****
  switch and using the configure option <samp>--with-cpu-<var>cpu_type</var></samp>.
  </p>
  <hr />
! <a name="iq2000-x-elf"></a><a name="iq2000-*-elf"></a>
! <h3 class="heading">iq2000-*-elf</h3>
  <p>Vitesse IQ2000 processors.  These are used in embedded
  applications.  There are no standard Unix configurations.
  </p>
  <hr />
! <a name="lm32-x-elf"></a><a name="lm32-*-elf"></a>
! <h3 class="heading">lm32-*-elf</h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="lm32-x-uclinux"></a><a name="lm32-*-uclinux"></a>
! <h3 class="heading">lm32-*-uclinux</h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems running uClinux.
  </p>
  <hr />
! <a name="m32c-x-elf"></a><a name="m32c-*-elf"></a>
! <h3 class="heading">m32c-*-elf</h3>
  <p>Renesas M32C processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="m32r-x-elf"></a><a name="m32r-*-elf"></a>
! <h3 class="heading">m32r-*-elf</h3>
  <p>Renesas M32R processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="m68k-x-x"></a><a name="m68k-*-*"></a>
! <h3 class="heading">m68k-*-*</h3>
  <p>By default,
  &lsquo;<samp>m68k-*-elf*</samp>&rsquo;, &lsquo;<samp>m68k-*-rtems</samp>&rsquo;,  &lsquo;<samp>m68k-*-uclinux</samp>&rsquo; and
  &lsquo;<samp>m68k-*-linux</samp>&rsquo;
--- 777,808 ----
  switch and using the configure option <samp>--with-cpu-<var>cpu_type</var></samp>.
  </p>
  <hr />
! <span id="iq2000-x-elf"></span><span id="iq2000-*-elf"></span><h3 class="heading">iq2000-*-elf</h3>
  <p>Vitesse IQ2000 processors.  These are used in embedded
  applications.  There are no standard Unix configurations.
  </p>
  <hr />
! <span id="lm32-x-elf"></span><span id="lm32-*-elf"></span><h3 class="heading">lm32-*-elf</h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="lm32-x-uclinux"></span><span id="lm32-*-uclinux"></span><h3 class="heading">lm32-*-uclinux</h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems running uClinux.
  </p>
  <hr />
! <span id="m32c-x-elf"></span><span id="m32c-*-elf"></span><h3 class="heading">m32c-*-elf</h3>
  <p>Renesas M32C processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="m32r-x-elf"></span><span id="m32r-*-elf"></span><h3 class="heading">m32r-*-elf</h3>
  <p>Renesas M32R processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="m68k-x-x"></span><span id="m68k-*-*"></span><h3 class="heading">m68k-*-*</h3>
  <p>By default,
  &lsquo;<samp>m68k-*-elf*</samp>&rsquo;, &lsquo;<samp>m68k-*-rtems</samp>&rsquo;,  &lsquo;<samp>m68k-*-uclinux</samp>&rsquo; and
  &lsquo;<samp>m68k-*-linux</samp>&rsquo;
*************** be a <samp>-mcpu</samp> argument or one
*** 865,886 ****
  <p>GCC requires at least binutils version 2.17 on these targets.
  </p>
  <hr />
! <a name="m68k-x-uclinux"></a><a name="m68k-*-uclinux"></a>
! <h3 class="heading">m68k-*-uclinux</h3>
  <p>GCC 4.3 changed the uClinux configuration so that it uses the
  &lsquo;<samp>m68k-linux-gnu</samp>&rsquo; ABI rather than the &lsquo;<samp>m68k-elf</samp>&rsquo; ABI.
  It also added improved support for C++ and flat shared libraries,
  both of which were ABI changes.
  </p>
  <hr />
! <a name="microblaze-x-elf"></a><a name="microblaze-*-elf"></a>
! <h3 class="heading">microblaze-*-elf</h3>
  <p>Xilinx MicroBlaze processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="mips-x-x"></a><a name="mips-*-*"></a>
! <h3 class="heading">mips-*-*</h3>
  <p>If on a MIPS system you get an error message saying &ldquo;does not have gp
  sections for all it&rsquo;s [sic] sectons [sic]&rdquo;, don&rsquo;t worry about it.  This
  happens whenever you use GAS with the MIPS linker, but there is not
--- 828,846 ----
  <p>GCC requires at least binutils version 2.17 on these targets.
  </p>
  <hr />
! <span id="m68k-x-uclinux"></span><span id="m68k-*-uclinux"></span><h3 class="heading">m68k-*-uclinux</h3>
  <p>GCC 4.3 changed the uClinux configuration so that it uses the
  &lsquo;<samp>m68k-linux-gnu</samp>&rsquo; ABI rather than the &lsquo;<samp>m68k-elf</samp>&rsquo; ABI.
  It also added improved support for C++ and flat shared libraries,
  both of which were ABI changes.
  </p>
  <hr />
! <span id="microblaze-x-elf"></span><span id="microblaze-*-elf"></span><h3 class="heading">microblaze-*-elf</h3>
  <p>Xilinx MicroBlaze processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="mips-x-x"></span><span id="mips-*-*"></span><h3 class="heading">mips-*-*</h3>
  <p>If on a MIPS system you get an error message saying &ldquo;does not have gp
  sections for all it&rsquo;s [sic] sectons [sic]&rdquo;, don&rsquo;t worry about it.  This
  happens whenever you use GAS with the MIPS linker, but there is not
*************** the use of break, use the <samp>--with-d
*** 920,932 ****
  use traps on systems that support them.
  </p>
  <hr />
! <a name="moxie-x-elf"></a><a name="moxie-*-elf"></a>
! <h3 class="heading">moxie-*-elf</h3>
  <p>The moxie processor.
  </p>
  <hr />
! <a name="msp430-x-elf"></a><a name="msp430-*-elf*"></a>
! <h3 class="heading">msp430-*-elf*</h3>
  <p>TI MSP430 processor.
  This configuration is intended for embedded systems.
  </p>
--- 880,890 ----
  use traps on systems that support them.
  </p>
  <hr />
! <span id="moxie-x-elf"></span><span id="moxie-*-elf"></span><h3 class="heading">moxie-*-elf</h3>
  <p>The moxie processor.
  </p>
  <hr />
! <span id="msp430-x-elf"></span><span id="msp430-*-elf*"></span><h3 class="heading">msp430-*-elf*</h3>
  <p>TI MSP430 processor.
  This configuration is intended for embedded systems.
  </p>
*************** in a minimal run-time environment by def
*** 945,962 ****
  </li></ul>
  
  <hr />
! <a name="nds32le-x-elf"></a><a name="nds32le-*-elf"></a>
! <h3 class="heading">nds32le-*-elf</h3>
  <p>Andes NDS32 target in little endian mode.
  </p>
  <hr />
! <a name="nds32be-x-elf"></a><a name="nds32be-*-elf"></a>
! <h3 class="heading">nds32be-*-elf</h3>
  <p>Andes NDS32 target in big endian mode.
  </p>
  <hr />
! <a name="nvptx-x-none"></a><a name="nvptx-*-none"></a>
! <h3 class="heading">nvptx-*-none</h3>
  <p>Nvidia PTX target.
  </p>
  <p>Instead of GNU binutils, you will need to install
--- 903,917 ----
  </li></ul>
  
  <hr />
! <span id="nds32le-x-elf"></span><span id="nds32le-*-elf"></span><h3 class="heading">nds32le-*-elf</h3>
  <p>Andes NDS32 target in little endian mode.
  </p>
  <hr />
! <span id="nds32be-x-elf"></span><span id="nds32be-*-elf"></span><h3 class="heading">nds32be-*-elf</h3>
  <p>Andes NDS32 target in big endian mode.
  </p>
  <hr />
! <span id="nvptx-x-none"></span><span id="nvptx-*-none"></span><h3 class="heading">nvptx-*-none</h3>
  <p>Nvidia PTX target.
  </p>
  <p>Instead of GNU binutils, you will need to install
*************** the GCC sources.
*** 974,1000 ****
  <samp>--enable-newlib-io-long-long</samp> options when configuring.
  </p>
  <hr />
! <a name="or1k-x-elf"></a><a name="or1k-*-elf"></a>
! <h3 class="heading">or1k-*-elf</h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="or1k-x-linux"></a><a name="or1k-*-linux"></a>
! <h3 class="heading">or1k-*-linux</h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  </p>
  <hr />
! <a name="powerpc-x-x"></a><a name="powerpc-*-*"></a>
! <h3 class="heading">powerpc-*-*</h3>
  <p>You can specify a default version for the <samp>-mcpu=<var>cpu_type</var></samp>
  switch by using the configure option <samp>--with-cpu-<var>cpu_type</var></samp>.
  </p>
  <p>You will need GNU binutils 2.20 or newer.
  </p>
  <hr />
! <a name="powerpc-x-darwin"></a><a name="powerpc-*-darwin*"></a>
! <h3 class="heading">powerpc-*-darwin*</h3>
  <p>PowerPC running Darwin (Mac OS X kernel).
  </p>
  <p>Pre-installed versions of Mac OS X may not include any developer tools,
--- 929,951 ----
  <samp>--enable-newlib-io-long-long</samp> options when configuring.
  </p>
  <hr />
! <span id="or1k-x-elf"></span><span id="or1k-*-elf"></span><h3 class="heading">or1k-*-elf</h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="or1k-x-linux"></span><span id="or1k-*-linux"></span><h3 class="heading">or1k-*-linux</h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  </p>
  <hr />
! <span id="powerpc-x-x"></span><span id="powerpc-*-*"></span><h3 class="heading">powerpc-*-*</h3>
  <p>You can specify a default version for the <samp>-mcpu=<var>cpu_type</var></samp>
  switch by using the configure option <samp>--with-cpu-<var>cpu_type</var></samp>.
  </p>
  <p>You will need GNU binutils 2.20 or newer.
  </p>
  <hr />
! <span id="powerpc-x-darwin"></span><span id="powerpc-*-darwin*"></span><h3 class="heading">powerpc-*-darwin*</h3>
  <p>PowerPC running Darwin (Mac OS X kernel).
  </p>
  <p>Pre-installed versions of Mac OS X may not include any developer tools,
*************** cctools-590.36 package referenced from
*** 1008,1110 ****
  on systems older than 10.3.9 (aka darwin7.9.0).
  </p>
  <hr />
! <a name="powerpc-x-elf"></a><a name="powerpc-*-elf"></a>
! <h3 class="heading">powerpc-*-elf</h3>
  <p>PowerPC system in big endian mode, running System V.4.
  </p>
  <hr />
! <a name="powerpc-x-linux-gnu"></a><a name="powerpc*-*-linux-gnu*"></a>
! <h3 class="heading">powerpc*-*-linux-gnu*</h3>
  <p>PowerPC system in big endian mode running Linux.
  </p>
  <hr />
! <a name="powerpc-x-netbsd"></a><a name="powerpc-*-netbsd*"></a>
! <h3 class="heading">powerpc-*-netbsd*</h3>
  <p>PowerPC system in big endian mode running NetBSD.
  </p>
  <hr />
! <a name="powerpc-x-eabisim"></a><a name="powerpc-*-eabisim"></a>
! <h3 class="heading">powerpc-*-eabisim</h3>
  <p>Embedded PowerPC system in big endian mode for use in running under the
  PSIM simulator.
  </p>
  <hr />
! <a name="powerpc-x-eabi"></a><a name="powerpc-*-eabi"></a>
! <h3 class="heading">powerpc-*-eabi</h3>
  <p>Embedded PowerPC system in big endian mode.
  </p>
  <hr />
! <a name="powerpcle-x-elf"></a><a name="powerpcle-*-elf"></a>
! <h3 class="heading">powerpcle-*-elf</h3>
  <p>PowerPC system in little endian mode, running System V.4.
  </p>
  <hr />
! <a name="powerpcle-x-eabisim"></a><a name="powerpcle-*-eabisim"></a>
! <h3 class="heading">powerpcle-*-eabisim</h3>
  <p>Embedded PowerPC system in little endian mode for use in running under
  the PSIM simulator.
  </p>
  <hr />
! <a name="powerpcle-x-eabi"></a><a name="powerpcle-*-eabi"></a>
! <h3 class="heading">powerpcle-*-eabi</h3>
  <p>Embedded PowerPC system in little endian mode.
  </p>
  <hr />
! <a name="rl78-x-elf"></a><a name="rl78-*-elf"></a>
! <h3 class="heading">rl78-*-elf</h3>
  <p>The Renesas RL78 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="riscv32-x-elf"></a><a name="riscv32-*-elf"></a>
! <h3 class="heading">riscv32-*-elf</h3>
  <p>The RISC-V RV32 instruction set.
  This configuration is intended for embedded systems.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="riscv32-x-linux"></a><a name="riscv32-*-linux"></a>
! <h3 class="heading">riscv32-*-linux</h3>
  <p>The RISC-V RV32 instruction set running GNU/Linux.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="riscv64-x-elf"></a><a name="riscv64-*-elf"></a>
! <h3 class="heading">riscv64-*-elf</h3>
  <p>The RISC-V RV64 instruction set.
  This configuration is intended for embedded systems.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="riscv64-x-linux"></a><a name="riscv64-*-linux"></a>
! <h3 class="heading">riscv64-*-linux</h3>
  <p>The RISC-V RV64 instruction set running GNU/Linux.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="rx-x-elf"></a><a name="rx-*-elf"></a>
! <h3 class="heading">rx-*-elf</h3>
  <p>The Renesas RX processor.
  </p>
  <hr />
! <a name="s390-x-linux"></a><a name="s390-*-linux*"></a>
! <h3 class="heading">s390-*-linux*</h3>
  <p>S/390 system running GNU/Linux for S/390.
  </p>
  <hr />
! <a name="s390x-x-linux"></a><a name="s390x-*-linux*"></a>
! <h3 class="heading">s390x-*-linux*</h3>
  <p>zSeries system (64-bit) running GNU/Linux for zSeries.
  </p>
  <hr />
! <a name="s390x-ibm-tpf"></a><a name="s390x-ibm-tpf*"></a>
! <h3 class="heading">s390x-ibm-tpf*</h3>
  <p>zSeries system (64-bit) running TPF.  This platform is
  supported as cross-compilation target only.
  </p>
  <hr />
! <a name="x-x-solaris2"></a><a name="g_t*-*-solaris2*"></a>
! <h3 class="heading">*-*-solaris2*</h3>
  <p>Support for Solaris 10 has been removed in GCC 10.  Support for Solaris
  9 has been removed in GCC 5.  Support for Solaris 8 has been removed in
  GCC 4.8.  Support for Solaris 7 has been removed in GCC 4.6.
--- 959,1043 ----
  on systems older than 10.3.9 (aka darwin7.9.0).
  </p>
  <hr />
! <span id="powerpc-x-elf"></span><span id="powerpc-*-elf"></span><h3 class="heading">powerpc-*-elf</h3>
  <p>PowerPC system in big endian mode, running System V.4.
  </p>
  <hr />
! <span id="powerpc-x-linux-gnu"></span><span id="powerpc*-*-linux-gnu*"></span><h3 class="heading">powerpc*-*-linux-gnu*</h3>
  <p>PowerPC system in big endian mode running Linux.
  </p>
  <hr />
! <span id="powerpc-x-netbsd"></span><span id="powerpc-*-netbsd*"></span><h3 class="heading">powerpc-*-netbsd*</h3>
  <p>PowerPC system in big endian mode running NetBSD.
  </p>
  <hr />
! <span id="powerpc-x-eabisim"></span><span id="powerpc-*-eabisim"></span><h3 class="heading">powerpc-*-eabisim</h3>
  <p>Embedded PowerPC system in big endian mode for use in running under the
  PSIM simulator.
  </p>
  <hr />
! <span id="powerpc-x-eabi"></span><span id="powerpc-*-eabi"></span><h3 class="heading">powerpc-*-eabi</h3>
  <p>Embedded PowerPC system in big endian mode.
  </p>
  <hr />
! <span id="powerpcle-x-elf"></span><span id="powerpcle-*-elf"></span><h3 class="heading">powerpcle-*-elf</h3>
  <p>PowerPC system in little endian mode, running System V.4.
  </p>
  <hr />
! <span id="powerpcle-x-eabisim"></span><span id="powerpcle-*-eabisim"></span><h3 class="heading">powerpcle-*-eabisim</h3>
  <p>Embedded PowerPC system in little endian mode for use in running under
  the PSIM simulator.
  </p>
  <hr />
! <span id="powerpcle-x-eabi"></span><span id="powerpcle-*-eabi"></span><h3 class="heading">powerpcle-*-eabi</h3>
  <p>Embedded PowerPC system in little endian mode.
  </p>
  <hr />
! <span id="rl78-x-elf"></span><span id="rl78-*-elf"></span><h3 class="heading">rl78-*-elf</h3>
  <p>The Renesas RL78 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="riscv32-x-elf"></span><span id="riscv32-*-elf"></span><h3 class="heading">riscv32-*-elf</h3>
  <p>The RISC-V RV32 instruction set.
  This configuration is intended for embedded systems.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <span id="riscv32-x-linux"></span><span id="riscv32-*-linux"></span><h3 class="heading">riscv32-*-linux</h3>
  <p>The RISC-V RV32 instruction set running GNU/Linux.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <span id="riscv64-x-elf"></span><span id="riscv64-*-elf"></span><h3 class="heading">riscv64-*-elf</h3>
  <p>The RISC-V RV64 instruction set.
  This configuration is intended for embedded systems.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <span id="riscv64-x-linux"></span><span id="riscv64-*-linux"></span><h3 class="heading">riscv64-*-linux</h3>
  <p>The RISC-V RV64 instruction set running GNU/Linux.
  This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <span id="rx-x-elf"></span><span id="rx-*-elf"></span><h3 class="heading">rx-*-elf</h3>
  <p>The Renesas RX processor.
  </p>
  <hr />
! <span id="s390-x-linux"></span><span id="s390-*-linux*"></span><h3 class="heading">s390-*-linux*</h3>
  <p>S/390 system running GNU/Linux for S/390.
  </p>
  <hr />
! <span id="s390x-x-linux"></span><span id="s390x-*-linux*"></span><h3 class="heading">s390x-*-linux*</h3>
  <p>zSeries system (64-bit) running GNU/Linux for zSeries.
  </p>
  <hr />
! <span id="s390x-ibm-tpf"></span><span id="s390x-ibm-tpf*"></span><h3 class="heading">s390x-ibm-tpf*</h3>
  <p>zSeries system (64-bit) running TPF.  This platform is
  supported as cross-compilation target only.
  </p>
  <hr />
! <span id="x-x-solaris2"></span><span id="g_t*-*-solaris2*"></span><h3 class="heading">*-*-solaris2*</h3>
  <p>Support for Solaris 10 has been removed in GCC 10.  Support for Solaris
  9 has been removed in GCC 5.  Support for Solaris 8 has been removed in
  GCC 4.8.  Support for Solaris 7 has been removed in GCC 4.6.
*************** you can install a pre-built GCC to boots
*** 1119,1126 ****
  &lsquo;<samp>libstdc++-v3</samp>&rsquo;.  We therefore recommend using the
  following initial sequence of commands
  </p>
! <div class="smallexample">
! <pre class="smallexample">% CONFIG_SHELL=/bin/ksh
  % export CONFIG_SHELL
  </pre></div>
  
--- 1052,1059 ----
  &lsquo;<samp>libstdc++-v3</samp>&rsquo;.  We therefore recommend using the
  following initial sequence of commands
  </p>
! <div class="example">
! <pre class="example">% CONFIG_SHELL=/bin/ksh
  % export CONFIG_SHELL
  </pre></div>
  
*************** need to provide a more recent one.
*** 1177,1184 ****
  </li></ul>
  
  <hr />
! <a name="sparc-x-x"></a><a name="sparc*-*-*"></a>
! <h3 class="heading">sparc*-*-*</h3>
  <p>This section contains general configuration information for all
  SPARC-based platforms.  In addition to reading this section, please
  read all other sections that match your target.
--- 1110,1116 ----
  </li></ul>
  
  <hr />
! <span id="sparc-x-x"></span><span id="sparc*-*-*"></span><h3 class="heading">sparc*-*-*</h3>
  <p>This section contains general configuration information for all
  SPARC-based platforms.  In addition to reading this section, please
  read all other sections that match your target.
*************** of the exact versions of these libraries
*** 1190,1197 ****
  in <a href="prerequisites.html">the prerequisites</a>.
  </p>
  <hr />
! <a name="sparc-sun-solaris2"></a><a name="sparc-sun-solaris2*"></a>
! <h3 class="heading">sparc-sun-solaris2*</h3>
  <p>When GCC is configured to use GNU binutils 2.14 or later, the binaries
  produced are smaller than the ones produced using Solaris native tools;
  this difference is quite significant for binaries containing debugging
--- 1122,1128 ----
  in <a href="prerequisites.html">the prerequisites</a>.
  </p>
  <hr />
! <span id="sparc-sun-solaris2"></span><span id="sparc-sun-solaris2*"></span><h3 class="heading">sparc-sun-solaris2*</h3>
  <p>When GCC is configured to use GNU binutils 2.14 or later, the binaries
  produced are smaller than the ones produced using Solaris native tools;
  this difference is quite significant for binaries containing debugging
*************** target triplet must be specified as the
*** 1211,1227 ****
  configure line.  This target triplet can be obtained by invoking <code>./config.guess</code> in the toplevel source directory of GCC (and
  not that of GMP or MPFR or MPC).  For example on a Solaris 11 system:
  </p>
! <div class="smallexample">
! <pre class="smallexample">% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx
  </pre></div>
  
  <hr />
! <a name="sparc-x-linux"></a><a name="sparc-*-linux*"></a>
! <h3 class="heading">sparc-*-linux*</h3>
  
  <hr />
! <a name="sparc64-x-solaris2"></a><a name="sparc64-*-solaris2*"></a>
! <h3 class="heading">sparc64-*-solaris2*</h3>
  <p>When configuring a 64-bit-default GCC on Solaris/SPARC, you must use a
  build compiler that generates 64-bit code, either by default or by
  specifying &lsquo;<samp>CC='gcc -m64' CXX='gcc-m64'</samp>&rsquo; to <code>configure</code>.
--- 1142,1156 ----
  configure line.  This target triplet can be obtained by invoking <code>./config.guess</code> in the toplevel source directory of GCC (and
  not that of GMP or MPFR or MPC).  For example on a Solaris 11 system:
  </p>
! <div class="example">
! <pre class="example">% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx
  </pre></div>
  
  <hr />
! <span id="sparc-x-linux"></span><span id="sparc-*-linux*"></span><h3 class="heading">sparc-*-linux*</h3>
  
  <hr />
! <span id="sparc64-x-solaris2"></span><span id="sparc64-*-solaris2*"></span><h3 class="heading">sparc64-*-solaris2*</h3>
  <p>When configuring a 64-bit-default GCC on Solaris/SPARC, you must use a
  build compiler that generates 64-bit code, either by default or by
  specifying &lsquo;<samp>CC='gcc -m64' CXX='gcc-m64'</samp>&rsquo; to <code>configure</code>.
*************** library or the MPC library, the canonica
*** 1234,1280 ****
  as the <code>build</code> parameter on the configure line.  For example
  on a Solaris 11 system:
  </p>
! <div class="smallexample">
! <pre class="smallexample">% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx
  </pre></div>
  
  <hr />
! <a name="sparcv9-x-solaris2"></a><a name="sparcv9-*-solaris2*"></a>
! <h3 class="heading">sparcv9-*-solaris2*</h3>
  <p>This is a synonym for &lsquo;<samp>sparc64-*-solaris2*</samp>&rsquo;.
  </p>
  <hr />
! <a name="c6x-x-x"></a><a name="c6x-*-*"></a>
! <h3 class="heading">c6x-*-*</h3>
  <p>The C6X family of processors. This port requires binutils-2.22 or newer.
  </p>
  <hr />
! <a name="tilegx-*-linux"></a><a name="tilegx-*-linux*"></a>
! <h3 class="heading">tilegx-*-linux*</h3>
  <p>The TILE-Gx processor in little endian mode, running GNU/Linux.  This
  port requires binutils-2.22 or newer.
  </p>
  <hr />
! <a name="tilegxbe-*-linux"></a><a name="tilegxbe-*-linux*"></a>
! <h3 class="heading">tilegxbe-*-linux*</h3>
  <p>The TILE-Gx processor in big endian mode, running GNU/Linux.  This
  port requires binutils-2.23 or newer.
  </p>
  <hr />
! <a name="tilepro-*-linux"></a><a name="tilepro-*-linux*"></a>
! <h3 class="heading">tilepro-*-linux*</h3>
  <p>The TILEPro processor running GNU/Linux.  This port requires
  binutils-2.22 or newer.
  </p>
  <hr />
! <a name="visium-x-elf"></a><a name="visium-*-elf"></a>
! <h3 class="heading">visium-*-elf</h3>
  <p>CDS VISIUMcore processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="x-x-vxworks"></a><a name="g_t*-*-vxworks*"></a>
! <h3 class="heading">*-*-vxworks*</h3>
  <p>Support for VxWorks is in flux.  At present GCC supports <em>only</em> the
  very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
  We welcome patches for other architectures supported by VxWorks 5.5.
--- 1163,1202 ----
  as the <code>build</code> parameter on the configure line.  For example
  on a Solaris 11 system:
  </p>
! <div class="example">
! <pre class="example">% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx
  </pre></div>
  
  <hr />
! <span id="sparcv9-x-solaris2"></span><span id="sparcv9-*-solaris2*"></span><h3 class="heading">sparcv9-*-solaris2*</h3>
  <p>This is a synonym for &lsquo;<samp>sparc64-*-solaris2*</samp>&rsquo;.
  </p>
  <hr />
! <span id="c6x-x-x"></span><span id="c6x-*-*"></span><h3 class="heading">c6x-*-*</h3>
  <p>The C6X family of processors. This port requires binutils-2.22 or newer.
  </p>
  <hr />
! <span id="tilegx-*-linux"></span><span id="tilegx-*-linux*"></span><h3 class="heading">tilegx-*-linux*</h3>
  <p>The TILE-Gx processor in little endian mode, running GNU/Linux.  This
  port requires binutils-2.22 or newer.
  </p>
  <hr />
! <span id="tilegxbe-*-linux"></span><span id="tilegxbe-*-linux*"></span><h3 class="heading">tilegxbe-*-linux*</h3>
  <p>The TILE-Gx processor in big endian mode, running GNU/Linux.  This
  port requires binutils-2.23 or newer.
  </p>
  <hr />
! <span id="tilepro-*-linux"></span><span id="tilepro-*-linux*"></span><h3 class="heading">tilepro-*-linux*</h3>
  <p>The TILEPro processor running GNU/Linux.  This port requires
  binutils-2.22 or newer.
  </p>
  <hr />
! <span id="visium-x-elf"></span><span id="visium-*-elf"></span><h3 class="heading">visium-*-elf</h3>
  <p>CDS VISIUMcore processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <span id="x-x-vxworks"></span><span id="g_t*-*-vxworks*"></span><h3 class="heading">*-*-vxworks*</h3>
  <p>Support for VxWorks is in flux.  At present GCC supports <em>only</em> the
  very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
  We welcome patches for other architectures supported by VxWorks 5.5.
*************** that file to add the module to your kern
*** 1307,1322 ****
  VxWorks will incorporate this module.)
  </p>
  <hr />
! <a name="x86-64-x-x"></a><a name="x86_005f64-*-*_002c-amd64-*-*"></a>
! <h3 class="heading">x86_64-*-*, amd64-*-*</h3>
  <p>GCC supports the x86-64 architecture implemented by the AMD64 processor
  (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
  On GNU/Linux the default is a bi-arch compiler which is able to generate
  both 64-bit x86-64 and 32-bit x86 code (via the <samp>-m32</samp> switch).
  </p>
  <hr />
! <a name="x86-64-x-solaris2"></a><a name="x86_005f64-*-solaris2*"></a>
! <h3 class="heading">x86_64-*-solaris2*</h3>
  <p>GCC also supports the x86-64 architecture implemented by the AMD64
  processor (&lsquo;<samp>amd64-*-*</samp>&rsquo; is an alias for &lsquo;<samp>x86_64-*-*</samp>&rsquo;) on
  Solaris 10 or later.  Unlike other systems, without special options a
--- 1229,1242 ----
  VxWorks will incorporate this module.)
  </p>
  <hr />
! <span id="x86-64-x-x"></span><span id="x86_005f64-*-*_002c-amd64-*-*"></span><h3 class="heading">x86_64-*-*, amd64-*-*</h3>
  <p>GCC supports the x86-64 architecture implemented by the AMD64 processor
  (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
  On GNU/Linux the default is a bi-arch compiler which is able to generate
  both 64-bit x86-64 and 32-bit x86 code (via the <samp>-m32</samp> switch).
  </p>
  <hr />
! <span id="x86-64-x-solaris2"></span><span id="x86_005f64-*-solaris2*"></span><h3 class="heading">x86_64-*-solaris2*</h3>
  <p>GCC also supports the x86-64 architecture implemented by the AMD64
  processor (&lsquo;<samp>amd64-*-*</samp>&rsquo; is an alias for &lsquo;<samp>x86_64-*-*</samp>&rsquo;) on
  Solaris 10 or later.  Unlike other systems, without special options a
*************** as 64-bit code, configure with <samp>--t
*** 1329,1336 ****
  and &lsquo;<samp>CC=gcc -m64</samp>&rsquo;.
  </p>
  <hr />
! <a name="xtensa-x-elf"></a><a name="xtensa*-*-elf"></a>
! <h3 class="heading">xtensa*-*-elf</h3>
  <p>This target is intended for embedded Xtensa systems using the
  &lsquo;<samp>newlib</samp>&rsquo; C library.  It uses ELF but does not support shared
  objects.  Designed-defined instructions specified via the
--- 1249,1255 ----
  and &lsquo;<samp>CC=gcc -m64</samp>&rsquo;.
  </p>
  <hr />
! <span id="xtensa-x-elf"></span><span id="xtensa*-*-elf"></span><h3 class="heading">xtensa*-*-elf</h3>
  <p>This target is intended for embedded Xtensa systems using the
  &lsquo;<samp>newlib</samp>&rsquo; C library.  It uses ELF but does not support shared
  objects.  Designed-defined instructions specified via the
*************** downloaded files include a customized co
*** 1345,1352 ****
  which you can use to replace the default header file.
  </p>
  <hr />
! <a name="xtensa-x-linux"></a><a name="xtensa*-*-linux*"></a>
! <h3 class="heading">xtensa*-*-linux*</h3>
  <p>This target is for Xtensa systems running GNU/Linux.  It supports ELF
  shared objects and the GNU C library (glibc).  It also generates
  position-independent code (PIC) regardless of whether the
--- 1264,1270 ----
  which you can use to replace the default header file.
  </p>
  <hr />
! <span id="xtensa-x-linux"></span><span id="xtensa*-*-linux*"></span><h3 class="heading">xtensa*-*-linux*</h3>
  <p>This target is for Xtensa systems running GNU/Linux.  It supports ELF
  shared objects and the GNU C library (glibc).  It also generates
  position-independent code (PIC) regardless of whether the
*************** respects, this target is the same as the
*** 1355,1373 ****
  <a href="#xtensa*-*-elf">&lsquo;<samp>xtensa*-*-elf</samp>&rsquo;</a> target.
  </p>
  <hr />
! <a name="windows"></a><a name="Microsoft-Windows"></a>
! <h3 class="heading">Microsoft Windows</h3>
  
! <a name="Intel-16-bit-versions"></a>
! <h4 class="subheading">Intel 16-bit versions</h4>
  <p>The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
  supported.
  </p>
  <p>However, the 32-bit port has limited support for Microsoft
  Windows 3.11 in the Win32s environment, as a target only.  See below.
  </p>
! <a name="Intel-32-bit-versions"></a>
! <h4 class="subheading">Intel 32-bit versions</h4>
  <p>The 32-bit versions of Windows, including Windows 95, Windows NT, Windows
  XP, and Windows Vista, are supported by several different target
  platforms.  These targets differ in which Windows subsystem they target
--- 1273,1288 ----
  <a href="#xtensa*-*-elf">&lsquo;<samp>xtensa*-*-elf</samp>&rsquo;</a> target.
  </p>
  <hr />
! <span id="windows"></span><span id="Microsoft-Windows"></span><h3 class="heading">Microsoft Windows</h3>
  
! <span id="Intel-16-bit-versions"></span><h4 class="subheading">Intel 16-bit versions</h4>
  <p>The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
  supported.
  </p>
  <p>However, the 32-bit port has limited support for Microsoft
  Windows 3.11 in the Win32s environment, as a target only.  See below.
  </p>
! <span id="Intel-32-bit-versions"></span><h4 class="subheading">Intel 32-bit versions</h4>
  <p>The 32-bit versions of Windows, including Windows 95, Windows NT, Windows
  XP, and Windows Vista, are supported by several different target
  platforms.  These targets differ in which Windows subsystem they target
*************** the Win32 subsystem that provides a subs
*** 1382,1402 ****
  <a href="https://www.mkssoftware.com">https://www.mkssoftware.com</a> for more information.
  </li></ul>
  
! <a name="Intel-64-bit-versions"></a>
! <h4 class="subheading">Intel 64-bit versions</h4>
  <p>GCC contains support for x86-64 using the mingw-w64
  runtime library, available from <a href="http://mingw-w64.org/doku.php">http://mingw-w64.org/doku.php</a>.
  This library should be used with the target triple x86_64-pc-mingw32.
  </p>
  <p>Presently Windows for Itanium is not supported.
  </p>
! <a name="Windows-CE"></a>
! <h4 class="subheading">Windows CE</h4>
  <p>Windows CE is supported as a target only on Hitachi
  SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
  </p>
! <a name="Other-Windows-Platforms"></a>
! <h4 class="subheading">Other Windows Platforms</h4>
  <p>GCC no longer supports Windows NT on the Alpha or PowerPC.
  </p>
  <p>GCC no longer supports the Windows POSIX subsystem.  However, it does
--- 1297,1314 ----
  <a href="https://www.mkssoftware.com">https://www.mkssoftware.com</a> for more information.
  </li></ul>
  
! <span id="Intel-64-bit-versions"></span><h4 class="subheading">Intel 64-bit versions</h4>
  <p>GCC contains support for x86-64 using the mingw-w64
  runtime library, available from <a href="http://mingw-w64.org/doku.php">http://mingw-w64.org/doku.php</a>.
  This library should be used with the target triple x86_64-pc-mingw32.
  </p>
  <p>Presently Windows for Itanium is not supported.
  </p>
! <span id="Windows-CE"></span><h4 class="subheading">Windows CE</h4>
  <p>Windows CE is supported as a target only on Hitachi
  SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
  </p>
! <span id="Other-Windows-Platforms"></span><h4 class="subheading">Other Windows Platforms</h4>
  <p>GCC no longer supports Windows NT on the Alpha or PowerPC.
  </p>
  <p>GCC no longer supports the Windows POSIX subsystem.  However, it does
*************** be inactive.  See <a href="http://pw32.s
*** 1410,1417 ****
  <p>UWIN support has been removed due to a lack of maintenance.
  </p>
  <hr />
! <a name="x-x-cygwin"></a><a name="g_t*-*-cygwin"></a>
! <h3 class="heading">*-*-cygwin</h3>
  <p>Ports of GCC are included with the
  <a href="http://www.cygwin.com/">Cygwin environment</a>.
  </p>
--- 1322,1328 ----
  <p>UWIN support has been removed due to a lack of maintenance.
  </p>
  <hr />
! <span id="x-x-cygwin"></span><span id="g_t*-*-cygwin"></span><h3 class="heading">*-*-cygwin</h3>
  <p>Ports of GCC are included with the
  <a href="http://www.cygwin.com/">Cygwin environment</a>.
  </p>
*************** the latest official GNU binutils release
*** 1425,1439 ****
  or version 2.20 or above if building your own.
  </p>
  <hr />
! <a name="x-x-mingw32"></a><a name="g_t*-*-mingw32"></a>
! <h3 class="heading">*-*-mingw32</h3>
  <p>GCC will build with and support only MinGW runtime 3.12 and later.
  Earlier versions of headers are incompatible with the new default semantics
  of <code>extern inline</code> in <code>-std=c99</code> and <code>-std=gnu99</code> modes.
  </p>
  <hr />
! <a name="older"></a><a name="Older-systems"></a>
! <h3 class="heading">Older systems</h3>
  <p>GCC contains support files for many older (1980s and early
  1990s) Unix variants.  For the most part, support for these systems
  has not been deliberately removed, but it has not been maintained for
--- 1336,1348 ----
  or version 2.20 or above if building your own.
  </p>
  <hr />
! <span id="x-x-mingw32"></span><span id="g_t*-*-mingw32"></span><h3 class="heading">*-*-mingw32</h3>
  <p>GCC will build with and support only MinGW runtime 3.12 and later.
  Earlier versions of headers are incompatible with the new default semantics
  of <code>extern inline</code> in <code>-std=c99</code> and <code>-std=gnu99</code> modes.
  </p>
  <hr />
! <span id="older"></span><span id="Older-systems"></span><h3 class="heading">Older systems</h3>
  <p>GCC contains support files for many older (1980s and early
  1990s) Unix variants.  For the most part, support for these systems
  has not been deliberately removed, but it has not been maintained for
*************** about GCC on such systems (which may no
*** 1476,1483 ****
  current GCC) is to be found in the GCC texinfo manual.
  </p>
  <hr />
! <a name="elf"></a><a name="all-ELF-targets-_0028SVR4_002c-Solaris-2_002c-etc_002e_0029"></a>
! <h3 class="heading">all ELF targets (SVR4, Solaris 2, etc.)</h3>
  <p>C++ support is significantly better on ELF targets if you use the
  <a href="./configure.html#with-gnu-ld">GNU linker</a>; duplicate copies of
  inlines, vtables and template instantiations will be discarded
--- 1385,1391 ----
  current GCC) is to be found in the GCC texinfo manual.
  </p>
  <hr />
! <span id="elf"></span><span id="all-ELF-targets-_0028SVR4_002c-Solaris-2_002c-etc_002e_0029"></span><h3 class="heading">all ELF targets (SVR4, Solaris 2, etc.)</h3>
  <p>C++ support is significantly better on ELF targets if you use the
  <a href="./configure.html#with-gnu-ld">GNU linker</a>; duplicate copies of
  inlines, vtables and template instantiations will be discarded
diff -Nrcpad gcc-11.3.0/INSTALL/test.html gcc-11.4.0/INSTALL/test.html
*** gcc-11.3.0/INSTALL/test.html	Thu Apr 21 07:59:39 2022
--- gcc-11.4.0/INSTALL/test.html	Mon May 29 08:49:50 2023
***************
*** 1,5 ****
--- 1,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
+ <!-- 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-2021 Free Software Foundation, Inc.
  
  Permission is granted to copy, distribute and/or modify this document
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Testing</title>
  
  <meta name="description" content="Installing GCC: Testing">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,58 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
  ul.no-bullet {list-style: none}
  -->
  </style>
--- 29,52 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
+ a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
  a.summary-letter {text-decoration: none}
  blockquote.indentedblock {margin-right: 0em}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
  kbd {font-style: oblique}
  pre.display {font-family: inherit}
  pre.format {font-family: inherit}
  pre.menu-comment {font-family: serif}
  pre.menu-preformatted {font-family: serif}
  span.nolinebreak {white-space: nowrap}
  span.roman {font-family: initial; font-weight: normal}
  span.sansserif {font-family: sans-serif; font-weight: normal}
+ span:hover a.copiable-anchor {visibility: visible}
  ul.no-bullet {list-style: none}
  -->
  </style>
*************** ul.no-bullet {list-style: none}
*** 83,91 ****
  
  
  
! <a name="index-Testing"></a>
! <a name="index-Installing-GCC_003a-Testing"></a>
! <a name="index-Testsuite"></a>
  
  <p>Before you install GCC, we encourage you to run the testsuites and to
  compare your results with results from a similar configuration that have
--- 77,85 ----
  
  
  
! <span id="index-Testing"></span>
! <span id="index-Installing-GCC_003a-Testing"></span>
! <span id="index-Testsuite"></span>
  
  <p>Before you install GCC, we encourage you to run the testsuites and to
  compare your results with results from a similar configuration that have
*************** installed are not in the <code>PATH</cod
*** 115,122 ****
  environment variables appropriately, as in the following example (which
  assumes that DejaGnu has been installed under <samp>/usr/local</samp>):
  </p>
! <div class="smallexample">
! <pre class="smallexample">TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  </pre></div>
  
--- 109,116 ----
  environment variables appropriately, as in the following example (which
  assumes that DejaGnu has been installed under <samp>/usr/local</samp>):
  </p>
! <div class="example">
! <pre class="example">TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  </pre></div>
  
*************** portability in the DejaGnu code.)
*** 126,133 ****
  </p>
  
  <p>Finally, you can run the testsuite (which may take a long time):
! </p><div class="smallexample">
! <pre class="smallexample">cd <var>objdir</var>; make -k check
  </pre></div>
  
  <p>This will test various components of GCC, such as compiler
--- 120,127 ----
  </p>
  
  <p>Finally, you can run the testsuite (which may take a long time):
! </p><div class="example">
! <pre class="example">cd <var>objdir</var>; make -k check
  </pre></div>
  
  <p>This will test various components of GCC, such as compiler
*************** might emit some harmless messages resemb
*** 139,145 ****
  <p>If you are testing a cross-compiler, you may want to run the testsuite
  on a simulator as described at <a href="http://gcc.gnu.org/simtest-howto.html">http://gcc.gnu.org/simtest-howto.html</a>.
  </p>
! <a name="How-can-you-run-the-testsuite-on-selected-tests_003f"></a>
  <h3 class="section">How can you run the testsuite on selected tests?</h3>
  
  <p>In order to run sets of tests selectively, there are targets
--- 133,139 ----
  <p>If you are testing a cross-compiler, you may want to run the testsuite
  on a simulator as described at <a href="http://gcc.gnu.org/simtest-howto.html">http://gcc.gnu.org/simtest-howto.html</a>.
  </p>
! <div class="section" id="How-can-you-run-the-testsuite-on-selected-tests_003f">
  <h3 class="section">How can you run the testsuite on selected tests?</h3>
  
  <p>In order to run sets of tests selectively, there are targets
*************** just run &lsquo;<samp>make check</samp>&
*** 154,168 ****
  <p>A more selective way to just run all <code>gcc</code> execute tests in the
  testsuite is to use
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-gcc RUNTESTFLAGS=&quot;execute.exp <var>other-options</var>&quot;
  </pre></div>
  
  <p>Likewise, in order to run only the <code>g++</code> &ldquo;old-deja&rdquo; tests in
  the testsuite with filenames matching &lsquo;<samp>9805*</samp>&rsquo;, you would use
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805* <var>other-options</var>&quot;
  </pre></div>
  
  <p>The file-matching expression following <var>filename</var><code>.exp=</code> is treated
--- 148,162 ----
  <p>A more selective way to just run all <code>gcc</code> execute tests in the
  testsuite is to use
  </p>
! <div class="example">
! <pre class="example">make check-gcc RUNTESTFLAGS=&quot;execute.exp <var>other-options</var>&quot;
  </pre></div>
  
  <p>Likewise, in order to run only the <code>g++</code> &ldquo;old-deja&rdquo; tests in
  the testsuite with filenames matching &lsquo;<samp>9805*</samp>&rsquo;, you would use
  </p>
! <div class="example">
! <pre class="example">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805* <var>other-options</var>&quot;
  </pre></div>
  
  <p>The file-matching expression following <var>filename</var><code>.exp=</code> is treated
*************** as a series of whitespace-delimited glob
*** 170,177 ****
  may be passed, although any whitespace must either be escaped or surrounded by
  single quotes if multiple expressions are desired. For example,
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805*\ virtual2.c <var>other-options</var>&quot;
  make check-g++ RUNTESTFLAGS=&quot;'old-deja.exp=9805* virtual2.c' <var>other-options</var>&quot;
  </pre></div>
  
--- 164,171 ----
  may be passed, although any whitespace must either be escaped or surrounded by
  single quotes if multiple expressions are desired. For example,
  </p>
! <div class="example">
! <pre class="example">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805*\ virtual2.c <var>other-options</var>&quot;
  make check-g++ RUNTESTFLAGS=&quot;'old-deja.exp=9805* virtual2.c' <var>other-options</var>&quot;
  </pre></div>
  
*************** To get a list of the possible <samp>*.ex
*** 182,188 ****
  output of &lsquo;<samp>make check</samp>&rsquo; into a file and look at the
  &lsquo;<samp>Running &hellip;  .exp</samp>&rsquo; lines.
  </p>
! <a name="Passing-options-and-running-multiple-testsuites"></a>
  <h3 class="section">Passing options and running multiple testsuites</h3>
  
  <p>You can pass multiple options to the testsuite using the
--- 176,183 ----
  output of &lsquo;<samp>make check</samp>&rsquo; into a file and look at the
  &lsquo;<samp>Running &hellip;  .exp</samp>&rsquo; lines.
  </p>
! </div>
! <div class="section" id="Passing-options-and-running-multiple-testsuites">
  <h3 class="section">Passing options and running multiple testsuites</h3>
  
  <p>You can pass multiple options to the testsuite using the
*************** output of &lsquo;<samp>make check</samp>
*** 190,197 ****
  &lsquo;<samp>RUNTESTFLAGS</samp>&rsquo;, or directly to <code>runtest</code> if you prefer to
  work outside the makefiles.  For example,
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-g++ RUNTESTFLAGS=&quot;--target_board=unix/-O3/-fmerge-constants&quot;
  </pre></div>
  
  <p>will run the standard <code>g++</code> testsuites (&ldquo;unix&rdquo; is the target name
--- 185,192 ----
  &lsquo;<samp>RUNTESTFLAGS</samp>&rsquo;, or directly to <code>runtest</code> if you prefer to
  work outside the makefiles.  For example,
  </p>
! <div class="example">
! <pre class="example">make check-g++ RUNTESTFLAGS=&quot;--target_board=unix/-O3/-fmerge-constants&quot;
  </pre></div>
  
  <p>will run the standard <code>g++</code> testsuites (&ldquo;unix&rdquo; is the target name
*************** slashes separate options.
*** 202,217 ****
  <p>You can run the testsuites multiple times using combinations of options
  with a syntax similar to the brace expansion of popular shells:
  </p>
! <div class="smallexample">
! <pre class="smallexample">&hellip;&quot;--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}&quot;
  </pre></div>
  
  <p>(Note the empty option caused by the trailing comma in the final group.)
  The following will run each testsuite eight times using the &lsquo;<samp>arm-sim</samp>&rsquo;
  target, as if you had specified all possible combinations yourself:
  </p>
! <div class="smallexample">
! <pre class="smallexample">--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
--- 197,212 ----
  <p>You can run the testsuites multiple times using combinations of options
  with a syntax similar to the brace expansion of popular shells:
  </p>
! <div class="example">
! <pre class="example">&hellip;&quot;--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}&quot;
  </pre></div>
  
  <p>(Note the empty option caused by the trailing comma in the final group.)
  The following will run each testsuite eight times using the &lsquo;<samp>arm-sim</samp>&rsquo;
  target, as if you had specified all possible combinations yourself:
  </p>
! <div class="example">
! <pre class="example">--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
*************** target, as if you had specified all poss
*** 224,231 ****
  <p>They can be combined as many times as you wish, in arbitrary ways.  This
  list:
  </p>
! <div class="smallexample">
! <pre class="smallexample">&hellip;&quot;--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}&quot;
  </pre></div>
  
  <p>will generate four combinations, all involving &lsquo;<samp>-Wextra</samp>&rsquo;.
--- 219,226 ----
  <p>They can be combined as many times as you wish, in arbitrary ways.  This
  list:
  </p>
! <div class="example">
! <pre class="example">&hellip;&quot;--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}&quot;
  </pre></div>
  
  <p>will generate four combinations, all involving &lsquo;<samp>-Wextra</samp>&rsquo;.
*************** parallel by having the shell perform the
*** 237,250 ****
  do the parallel runs.  Instead of using &lsquo;<samp>--target_board</samp>&rsquo;, use a
  special makefile target:
  </p>
! <div class="smallexample">
! <pre class="smallexample">make -j<var>N</var> check-<var>testsuite</var>//<var>test-target</var>/<var>option1</var>/<var>option2</var>/&hellip;
  </pre></div>
  
  <p>For example,
  </p>
! <div class="smallexample">
! <pre class="smallexample">make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  </pre></div>
  
  <p>will run three concurrent &ldquo;make-gcc&rdquo; testsuites, eventually testing all
--- 232,245 ----
  do the parallel runs.  Instead of using &lsquo;<samp>--target_board</samp>&rsquo;, use a
  special makefile target:
  </p>
! <div class="example">
! <pre class="example">make -j<var>N</var> check-<var>testsuite</var>//<var>test-target</var>/<var>option1</var>/<var>option2</var>/&hellip;
  </pre></div>
  
  <p>For example,
  </p>
! <div class="example">
! <pre class="example">make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  </pre></div>
  
  <p>will run three concurrent &ldquo;make-gcc&rdquo; testsuites, eventually testing all
*************** supported in the <samp>gcc</samp> subdir
*** 253,259 ****
  typing <code>echo</code> before the example given here.)
  </p>
  
! <a name="How-to-interpret-test-results"></a>
  <h3 class="section">How to interpret test results</h3>
  
  <p>The result of running the testsuite are various <samp>*.sum</samp> and <samp>*.log</samp>
--- 248,255 ----
  typing <code>echo</code> before the example given here.)
  </p>
  
! </div>
! <div class="section" id="How-to-interpret-test-results">
  <h3 class="section">How to interpret test results</h3>
  
  <p>The result of running the testsuite are various <samp>*.sum</samp> and <samp>*.log</samp>
*************** over whether or not a test is expected t
*** 278,291 ****
  be fixed in future releases.
  </p>
  
! <a name="Submitting-test-results"></a>
  <h3 class="section">Submitting test results</h3>
  
  <p>If you want to report the results to the GCC project, use the
  <samp>contrib/test_summary</samp> shell script.  Start it in the <var>objdir</var> with
  </p>
! <div class="smallexample">
! <pre class="smallexample"><var>srcdir</var>/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  </pre></div>
  
--- 274,288 ----
  be fixed in future releases.
  </p>
  
! </div>
! <div class="section" id="Submitting-test-results">
  <h3 class="section">Submitting test results</h3>
  
  <p>If you want to report the results to the GCC project, use the
  <samp>contrib/test_summary</samp> shell script.  Start it in the <var>objdir</var> with
  </p>
! <div class="example">
! <pre class="example"><var>srcdir</var>/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  </pre></div>
  
*************** messages may be automatically processed.
*** 306,312 ****
  
  
  
! <hr>
  
  
  
--- 303,309 ----
  
  
  
! <hr></div>
  
  
  
diff -Nrcpad gcc-11.3.0/LAST_UPDATED gcc-11.4.0/LAST_UPDATED
*** gcc-11.3.0/LAST_UPDATED	Thu Apr 21 07:59:37 2022
--- gcc-11.4.0/LAST_UPDATED	Mon May 29 08:49:48 2023
***************
*** 1 ****
! Obtained from git: releases/gcc-11.3.0 revision 2d280e7eafc086e9df85f50ed1a6526d6a3a204d
--- 1 ----
! Obtained from git: releases/gcc-11.4.0 revision ff4bf326d03e750a8d4905ea49425fe7d15a04b8
diff -Nrcpad gcc-11.3.0/MD5SUMS gcc-11.4.0/MD5SUMS
*** gcc-11.3.0/MD5SUMS	Thu Apr 21 08:32:17 2022
--- gcc-11.4.0/MD5SUMS	Mon May 29 09:09:03 2023
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the 
! # gcc-11.3.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-11.4.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
*************** c0eb7bac11479e0032693e4e55297c40  .dir-l
*** 17,59 ****
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! fad7e1929ef6bb608fa937fc5a03bb45  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! bc7bdcccf93f4034179af78f65536f21  INSTALL/binaries.html
! 47057783bb8704ed0f9a9b77196febec  INSTALL/build.html
! 4e1d74971c4f88186a2f719f8119f026  INSTALL/configure.html
! 4ad42e872d55de846185619a86a9acab  INSTALL/download.html
! 2ebc451429ebe4a0f55bc64b839512fc  INSTALL/finalinstall.html
! 035bd0aca4c9df3c4b92a8978e95a67b  INSTALL/gfdl.html
! b6a001358f0bb55ee8a22d7fedf3a639  INSTALL/index.html
! b1c9de1da8a8a66ea54722abde3498b1  INSTALL/old.html
! 3b37510298c2b0d3e77ed664a1653da1  INSTALL/prerequisites.html
! 343ae5d41e1449e92582e99bbbd039d1  INSTALL/specific.html
! 7d9e6352d151d352657bd02f0e09c3ef  INSTALL/test.html
! 726f348a8d755b1d266468f41b9a9d0a  LAST_UPDATED
  863d0fffeb06d7a45df38d7836e342bd  MAINTAINERS
  8a667df3c1ab240343b2f6a644f92970  Makefile.def
  468d396660b8969b6f51738c94ad90ef  Makefile.in
  87a68bd7215bdcd229ae57f7f8c3622f  Makefile.tpl
! f95caff4339451dfc8ad6a08cd2aa87d  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 9e739efdd890bfa55fe3e5546c20d6e6  c++tools/ChangeLog
  436118acd883073ecd4bbbc8e56f8e5c  c++tools/Makefile.in
! c4735269d3a60846e4e67459fe4c4811  c++tools/config.h.in
! dc92ffb2a8f3fefb9cf3381e7474d193  c++tools/configure
! 187429e66ff4a4f1dfd106cdfeab9a91  c++tools/configure.ac
  dbf071e12c975472c7fb6dbc22cb6f81  c++tools/resolver.cc
  638228e6632a53edcfe90c75fe725be8  c++tools/resolver.h
! c7a6315035957c9c2b36f5d267723408  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
  0a5df71d999a1a0135a99ab79fb42e4f  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  d320a9a1a5eb63901563ae5adf268433  config.sub
! 57ccaa30ed28f1d0ad5d75ec89dca553  config/ChangeLog
  0fcd4badfe2a2191778bdf5ab94aa40c  config/acinclude.m4
  2ea0edfde0ce5ce69b49317a5650f048  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
--- 17,59 ----
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 91527d13bb817eaeb5917fca04ac7145  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! ccedb1976a7698c56c2f3733215e7cbc  INSTALL/binaries.html
! ccc61f276d8b592f97d9cf860e9c7110  INSTALL/build.html
! e743a32d149c2f90518f1e496be89989  INSTALL/configure.html
! 92963bc11ee047c71e75a858f18cae2c  INSTALL/download.html
! 01e27054249668196814a39d0dc9942f  INSTALL/finalinstall.html
! 811e3531ce4e684b8f6d1071a3b6e815  INSTALL/gfdl.html
! 1b8396843f3662cb57832e447eb0fcb3  INSTALL/index.html
! 481330a2b003513f04cbe0c5970e0fce  INSTALL/old.html
! bd23b67765f31d5d8699bd13487a1a62  INSTALL/prerequisites.html
! 65f698d023562e20bd5076ae83fa7845  INSTALL/specific.html
! ad5aba0a030831fbe9ac857e94760dd2  INSTALL/test.html
! fd7fdcd0850a3e1fb07c536c6098bc47  LAST_UPDATED
  863d0fffeb06d7a45df38d7836e342bd  MAINTAINERS
  8a667df3c1ab240343b2f6a644f92970  Makefile.def
  468d396660b8969b6f51738c94ad90ef  Makefile.in
  87a68bd7215bdcd229ae57f7f8c3622f  Makefile.tpl
! 811371f0f1a9c5e5de7f8ac066616195  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 286434648fa4afd02d1bf5fdd68badba  c++tools/ChangeLog
  436118acd883073ecd4bbbc8e56f8e5c  c++tools/Makefile.in
! edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! ccd3498e6b247dfe4e65793a88a27296  c++tools/configure
! f2436417442e4bc6a20ff3fb2c4b51e0  c++tools/configure.ac
  dbf071e12c975472c7fb6dbc22cb6f81  c++tools/resolver.cc
  638228e6632a53edcfe90c75fe725be8  c++tools/resolver.h
! f11b68d46f7c108116f0f010090c5a62  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
  0a5df71d999a1a0135a99ab79fb42e4f  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  d320a9a1a5eb63901563ae5adf268433  config.sub
! 0e7985fe9286abad010861e1a6473db6  config/ChangeLog
  0fcd4badfe2a2191778bdf5ab94aa40c  config/acinclude.m4
  2ea0edfde0ce5ce69b49317a5650f048  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 154,162 ****
  5cabffc02a90bd9698105b9eef507f11  config/warnings.m4
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
! cb1e93e58dff05f85e66aa5c2e04475f  configure
! 587878b0d48aa2561ab3250371bee056  configure.ac
! a15cac46215dff88bd5478b79e7704db  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  8498c0cdfe3f444ad6f540ec9e11cbec  contrib/analyze_brprob.py
--- 154,162 ----
  5cabffc02a90bd9698105b9eef507f11  config/warnings.m4
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
! fc86d469e83d79fd74b5f41bd1834a0c  configure
! dee2062eecdaa1396a97737e94a6a755  configure.ac
! fa51a76a6819869b56080030b1cdfb4a  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  8498c0cdfe3f444ad6f540ec9e11cbec  contrib/analyze_brprob.py
*************** e9bac7c82bdb5f92b354d9da854d463b  contri
*** 209,215 ****
  e462c83bdf45bf6e9b434d18fa9f66e4  contrib/git-fix-changelog.py
  6996a054c7e7aaf9f27737c3d6f2518c  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! fde7eaaf5d043e049d3eef60ad615b0c  contrib/header-tools/ChangeLog
  4f7d3bf5dd67c6b144a7a1ea0bb4127b  contrib/header-tools/README
  05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
  ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
--- 209,215 ----
  e462c83bdf45bf6e9b434d18fa9f66e4  contrib/git-fix-changelog.py
  6996a054c7e7aaf9f27737c3d6f2518c  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! f27dbe1d4fb0a171d84218ac09648bb7  contrib/header-tools/ChangeLog
  4f7d3bf5dd67c6b144a7a1ea0bb4127b  contrib/header-tools/README
  05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
  ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
*************** a34668cfad9dec733354503fbc67fb24  contri
*** 235,241 ****
  87a19b40fbd220938cf6c23c42c255e2  contrib/prepare_patch.sh
  6bc8415291f74dbbb7994622ca9a7b28  contrib/prerequisites.md5
  2a7fbcbf9b708ecbd31408646f9dd122  contrib/prerequisites.sha512
! 2ec57861b5624197c06ffe94ea485ca2  contrib/reghunt/ChangeLog
  cf247a580e49d212518de409793db0a8  contrib/reghunt/bin/gcc-build-full
  724e70ea3e80f87f2a201bbe2f1eef37  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
--- 235,241 ----
  87a19b40fbd220938cf6c23c42c255e2  contrib/prepare_patch.sh
  6bc8415291f74dbbb7994622ca9a7b28  contrib/prerequisites.md5
  2a7fbcbf9b708ecbd31408646f9dd122  contrib/prerequisites.sha512
! a4af345aec55374f8cc816f58293c009  contrib/reghunt/ChangeLog
  cf247a580e49d212518de409793db0a8  contrib/reghunt/bin/gcc-build-full
  724e70ea3e80f87f2a201bbe2f1eef37  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
*************** f251d49dd87647250fcd74dd50b7835f  contri
*** 294,300 ****
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 00346ff11b28235c16270018e1093185  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
--- 294,300 ----
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 67ddba458b99683c1bf2fd06e544aa44  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
*************** a0d12be401961a2557883b7c09dc71eb  contri
*** 334,340 ****
  57440d4c6da7b6438ebfa203135f381a  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! 61562441855348f5513747ba4de446c1  fixincludes/ChangeLog
  6de190723745dc3f75080144dfa2215e  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
--- 334,340 ----
  57440d4c6da7b6438ebfa203135f381a  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! b7e9606922f7df093ed38585d009ed8e  fixincludes/ChangeLog
  6de190723745dc3f75080144dfa2215e  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
*************** a319a505bde6920ddb4832cf41af3488  fixinc
*** 347,359 ****
  a316c9d3351e61998fa688dceaf610a3  fixincludes/fixinc.in
  1582ffd94ecc91318eebfb3b81e0bcb1  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! 0c5a153c3a80883a20851c74a2cdd369  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! 2c44f764c039021368e0856e419d1a7c  fixincludes/inclhack.def
  dd5ae70d9f725bcaf2a15212782db49a  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
--- 347,359 ----
  a316c9d3351e61998fa688dceaf610a3  fixincludes/fixinc.in
  1582ffd94ecc91318eebfb3b81e0bcb1  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! 15a1cac09830dafe2699dcf89c5b970a  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! 9a5534f1d5cae77ddbfe0bd81381d531  fixincludes/inclhack.def
  dd5ae70d9f725bcaf2a15212782db49a  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
*************** d2cbc665e9046f8acb42c1271592be47  fixinc
*** 409,414 ****
--- 409,415 ----
  a911f5fbb127353024e77149fcf90596  fixincludes/tests/base/netdnet/dnetdb.h
  f690db296a82aeefa0bfe9ad74a2b71c  fixincludes/tests/base/netinet/in.h
  2649ccca3396541aeb5e612d4b4a3141  fixincludes/tests/base/netinet/ip.h
+ 209cd203eddb99971d08755fd4912558  fixincludes/tests/base/objc/runtime.h
  f4a72388e98f34c098a3467dce9aa4e1  fixincludes/tests/base/obstack.h
  c213736f179d8de08a09a9278e048d91  fixincludes/tests/base/os/availability.h
  c3da2b1720112f2adb1c2bbf65563364  fixincludes/tests/base/os/base.h
*************** d2f1ddef1ca3edae298e37f7bc892941  fixinc
*** 441,447 ****
  563eddf934e21ec7f85628e18fb1c641  fixincludes/tests/base/stdint-hpux11.h
  cc3783f241fa992a305aced8e1195ee9  fixincludes/tests/base/stdint-newlib.h
  1ee4e2b61ae5781d35271f3181927037  fixincludes/tests/base/stdint.h
! d47412644cdea4f030ba2744eca6d8ad  fixincludes/tests/base/stdio.h
  1887d8bc1711dae9922852cda6027877  fixincludes/tests/base/stdio_tag.h
  63b7afc35517454fd4753b811e9b6e2e  fixincludes/tests/base/stdlib.h
  42a7de17fb8f2ac74bc30c7029199637  fixincludes/tests/base/string.h
--- 442,448 ----
  563eddf934e21ec7f85628e18fb1c641  fixincludes/tests/base/stdint-hpux11.h
  cc3783f241fa992a305aced8e1195ee9  fixincludes/tests/base/stdint-newlib.h
  1ee4e2b61ae5781d35271f3181927037  fixincludes/tests/base/stdint.h
! df6201177ee6354a4bb61b84de3f16b6  fixincludes/tests/base/stdio.h
  1887d8bc1711dae9922852cda6027877  fixincludes/tests/base/stdio_tag.h
  63b7afc35517454fd4753b811e9b6e2e  fixincludes/tests/base/stdlib.h
  42a7de17fb8f2ac74bc30c7029199637  fixincludes/tests/base/string.h
*************** a5e817d35ded04a0fb03999b50c0e89e  fixinc
*** 475,486 ****
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  cdc9afb0404ea932194e623e80f3443f  gcc/ABOUT-GCC-NLS
! edbdfaa5c5054804fc72b34949d1cf6e  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! fc634b2d32d48b149245c5eb70684c15  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 476,487 ----
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  cdc9afb0404ea932194e623e80f3443f  gcc/ABOUT-GCC-NLS
! adea0b61b6fc8b487b2c9452a2f6494e  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! eb61a01b363ae0c8d7d0b1b066850b3e  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 513,519 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 6a93411f698590de2b94f169c9f6d730  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 514,520 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 92d6ee84ed7ecc87818891b317447589  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 524,530 ****
  a3349a2ff19906d526e15f8845deb002  gcc/README.Portability
  7a09ff48173d234174dd04f94f3d495c  gcc/acinclude.m4
  6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
! 08ed911edc9c9c33433cdc5205d2a507  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 525,531 ----
  a3349a2ff19906d526e15f8845deb002  gcc/README.Portability
  7a09ff48173d234174dd04f94f3d495c  gcc/acinclude.m4
  6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
! dc913258c77e0a48dcc268f85315a33e  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** c309b7a190960aa537e3a7707a67bb65  gcc/ad
*** 2975,2986 ****
  0031559b96ebc24dd2c747d1f8a00f12  gcc/ada/xutil.ads
  d3e945808548972240fb2f1b7494a8bd  gcc/addresses.h
  3045d45db0db300d02be3c139d5f8c5b  gcc/adjust-alignment.c
! b7a90c45c5477c6b5975292eb532f64f  gcc/alias.c
! 5446b95e14f1a787f9e0a6d82db041bf  gcc/alias.h
  e561a7bae0b2b221a73a390c77be757b  gcc/align.h
  23442a2d3df1b83bd32978d68e46bcd1  gcc/alloc-pool.c
  3ec9e55d9093d096913575231b7b7943  gcc/alloc-pool.h
! 3700ac4b73516aef576260d2391e704d  gcc/analyzer/ChangeLog
  7ea5759779b2ed252edaea813907bd5a  gcc/analyzer/analysis-plan.cc
  4717c47360bc5772a2a5d0afdeae18e0  gcc/analyzer/analysis-plan.h
  73de39c552e216c1cc1fe1e7d3513cc6  gcc/analyzer/analyzer-logging.cc
--- 2976,2987 ----
  0031559b96ebc24dd2c747d1f8a00f12  gcc/ada/xutil.ads
  d3e945808548972240fb2f1b7494a8bd  gcc/addresses.h
  3045d45db0db300d02be3c139d5f8c5b  gcc/adjust-alignment.c
! 80a14f460e81051a7653f8d9a78c0d99  gcc/alias.c
! 6078725b0f176cea565729f671431eee  gcc/alias.h
  e561a7bae0b2b221a73a390c77be757b  gcc/align.h
  23442a2d3df1b83bd32978d68e46bcd1  gcc/alloc-pool.c
  3ec9e55d9093d096913575231b7b7943  gcc/alloc-pool.h
! f604ed765ca623f0266f02db8e9ccef3  gcc/analyzer/ChangeLog
  7ea5759779b2ed252edaea813907bd5a  gcc/analyzer/analysis-plan.cc
  4717c47360bc5772a2a5d0afdeae18e0  gcc/analyzer/analysis-plan.h
  73de39c552e216c1cc1fe1e7d3513cc6  gcc/analyzer/analyzer-logging.cc
*************** f120126786d5313c48e4fbdef1deb90f  gcc/an
*** 3040,3051 ****
  d126912489f635e7522c41ae704a59c6  gcc/analyzer/store.h
  8e4eceefe5a130b8fe395934d81e06f0  gcc/analyzer/supergraph.cc
  b1345e496e4e4a76d182dc95dd2b92b2  gcc/analyzer/supergraph.h
! b49b0004f99fd470658a7d0207bc8917  gcc/analyzer/svalue.cc
  863cc86de6157d498a4f09fdf38c1386  gcc/analyzer/svalue.h
  185fe9c53545064ee1e53b91358f7de7  gcc/analyzer/trimmed-graph.cc
  74a5cb5dcaf4cfb2dce05019ec345914  gcc/analyzer/trimmed-graph.h
  4dc5fb48242295b1a20860e9026ef907  gcc/array-traits.h
! eb3c809269737f7f4c3b94e4a2bd8dbf  gcc/asan.c
  487ef86d71c549a16efa36238b86952f  gcc/asan.h
  542d06ea0e3478abe23c1efa8f3be1c9  gcc/attr-fnspec.h
  56f7fa0363ae129223b5eb125d069fea  gcc/attribs.c
--- 3041,3052 ----
  d126912489f635e7522c41ae704a59c6  gcc/analyzer/store.h
  8e4eceefe5a130b8fe395934d81e06f0  gcc/analyzer/supergraph.cc
  b1345e496e4e4a76d182dc95dd2b92b2  gcc/analyzer/supergraph.h
! dccee0e7e8d057183607389efcdb458c  gcc/analyzer/svalue.cc
  863cc86de6157d498a4f09fdf38c1386  gcc/analyzer/svalue.h
  185fe9c53545064ee1e53b91358f7de7  gcc/analyzer/trimmed-graph.cc
  74a5cb5dcaf4cfb2dce05019ec345914  gcc/analyzer/trimmed-graph.h
  4dc5fb48242295b1a20860e9026ef907  gcc/array-traits.h
! 1d47925554745d9ce7e061328377ac6e  gcc/asan.c
  487ef86d71c549a16efa36238b86952f  gcc/asan.h
  542d06ea0e3478abe23c1efa8f3be1c9  gcc/attr-fnspec.h
  56f7fa0363ae129223b5eb125d069fea  gcc/attribs.c
*************** b62a19a18359e023c63a5a045f9d97dd  gcc/at
*** 3055,3066 ****
  1963f1d6c80c316f8cdcc8a028d3c9ca  gcc/auto-profile.h
  3ff58d5a06d5eaee37d7cb2ed6c43edf  gcc/backend.h
  c85b11c624a3273aac7365b0f34125b6  gcc/basic-block.h
! 28009e6ac712423681bc6e96d2da535f  gcc/bb-reorder.c
  d0ab00f1b3fc80f5bfda75adc6c362d6  gcc/bb-reorder.h
  49ad33d59190a283fb4c85a41861b83a  gcc/bitmap.c
  08cf7dff98e7181511efc1517f735186  gcc/bitmap.h
  6b9e1cb83032742218edd1600590d286  gcc/brig-builtins.def
! 155f6d9e8fbc91e6580a8d2a5a0d988d  gcc/brig/ChangeLog
  32f54aacbd7e3a02140d36f7e8f58da6  gcc/brig/Make-lang.in
  966892b9e3cc742708ffb50160e7ea6f  gcc/brig/brig-builtins.h
  0676a7ca45684ceb5fbde93beb5b3950  gcc/brig/brig-c.h
--- 3056,3067 ----
  1963f1d6c80c316f8cdcc8a028d3c9ca  gcc/auto-profile.h
  3ff58d5a06d5eaee37d7cb2ed6c43edf  gcc/backend.h
  c85b11c624a3273aac7365b0f34125b6  gcc/basic-block.h
! 17375ded6219e467729ba2490d77bd3d  gcc/bb-reorder.c
  d0ab00f1b3fc80f5bfda75adc6c362d6  gcc/bb-reorder.h
  49ad33d59190a283fb4c85a41861b83a  gcc/bitmap.c
  08cf7dff98e7181511efc1517f735186  gcc/bitmap.h
  6b9e1cb83032742218edd1600590d286  gcc/brig-builtins.def
! 48fc561df0f75d2c8922a29ca4a703d1  gcc/brig/ChangeLog
  32f54aacbd7e3a02140d36f7e8f58da6  gcc/brig/Make-lang.in
  966892b9e3cc742708ffb50160e7ea6f  gcc/brig/brig-builtins.h
  0676a7ca45684ceb5fbde93beb5b3950  gcc/brig/brig-c.h
*************** a1cc43f2d0aedbd5540d15c4ec568a8d  gcc/br
*** 3104,3125 ****
  746844ca02d1cafc9fb4b3f354b3dc78  gcc/brig/lang.opt
  1b7da82494d0c161ca60a8de1b55195a  gcc/builtin-attrs.def
  0fb3ced35d472c83b8689686b224ad01  gcc/builtin-types.def
! f99fcf4646e7b70fc27e5eb3893e1f40  gcc/builtins.c
  ae94d8196a803d4a2c69cded88dbbb76  gcc/builtins.def
  f501faddb738e7422e75672d29bfc823  gcc/builtins.h
! a6e0fcbeafcff3f3e6f0f88984e46c7b  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  ff19b079a30065b282983bff90d28fe1  gcc/c-family/c-ada-spec.c
  aaefdc238734ee62a127bef557ad07e3  gcc/c-family/c-ada-spec.h
  815dd7c5b46ef4b50d5e40c0da6700c7  gcc/c-family/c-attribs.c
! 031c235f8d46cbe87d86009060c1d846  gcc/c-family/c-common.c
  e46ad48dbbcefe97d0490955db40eddf  gcc/c-family/c-common.def
  dfe16edb3b81b111e6c4034e30b62631  gcc/c-family/c-common.h
  b6e403e7f46d368695a66de3ed639255  gcc/c-family/c-cppbuiltin.c
  e8d118aa27a40cfef46375271877c458  gcc/c-family/c-dump.c
  6ec458ba4f30ca4f67e8a0c37cbc852a  gcc/c-family/c-format.c
  24ddc77a1aaacd70e8638b0cbeb2d12d  gcc/c-family/c-format.h
! 77e82f3c8d0ce0df0c22bbf84684cd21  gcc/c-family/c-gimplify.c
  47cae120dbbc6dc65b3d06445c7ffd2c  gcc/c-family/c-indentation.c
  d0a5008a37b6b90aad01170ec4597384  gcc/c-family/c-indentation.h
  987a47512367efd11640028189ddd6da  gcc/c-family/c-lex.c
--- 3105,3126 ----
  746844ca02d1cafc9fb4b3f354b3dc78  gcc/brig/lang.opt
  1b7da82494d0c161ca60a8de1b55195a  gcc/builtin-attrs.def
  0fb3ced35d472c83b8689686b224ad01  gcc/builtin-types.def
! 81e6697b6556d13b7a06f08e719ea4d1  gcc/builtins.c
  ae94d8196a803d4a2c69cded88dbbb76  gcc/builtins.def
  f501faddb738e7422e75672d29bfc823  gcc/builtins.h
! bfc83212c548a4179f546009c603b2a9  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  ff19b079a30065b282983bff90d28fe1  gcc/c-family/c-ada-spec.c
  aaefdc238734ee62a127bef557ad07e3  gcc/c-family/c-ada-spec.h
  815dd7c5b46ef4b50d5e40c0da6700c7  gcc/c-family/c-attribs.c
! e7f8462ca813b129987362c83683b46b  gcc/c-family/c-common.c
  e46ad48dbbcefe97d0490955db40eddf  gcc/c-family/c-common.def
  dfe16edb3b81b111e6c4034e30b62631  gcc/c-family/c-common.h
  b6e403e7f46d368695a66de3ed639255  gcc/c-family/c-cppbuiltin.c
  e8d118aa27a40cfef46375271877c458  gcc/c-family/c-dump.c
  6ec458ba4f30ca4f67e8a0c37cbc852a  gcc/c-family/c-format.c
  24ddc77a1aaacd70e8638b0cbeb2d12d  gcc/c-family/c-format.h
! 02e25f4fbdb6dafd42c7cc58e402be96  gcc/c-family/c-gimplify.c
  47cae120dbbc6dc65b3d06445c7ffd2c  gcc/c-family/c-indentation.c
  d0a5008a37b6b90aad01170ec4597384  gcc/c-family/c-indentation.h
  987a47512367efd11640028189ddd6da  gcc/c-family/c-lex.c
*************** a8a409e310da7c679cbdab6592d319d5  gcc/c-
*** 3138,3153 ****
  1b4bd0524aaca890cc050af5017a483d  gcc/c-family/c-target-def.h
  2a979b918b62205beea7e25f63c95fff  gcc/c-family/c-target.def
  25b2b1b67352149295b6b87a3266dbfd  gcc/c-family/c-target.h
! 76c24983e5b87d60c98c49b5e39fd292  gcc/c-family/c-ubsan.c
  687717e96ebfecf566b59f5ed52dd61c  gcc/c-family/c-ubsan.h
! 4a2cb3c29a7d2f8188445559577ab548  gcc/c-family/c-warn.c
  bf642fdf30770e997cdf36ff997db522  gcc/c-family/c.opt
  dda3a883f8b1367723b357a3494a9ad2  gcc/c-family/cppspec.c
  03976e75d63506e61159cb33e38a17a4  gcc/c-family/known-headers.cc
  24a64eac5a3ca85c2141b26c328e720c  gcc/c-family/known-headers.h
  d945fcf11b0cf9b680801477d4d6dc5d  gcc/c-family/name-hint.h
  10c210b270bd57796c125ceacb8aacf3  gcc/c-family/stub-objc.c
! ecf4e71780d21ba6285bd549d11cd5ab  gcc/c/ChangeLog
  c2c16ebc27917ec274266a7f0a5de762  gcc/c/Make-lang.in
  4b3d7694a2cabd663e29accad2dc49fd  gcc/c/c-aux-info.c
  477103be514e3fee8add675ebdf6c643  gcc/c/c-convert.c
--- 3139,3154 ----
  1b4bd0524aaca890cc050af5017a483d  gcc/c-family/c-target-def.h
  2a979b918b62205beea7e25f63c95fff  gcc/c-family/c-target.def
  25b2b1b67352149295b6b87a3266dbfd  gcc/c-family/c-target.h
! 615baf02ef518f862ee9e2b8d63137a4  gcc/c-family/c-ubsan.c
  687717e96ebfecf566b59f5ed52dd61c  gcc/c-family/c-ubsan.h
! 1cd0ffec66f4869c73b58b091a6ed890  gcc/c-family/c-warn.c
  bf642fdf30770e997cdf36ff997db522  gcc/c-family/c.opt
  dda3a883f8b1367723b357a3494a9ad2  gcc/c-family/cppspec.c
  03976e75d63506e61159cb33e38a17a4  gcc/c-family/known-headers.cc
  24a64eac5a3ca85c2141b26c328e720c  gcc/c-family/known-headers.h
  d945fcf11b0cf9b680801477d4d6dc5d  gcc/c-family/name-hint.h
  10c210b270bd57796c125ceacb8aacf3  gcc/c-family/stub-objc.c
! d89ae831a49c3ce92c9ab504b50d38d3  gcc/c/ChangeLog
  c2c16ebc27917ec274266a7f0a5de762  gcc/c/Make-lang.in
  4b3d7694a2cabd663e29accad2dc49fd  gcc/c/c-aux-info.c
  477103be514e3fee8add675ebdf6c643  gcc/c/c-convert.c
*************** ac32535d53226e7747b1f0c599af0aa6  gcc/c/
*** 3158,3167 ****
  7679e451f36a4519a03c17b2df2b1f45  gcc/c/c-lang.h
  e52e3c088bd255130df86d60669a01b4  gcc/c/c-objc-common.c
  6dedcac49f0945db05052a9a1ccdba34  gcc/c/c-objc-common.h
! fd9cc8f7a7047c24872ebbe627edde56  gcc/c/c-parser.c
  e8275c52f6f57f9005771a7e88cab453  gcc/c/c-parser.h
  88b5db93f3375c32222a9f47e689286d  gcc/c/c-tree.h
! 9d4291cceb1ce6c6bd32ede937605c34  gcc/c/c-typeck.c
  14475dbf3b5b7a18fbbedf33d6d8b389  gcc/c/config-lang.in
  aa25d2829660b30c35d0853ebf4823c8  gcc/c/gccspec.c
  5543668009c8b1a506c088278d56eb1f  gcc/c/gimple-parser.c
--- 3159,3168 ----
  7679e451f36a4519a03c17b2df2b1f45  gcc/c/c-lang.h
  e52e3c088bd255130df86d60669a01b4  gcc/c/c-objc-common.c
  6dedcac49f0945db05052a9a1ccdba34  gcc/c/c-objc-common.h
! c5a5f04c9253b56554baf8a6a8a4d232  gcc/c/c-parser.c
  e8275c52f6f57f9005771a7e88cab453  gcc/c/c-parser.h
  88b5db93f3375c32222a9f47e689286d  gcc/c/c-tree.h
! 78814473dc16d12c4e963b8cdc258a4c  gcc/c/c-typeck.c
  14475dbf3b5b7a18fbbedf33d6d8b389  gcc/c/config-lang.in
  aa25d2829660b30c35d0853ebf4823c8  gcc/c/gccspec.c
  5543668009c8b1a506c088278d56eb1f  gcc/c/gimple-parser.c
*************** c79281095d98e567b1cdd6bd2e75a3d7  gcc/cf
*** 3176,3186 ****
  ca6328adbf190b5d1895b2f4bf21c53b  gcc/cfg.h
  a3f6082ee8044d951dd495cf2599bd46  gcc/cfganal.c
  06649f7ed6b72ab7eec91dad178178ce  gcc/cfganal.h
! 2ac76b0a5a1835a7bd0662c6595617d6  gcc/cfgbuild.c
  8d2d2838a75a74f980c02a0c1dccc6f7  gcc/cfgbuild.h
! a087ea8cb868ef146a0166e01834b655  gcc/cfgcleanup.c
  76493c30b63093a62270af2c53f028b4  gcc/cfgcleanup.h
! a7caec3104f1896bbb3ee04a20132035  gcc/cfgexpand.c
  c4c6266c4888e09280fdca3bcdd6c927  gcc/cfgexpand.h
  241b624068329a0557ba643040ea7a52  gcc/cfghooks.c
  2844f8c444cf87319afcc888a92372d4  gcc/cfghooks.h
--- 3177,3187 ----
  ca6328adbf190b5d1895b2f4bf21c53b  gcc/cfg.h
  a3f6082ee8044d951dd495cf2599bd46  gcc/cfganal.c
  06649f7ed6b72ab7eec91dad178178ce  gcc/cfganal.h
! 3e3abd08a8e1b887f8ddbda223b9d0d3  gcc/cfgbuild.c
  8d2d2838a75a74f980c02a0c1dccc6f7  gcc/cfgbuild.h
! a94deb84dd5fc6b64595cab63c20ef33  gcc/cfgcleanup.c
  76493c30b63093a62270af2c53f028b4  gcc/cfgcleanup.h
! 5efc24463a57cd47518baec856520a34  gcc/cfgexpand.c
  c4c6266c4888e09280fdca3bcdd6c927  gcc/cfgexpand.h
  241b624068329a0557ba643040ea7a52  gcc/cfghooks.c
  2844f8c444cf87319afcc888a92372d4  gcc/cfghooks.h
*************** aa71757a8881b31ac75eda23b83e392d  gcc/cf
*** 3189,3201 ****
  532afc445fb123afc9610af6032bf074  gcc/cfgloopanal.c
  11cf49613ab20334c1fc9121524d6381  gcc/cfgloopmanip.c
  48131d2e7e0d663e5f4d7a8c8c2863f6  gcc/cfgloopmanip.h
! 4baf418bb54906cefac073f3ff23dd15  gcc/cfgrtl.c
  627d4ecbd5c5b924d8cd3e490761285c  gcc/cfgrtl.h
! 3c76f58b3f3e0e44a99975afed43c27e  gcc/cgraph.c
  dccdc21f74f0e2a035bc78105bec8a3e  gcc/cgraph.h
  ab4feb9f136b4b239302421056d5aa8a  gcc/cgraphbuild.c
! c8a1525cfb171995108034e37d5933a6  gcc/cgraphclones.c
! 2b08a54f89b4650895dbbcdb3e2d34e9  gcc/cgraphunit.c
  521bd63dc8fb9c35c26f7a2b7c04f7c6  gcc/cif-code.def
  b49865466bbb7aec08e5fc1f12b8fee1  gcc/collect-utils.c
  35567207ddff3c6a55598c11201c07e9  gcc/collect-utils.h
--- 3190,3202 ----
  532afc445fb123afc9610af6032bf074  gcc/cfgloopanal.c
  11cf49613ab20334c1fc9121524d6381  gcc/cfgloopmanip.c
  48131d2e7e0d663e5f4d7a8c8c2863f6  gcc/cfgloopmanip.h
! 7bf9f75c65dd6f9e9b1da7c72c428e08  gcc/cfgrtl.c
  627d4ecbd5c5b924d8cd3e490761285c  gcc/cfgrtl.h
! 530c51ce28366a11c1baa106191e926f  gcc/cgraph.c
  dccdc21f74f0e2a035bc78105bec8a3e  gcc/cgraph.h
  ab4feb9f136b4b239302421056d5aa8a  gcc/cgraphbuild.c
! 2e0e2270544ae7a62b3b8239ced0ca1c  gcc/cgraphclones.c
! ec153e08f4ada3e7c7c719f45eb8a049  gcc/cgraphunit.c
  521bd63dc8fb9c35c26f7a2b7c04f7c6  gcc/cif-code.def
  b49865466bbb7aec08e5fc1f12b8fee1  gcc/collect-utils.c
  35567207ddff3c6a55598c11201c07e9  gcc/collect-utils.h
*************** f7e4d84c9831e6b006e3abaf0cda296d  gcc/co
*** 3207,3213 ****
  ed6f48014eba9e2fdba773c6bbc66f41  gcc/combine-stack-adj.c
  a75f6f58e211cbfa8cfc60d8948c376d  gcc/combine.c
  654752e8e1da5146591a7aa1c1503728  gcc/common.md
! e830d7a639390f601506579c91d429ac  gcc/common.opt
  d39719c8a8249d7c11783eb1a99e6629  gcc/common/common-target-def.h
  77b5f9067bdf47c77a81595371bc8097  gcc/common/common-target.def
  e99e94f2234ef2a69147e0d4ee70f2b4  gcc/common/common-target.h
--- 3208,3214 ----
  ed6f48014eba9e2fdba773c6bbc66f41  gcc/combine-stack-adj.c
  a75f6f58e211cbfa8cfc60d8948c376d  gcc/combine.c
  654752e8e1da5146591a7aa1c1503728  gcc/common.md
! 818fcd32d89e72a6db1615fc91582a7c  gcc/common.opt
  d39719c8a8249d7c11783eb1a99e6629  gcc/common/common-target-def.h
  77b5f9067bdf47c77a81595371bc8097  gcc/common/common-target.def
  e99e94f2234ef2a69147e0d4ee70f2b4  gcc/common/common-target.h
*************** b9e205cf83be687340f57069d2828c97  gcc/co
*** 3230,3238 ****
  b302028eafbaf815953381baed1c74b4  gcc/common/config/frv/frv-common.c
  9b09cc59d4b2abf439f40174f9576a69  gcc/common/config/gcn/gcn-common.c
  4c82be520bd57ce5fdb0b57810fa90c9  gcc/common/config/h8300/h8300-common.c
! cc097d962111af656c91ce30b31c5590  gcc/common/config/i386/cpuinfo.h
  6dc32a89301fd0b5dcf0460900c0f84a  gcc/common/config/i386/i386-common.c
! abdf89aeee73e0bc78d1c7c7096c04de  gcc/common/config/i386/i386-cpuinfo.h
  2b7433f285684f4da203c7d39cd60be7  gcc/common/config/i386/i386-isas.h
  41afdf8ce4284f33a46b2605ce6eafc7  gcc/common/config/ia64/ia64-common.c
  48dcb9e9504ab558c9bfeb4d255c570a  gcc/common/config/iq2000/iq2000-common.c
--- 3231,3239 ----
  b302028eafbaf815953381baed1c74b4  gcc/common/config/frv/frv-common.c
  9b09cc59d4b2abf439f40174f9576a69  gcc/common/config/gcn/gcn-common.c
  4c82be520bd57ce5fdb0b57810fa90c9  gcc/common/config/h8300/h8300-common.c
! a0bdd91975466928ae652590600a9392  gcc/common/config/i386/cpuinfo.h
  6dc32a89301fd0b5dcf0460900c0f84a  gcc/common/config/i386/i386-common.c
! ec43e15f9e540baed2aa8ddcf0da00ad  gcc/common/config/i386/i386-cpuinfo.h
  2b7433f285684f4da203c7d39cd60be7  gcc/common/config/i386/i386-isas.h
  41afdf8ce4284f33a46b2605ce6eafc7  gcc/common/config/ia64/ia64-common.c
  48dcb9e9504ab558c9bfeb4d255c570a  gcc/common/config/iq2000/iq2000-common.c
*************** adb9f88eafb276d0ce398300d4103015  gcc/co
*** 3268,3290 ****
  b2ffc0034da9ccbf178a5e5748c52c0a  gcc/compare-elim.c
  e4b6829ec591a11a2cb0db458fe65ff2  gcc/conditions.h
  cc62394ef13d37ac049f14027a48482a  gcc/config.build
! 186f10f255472d14437dc2b523ace799  gcc/config.gcc
  31bf67644c4d7d8b27828e16398dc1d9  gcc/config.host
  de5f053f58e1109f62bcdbdef6b90b44  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  1e9e77d433aa4a980b2aa08ff1ac55db  gcc/config/aarch64/aarch64-arches.def
  1ab879dfa2a1dd57f0cacc5494704f42  gcc/config/aarch64/aarch64-bti-insert.c
! 73f1d76b1e34329d429fa9dd801cea9e  gcc/config/aarch64/aarch64-builtins.c
! 40828c1edbad134cf62039c3f3acb336  gcc/config/aarch64/aarch64-c.c
  e59a3f748c562e36ae56da5a4a570356  gcc/config/aarch64/aarch64-cc-fusion.cc
! 6fb063c2a47c49fad6e24534f9f99f8b  gcc/config/aarch64/aarch64-cores.def
! b4d9dcbbe8caafbf9854283fbc6e3238  gcc/config/aarch64/aarch64-cost-tables.h
  7a209f0ae0add87b9144ece813928a90  gcc/config/aarch64/aarch64-d.c
  89bdbb01cb73e3f0919c1d6d2ba307bb  gcc/config/aarch64/aarch64-elf-raw.h
  f21ecc1635eb9a794f1d03cc75500f1d  gcc/config/aarch64/aarch64-elf.h
  90d5a8b0bf7c4aee052f2892bd06cd9f  gcc/config/aarch64/aarch64-errata.h
  8933374edbf830f362aa88cc9cbf56bf  gcc/config/aarch64/aarch64-freebsd.h
! 81e20548549eec1bda12655880536aff  gcc/config/aarch64/aarch64-fusion-pairs.def
  4bf6eb8aa5d716f9f3868a520832836a  gcc/config/aarch64/aarch64-ldpstp.md
  02999a24065853e9ae6c97ba1453c6e2  gcc/config/aarch64/aarch64-linux.h
  900f62f582105e91c9eba7381f3b34a0  gcc/config/aarch64/aarch64-modes.def
--- 3269,3291 ----
  b2ffc0034da9ccbf178a5e5748c52c0a  gcc/compare-elim.c
  e4b6829ec591a11a2cb0db458fe65ff2  gcc/conditions.h
  cc62394ef13d37ac049f14027a48482a  gcc/config.build
! f17e0998d15b8c5033cfb753487d8ddf  gcc/config.gcc
  31bf67644c4d7d8b27828e16398dc1d9  gcc/config.host
  de5f053f58e1109f62bcdbdef6b90b44  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  1e9e77d433aa4a980b2aa08ff1ac55db  gcc/config/aarch64/aarch64-arches.def
  1ab879dfa2a1dd57f0cacc5494704f42  gcc/config/aarch64/aarch64-bti-insert.c
! c95e78d7955efa8d506c30984a8048ac  gcc/config/aarch64/aarch64-builtins.c
! 6dfd583d75225a11b336bcdb7689f691  gcc/config/aarch64/aarch64-c.c
  e59a3f748c562e36ae56da5a4a570356  gcc/config/aarch64/aarch64-cc-fusion.cc
! 056adad61de1c550e16140c80102018b  gcc/config/aarch64/aarch64-cores.def
! a8cd1db666eef3a23102e56a5c4b70cb  gcc/config/aarch64/aarch64-cost-tables.h
  7a209f0ae0add87b9144ece813928a90  gcc/config/aarch64/aarch64-d.c
  89bdbb01cb73e3f0919c1d6d2ba307bb  gcc/config/aarch64/aarch64-elf-raw.h
  f21ecc1635eb9a794f1d03cc75500f1d  gcc/config/aarch64/aarch64-elf.h
  90d5a8b0bf7c4aee052f2892bd06cd9f  gcc/config/aarch64/aarch64-errata.h
  8933374edbf830f362aa88cc9cbf56bf  gcc/config/aarch64/aarch64-freebsd.h
! 55c912c18de2bcf6d2826822bf58c5b3  gcc/config/aarch64/aarch64-fusion-pairs.def
  4bf6eb8aa5d716f9f3868a520832836a  gcc/config/aarch64/aarch64-ldpstp.md
  02999a24065853e9ae6c97ba1453c6e2  gcc/config/aarch64/aarch64-linux.h
  900f62f582105e91c9eba7381f3b34a0  gcc/config/aarch64/aarch64-modes.def
*************** c5cb6a8b03d65fae0375198834e67a89  gcc/co
*** 3292,3301 ****
  b94d8d3eab975242d7f1db8a1921e2d4  gcc/config/aarch64/aarch64-option-extensions.def
  5070a0c7b6edddd4794f877823f6a675  gcc/config/aarch64/aarch64-opts.h
  bd39101ee7e523cee8589bddf788a863  gcc/config/aarch64/aarch64-passes.def
! 74161d5048d9a6a157d644ae98ba38e0  gcc/config/aarch64/aarch64-protos.h
  f4e8ddb01a0c073af7bd47950e5052d8  gcc/config/aarch64/aarch64-simd-builtin-types.def
  a57e7294debe2760574e76f5405efc29  gcc/config/aarch64/aarch64-simd-builtins.def
! 48798f4881b4294ff03e89b3573283b0  gcc/config/aarch64/aarch64-simd.md
  5a9f2f65b25636e30ba5254866b36124  gcc/config/aarch64/aarch64-speculation.cc
  2193126f11ce458f9f1292dcf8f9f1bf  gcc/config/aarch64/aarch64-sve-builtins-base.cc
  2e5ac221624603ecfcaff6c29bbc8ff0  gcc/config/aarch64/aarch64-sve-builtins-base.def
--- 3293,3302 ----
  b94d8d3eab975242d7f1db8a1921e2d4  gcc/config/aarch64/aarch64-option-extensions.def
  5070a0c7b6edddd4794f877823f6a675  gcc/config/aarch64/aarch64-opts.h
  bd39101ee7e523cee8589bddf788a863  gcc/config/aarch64/aarch64-passes.def
! 9818f749993dd987489c455f92286a60  gcc/config/aarch64/aarch64-protos.h
  f4e8ddb01a0c073af7bd47950e5052d8  gcc/config/aarch64/aarch64-simd-builtin-types.def
  a57e7294debe2760574e76f5405efc29  gcc/config/aarch64/aarch64-simd-builtins.def
! 671d4d83c0b5e1053427ffbbc085e124  gcc/config/aarch64/aarch64-simd.md
  5a9f2f65b25636e30ba5254866b36124  gcc/config/aarch64/aarch64-speculation.cc
  2193126f11ce458f9f1292dcf8f9f1bf  gcc/config/aarch64/aarch64-sve-builtins-base.cc
  2e5ac221624603ecfcaff6c29bbc8ff0  gcc/config/aarch64/aarch64-sve-builtins-base.def
*************** a48e47086140739b3f98e0b42b8b2c88  gcc/co
*** 3306,3324 ****
  d825b33742f9b68f8efbad389e7a83ff  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
  d7b507459d8322632f7a6054d221420c  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
  27772360ef1e61832d4975722c8f9388  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 8b07b4ea6c45579f7a06fee6c687e734  gcc/config/aarch64/aarch64-sve-builtins.cc
  84e976c61e7df417c4615f873f6260d9  gcc/config/aarch64/aarch64-sve-builtins.def
  2bb49c05f0be70f85d5eb7341a3fed80  gcc/config/aarch64/aarch64-sve-builtins.h
! 6cefef30f3cc1d09d20dbbb0cd69121b  gcc/config/aarch64/aarch64-sve.md
  024f1f15f2747beb21971036aa2e89d9  gcc/config/aarch64/aarch64-sve2.md
! 93880d302d6c66c857022719598265b0  gcc/config/aarch64/aarch64-tune.md
! 02788d998926c5d56579837ba517a991  gcc/config/aarch64/aarch64-tuning-flags.def
  9f502cdcedcd85f77d279b53ea68cfc3  gcc/config/aarch64/aarch64-vxworks.h
! 2a4ac397720238bf00c6070f51b8869f  gcc/config/aarch64/aarch64.c
! 0ca942e84e4b92f73aaaec7bfa1ccbc9  gcc/config/aarch64/aarch64.h
! 477f0cc9cbbc752a226b3a17f9a95f90  gcc/config/aarch64/aarch64.md
  4923901cd53cde9dcd83c7f0dab8ef58  gcc/config/aarch64/aarch64.opt
! 9fef16059a26a1320f080c830acef3bf  gcc/config/aarch64/arm_acle.h
  ba8c2535e9626ae4e550de5047888287  gcc/config/aarch64/arm_bf16.h
  05d7dd122d4058557d659713d2c9b8c7  gcc/config/aarch64/arm_fp16.h
  ae69dc7e22047d2b46f6970580beb3c1  gcc/config/aarch64/arm_neon.h
--- 3307,3325 ----
  d825b33742f9b68f8efbad389e7a83ff  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
  d7b507459d8322632f7a6054d221420c  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
  27772360ef1e61832d4975722c8f9388  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! f381214b5d5ff96ed05d9296a8dad996  gcc/config/aarch64/aarch64-sve-builtins.cc
  84e976c61e7df417c4615f873f6260d9  gcc/config/aarch64/aarch64-sve-builtins.def
  2bb49c05f0be70f85d5eb7341a3fed80  gcc/config/aarch64/aarch64-sve-builtins.h
! 94052bc1aaba0562b41cdec72a6bf3d2  gcc/config/aarch64/aarch64-sve.md
  024f1f15f2747beb21971036aa2e89d9  gcc/config/aarch64/aarch64-sve2.md
! 7a4bb120600e31ed57d0f67899d78b73  gcc/config/aarch64/aarch64-tune.md
! 7f19a3ee43fa4e79042af495fd7df059  gcc/config/aarch64/aarch64-tuning-flags.def
  9f502cdcedcd85f77d279b53ea68cfc3  gcc/config/aarch64/aarch64-vxworks.h
! 8ae759b088267544c6edf2106d6793cd  gcc/config/aarch64/aarch64.c
! 0b52542f189074aa879e806a7668b8a4  gcc/config/aarch64/aarch64.h
! b5668d7c6a7fe3ba62e03202d4bf621d  gcc/config/aarch64/aarch64.md
  4923901cd53cde9dcd83c7f0dab8ef58  gcc/config/aarch64/aarch64.opt
! f10dcbf353793be47c4ad2b77e1ad69d  gcc/config/aarch64/arm_acle.h
  ba8c2535e9626ae4e550de5047888287  gcc/config/aarch64/arm_bf16.h
  05d7dd122d4058557d659713d2c9b8c7  gcc/config/aarch64/arm_fp16.h
  ae69dc7e22047d2b46f6970580beb3c1  gcc/config/aarch64/arm_neon.h
*************** c5e4dc1aa8aa96b1e98708782e715b10  gcc/co
*** 3329,3341 ****
  d1bbf361745ec677a615eb0a11e5b715  gcc/config/aarch64/check-sve-md.awk
  3985ee432d883112d1960e775ad320a7  gcc/config/aarch64/constraints.md
  1ad03640d8fc76d1f796698531cdb0f1  gcc/config/aarch64/cortex-a57-fma-steering.c
! cf52b0975e4c0d0924ed38da6a43949c  gcc/config/aarch64/driver-aarch64.c
  9dca576b967f36193e144d26def4a9c5  gcc/config/aarch64/falkor-tag-collision-avoidance.c
  72804cc2b3f5d7e52809a06b3c251c54  gcc/config/aarch64/falkor.md
  63d0eebbd3376ae240e4547760915f66  gcc/config/aarch64/fractional-cost.h
  67157c8970cb22f05a2e298f9a6b84c7  gcc/config/aarch64/geniterators.sh
  9a3499491d4a8101f057a66925192785  gcc/config/aarch64/gentune.sh
! 05fb97992a51e3216fc9eb440e168427  gcc/config/aarch64/iterators.md
  22bf9e47c529401c9f9ae72aeefdfeb7  gcc/config/aarch64/predicates.md
  1a2b7c99ac3e699f010a2a5e143dfb8c  gcc/config/aarch64/rtems.h
  38550170272505346a8ad5dd6a1b63db  gcc/config/aarch64/saphira.md
--- 3330,3342 ----
  d1bbf361745ec677a615eb0a11e5b715  gcc/config/aarch64/check-sve-md.awk
  3985ee432d883112d1960e775ad320a7  gcc/config/aarch64/constraints.md
  1ad03640d8fc76d1f796698531cdb0f1  gcc/config/aarch64/cortex-a57-fma-steering.c
! 7484801d7f14ff59d7ec591e7462671c  gcc/config/aarch64/driver-aarch64.c
  9dca576b967f36193e144d26def4a9c5  gcc/config/aarch64/falkor-tag-collision-avoidance.c
  72804cc2b3f5d7e52809a06b3c251c54  gcc/config/aarch64/falkor.md
  63d0eebbd3376ae240e4547760915f66  gcc/config/aarch64/fractional-cost.h
  67157c8970cb22f05a2e298f9a6b84c7  gcc/config/aarch64/geniterators.sh
  9a3499491d4a8101f057a66925192785  gcc/config/aarch64/gentune.sh
! 486ecb4436f44ec8def58519a064e673  gcc/config/aarch64/iterators.md
  22bf9e47c529401c9f9ae72aeefdfeb7  gcc/config/aarch64/predicates.md
  1a2b7c99ac3e699f010a2a5e143dfb8c  gcc/config/aarch64/rtems.h
  38550170272505346a8ad5dd6a1b63db  gcc/config/aarch64/saphira.md
*************** cffb77e28aaee1ef71df44208c8cf08e  gcc/co
*** 3351,3358 ****
  8b41b511cae4a5eda35cf19755875d5a  gcc/config/aarch64/x-aarch64
  3af502026ddf49d69ce20f7f355413c5  gcc/config/alpha/alpha-modes.def
  7b2a95a3c1649335efec41840c0563b4  gcc/config/alpha/alpha-passes.def
! 734c46dde1390585094d037bd921b4be  gcc/config/alpha/alpha-protos.h
! 5555e630af513fb70ff81e8224650ddf  gcc/config/alpha/alpha.c
  b583c637be36f7ba4943158c259f9071  gcc/config/alpha/alpha.h
  96f465578b3bc22c52447c9dfa49487b  gcc/config/alpha/alpha.md
  c8a659f2d0ece9ed25fb00c2b65109dc  gcc/config/alpha/alpha.opt
--- 3352,3359 ----
  8b41b511cae4a5eda35cf19755875d5a  gcc/config/aarch64/x-aarch64
  3af502026ddf49d69ce20f7f355413c5  gcc/config/alpha/alpha-modes.def
  7b2a95a3c1649335efec41840c0563b4  gcc/config/alpha/alpha-passes.def
! 42eb8ee353bebcf838d4dac63080b578  gcc/config/alpha/alpha-protos.h
! 1179957aae0dacf5d55cb9af5eea6b54  gcc/config/alpha/alpha.c
  b583c637be36f7ba4943158c259f9071  gcc/config/alpha/alpha.h
  96f465578b3bc22c52447c9dfa49487b  gcc/config/alpha/alpha.md
  c8a659f2d0ece9ed25fb00c2b65109dc  gcc/config/alpha/alpha.opt
*************** a69c90e08fbd52ed0a529d829106ee0b  gcc/co
*** 3360,3366 ****
  922bc1be27f184824dfc6ee89eb40afb  gcc/config/alpha/driver-alpha.c
  71b456abb6ba28ef390d8665eb986ca7  gcc/config/alpha/elf.h
  b2e7fd5895398a60097812bda344908e  gcc/config/alpha/elf.opt
! 24c560b186b12f1e569216f1fdee293d  gcc/config/alpha/ev4.md
  2c40c2dff38fa716014d2a876f121e92  gcc/config/alpha/ev5.md
  9548e09fdf569e439f479c3e8d8f6cf9  gcc/config/alpha/ev6.md
  94ba2e261cf99a359bb052692241ed4e  gcc/config/alpha/linux-elf.h
--- 3361,3367 ----
  922bc1be27f184824dfc6ee89eb40afb  gcc/config/alpha/driver-alpha.c
  71b456abb6ba28ef390d8665eb986ca7  gcc/config/alpha/elf.h
  b2e7fd5895398a60097812bda344908e  gcc/config/alpha/elf.opt
! ab10061cf05df77f5cfdfad95aa094c2  gcc/config/alpha/ev4.md
  2c40c2dff38fa716014d2a876f121e92  gcc/config/alpha/ev5.md
  9548e09fdf569e439f479c3e8d8f6cf9  gcc/config/alpha/ev6.md
  94ba2e261cf99a359bb052692241ed4e  gcc/config/alpha/linux-elf.h
*************** e697f61ce1f19207b754f9e4e060df79  gcc/co
*** 3427,3437 ****
  cadb5b1cf604bbd9e06000676a096db5  gcc/config/arm/arm-ldmstm.ml
  05bf396d4add547832f286e046643971  gcc/config/arm/arm-modes.def
  25635e5e9dde05adc23f3ba0d5866385  gcc/config/arm/arm-opts.h
! acae73854486ed7ab4e8e8af88c5eb58  gcc/config/arm/arm-protos.h
  095ccfc0877933dc53eb40c2369fcf9a  gcc/config/arm/arm-simd-builtin-types.def
  e15ee919dad399c4e00ca11efe4bcd94  gcc/config/arm/arm-tables.opt
  d70a50caf4aae1fb3ab57300fd85cd84  gcc/config/arm/arm-tune.md
! a6942f87d3c677f8628741b7c277c775  gcc/config/arm/arm.c
  fa7937aa82161053523e64455115ac0d  gcc/config/arm/arm.h
  9b8b431e40e39b11d70fe124e6b05b1e  gcc/config/arm/arm.md
  eabc54f06df24e849baa2f7e1d988bb0  gcc/config/arm/arm.opt
--- 3428,3438 ----
  cadb5b1cf604bbd9e06000676a096db5  gcc/config/arm/arm-ldmstm.ml
  05bf396d4add547832f286e046643971  gcc/config/arm/arm-modes.def
  25635e5e9dde05adc23f3ba0d5866385  gcc/config/arm/arm-opts.h
! 2854ea05379432f5a17666cbbef71d82  gcc/config/arm/arm-protos.h
  095ccfc0877933dc53eb40c2369fcf9a  gcc/config/arm/arm-simd-builtin-types.def
  e15ee919dad399c4e00ca11efe4bcd94  gcc/config/arm/arm-tables.opt
  d70a50caf4aae1fb3ab57300fd85cd84  gcc/config/arm/arm-tune.md
! e36e918c57c52b17c910038b841d3f73  gcc/config/arm/arm.c
  fa7937aa82161053523e64455115ac0d  gcc/config/arm/arm.h
  9b8b431e40e39b11d70fe124e6b05b1e  gcc/config/arm/arm.md
  eabc54f06df24e849baa2f7e1d988bb0  gcc/config/arm/arm.opt
*************** cbca5f0c85ad3b6ac0e5929359764930  gcc/co
*** 3454,3460 ****
  d046918bcae84588bd3674d5fd1379da  gcc/config/arm/arm_vfp_builtins.def
  d38fb86a101a0c45b14efe3c44729d0c  gcc/config/arm/bpabi.h
  f202d6b26eae69e1d38719f4676cf1b9  gcc/config/arm/common.md
! 98b2033272cadcfab68d536db9fd764b  gcc/config/arm/constraints.md
  3ead1f829830bdb9b191217dd8bed34c  gcc/config/arm/cortex-a15-neon.md
  995634fa135396159bf8d72f6af5b817  gcc/config/arm/cortex-a15.md
  9dce3b82c4f7d4e8e6740b8fd8bac33c  gcc/config/arm/cortex-a17-neon.md
--- 3455,3461 ----
  d046918bcae84588bd3674d5fd1379da  gcc/config/arm/arm_vfp_builtins.def
  d38fb86a101a0c45b14efe3c44729d0c  gcc/config/arm/bpabi.h
  f202d6b26eae69e1d38719f4676cf1b9  gcc/config/arm/common.md
! 1a830e73dea8e1e8bfe04d3c1795829d  gcc/config/arm/constraints.md
  3ead1f829830bdb9b191217dd8bed34c  gcc/config/arm/cortex-a15-neon.md
  995634fa135396159bf8d72f6af5b817  gcc/config/arm/cortex-a15.md
  9dce3b82c4f7d4e8e6740b8fd8bac33c  gcc/config/arm/cortex-a17-neon.md
*************** bd2045b2f5d8245c16a45237dce679a6  gcc/co
*** 3495,3506 ****
  41ed5979d5b4c0328c84b1411af4d063  gcc/config/arm/marvell-f-iwmmxt.md
  64a1f7d58f31d526a6b511b59068a296  gcc/config/arm/marvell-pj4.md
  43fdc3285e4cf2925affd75f5e519dda  gcc/config/arm/mmintrin.h
! de871d10cad9745db0ca15dd6c63933a  gcc/config/arm/mve.md
  9f532768a1dd1fd1a7115fc72bbf7a88  gcc/config/arm/neon.md
  e602d4f71105bebaba1f0160067b903c  gcc/config/arm/netbsd-eabi.h
  4868137991adc2b3ed94f92b94681a5c  gcc/config/arm/netbsd-elf.h
  cae8e4d7062cc8528b86ba742f87b233  gcc/config/arm/parsecpu.awk
! 6cd54aae61604447f82f1f8ce4241e07  gcc/config/arm/predicates.md
  caa19ea0702740cb515513dc3ffd1b34  gcc/config/arm/rtems.h
  fd8f292e71a132025a8830e9fb1d20a5  gcc/config/arm/semi.h
  e726b8b47355a98ca8086010faca628b  gcc/config/arm/symbian.h
--- 3496,3507 ----
  41ed5979d5b4c0328c84b1411af4d063  gcc/config/arm/marvell-f-iwmmxt.md
  64a1f7d58f31d526a6b511b59068a296  gcc/config/arm/marvell-pj4.md
  43fdc3285e4cf2925affd75f5e519dda  gcc/config/arm/mmintrin.h
! 08e38ef92c274dd24676b4aaf7678b20  gcc/config/arm/mve.md
  9f532768a1dd1fd1a7115fc72bbf7a88  gcc/config/arm/neon.md
  e602d4f71105bebaba1f0160067b903c  gcc/config/arm/netbsd-eabi.h
  4868137991adc2b3ed94f92b94681a5c  gcc/config/arm/netbsd-elf.h
  cae8e4d7062cc8528b86ba742f87b233  gcc/config/arm/parsecpu.awk
! 2b02d6249135902e69ceb96d1aa7e319  gcc/config/arm/predicates.md
  caa19ea0702740cb515513dc3ffd1b34  gcc/config/arm/rtems.h
  fd8f292e71a132025a8830e9fb1d20a5  gcc/config/arm/semi.h
  e726b8b47355a98ca8086010faca628b  gcc/config/arm/symbian.h
*************** c1ce8990c1043f299ab96a7d2c9feac2  gcc/co
*** 3526,3532 ****
  9bc8c1d93425150291f333f13713387d  gcc/config/arm/uclinuxfdpiceabi.h
  3285e4d14032fb0ae4faa2809a98b43b  gcc/config/arm/unknown-elf.h
  4d486054574a4f147041002f62b9faa5  gcc/config/arm/unspecs.md
! 63618d304ddef37b30a4e977d5558a61  gcc/config/arm/vec-common.md
  e03dd376edfeaf6532effda3526527c1  gcc/config/arm/vfp.md
  5b03ce06f03ed9738ed6cee13b1475ab  gcc/config/arm/vfp11.md
  77f809b2e1735d57d8681bbd8e506d7c  gcc/config/arm/vxworks.h
--- 3527,3533 ----
  9bc8c1d93425150291f333f13713387d  gcc/config/arm/uclinuxfdpiceabi.h
  3285e4d14032fb0ae4faa2809a98b43b  gcc/config/arm/unknown-elf.h
  4d486054574a4f147041002f62b9faa5  gcc/config/arm/unspecs.md
! efe5977515d447ef320d17e4fe861fb0  gcc/config/arm/vec-common.md
  e03dd376edfeaf6532effda3526527c1  gcc/config/arm/vfp.md
  5b03ce06f03ed9738ed6cee13b1475ab  gcc/config/arm/vfp11.md
  77f809b2e1735d57d8681bbd8e506d7c  gcc/config/arm/vxworks.h
*************** d60f590cb6f4d4348e1e3d111785452e  gcc/co
*** 3662,3676 ****
  50644547da413f442c233fc649602657  gcc/config/csky/t-csky-elf
  75c37c753546509bef2946cf75d47653  gcc/config/csky/t-csky-linux
  4495725c3c863ee081187ccfd1118a02  gcc/config/csky/t-sysroot-suffix
! a8233b75fe59757a51457ef68fe9678c  gcc/config/darwin-c.c
  bf77a54b5c52ed103705a4e960d9f814  gcc/config/darwin-d.c
! 7c3e8c7f69a5d63e6061bdfeda0ba727  gcc/config/darwin-driver.c
  dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29  gcc/config/darwin-f.c
  1e7f34ef6b48c907fbf5b2d5a629e957  gcc/config/darwin-ppc-ldouble-patch.def
  d888c4de74a969d5751349e288d4728d  gcc/config/darwin-protos.h
  fe391a430f76c969aa3909a7239a4812  gcc/config/darwin-sections.def
! 742a51260c78210a2dd5cbd87312e6ba  gcc/config/darwin.c
! 050abc87b0d8cec0efab57ee18a61c6e  gcc/config/darwin.h
  3d206af3a9f3e409c3fa42bc4e807a7b  gcc/config/darwin.opt
  23bab33707e2ef99310565f620c62080  gcc/config/dbx.h
  04c3ad90675d44af0d58b60b7ce96c32  gcc/config/dbxcoff.h
--- 3663,3677 ----
  50644547da413f442c233fc649602657  gcc/config/csky/t-csky-elf
  75c37c753546509bef2946cf75d47653  gcc/config/csky/t-csky-linux
  4495725c3c863ee081187ccfd1118a02  gcc/config/csky/t-sysroot-suffix
! 32fa12cd23b65d83071a707bdc001a13  gcc/config/darwin-c.c
  bf77a54b5c52ed103705a4e960d9f814  gcc/config/darwin-d.c
! 6c3d6a0a08530389c3655e5d20ab8743  gcc/config/darwin-driver.c
  dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29  gcc/config/darwin-f.c
  1e7f34ef6b48c907fbf5b2d5a629e957  gcc/config/darwin-ppc-ldouble-patch.def
  d888c4de74a969d5751349e288d4728d  gcc/config/darwin-protos.h
  fe391a430f76c969aa3909a7239a4812  gcc/config/darwin-sections.def
! ebaf866f07c93c3c0b4d518a42c37d1e  gcc/config/darwin.c
! b1ac0459ed54d15d64c9aedddee8aeba  gcc/config/darwin.h
  3d206af3a9f3e409c3fa42bc4e807a7b  gcc/config/darwin.opt
  23bab33707e2ef99310565f620c62080  gcc/config/dbx.h
  04c3ad90675d44af0d58b60b7ce96c32  gcc/config/dbxcoff.h
*************** f4ac9cdd6fe1c388fb12a3695be9e14b  gcc/co
*** 3814,3820 ****
  fc95a6779839884b9fc3c3eecfab9669  gcc/config/i386/avx512cdintrin.h
  77f8546571fb61d83fb84241a97b7fd0  gcc/config/i386/avx512dqintrin.h
  8cc4f2851dfd47e6cbd9f8043434b618  gcc/config/i386/avx512erintrin.h
! 57760a73af5f476ce5071cf19e403644  gcc/config/i386/avx512fintrin.h
  06c4e386cd05fafff0c2d017aa8ba05e  gcc/config/i386/avx512ifmaintrin.h
  3a6a368007d6b7c1d9bc93f91ca4bfc3  gcc/config/i386/avx512ifmavlintrin.h
  2c23a2ad463c4660ffec749da97c76b5  gcc/config/i386/avx512pfintrin.h
--- 3815,3821 ----
  fc95a6779839884b9fc3c3eecfab9669  gcc/config/i386/avx512cdintrin.h
  77f8546571fb61d83fb84241a97b7fd0  gcc/config/i386/avx512dqintrin.h
  8cc4f2851dfd47e6cbd9f8043434b618  gcc/config/i386/avx512erintrin.h
! 94723ea29a29139d8e88be666b36fb96  gcc/config/i386/avx512fintrin.h
  06c4e386cd05fafff0c2d017aa8ba05e  gcc/config/i386/avx512ifmaintrin.h
  3a6a368007d6b7c1d9bc93f91ca4bfc3  gcc/config/i386/avx512ifmavlintrin.h
  2c23a2ad463c4660ffec749da97c76b5  gcc/config/i386/avx512pfintrin.h
*************** a2f5dc3cebc9ff380d4e2f7612ee5a71  gcc/co
*** 3858,3866 ****
  c9c593611b6e66ec45e60aa9d4ff592d  gcc/config/i386/cygming.opt
  e54ea527bab7db8b62707abf7d8590ca  gcc/config/i386/cygwin-stdint.h
  b5ae0a1d0b938c1efa427d0072eabbf1  gcc/config/i386/cygwin-w64.h
! 986fdbf17c77b47402de2e1d369fdb93  gcc/config/i386/cygwin.h
  aa7f76fe99be46381f2818bb1514a2f5  gcc/config/i386/cygwin.opt
! b8fc0b400408d58cc2bb1539185eec9e  gcc/config/i386/darwin.h
  e4db542240e16290cbdc69380f3b9dc6  gcc/config/i386/darwin32-biarch.h
  1656f562846ff5f0c45ad1291cc82d18  gcc/config/i386/darwin64-biarch.h
  2361d24556fbdcd6f9f833148a1254fa  gcc/config/i386/djgpp-stdint.h
--- 3859,3867 ----
  c9c593611b6e66ec45e60aa9d4ff592d  gcc/config/i386/cygming.opt
  e54ea527bab7db8b62707abf7d8590ca  gcc/config/i386/cygwin-stdint.h
  b5ae0a1d0b938c1efa427d0072eabbf1  gcc/config/i386/cygwin-w64.h
! 0fcac3fd5e4a1cdc600c80238bce281d  gcc/config/i386/cygwin.h
  aa7f76fe99be46381f2818bb1514a2f5  gcc/config/i386/cygwin.opt
! a7f12e2ab124f344ad1fb5c08366d2e7  gcc/config/i386/darwin.h
  e4db542240e16290cbdc69380f3b9dc6  gcc/config/i386/darwin32-biarch.h
  1656f562846ff5f0c45ad1291cc82d18  gcc/config/i386/darwin64-biarch.h
  2361d24556fbdcd6f9f833148a1254fa  gcc/config/i386/djgpp-stdint.h
*************** d87f5906e5cee04c568119528636e1c2  gcc/co
*** 3885,3891 ****
  150b5138b9224e24e53f821c744484eb  gcc/config/i386/glm.md
  1875affe4277584801678d7587573a36  gcc/config/i386/gmm_malloc.h
  1c08f4ff502d16c18bb54e318e030ce4  gcc/config/i386/gnu-property.c
! c9dd44c13100f270f8dac4c4353d5205  gcc/config/i386/gnu-user-common.h
  f63afc859775aca634f9c3038a88a2e8  gcc/config/i386/gnu-user.h
  69d747426a2cd567127374ec436971c7  gcc/config/i386/gnu-user64.h
  54529083ddab72f042302240de5c66c4  gcc/config/i386/gnu.h
--- 3886,3892 ----
  150b5138b9224e24e53f821c744484eb  gcc/config/i386/glm.md
  1875affe4277584801678d7587573a36  gcc/config/i386/gmm_malloc.h
  1c08f4ff502d16c18bb54e318e030ce4  gcc/config/i386/gnu-property.c
! 00545303700e436af09d8af7ae78fb8e  gcc/config/i386/gnu-user-common.h
  f63afc859775aca634f9c3038a88a2e8  gcc/config/i386/gnu-user.h
  69d747426a2cd567127374ec436971c7  gcc/config/i386/gnu-user64.h
  54529083ddab72f042302240de5c66c4  gcc/config/i386/gnu.h
*************** f63afc859775aca634f9c3038a88a2e8  gcc/co
*** 3896,3920 ****
  dfd31f5b9f3ae6b0f0cfbc91f34b22d3  gcc/config/i386/hresetintrin.h
  f416d4c1b5f76b0c32dcfa57cbef9de0  gcc/config/i386/i386-builtin-types.awk
  4e99fd2d8e886c8fedca887be1ceccad  gcc/config/i386/i386-builtin-types.def
! 61439f21b1fafa107dda0a49e355123a  gcc/config/i386/i386-builtin.def
  1dc75a552c0d6998bea2786836c26452  gcc/config/i386/i386-builtins.c
  2eb66258231da97923f18a6fb2fb2526  gcc/config/i386/i386-builtins.h
  e93ce5f91f999045596fda2304d9776d  gcc/config/i386/i386-c.c
  e87e1d322f0b5d6d0862f8b523832d11  gcc/config/i386/i386-d.c
! e671600d18912b4f01a5d0fceea3d4df  gcc/config/i386/i386-expand.c
  68f53a8d27a4bdcd5018b83939e20f6c  gcc/config/i386/i386-expand.h
  dd464cbc7d083f9311116080f270e855  gcc/config/i386/i386-features.c
  86c0fda429064123819ee0155f367a5f  gcc/config/i386/i386-features.h
  04cdac9cb26ba183b03b6f9c7a01b792  gcc/config/i386/i386-modes.def
! b14988c53d21c3bf19b5d157a1503564  gcc/config/i386/i386-options.c
  fe60119ebc2cc86648e81161137ee957  gcc/config/i386/i386-options.h
  6162f2f6d59de8eec399101815b311fb  gcc/config/i386/i386-opts.h
  b52d1366937ad82efd6efd1590e73779  gcc/config/i386/i386-passes.def
  1905e9dbeb917e8b2caf32cc98f4b5d3  gcc/config/i386/i386-protos.h
! f9a563f0072fa2e4091c35d5fe3d53c7  gcc/config/i386/i386.c
  efd333c54c81f2840c9dbb82e80e68e2  gcc/config/i386/i386.h
  1f2ce4d81972398ffabd0e5b5795b5e4  gcc/config/i386/i386.md
! b79dc8d1e7ab48a57991e3149abf23cf  gcc/config/i386/i386.opt
  c10c5e5da62216f81b78dd46673df070  gcc/config/i386/i386elf.h
  e54b0acb11af35cf1d05cfef525dd659  gcc/config/i386/ia32intrin.h
  fa1c19397f6d7ac84e3a77d2fd9d70bc  gcc/config/i386/iamcu.h
--- 3897,3921 ----
  dfd31f5b9f3ae6b0f0cfbc91f34b22d3  gcc/config/i386/hresetintrin.h
  f416d4c1b5f76b0c32dcfa57cbef9de0  gcc/config/i386/i386-builtin-types.awk
  4e99fd2d8e886c8fedca887be1ceccad  gcc/config/i386/i386-builtin-types.def
! 34f102d507622bc6b3890d83f44921da  gcc/config/i386/i386-builtin.def
  1dc75a552c0d6998bea2786836c26452  gcc/config/i386/i386-builtins.c
  2eb66258231da97923f18a6fb2fb2526  gcc/config/i386/i386-builtins.h
  e93ce5f91f999045596fda2304d9776d  gcc/config/i386/i386-c.c
  e87e1d322f0b5d6d0862f8b523832d11  gcc/config/i386/i386-d.c
! 37234dbeb55c711b9fed925b3e6d1994  gcc/config/i386/i386-expand.c
  68f53a8d27a4bdcd5018b83939e20f6c  gcc/config/i386/i386-expand.h
  dd464cbc7d083f9311116080f270e855  gcc/config/i386/i386-features.c
  86c0fda429064123819ee0155f367a5f  gcc/config/i386/i386-features.h
  04cdac9cb26ba183b03b6f9c7a01b792  gcc/config/i386/i386-modes.def
! 922cbea5f57c4c7e89d7b294c9a372f8  gcc/config/i386/i386-options.c
  fe60119ebc2cc86648e81161137ee957  gcc/config/i386/i386-options.h
  6162f2f6d59de8eec399101815b311fb  gcc/config/i386/i386-opts.h
  b52d1366937ad82efd6efd1590e73779  gcc/config/i386/i386-passes.def
  1905e9dbeb917e8b2caf32cc98f4b5d3  gcc/config/i386/i386-protos.h
! f9777b60c901ce3e254c92309398b3e3  gcc/config/i386/i386.c
  efd333c54c81f2840c9dbb82e80e68e2  gcc/config/i386/i386.h
  1f2ce4d81972398ffabd0e5b5795b5e4  gcc/config/i386/i386.md
! 9d4643969a5ef2f50d082193dbdf9b47  gcc/config/i386/i386.opt
  c10c5e5da62216f81b78dd46673df070  gcc/config/i386/i386elf.h
  e54b0acb11af35cf1d05cfef525dd659  gcc/config/i386/ia32intrin.h
  fa1c19397f6d7ac84e3a77d2fd9d70bc  gcc/config/i386/iamcu.h
*************** c912f02783f7a414328c5eb819720dfc  gcc/co
*** 3937,3943 ****
  b38248cde141fc9fed08e9ac46211173  gcc/config/i386/mingw-w64.h
  4b1f092fa8c0e01719f92b1c69851f1d  gcc/config/i386/mingw-w64.opt
  3a5730df9219d8ba566f353d1466e6a4  gcc/config/i386/mingw.opt
! 9de786275129d0f546dcac922a1c671a  gcc/config/i386/mingw32.h
  8c2a40be98f698117815409db5755e07  gcc/config/i386/mm3dnow.h
  ebadd8939e5045c483e0067e83f84ea5  gcc/config/i386/mmintrin.h
  a4907954895f6236cf5afcdba2be40d0  gcc/config/i386/mmx.md
--- 3938,3944 ----
  b38248cde141fc9fed08e9ac46211173  gcc/config/i386/mingw-w64.h
  4b1f092fa8c0e01719f92b1c69851f1d  gcc/config/i386/mingw-w64.opt
  3a5730df9219d8ba566f353d1466e6a4  gcc/config/i386/mingw.opt
! 5bd2e0b86c4dab0b605208942c9a50d6  gcc/config/i386/mingw32.h
  8c2a40be98f698117815409db5755e07  gcc/config/i386/mm3dnow.h
  ebadd8939e5045c483e0067e83f84ea5  gcc/config/i386/mmintrin.h
  a4907954895f6236cf5afcdba2be40d0  gcc/config/i386/mmx.md
*************** c44e6c969a56ce15caac8fb01e42f8b6  gcc/co
*** 3958,3964 ****
  92edc254628b377d78d6e9491fdce8aa  gcc/config/i386/pmmintrin.h
  b912f7a44accd114d932f1bd128eb83c  gcc/config/i386/popcntintrin.h
  b753cd41f6fdd8ee8be1c1034d4d3e9e  gcc/config/i386/ppro.md
! a57d58241691ba144e0ba6d871a157a4  gcc/config/i386/predicates.md
  7df26c7af82cf825758be1dddd83d323  gcc/config/i386/prfchwintrin.h
  6d07e8e896f2aafcdeabb31c3f68dbac  gcc/config/i386/rdos.h
  f78da15b73fdb639b57920b0a86dd843  gcc/config/i386/rdos64.h
--- 3959,3965 ----
  92edc254628b377d78d6e9491fdce8aa  gcc/config/i386/pmmintrin.h
  b912f7a44accd114d932f1bd128eb83c  gcc/config/i386/popcntintrin.h
  b753cd41f6fdd8ee8be1c1034d4d3e9e  gcc/config/i386/ppro.md
! 29d2753e85afcb5057a452b95352fb9d  gcc/config/i386/predicates.md
  7df26c7af82cf825758be1dddd83d323  gcc/config/i386/prfchwintrin.h
  6d07e8e896f2aafcdeabb31c3f68dbac  gcc/config/i386/rdos.h
  f78da15b73fdb639b57920b0a86dd843  gcc/config/i386/rdos64.h
*************** e1e11d9cd0e8002dee79ab23d590ed1a  gcc/co
*** 3969,3977 ****
  76a58cad0f61b44b8fe7d4915dd50d07  gcc/config/i386/sgxintrin.h
  738791e034eae8f304812280d786951d  gcc/config/i386/shaintrin.h
  f808dc4b45bc244b7588e4dbe292d158  gcc/config/i386/slm.md
! aa606ad57b003eaf3855a789cfdbdfda  gcc/config/i386/smmintrin.h
  86d70f5d5123563facc0d2e2dcfbd9e6  gcc/config/i386/sol2.h
! 3ce3a9d7e8ce3adabd84c82a66ba3692  gcc/config/i386/sse.md
  df2791f0495a636b555c9a5f3f9ff153  gcc/config/i386/ssemath.h
  fdb6c5262186a722ee43fabb890960ae  gcc/config/i386/stringop.def
  fdbc1c329d68559ae10ad05554ed8b15  gcc/config/i386/subst.md
--- 3970,3978 ----
  76a58cad0f61b44b8fe7d4915dd50d07  gcc/config/i386/sgxintrin.h
  738791e034eae8f304812280d786951d  gcc/config/i386/shaintrin.h
  f808dc4b45bc244b7588e4dbe292d158  gcc/config/i386/slm.md
! 03dd452cfd3e49b9807da1ce5a98046d  gcc/config/i386/smmintrin.h
  86d70f5d5123563facc0d2e2dcfbd9e6  gcc/config/i386/sol2.h
! 429668121fa3ff79143be1f9720eb312  gcc/config/i386/sse.md
  df2791f0495a636b555c9a5f3f9ff153  gcc/config/i386/ssemath.h
  fdb6c5262186a722ee43fabb890960ae  gcc/config/i386/stringop.def
  fdbc1c329d68559ae10ad05554ed8b15  gcc/config/i386/subst.md
*************** d5339d6e5a09a02383903f617230e19e  gcc/co
*** 3986,3992 ****
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
  e6397043c320f46b30091283f4821cbb  gcc/config/i386/t-gnu-property
! 3d2dfb3e9e6270ca47e84d8ecc33a902  gcc/config/i386/t-i386
  c3fde04ef47ddd6ec0a60c98d7f55224  gcc/config/i386/t-intelmic
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
--- 3987,3993 ----
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
  e6397043c320f46b30091283f4821cbb  gcc/config/i386/t-gnu-property
! 3b0ac015fdbc12edde3e75bc017be6f2  gcc/config/i386/t-i386
  c3fde04ef47ddd6ec0a60c98d7f55224  gcc/config/i386/t-intelmic
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
*************** c44a21d6173dfc25f9ea06d39259b98b  gcc/co
*** 4411,4419 ****
  c2aabf1e8738380511a66426506fe906  gcc/config/nvptx/nvptx-modes.def
  dca89acc73c1e607543f77bff11454fb  gcc/config/nvptx/nvptx-opts.h
  9ca7d94c2be28d9abdb34a47582fd30f  gcc/config/nvptx/nvptx-protos.h
! 0ae128e298c4577f1c737e010ffb5c34  gcc/config/nvptx/nvptx.c
! c0b0b2bacfa72578f4672edf1c0f50db  gcc/config/nvptx/nvptx.h
! 9c8498d440319ec5925062d2d6c68415  gcc/config/nvptx/nvptx.md
  6d617ffea69db6bcfe22bbd6fb2c7e29  gcc/config/nvptx/nvptx.opt
  e917c97da0e4b76432a791778f806d36  gcc/config/nvptx/offload.h
  161bfe9f99d4d18fdb67553220ba175a  gcc/config/nvptx/t-nvptx
--- 4412,4420 ----
  c2aabf1e8738380511a66426506fe906  gcc/config/nvptx/nvptx-modes.def
  dca89acc73c1e607543f77bff11454fb  gcc/config/nvptx/nvptx-opts.h
  9ca7d94c2be28d9abdb34a47582fd30f  gcc/config/nvptx/nvptx-protos.h
! af2ff2b6a23e7aa632d76f44e5af17ce  gcc/config/nvptx/nvptx.c
! 96f2f0bbb4ebe8e9651ec1a5ddd23de6  gcc/config/nvptx/nvptx.h
! 913dc062fadd10248f1e6e0614f1160a  gcc/config/nvptx/nvptx.md
  6d617ffea69db6bcfe22bbd6fb2c7e29  gcc/config/nvptx/nvptx.opt
  e917c97da0e4b76432a791778f806d36  gcc/config/nvptx/offload.h
  161bfe9f99d4d18fdb67553220ba175a  gcc/config/nvptx/t-nvptx
*************** caff43adac59469f64f1c7e4385c27d2  gcc/co
*** 4459,4465 ****
  85dc61345aa9b8f74041dfe95eebf2e7  gcc/config/pa/pa-protos.h
  0d77b7513676faac2b9365e1786e465c  gcc/config/pa/pa.c
  c3f6aadadbf72faef69e3a2422b6e223  gcc/config/pa/pa.h
! 58b599c016970fec733bd266261ba0fd  gcc/config/pa/pa.md
  570c43b9b6987181b5756267f6cf7973  gcc/config/pa/pa.opt
  d414dff3f6a4b50b49f81539036bff88  gcc/config/pa/pa32-linux.h
  8e685ad04b0b38e5885bfcc8012cdd92  gcc/config/pa/pa32-netbsd.h
--- 4460,4466 ----
  85dc61345aa9b8f74041dfe95eebf2e7  gcc/config/pa/pa-protos.h
  0d77b7513676faac2b9365e1786e465c  gcc/config/pa/pa.c
  c3f6aadadbf72faef69e3a2422b6e223  gcc/config/pa/pa.h
! af01de2d6c7c056ee644a22c89654bf2  gcc/config/pa/pa.md
  570c43b9b6987181b5756267f6cf7973  gcc/config/pa/pa.opt
  d414dff3f6a4b50b49f81539036bff88  gcc/config/pa/pa32-linux.h
  8e685ad04b0b38e5885bfcc8012cdd92  gcc/config/pa/pa32-netbsd.h
*************** c62f794a3016ccd74f1cc0e579e8aea3  gcc/co
*** 4494,4504 ****
  b6607d3410bf037c34e0b8a0422adbe5  gcc/config/pru/pru-pragma.c
  8008f645c2d6305298f0f5996b8530a8  gcc/config/pru/pru-protos.h
  a7fdc306986a7202a2f2b209faf8f5ea  gcc/config/pru/pru.c
! 783a6ce5f683fda7f039ad745e09e1f9  gcc/config/pru/pru.h
! 06d17121b1ca155cfd8a17344a5d3f8d  gcc/config/pru/pru.md
  3b98988e55ce8cf649751cd3d3bf38cd  gcc/config/pru/pru.opt
  10430f6518a3627421b6e41146222090  gcc/config/pru/t-pru
! 724bf92da89c5b91ba44623b319a2d4e  gcc/config/riscv/arch-canonicalize
  1b1e5fb14202743e68ddd48543aca24e  gcc/config/riscv/constraints.md
  ef0028af881cf895e537c21cc4643fb8  gcc/config/riscv/elf.h
  de2fc9c3ace4fd5d8f5573b8bd906069  gcc/config/riscv/freebsd.h
--- 4495,4505 ----
  b6607d3410bf037c34e0b8a0422adbe5  gcc/config/pru/pru-pragma.c
  8008f645c2d6305298f0f5996b8530a8  gcc/config/pru/pru-protos.h
  a7fdc306986a7202a2f2b209faf8f5ea  gcc/config/pru/pru.c
! 85cd9dd4fa944647a140557ba26b7ab5  gcc/config/pru/pru.h
! cc8fd7f5d40a9db5b1ebd4364c0c6f67  gcc/config/pru/pru.md
  3b98988e55ce8cf649751cd3d3bf38cd  gcc/config/pru/pru.opt
  10430f6518a3627421b6e41146222090  gcc/config/pru/t-pru
! 328b5e54d4d9c8c1b0ff7801980a0fda  gcc/config/riscv/arch-canonicalize
  1b1e5fb14202743e68ddd48543aca24e  gcc/config/riscv/constraints.md
  ef0028af881cf895e537c21cc4643fb8  gcc/config/riscv/elf.h
  de2fc9c3ace4fd5d8f5573b8bd906069  gcc/config/riscv/freebsd.h
*************** f60d94e10e9a0c6a4ddae1f3aae0bbc4  gcc/co
*** 4522,4528 ****
  fe56b04e91c00c9e49f48d845571ab3b  gcc/config/riscv/riscv-subset.h
  100c0a3c8832058427f3f3ead05a0e99  gcc/config/riscv/riscv.c
  3fae617bcb3cc8d28a0150ce3dd2831d  gcc/config/riscv/riscv.h
! 669de2f404329e0417902902f3dfab46  gcc/config/riscv/riscv.md
  eaec766078425731f12d482d8e7a7f03  gcc/config/riscv/riscv.opt
  0a71dd013f158a4aa8183a3df7bfead1  gcc/config/riscv/rtems.h
  462630614e6e7a6209f8f18b6dff0eef  gcc/config/riscv/sifive-7.md
--- 4523,4529 ----
  fe56b04e91c00c9e49f48d845571ab3b  gcc/config/riscv/riscv-subset.h
  100c0a3c8832058427f3f3ead05a0e99  gcc/config/riscv/riscv.c
  3fae617bcb3cc8d28a0150ce3dd2831d  gcc/config/riscv/riscv.h
! 40c1f49c070cb84e5aece42017c81afc  gcc/config/riscv/riscv.md
  eaec766078425731f12d482d8e7a7f03  gcc/config/riscv/riscv.opt
  0a71dd013f158a4aa8183a3df7bfead1  gcc/config/riscv/rtems.h
  462630614e6e7a6209f8f18b6dff0eef  gcc/config/riscv/sifive-7.md
*************** eaec766078425731f12d482d8e7a7f03  gcc/co
*** 4531,4537 ****
  d8ae7bee35ef1ecd77143535da9aae78  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
  b289440a78dd64e8c68b767f483a39bc  gcc/config/riscv/t-riscv
! 7dbd61c5a07b1adefe5429a41008fda5  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
  61a949c3b6e9949677ecb87c7dd89aac  gcc/config/rl78/constraints.md
--- 4532,4538 ----
  d8ae7bee35ef1ecd77143535da9aae78  gcc/config/riscv/t-linux
  1ed181a166b1d0e206c4a4e0024cce2a  gcc/config/riscv/t-linux-multilib
  b289440a78dd64e8c68b767f483a39bc  gcc/config/riscv/t-riscv
! b46131fe425be428d4d66c8f653f3d13  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
  61a949c3b6e9949677ecb87c7dd89aac  gcc/config/rl78/constraints.md
*************** ff3f6b224d4ef9f550a96131d45e0003  gcc/co
*** 4567,4576 ****
  d0cdfe5862d3c4d23b88f181a823e824  gcc/config/rs6000/aix71.h
  cc7b2251556991a7fa60f7bf6b8f4fb8  gcc/config/rs6000/aix72.h
  6cf9077f7280ae45fdb83156bcbed199  gcc/config/rs6000/altivec.h
! 65b676e981a532defde7fdd5e321ffe1  gcc/config/rs6000/altivec.md
  0c189a8215a637236016075d7153c0dd  gcc/config/rs6000/amo.h
  8c3585d22f96b860147fbb93ebbbf06f  gcc/config/rs6000/biarch64.h
! c82bb588a1f3b6715f005e723b02aaf9  gcc/config/rs6000/bmi2intrin.h
  f60f0b041683bd09fde61d526b77a06b  gcc/config/rs6000/bmiintrin.h
  fea022102d4856327a0e7478d476825d  gcc/config/rs6000/cell.md
  39f59e5bae022fcbbef313410d10672c  gcc/config/rs6000/constraints.md
--- 4568,4577 ----
  d0cdfe5862d3c4d23b88f181a823e824  gcc/config/rs6000/aix71.h
  cc7b2251556991a7fa60f7bf6b8f4fb8  gcc/config/rs6000/aix72.h
  6cf9077f7280ae45fdb83156bcbed199  gcc/config/rs6000/altivec.h
! cd111eaaa23c0b87e1a1e3ce85dd2d4a  gcc/config/rs6000/altivec.md
  0c189a8215a637236016075d7153c0dd  gcc/config/rs6000/amo.h
  8c3585d22f96b860147fbb93ebbbf06f  gcc/config/rs6000/biarch64.h
! a0a45dd2206fad107854ab34a6a8c9ea  gcc/config/rs6000/bmi2intrin.h
  f60f0b041683bd09fde61d526b77a06b  gcc/config/rs6000/bmiintrin.h
  fea022102d4856327a0e7478d476825d  gcc/config/rs6000/cell.md
  39f59e5bae022fcbbef313410d10672c  gcc/config/rs6000/constraints.md
*************** e48e30df023432a0999f7219dd167766  gcc/co
*** 4592,4598 ****
  1645c6c2584fc4d395804e020830ff0f  gcc/config/rs6000/eabi.h
  b106f3dd78c027be0e6fa9e040d3d7d1  gcc/config/rs6000/eabialtivec.h
  8fe4344bd8fd32f48a15e10f99d9f820  gcc/config/rs6000/eabisim.h
! bd291b65ad28211370bde89d9e88c7ae  gcc/config/rs6000/emmintrin.h
  fbeee1c894dc51358ee6abecca818f38  gcc/config/rs6000/freebsd.h
  c815c61d1f8556dee28776379d38f97f  gcc/config/rs6000/freebsd64.h
  b4f8e33b4342aea64cc25b24e2b5ce17  gcc/config/rs6000/fusion.md
--- 4593,4599 ----
  1645c6c2584fc4d395804e020830ff0f  gcc/config/rs6000/eabi.h
  b106f3dd78c027be0e6fa9e040d3d7d1  gcc/config/rs6000/eabialtivec.h
  8fe4344bd8fd32f48a15e10f99d9f820  gcc/config/rs6000/eabisim.h
! 5fedb3789acc17fe71b855ed4ed39d36  gcc/config/rs6000/emmintrin.h
  fbeee1c894dc51358ee6abecca818f38  gcc/config/rs6000/freebsd.h
  c815c61d1f8556dee28776379d38f97f  gcc/config/rs6000/freebsd64.h
  b4f8e33b4342aea64cc25b24e2b5ce17  gcc/config/rs6000/fusion.md
*************** eb5963a9afac325222a3cf411425b69b  gcc/co
*** 4609,4622 ****
  254a479975bb0033d38c5532c46689a5  gcc/config/rs6000/linuxaltivec.h
  b3d3483f2acc61db4751725d0556e646  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! 7151c90fd6e11f55cab19007cca511bc  gcc/config/rs6000/mm_malloc.h
! d3dde08c758b098e296736f30b64afac  gcc/config/rs6000/mma.md
! c40f50dc03075bb41a64373adb30112d  gcc/config/rs6000/mmintrin.h
  7da8551ea5a0e205407dfa782c773ce4  gcc/config/rs6000/mpc.md
  5bca07190d45ef2ade8d1a237c5ac20b  gcc/config/rs6000/netbsd.h
  d1918653ab5439dfd3636ceb66800628  gcc/config/rs6000/option-defaults.h
  46370b1354544906ee1f18bf5ee65e42  gcc/config/rs6000/pcrel-opt.md
! 84d852177b47e1fcd8d20355aeb4a2a4  gcc/config/rs6000/pmmintrin.h
  41a5be3155e7ed775bb412cbe0c0ed19  gcc/config/rs6000/power10.md
  ee97c3d3da7334e31ee2e714ae392125  gcc/config/rs6000/power4.md
  377d2d64b0642c07bdab693f542c4988  gcc/config/rs6000/power5.md
--- 4610,4623 ----
  254a479975bb0033d38c5532c46689a5  gcc/config/rs6000/linuxaltivec.h
  b3d3483f2acc61db4751725d0556e646  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! 565b63349f6e114554447b232a5490ec  gcc/config/rs6000/mm_malloc.h
! c06a97a99e488b7da4fdb5b8a3255712  gcc/config/rs6000/mma.md
! 77c63d8e54b9dc6ce0aaea2a01888513  gcc/config/rs6000/mmintrin.h
  7da8551ea5a0e205407dfa782c773ce4  gcc/config/rs6000/mpc.md
  5bca07190d45ef2ade8d1a237c5ac20b  gcc/config/rs6000/netbsd.h
  d1918653ab5439dfd3636ceb66800628  gcc/config/rs6000/option-defaults.h
  46370b1354544906ee1f18bf5ee65e42  gcc/config/rs6000/pcrel-opt.md
! 3aa34143693d60ca1db93ff26687b43f  gcc/config/rs6000/pmmintrin.h
  41a5be3155e7ed775bb412cbe0c0ed19  gcc/config/rs6000/power10.md
  ee97c3d3da7334e31ee2e714ae392125  gcc/config/rs6000/power4.md
  377d2d64b0642c07bdab693f542c4988  gcc/config/rs6000/power5.md
*************** bb48fecf965ae77e0dd88aae5488f291  gcc/co
*** 4628,4659 ****
  751ccf6be4b01d18f226acef853ef444  gcc/config/rs6000/ppc-auxv.h
  bfe475364cf3901b029f758b9ccfd8b8  gcc/config/rs6000/ppu_intrinsics.h
  e03ab0dade27c849af56b6b99de13cd4  gcc/config/rs6000/predicates.md
! 90d62e46a8384f3f606d9cacbd7fcf20  gcc/config/rs6000/rs6000-builtin.def
  600d0487670d447fdf8b9c3e58e76c9a  gcc/config/rs6000/rs6000-c.c
! 92110d3957e94da0c004e1a0ebf2d849  gcc/config/rs6000/rs6000-call.c
  928f5d55248167067486388e4cc0a56e  gcc/config/rs6000/rs6000-cpus.def
  7c18f5387ecc6581faacf61631fecb37  gcc/config/rs6000/rs6000-d.c
  2d982a648287d8b1211d52b4f1335bb6  gcc/config/rs6000/rs6000-internal.h
  bdb01381a7509193220dbd43b881802b  gcc/config/rs6000/rs6000-linux.c
! d7eb270fa829edb1e107dc421d30800a  gcc/config/rs6000/rs6000-logue.c
  8d3fa7c26d80c9ee359e3991e289666e  gcc/config/rs6000/rs6000-modes.def
  e65509760cf40241ff24df3a715c4f43  gcc/config/rs6000/rs6000-modes.h
  b7cac3afa5fb8f71d3b8ea1a0cd5c7ce  gcc/config/rs6000/rs6000-opts.h
! 8b947d2151ae91ad54fac00cb369345c  gcc/config/rs6000/rs6000-p8swap.c
  26ea894428823455da38add11e434423  gcc/config/rs6000/rs6000-passes.def
  00c6fc44dcc86d36065fbda93661b17b  gcc/config/rs6000/rs6000-pcrel-opt.c
! 39fa09a60604eae142447fcf0f829606  gcc/config/rs6000/rs6000-protos.h
  8cfc3e1c712d5e4cef1250c605cdca98  gcc/config/rs6000/rs6000-string.c
  7a14e24f9ddae251943bacda6071c833  gcc/config/rs6000/rs6000-tables.opt
! 6f928343f299cc0a238e78460e5d8611  gcc/config/rs6000/rs6000.c
! 703c5b2480408d2cecd0ae48da054aad  gcc/config/rs6000/rs6000.h
! 93f46761638f204b23488e30666a914a  gcc/config/rs6000/rs6000.md
  f5bccc13629fee1e5e80d2c56373e1ab  gcc/config/rs6000/rs6000.opt
  c7f02424d98bd46c451c6c03893132ba  gcc/config/rs6000/rs64.md
! 49c33d9ae6a5142ba9a3e0c617c6cdc2  gcc/config/rs6000/rtems.h
  b13403d0a3113444b4d47950f5cba69e  gcc/config/rs6000/secureplt.h
  f6fd7be6926a0f8aa7fd3c3c105fe905  gcc/config/rs6000/si2vmx.h
! 050357a1637de917eedddffab4cef27f  gcc/config/rs6000/smmintrin.h
  1cb7c7dac47be97126c30f4b384ab8de  gcc/config/rs6000/spu2vmx.h
  35284754edbf099ba3f34621db1e14f3  gcc/config/rs6000/sync.md
  02b934139a896ec4d1951184fe879275  gcc/config/rs6000/sysv4.h
--- 4629,4660 ----
  751ccf6be4b01d18f226acef853ef444  gcc/config/rs6000/ppc-auxv.h
  bfe475364cf3901b029f758b9ccfd8b8  gcc/config/rs6000/ppu_intrinsics.h
  e03ab0dade27c849af56b6b99de13cd4  gcc/config/rs6000/predicates.md
! 04b29f32ebcc3af6af38115e27bc6459  gcc/config/rs6000/rs6000-builtin.def
  600d0487670d447fdf8b9c3e58e76c9a  gcc/config/rs6000/rs6000-c.c
! 20301da7df43e3e4515f20703c568655  gcc/config/rs6000/rs6000-call.c
  928f5d55248167067486388e4cc0a56e  gcc/config/rs6000/rs6000-cpus.def
  7c18f5387ecc6581faacf61631fecb37  gcc/config/rs6000/rs6000-d.c
  2d982a648287d8b1211d52b4f1335bb6  gcc/config/rs6000/rs6000-internal.h
  bdb01381a7509193220dbd43b881802b  gcc/config/rs6000/rs6000-linux.c
! 2354aa77e29edefb43b39fdda66e34f2  gcc/config/rs6000/rs6000-logue.c
  8d3fa7c26d80c9ee359e3991e289666e  gcc/config/rs6000/rs6000-modes.def
  e65509760cf40241ff24df3a715c4f43  gcc/config/rs6000/rs6000-modes.h
  b7cac3afa5fb8f71d3b8ea1a0cd5c7ce  gcc/config/rs6000/rs6000-opts.h
! dd75bd9fb5a316178a5a865e27dbf5fa  gcc/config/rs6000/rs6000-p8swap.c
  26ea894428823455da38add11e434423  gcc/config/rs6000/rs6000-passes.def
  00c6fc44dcc86d36065fbda93661b17b  gcc/config/rs6000/rs6000-pcrel-opt.c
! 7cbb179b585c27591492c12df504bcfb  gcc/config/rs6000/rs6000-protos.h
  8cfc3e1c712d5e4cef1250c605cdca98  gcc/config/rs6000/rs6000-string.c
  7a14e24f9ddae251943bacda6071c833  gcc/config/rs6000/rs6000-tables.opt
! 464524dd01279d36e7088ac36df7f914  gcc/config/rs6000/rs6000.c
! eda531e1209a480df29e9165f839d271  gcc/config/rs6000/rs6000.h
! d7bc1ae2f8d76f6fca7425e1d40039bc  gcc/config/rs6000/rs6000.md
  f5bccc13629fee1e5e80d2c56373e1ab  gcc/config/rs6000/rs6000.opt
  c7f02424d98bd46c451c6c03893132ba  gcc/config/rs6000/rs64.md
! 0e39e209d829a36a89d8676fb92a1993  gcc/config/rs6000/rtems.h
  b13403d0a3113444b4d47950f5cba69e  gcc/config/rs6000/secureplt.h
  f6fd7be6926a0f8aa7fd3c3c105fe905  gcc/config/rs6000/si2vmx.h
! ee85c2dc5dda18f867207527dd696bff  gcc/config/rs6000/smmintrin.h
  1cb7c7dac47be97126c30f4b384ab8de  gcc/config/rs6000/spu2vmx.h
  35284754edbf099ba3f34621db1e14f3  gcc/config/rs6000/sync.md
  02b934139a896ec4d1951184fe879275  gcc/config/rs6000/sysv4.h
*************** a6b51489641a338647ec5c62b2c57063  gcc/co
*** 4677,4691 ****
  4926b14756498c795fff06e6418c09cc  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
  67cb48ae93012381975865b9dcd42aa7  gcc/config/rs6000/t-rs6000
! 6d7850e3ddb17d1bd681815d01556fba  gcc/config/rs6000/t-rtems
  5b0559fc3febaa083e29dc5d4523f430  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
  cc0cc82e1a5c2e41b283b3b890368e20  gcc/config/rs6000/titan.md
! e7d9802113af7f106be83e0d60f10bac  gcc/config/rs6000/tmmintrin.h
  5d59b8706cb4357b0b55b2b15c113f77  gcc/config/rs6000/vec_types.h
! 3583e31aec012fcc7fb04420d37fb7b3  gcc/config/rs6000/vector.md
! 6ca279ba044eebd7d0a7d39898b605af  gcc/config/rs6000/vsx.md
  f36a85a18aa0b7d63a88bb6c96ef28be  gcc/config/rs6000/vxworks.h
  8d88ff930fb293ccc19693f4198f0ffb  gcc/config/rs6000/vxworksae.h
  7dc95d3194372c5c0ac2e9b886d11097  gcc/config/rs6000/vxworksmils.h
--- 4678,4692 ----
  4926b14756498c795fff06e6418c09cc  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
  67cb48ae93012381975865b9dcd42aa7  gcc/config/rs6000/t-rs6000
! 13e3cdcc8fbcdc63ac981e0b0d1d3386  gcc/config/rs6000/t-rtems
  5b0559fc3febaa083e29dc5d4523f430  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
  cc0cc82e1a5c2e41b283b3b890368e20  gcc/config/rs6000/titan.md
! 3c719abb05a40cc37e63b78eda16cddd  gcc/config/rs6000/tmmintrin.h
  5d59b8706cb4357b0b55b2b15c113f77  gcc/config/rs6000/vec_types.h
! 9321c1123bf88bace0e70513daebeff0  gcc/config/rs6000/vector.md
! bd47d5f6630db57090952b1cd655505c  gcc/config/rs6000/vsx.md
  f36a85a18aa0b7d63a88bb6c96ef28be  gcc/config/rs6000/vxworks.h
  8d88ff930fb293ccc19693f4198f0ffb  gcc/config/rs6000/vxworksae.h
  7dc95d3194372c5c0ac2e9b886d11097  gcc/config/rs6000/vxworksmils.h
*************** af875b9bcb1ec1da1f33d5e34df8ca7b  gcc/co
*** 4696,4702 ****
  1aff8cb3714b63b6c3367f552dae743f  gcc/config/rs6000/x-rs6000
  cd352b7dae266946ea1432f3087e478b  gcc/config/rs6000/x86intrin.h
  1f68ec49be41fcbbc5edf6461732b616  gcc/config/rs6000/xcoff.h
! a395b93932607e082764fd6338f5ddc9  gcc/config/rs6000/xmmintrin.h
  6f40de2bceef1102ced6e9e62cf8780f  gcc/config/rtems.h
  4fc47ba72f6e5bc6ad16e9993ed01536  gcc/config/rtems.opt
  7fdcbf6a0552c69e8b6c1b2c0ec17a41  gcc/config/rx/constraints.md
--- 4697,4703 ----
  1aff8cb3714b63b6c3367f552dae743f  gcc/config/rs6000/x-rs6000
  cd352b7dae266946ea1432f3087e478b  gcc/config/rs6000/x86intrin.h
  1f68ec49be41fcbbc5edf6461732b616  gcc/config/rs6000/xcoff.h
! 97974914e5324f12e6dab5c513193da6  gcc/config/rs6000/xmmintrin.h
  6f40de2bceef1102ced6e9e62cf8780f  gcc/config/rtems.h
  4fc47ba72f6e5bc6ad16e9993ed01536  gcc/config/rtems.opt
  7fdcbf6a0552c69e8b6c1b2c0ec17a41  gcc/config/rx/constraints.md
*************** b8518a69c0543b0ab9a0194ccd0628c8  gcc/co
*** 4735,4741 ****
  0a593ac49e545a9bf5dad3b9d13ffead  gcc/config/s390/s390-opts.h
  0cda88116bff0a5ea22724e0f749d0ea  gcc/config/s390/s390-passes.def
  82c0fbbcc31f177afdb9a9feec3bb485  gcc/config/s390/s390-protos.h
! 83684bdbbd2861d3047dc9d88135e070  gcc/config/s390/s390.c
  12b0051b843bc27c918bc7a7c0621ee1  gcc/config/s390/s390.h
  b2b097d0d62128852bfcb39d7e0a8e9a  gcc/config/s390/s390.md
  c1758c2e438e31db9a49f289e3d30ad1  gcc/config/s390/s390.opt
--- 4736,4742 ----
  0a593ac49e545a9bf5dad3b9d13ffead  gcc/config/s390/s390-opts.h
  0cda88116bff0a5ea22724e0f749d0ea  gcc/config/s390/s390-passes.def
  82c0fbbcc31f177afdb9a9feec3bb485  gcc/config/s390/s390-protos.h
! 3bf58ea76c41373b29435d6566a40f1c  gcc/config/s390/s390.c
  12b0051b843bc27c918bc7a7c0621ee1  gcc/config/s390/s390.h
  b2b097d0d62128852bfcb39d7e0a8e9a  gcc/config/s390/s390.md
  c1758c2e438e31db9a49f289e3d30ad1  gcc/config/s390/s390.opt
*************** a2c001107d11d64a6867b5ad3cf7b5b7  gcc/co
*** 4829,4837 ****
  fcb95746dc487d8860421e2c23676851  gcc/config/sparc/sparc-opts.h
  d133793a37112a304bbee95d6391bde1  gcc/config/sparc/sparc-passes.def
  9da368e6d99a08be41e8a2859745f7d6  gcc/config/sparc/sparc-protos.h
! 33b19a596c65372140a78e376b3d6d02  gcc/config/sparc/sparc.c
  76e709251a5150bf023bbfe87bd6697e  gcc/config/sparc/sparc.h
! 7ad0daaa5ca1d1686bb621079ea25b7a  gcc/config/sparc/sparc.md
  64c3cef9b0736ca1716488a3adc1bce2  gcc/config/sparc/sparc.opt
  b62168c8d25717e777239fb6d2c2bdf7  gcc/config/sparc/sparclet.md
  c87db0e52fe6f1b5721136e265bd705a  gcc/config/sparc/supersparc.md
--- 4830,4838 ----
  fcb95746dc487d8860421e2c23676851  gcc/config/sparc/sparc-opts.h
  d133793a37112a304bbee95d6391bde1  gcc/config/sparc/sparc-passes.def
  9da368e6d99a08be41e8a2859745f7d6  gcc/config/sparc/sparc-protos.h
! c6d4ece8a5b5fe7970d5ce42ab6ceea6  gcc/config/sparc/sparc.c
  76e709251a5150bf023bbfe87bd6697e  gcc/config/sparc/sparc.h
! 93f203002000154b4ee62e2d1d9a96d4  gcc/config/sparc/sparc.md
  64c3cef9b0736ca1716488a3adc1bce2  gcc/config/sparc/sparc.opt
  b62168c8d25717e777239fb6d2c2bdf7  gcc/config/sparc/sparclet.md
  c87db0e52fe6f1b5721136e265bd705a  gcc/config/sparc/supersparc.md
*************** f4410f8e050ccee97ee129e9063ea8c0  gcc/co
*** 4900,4906 ****
  557ae9e8eb9d7e236218ae3d90bf8751  gcc/config/tilegx/tilegx.opt
  c387c44b6e6a7768c8230f9895cb2b2c  gcc/config/tilepro/constraints.md
  f62347fb17ffdccf93a30b860f9f4dc2  gcc/config/tilepro/feedback.h
! 9098dcc4db99d0eaf1d682431bab928e  gcc/config/tilepro/gen-mul-tables.cc
  73f582498292440c97799a431dd8993e  gcc/config/tilepro/linux.h
  ce9144c5ac87f719213c7fed543cea7d  gcc/config/tilepro/mul-tables.c
  2aafe04a74fd58c9260f32303a6321b9  gcc/config/tilepro/predicates.md
--- 4901,4907 ----
  557ae9e8eb9d7e236218ae3d90bf8751  gcc/config/tilegx/tilegx.opt
  c387c44b6e6a7768c8230f9895cb2b2c  gcc/config/tilepro/constraints.md
  f62347fb17ffdccf93a30b860f9f4dc2  gcc/config/tilepro/feedback.h
! 2cb67a0d1d46fc2010ab2db9c5cab630  gcc/config/tilepro/gen-mul-tables.cc
  73f582498292440c97799a431dd8993e  gcc/config/tilepro/linux.h
  ce9144c5ac87f719213c7fed543cea7d  gcc/config/tilepro/mul-tables.c
  2aafe04a74fd58c9260f32303a6321b9  gcc/config/tilepro/predicates.md
*************** bf27ee51add23d218ca627b3d40fda5d  gcc/co
*** 5012,5021 ****
  84c554b196894a50ca18c5fd8a6edf20  gcc/config/xtensa/xtensa-protos.h
  648a531dd6883762e216cc9bea2507d0  gcc/config/xtensa/xtensa.c
  06bc01a7ccf9f8e76a200854e3483443  gcc/config/xtensa/xtensa.h
! 6c6d0b85211762c11d2e72a6182bb110  gcc/config/xtensa/xtensa.md
  f5b73b7b0901f94c273f343137c0a387  gcc/config/xtensa/xtensa.opt
! 1ba5e43f94b8286a6f2912dbb52f200e  gcc/configure
! a336102eddc61c8a86cbc237b6a0ce5c  gcc/configure.ac
  27d42bf7c74759dfd549975615fc5068  gcc/context.c
  16c3aa3c912f686f2a31e9390d85475c  gcc/context.h
  f4ce7d4c40b8bd5fdb65296621e3c102  gcc/convert.c
--- 5013,5022 ----
  84c554b196894a50ca18c5fd8a6edf20  gcc/config/xtensa/xtensa-protos.h
  648a531dd6883762e216cc9bea2507d0  gcc/config/xtensa/xtensa.c
  06bc01a7ccf9f8e76a200854e3483443  gcc/config/xtensa/xtensa.h
! 82a6ca8457a439cf22f400bc82844cad  gcc/config/xtensa/xtensa.md
  f5b73b7b0901f94c273f343137c0a387  gcc/config/xtensa/xtensa.opt
! f596f15e03a8815f8dafa0cc201d86c3  gcc/configure
! d939ceb1c0239c3729e69d6f21f15c96  gcc/configure.ac
  27d42bf7c74759dfd549975615fc5068  gcc/context.c
  16c3aa3c912f686f2a31e9390d85475c  gcc/context.h
  f4ce7d4c40b8bd5fdb65296621e3c102  gcc/convert.c
*************** f4ce7d4c40b8bd5fdb65296621e3c102  gcc/co
*** 5025,5031 ****
  b92bf93ad5a628ce259b9055426c0cd4  gcc/coroutine-passes.cc
  bde87550feaf889731652f27f77bc587  gcc/coverage.c
  040e51182a2000cd08580cee4c8591c6  gcc/coverage.h
! d3d396b1c45bdd2d8e6f37a4dc32fdda  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5026,5032 ----
  b92bf93ad5a628ce259b9055426c0cd4  gcc/coroutine-passes.cc
  bde87550feaf889731652f27f77bc587  gcc/coverage.c
  040e51182a2000cd08580cee4c8591c6  gcc/coverage.h
! 97dcbf8e37e5cf82cbb13299a03a5957  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** f6ebb1c64d8e002666e58a4da0d97ecb  gcc/cp
*** 5056,5092 ****
  1ea0510e0c84257e030079fda09b655d  gcc/cp/ChangeLog-2020
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 82f86a266d5edfdd6fbdee627fdfc94d  gcc/cp/Make-lang.in
! 805a74c176fc9da5c8c00650be6fa813  gcc/cp/call.c
  013fc77930854f5ca6df4b4955b9cd5d  gcc/cp/cfns.gperf
  94073c4e9f5c434dbd02f5fab8ef2fec  gcc/cp/cfns.h
  aa4071bfecf6b015c47cdbab9841661a  gcc/cp/class.c
  52c149e840d6ef546324992e040dffc9  gcc/cp/config-lang.in
! 281b240e64442eca3828a39ab3450365  gcc/cp/constexpr.c
! 2d187983f45a0e24913874acf4ab80b9  gcc/cp/constraint.cc
! 774b12ba7796f225fc0b3873743b4046  gcc/cp/coroutines.cc
! 3adde1f450aedb33649d2497891e5bc6  gcc/cp/cp-gimplify.c
  9f675ade86f6f438186c3359d251522d  gcc/cp/cp-lang.c
  3a17e28f03f7b86b06a0f7f2f1b38ee1  gcc/cp/cp-name-hint.h
  6546ac35987ddbbd4baddabf4a418fdc  gcc/cp/cp-objcp-common.c
  fc5f614233d1e1aab44be266429426d9  gcc/cp/cp-objcp-common.h
  e5a3c0227c5d7f6f15753ecf70d86dce  gcc/cp/cp-tree.def
! c15606a3bc0492328f29aebce8f255c1  gcc/cp/cp-tree.h
  ad2891a30f319f1059b3cd8cb85c2a66  gcc/cp/cp-ubsan.c
  9f7577d6131c40516642a76a3cd4b349  gcc/cp/cvt.c
  80fc2cbdfb0b939d06eb0c83cec629b0  gcc/cp/cxx-pretty-print.c
  f217ad40ae4095f745573953940bc517  gcc/cp/cxx-pretty-print.h
! 2113714dc6eb431ec3b698883f0a86f7  gcc/cp/decl.c
  2ee48334d4ea854bc0b6138b17db0eca  gcc/cp/decl.h
! 8f6d5e2435483bb9efe75ff263436eb1  gcc/cp/decl2.c
  babde369bad84c4348cbb81fef27de19  gcc/cp/dump.c
  65e7fee5d2a2ff328b09d262bdeb3b42  gcc/cp/error.c
  ae9a51d72d46922925309791e4610beb  gcc/cp/except.c
! 9ef7eb731264636da96bb3ee4f5d92bd  gcc/cp/expr.c
! bf339c04a11eb1ff6ae77b76d8a44e0c  gcc/cp/friend.c
  af1b9753c30b60683233adf6dc1ebed9  gcc/cp/g++spec.c
! b1ac51933647fe1ccb10f6135b3d52df  gcc/cp/init.c
! 778410400a5a0810061bddb226c20863  gcc/cp/lambda.c
  1b5fe425de21c6959e8fcf809a4d9bf0  gcc/cp/lang-specs.h
  8b55a87f580d7fabcd05e1be8bf8678a  gcc/cp/lex.c
  9a5b5f363f6a7bd9716c92383bbb1288  gcc/cp/logic.cc
--- 5057,5093 ----
  1ea0510e0c84257e030079fda09b655d  gcc/cp/ChangeLog-2020
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! d2bd0fd46a7f9c4ee3b56d9f428d65e0  gcc/cp/Make-lang.in
! afb087863e6715ff165d052708bf4414  gcc/cp/call.c
  013fc77930854f5ca6df4b4955b9cd5d  gcc/cp/cfns.gperf
  94073c4e9f5c434dbd02f5fab8ef2fec  gcc/cp/cfns.h
  aa4071bfecf6b015c47cdbab9841661a  gcc/cp/class.c
  52c149e840d6ef546324992e040dffc9  gcc/cp/config-lang.in
! 59ef4b840ac9f1db792009b9bdaa9581  gcc/cp/constexpr.c
! 9ae4cb52106e89d9c5a2e781033620a8  gcc/cp/constraint.cc
! a6a2f78d1d373857ec832b0b31bf44bf  gcc/cp/coroutines.cc
! 2a1fbafd31afd2c7f72112e577b564c8  gcc/cp/cp-gimplify.c
  9f675ade86f6f438186c3359d251522d  gcc/cp/cp-lang.c
  3a17e28f03f7b86b06a0f7f2f1b38ee1  gcc/cp/cp-name-hint.h
  6546ac35987ddbbd4baddabf4a418fdc  gcc/cp/cp-objcp-common.c
  fc5f614233d1e1aab44be266429426d9  gcc/cp/cp-objcp-common.h
  e5a3c0227c5d7f6f15753ecf70d86dce  gcc/cp/cp-tree.def
! f9a574462af6997cf29648202b551907  gcc/cp/cp-tree.h
  ad2891a30f319f1059b3cd8cb85c2a66  gcc/cp/cp-ubsan.c
  9f7577d6131c40516642a76a3cd4b349  gcc/cp/cvt.c
  80fc2cbdfb0b939d06eb0c83cec629b0  gcc/cp/cxx-pretty-print.c
  f217ad40ae4095f745573953940bc517  gcc/cp/cxx-pretty-print.h
! daa9fe27806f72fe532df355e0b0d748  gcc/cp/decl.c
  2ee48334d4ea854bc0b6138b17db0eca  gcc/cp/decl.h
! 3280ae91b5be9675d30d1cb050bc959b  gcc/cp/decl2.c
  babde369bad84c4348cbb81fef27de19  gcc/cp/dump.c
  65e7fee5d2a2ff328b09d262bdeb3b42  gcc/cp/error.c
  ae9a51d72d46922925309791e4610beb  gcc/cp/except.c
! 241a55f9bb802f8d3cc6054dd4cd9178  gcc/cp/expr.c
! b791a0dba8e31384d08e932019f00711  gcc/cp/friend.c
  af1b9753c30b60683233adf6dc1ebed9  gcc/cp/g++spec.c
! 035a940de6c2d86dc453e9621c5c5ce8  gcc/cp/init.c
! 037fc13026820d090e2071641efbedf8  gcc/cp/lambda.c
  1b5fe425de21c6959e8fcf809a4d9bf0  gcc/cp/lang-specs.h
  8b55a87f580d7fabcd05e1be8bf8678a  gcc/cp/lex.c
  9a5b5f363f6a7bd9716c92383bbb1288  gcc/cp/logic.cc
*************** e9bd33d0476c27e8dc7ae163523b0c43  gcc/cp
*** 5095,5115 ****
  7e088d81d8f48a2718ab084df953d006  gcc/cp/mapper-client.h
  e9215833b37c3eb15eca691a16a697c2  gcc/cp/mapper-resolver.cc
  e9a208e30d27c64ecd8cf48641166778  gcc/cp/method.c
! 42305a8479586d5aa1f847d57d4bf6eb  gcc/cp/module.cc
  4f44ae45107fb19664c4ea6fc1f9617d  gcc/cp/name-lookup.c
  7942e2da44ee806a67fc5508fa55227c  gcc/cp/name-lookup.h
  74ef5d5c783b19f58d24af2f5d586229  gcc/cp/operators.def
  135e2526b78ff7fba60e97120acd13ce  gcc/cp/optimize.c
! 01006045247b7da33610408f203ef633  gcc/cp/parser.c
  33e6205b133939ff76752369e76e776e  gcc/cp/parser.h
! 3b6f3c5af64170b7fbea87816eec8423  gcc/cp/pt.c
  185afe382f5cbb5102c5c681fca68144  gcc/cp/ptree.c
  d406c7234ce4950b24a30a51bdfdd50a  gcc/cp/rtti.c
  8cb37681d9be422bc5accc1da48d5a75  gcc/cp/search.c
! 9ed1ff9cfbe2339c04127e55d60e3ea3  gcc/cp/semantics.c
! 192df66d3d7d2e34c2ba762538f4a0a5  gcc/cp/tree.c
  7edfa58f1051f1f2f0f0b14381ef44a3  gcc/cp/type-utils.h
! 925b792e840a25f5f671128d881e89f3  gcc/cp/typeck.c
  e4cc977761b34df297265283c01fd95a  gcc/cp/typeck2.c
  2106dba4a8c689a23ae0c6ed874a57e3  gcc/cp/vtable-class-hierarchy.c
  a1dcb34fdd7a1dfb94f27bc0ac1a9306  gcc/cppbuiltin.c
--- 5096,5116 ----
  7e088d81d8f48a2718ab084df953d006  gcc/cp/mapper-client.h
  e9215833b37c3eb15eca691a16a697c2  gcc/cp/mapper-resolver.cc
  e9a208e30d27c64ecd8cf48641166778  gcc/cp/method.c
! c9c31fd4be4157e651437f69bab47e87  gcc/cp/module.cc
  4f44ae45107fb19664c4ea6fc1f9617d  gcc/cp/name-lookup.c
  7942e2da44ee806a67fc5508fa55227c  gcc/cp/name-lookup.h
  74ef5d5c783b19f58d24af2f5d586229  gcc/cp/operators.def
  135e2526b78ff7fba60e97120acd13ce  gcc/cp/optimize.c
! acd2c7b97ff043208e88bf5e6ca82647  gcc/cp/parser.c
  33e6205b133939ff76752369e76e776e  gcc/cp/parser.h
! d3d3948dd198b0e1166f6543c6a0bd15  gcc/cp/pt.c
  185afe382f5cbb5102c5c681fca68144  gcc/cp/ptree.c
  d406c7234ce4950b24a30a51bdfdd50a  gcc/cp/rtti.c
  8cb37681d9be422bc5accc1da48d5a75  gcc/cp/search.c
! d5a0695e3c50ba82571f717972d38f63  gcc/cp/semantics.c
! 0396d0f5ebabe1de78784a27789c5579  gcc/cp/tree.c
  7edfa58f1051f1f2f0f0b14381ef44a3  gcc/cp/type-utils.h
! 5df4b424167aea4acc1e57d2a76c5b80  gcc/cp/typeck.c
  e4cc977761b34df297265283c01fd95a  gcc/cp/typeck2.c
  2106dba4a8c689a23ae0c6ed874a57e3  gcc/cp/vtable-class-hierarchy.c
  a1dcb34fdd7a1dfb94f27bc0ac1a9306  gcc/cppbuiltin.c
*************** a1dcb34fdd7a1dfb94f27bc0ac1a9306  gcc/cp
*** 5117,5127 ****
  6e7d827a3ec222ae6ca62e9c22436e8a  gcc/cppdefault.c
  35cd9b2cb53030bd2c74276e74b26538  gcc/cppdefault.h
  5c83369d9944aaedc414144a7e855b95  gcc/cprop.c
! 8453e4603f3a5d2e76b69d883c9bb4e9  gcc/cse.c
! a7c636b547b9582524b0bd62c6178487  gcc/cselib.c
! 857b8e6c3caa1a049b93761fde09419a  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! 4851f4c4d8a370263326460fe4537aab  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
--- 5118,5128 ----
  6e7d827a3ec222ae6ca62e9c22436e8a  gcc/cppdefault.c
  35cd9b2cb53030bd2c74276e74b26538  gcc/cppdefault.h
  5c83369d9944aaedc414144a7e855b95  gcc/cprop.c
! 18ea5d9f80ae5856dd7d8cff50fde036  gcc/cse.c
! c46d05fc82c5d23635826d70bb1bbe79  gcc/cselib.c
! afc06cbc81e04301f2d2ce40e905e36b  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! b125eb4b51ebc50ff5fad465fdda4e22  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
*************** ac5afa7752655d02611f15cb06067ee5  gcc/d/
*** 5144,5150 ****
  2859511236eb18116b8f704c0893fc82  gcc/d/d-builtins.cc
  79699adb49367908f31e0aba2aaaa568  gcc/d/d-codegen.cc
  75ceab1f211190aa8a607de211d92550  gcc/d/d-compiler.cc
! cdd16f63672008a0bf919957625a0ae1  gcc/d/d-convert.cc
  c68cc8b289e0bed7991d8ba214514b52  gcc/d/d-ctfloat.cc
  96e81ac3898e23a215821a9ca3faac03  gcc/d/d-diagnostic.cc
  9ad7d94122a0e53b642e569ef01bd97c  gcc/d/d-frontend.cc
--- 5145,5151 ----
  2859511236eb18116b8f704c0893fc82  gcc/d/d-builtins.cc
  79699adb49367908f31e0aba2aaaa568  gcc/d/d-codegen.cc
  75ceab1f211190aa8a607de211d92550  gcc/d/d-compiler.cc
! 4a98131d73049057f6f45e3f49fde876  gcc/d/d-convert.cc
  c68cc8b289e0bed7991d8ba214514b52  gcc/d/d-ctfloat.cc
  96e81ac3898e23a215821a9ca3faac03  gcc/d/d-diagnostic.cc
  9ad7d94122a0e53b642e569ef01bd97c  gcc/d/d-frontend.cc
*************** c68cc8b289e0bed7991d8ba214514b52  gcc/d/
*** 5153,5159 ****
  96052adec5c3542ca6303076367be7f9  gcc/d/d-lang.cc
  4caed6522470a27c7bc55349d4e41997  gcc/d/d-longdouble.cc
  a80cf667b6cde2503c142172b86d4a32  gcc/d/d-port.cc
! 7706828e60cb570bd143b79764e2026a  gcc/d/d-spec.cc
  5a2b9ffbe1b7e05aae3752561c81df38  gcc/d/d-system.h
  269cf45854f0a7573a9c0fee24922f96  gcc/d/d-target-def.h
  47901d67a22e6cb06354d26f256b1f44  gcc/d/d-target.cc
--- 5154,5160 ----
  96052adec5c3542ca6303076367be7f9  gcc/d/d-lang.cc
  4caed6522470a27c7bc55349d4e41997  gcc/d/d-longdouble.cc
  a80cf667b6cde2503c142172b86d4a32  gcc/d/d-port.cc
! 7ab775debb8937fa24fe04e82def9493  gcc/d/d-spec.cc
  5a2b9ffbe1b7e05aae3752561c81df38  gcc/d/d-system.h
  269cf45854f0a7573a9c0fee24922f96  gcc/d/d-target-def.h
  47901d67a22e6cb06354d26f256b1f44  gcc/d/d-target.cc
*************** e510e0920097f33c1584945cb08e080f  gcc/d/
*** 5161,5167 ****
  bd403a5022b9229546c86481f8f9b61e  gcc/d/d-target.h
  03f0da7679723f02dabef26c57f6b354  gcc/d/d-tree.def
  ea5292cd7004a68b8465731456abc987  gcc/d/d-tree.h
! 70d017a7d035eb8d878bcf3b962c2237  gcc/d/decl.cc
  3b33e14d54fdeb23eedefb85531d96d9  gcc/d/dmd/MERGE
  56e5dec62f6a10592384f715f378eef0  gcc/d/dmd/access.c
  3791d70488bc98342964c686b935b89c  gcc/d/dmd/aggregate.h
--- 5162,5168 ----
  bd403a5022b9229546c86481f8f9b61e  gcc/d/d-target.h
  03f0da7679723f02dabef26c57f6b354  gcc/d/d-tree.def
  ea5292cd7004a68b8465731456abc987  gcc/d/d-tree.h
! 1d03631158cceeca027deedd1a0fa0da  gcc/d/decl.cc
  3b33e14d54fdeb23eedefb85531d96d9  gcc/d/dmd/MERGE
  56e5dec62f6a10592384f715f378eef0  gcc/d/dmd/access.c
  3791d70488bc98342964c686b935b89c  gcc/d/dmd/aggregate.h
*************** dda2e57e23eed0e5d751a553fb16d446  gcc/d/
*** 5212,5218 ****
  577fa35cc9a9391c0626f6c86b7ff946  gcc/d/dmd/escape.c
  64a57e95f2aafac3bedd65e080c585d9  gcc/d/dmd/expression.c
  b29b7963b6b682ffdcfde106efa2df33  gcc/d/dmd/expression.h
! 5b8f33811a9cdce4c63c076519318ca3  gcc/d/dmd/expressionsem.c
  7f44497a182abfa3fb9dc8a2759f0f64  gcc/d/dmd/func.c
  584c6d25fe0605ec4df673034ed70a09  gcc/d/dmd/globals.h
  7a04a18c4e7fb560860651d33c970846  gcc/d/dmd/hdrgen.c
--- 5213,5219 ----
  577fa35cc9a9391c0626f6c86b7ff946  gcc/d/dmd/escape.c
  64a57e95f2aafac3bedd65e080c585d9  gcc/d/dmd/expression.c
  b29b7963b6b682ffdcfde106efa2df33  gcc/d/dmd/expression.h
! b3dac1966fe6a80f44b42f3cf2a64bf0  gcc/d/dmd/expressionsem.c
  7f44497a182abfa3fb9dc8a2759f0f64  gcc/d/dmd/func.c
  584c6d25fe0605ec4df673034ed70a09  gcc/d/dmd/globals.h
  7a04a18c4e7fb560860651d33c970846  gcc/d/dmd/hdrgen.c
*************** df2a78f5b00debf6e042e43602e9d42c  gcc/d/
*** 5301,5309 ****
  24197b380374c982964e1ded75baa656  gcc/d/dmd/utils.c
  4f4d6813c8ea201f84a5a083a752c723  gcc/d/dmd/version.h
  0ab1d21cbddf7956fc552e2637e36eb7  gcc/d/dmd/visitor.h
! 972db9b2d0b44561d878e4726d7bf38c  gcc/d/expr.cc
! b12d8cdbe556dcc8f51b72d45078d563  gcc/d/gdc.texi
! 4ef002e6f38a41b929d9fb7ee2d7d853  gcc/d/imports.cc
  fd28164e92119c746c3971d13fd80699  gcc/d/intrinsics.cc
  4fe7ce256ef44a3d0fae8336b3d3ed5d  gcc/d/intrinsics.def
  d86483b35c844004766bacbcd21e16ed  gcc/d/lang-specs.h
--- 5302,5310 ----
  24197b380374c982964e1ded75baa656  gcc/d/dmd/utils.c
  4f4d6813c8ea201f84a5a083a752c723  gcc/d/dmd/version.h
  0ab1d21cbddf7956fc552e2637e36eb7  gcc/d/dmd/visitor.h
! 6938ab9ac55e68adb6649cc1b3bf25bc  gcc/d/expr.cc
! 62330f923806ea0075a632280081c9d1  gcc/d/gdc.texi
! ae93b84454e6dc245479c9951106c132  gcc/d/imports.cc
  fd28164e92119c746c3971d13fd80699  gcc/d/intrinsics.cc
  4fe7ce256ef44a3d0fae8336b3d3ed5d  gcc/d/intrinsics.def
  d86483b35c844004766bacbcd21e16ed  gcc/d/lang-specs.h
*************** dcd9f842c89c2eb8cda2d4e66cfd3a75  gcc/d/
*** 5312,5319 ****
  ea64a4d9552ea8f63780ef71e40ad1cc  gcc/d/modules.cc
  920201a2a1193fcf0af779565d49ea5d  gcc/d/runtime.cc
  fb778fcb2c41447123e9fc33e23ee981  gcc/d/runtime.def
! 099e663fecd3413f5850ddf7c3ac9f1d  gcc/d/toir.cc
! 8b2d669e1d76dedad749ae14beb662ac  gcc/d/typeinfo.cc
  5044f1a2a7c0d860d5f118453582b445  gcc/d/types.cc
  ffe6cb4083340e61aa80419c3ac2f84a  gcc/d/verstr.h
  888f179fbed34dff2cb09f3941f28b3f  gcc/data-streamer-in.c
--- 5313,5320 ----
  ea64a4d9552ea8f63780ef71e40ad1cc  gcc/d/modules.cc
  920201a2a1193fcf0af779565d49ea5d  gcc/d/runtime.cc
  fb778fcb2c41447123e9fc33e23ee981  gcc/d/runtime.def
! 1f4f99a715c4970883a5818197628839  gcc/d/toir.cc
! 268eff5b661319b07d40a36ffb74f97b  gcc/d/typeinfo.cc
  5044f1a2a7c0d860d5f118453582b445  gcc/d/types.cc
  ffe6cb4083340e61aa80419c3ac2f84a  gcc/d/verstr.h
  888f179fbed34dff2cb09f3941f28b3f  gcc/data-streamer-in.c
*************** d3f48eb6291337b70a8663fea43c5e35  gcc/do
*** 5362,5399 ****
  218582d80c3a5be7ef0215bc9e37347d  gcc/doc/configterms.texi
  3f7bc37ecd638efa9217dbc8049586bd  gcc/doc/contrib.texi
  21f4ebe254eeaf839f14e76f6d98e0f3  gcc/doc/contribute.texi
! 4be347ce540d68ba609652150fe5767b  gcc/doc/cpp.1
! 9a76a8fbb00e749ffe25a45fc4151499  gcc/doc/cpp.info
  f65281217c508bccc04841ecdb70678e  gcc/doc/cpp.texi
  9fdf410cbb02057509020001009b7a76  gcc/doc/cppdiropts.texi
  dab6d92d04827098dfeb7e47e827f2b5  gcc/doc/cppenv.texi
! 83f756111b8b2a66eb68208c84092964  gcc/doc/cppinternals.info
  5d6d94ebaaee9c663ccd7de2d90928cb  gcc/doc/cppinternals.texi
! 0b1d4f633c271ebe3278233e58d2dd20  gcc/doc/cppopts.texi
  5e580ffce6393e71cea1d0f253c2235e  gcc/doc/cppwarnopts.texi
! 27adb8013ca72a66619395e712c36d90  gcc/doc/extend.texi
  25e9d455e6d1bd64d661a3b9b7c760d1  gcc/doc/fragments.texi
  b286e11fcfd62c37fae56d6d6c31d1fe  gcc/doc/frontends.texi
! 075239552ebe343c2bb5085533a8d05c  gcc/doc/fsf-funding.7
! 473b3a7220fc066052b0d23dab975f24  gcc/doc/g++.1
! 473b3a7220fc066052b0d23dab975f24  gcc/doc/gcc.1
! cd525b46194415f97726b78f6f2285dc  gcc/doc/gcc.info
  1b8b50b15f7f7dfd2bfc10cf04e79196  gcc/doc/gcc.texi
! 768bab962d73747ebeb6173aef123d14  gcc/doc/gccinstall.info
! adcb79b32580efc6524846726aa35b34  gcc/doc/gccint.info
  e0b2b9651dfdfcc12ee2da87c17e11e1  gcc/doc/gccint.texi
! 8ecc5776d3632343caeed8164ff92289  gcc/doc/gcov-dump.1
  d9797edde2661ae0e512c8176c290ae9  gcc/doc/gcov-dump.texi
! 6d5d67fa1aa26eb99fab49466de7340e  gcc/doc/gcov-tool.1
  ca308b028dbb9daa82d92ccca156e07b  gcc/doc/gcov-tool.texi
! e4e5030720d97110126eae7ee4d337b6  gcc/doc/gcov.1
  fd33c1e0e0091bc38ffbee7177921ff3  gcc/doc/gcov.texi
  3bc5fab4bd53960b1121c87434e0b742  gcc/doc/generic.texi
! 30a6efd42c3982776b9e98891bce5e5b  gcc/doc/gfdl.7
! 6c51c207d22bcba97d015676831faa8d  gcc/doc/gfortran.1
  587484a2f8ff3cf6b292b5c044724d4b  gcc/doc/gimple.texi
  290370669f02bef1502ada9273e5261f  gcc/doc/gnu.texi
! 5a48d55bc69a52aaf35233f47bebfa85  gcc/doc/gpl.7
  c89eb85139a4c6829a59358310920b18  gcc/doc/gty.texi
  7bf48d369f1899cf21f53b06605706c6  gcc/doc/headerdirs.texi
  880f6eba982285c503ae42d08a7abad8  gcc/doc/hostconfig.texi
--- 5363,5400 ----
  218582d80c3a5be7ef0215bc9e37347d  gcc/doc/configterms.texi
  3f7bc37ecd638efa9217dbc8049586bd  gcc/doc/contrib.texi
  21f4ebe254eeaf839f14e76f6d98e0f3  gcc/doc/contribute.texi
! 14fbd04eb36b213018c5993ac60d51ba  gcc/doc/cpp.1
! 59651a7abb5ede83c681f52df132035b  gcc/doc/cpp.info
  f65281217c508bccc04841ecdb70678e  gcc/doc/cpp.texi
  9fdf410cbb02057509020001009b7a76  gcc/doc/cppdiropts.texi
  dab6d92d04827098dfeb7e47e827f2b5  gcc/doc/cppenv.texi
! 734f69fb27fb3fa9851c4e699a50266d  gcc/doc/cppinternals.info
  5d6d94ebaaee9c663ccd7de2d90928cb  gcc/doc/cppinternals.texi
! e359b49f51098d2b4c6976efb731dfc9  gcc/doc/cppopts.texi
  5e580ffce6393e71cea1d0f253c2235e  gcc/doc/cppwarnopts.texi
! 13926e62bf1cd272aee181de12224599  gcc/doc/extend.texi
  25e9d455e6d1bd64d661a3b9b7c760d1  gcc/doc/fragments.texi
  b286e11fcfd62c37fae56d6d6c31d1fe  gcc/doc/frontends.texi
! 8fbe8de616e2be5d772b751e0a5177a1  gcc/doc/fsf-funding.7
! 9778b022bec8b1c0a921db6ea7a6a4f8  gcc/doc/g++.1
! 9778b022bec8b1c0a921db6ea7a6a4f8  gcc/doc/gcc.1
! 88d46a31abb32e525a7aa5899814ef11  gcc/doc/gcc.info
  1b8b50b15f7f7dfd2bfc10cf04e79196  gcc/doc/gcc.texi
! af85ce93c4358a2881582693750f9dbf  gcc/doc/gccinstall.info
! bf0ebb94b15f2dfb23ebb897617a2aee  gcc/doc/gccint.info
  e0b2b9651dfdfcc12ee2da87c17e11e1  gcc/doc/gccint.texi
! 9717e1366b655a9f25a402c2c5a0f893  gcc/doc/gcov-dump.1
  d9797edde2661ae0e512c8176c290ae9  gcc/doc/gcov-dump.texi
! 7e212eca64c70f8d8770d8f0a143018e  gcc/doc/gcov-tool.1
  ca308b028dbb9daa82d92ccca156e07b  gcc/doc/gcov-tool.texi
! 28c3da211cff17add5beaef80dbd9fde  gcc/doc/gcov.1
  fd33c1e0e0091bc38ffbee7177921ff3  gcc/doc/gcov.texi
  3bc5fab4bd53960b1121c87434e0b742  gcc/doc/generic.texi
! 81fcccd0eab32c91ebbe39f0a173c657  gcc/doc/gfdl.7
! dd1009edce22831faba3f3e89113976a  gcc/doc/gfortran.1
  587484a2f8ff3cf6b292b5c044724d4b  gcc/doc/gimple.texi
  290370669f02bef1502ada9273e5261f  gcc/doc/gnu.texi
! 6a965ad7eb3b46ebc57c54a5bc6e4c1b  gcc/doc/gpl.7
  c89eb85139a4c6829a59358310920b18  gcc/doc/gty.texi
  7bf48d369f1899cf21f53b06605706c6  gcc/doc/headerdirs.texi
  880f6eba982285c503ae42d08a7abad8  gcc/doc/hostconfig.texi
*************** b6389c8331319f90193f11ac084e86e4  gcc/do
*** 5408,5418 ****
  7af71caf0d189c0c71b7268793e1400f  gcc/doc/install.texi
  532fb3c092b7b296ddcec4a99a0c475d  gcc/doc/install.texi2html
  2bdd76b105eea8ff35649ac4ffb8eb5d  gcc/doc/interface.texi
! 2d88c68d539e547f3a6a0d8382303341  gcc/doc/invoke.texi
  c0f8bb0ef887855830a3b2948920db28  gcc/doc/languages.texi
  0250c30f49d52e180cf510442a084475  gcc/doc/libgcc.texi
  3c5a8fa331cb442336e2ff249f1f0aee  gcc/doc/loop.texi
! da6758f13cca915f0ef8e900cadb54e7  gcc/doc/lto-dump.1
  45b0e2c9fe4e809535fd2665b7efe706  gcc/doc/lto-dump.texi
  1e20b8193e6a33b7a5258cacf05c5634  gcc/doc/lto.texi
  959966ff2c0bf27c64314d6bdc06d05a  gcc/doc/makefile.texi
--- 5409,5419 ----
  7af71caf0d189c0c71b7268793e1400f  gcc/doc/install.texi
  532fb3c092b7b296ddcec4a99a0c475d  gcc/doc/install.texi2html
  2bdd76b105eea8ff35649ac4ffb8eb5d  gcc/doc/interface.texi
! 60ad39179fc2f76b0983c70e98d87d09  gcc/doc/invoke.texi
  c0f8bb0ef887855830a3b2948920db28  gcc/doc/languages.texi
  0250c30f49d52e180cf510442a084475  gcc/doc/libgcc.texi
  3c5a8fa331cb442336e2ff249f1f0aee  gcc/doc/loop.texi
! ec4bdb47ad5c8f40b636bd1edca8a682  gcc/doc/lto-dump.1
  45b0e2c9fe4e809535fd2665b7efe706  gcc/doc/lto-dump.texi
  1e20b8193e6a33b7a5258cacf05c5634  gcc/doc/lto.texi
  959966ff2c0bf27c64314d6bdc06d05a  gcc/doc/makefile.texi
*************** a2f207c234d4682ccf4f6d5aa495a223  gcc/do
*** 5442,5460 ****
  8cea2a00e1535e5f231ab41a9682ef64  gcc/domwalk.h
  dd64460f06e1554c5fd8e1fe09836939  gcc/double-int.c
  a16c69e33dc1ae6808e9a513e2545d03  gcc/double-int.h
! 36eb0e4ab78e524788de3bca959ad797  gcc/dse.c
  dbe8c1d99e18c5f9a07096a230996e8f  gcc/dump-context.h
  43bfbc6fc46ac173417adbbceab515a2  gcc/dumpfile.c
  a0e7d76c9e6820c8c60fd7162484c1aa  gcc/dumpfile.h
  8731562505e8ee4827d4bffe59b4e5e6  gcc/dwarf2asm.c
  b301aca61d8288586da32dd2c3e6c7ea  gcc/dwarf2asm.h
  301a89cf04dc4a12bb77b09ad0daa51f  gcc/dwarf2cfi.c
! 91c44eafbc6d9c88d6c660c8f2282309  gcc/dwarf2out.c
  f9339d6f2072113fa5a26bc27c7764c9  gcc/dwarf2out.h
  c41773ac5892c49b8063e85e4cf7d803  gcc/early-remat.c
  5d0344605084d3d22969ca333fe08a2e  gcc/edit-context.c
  f5dacf671f84564bb73a46cd515800a4  gcc/edit-context.h
! 77e8d660e3de5f5101840e1cf555d5bb  gcc/emit-rtl.c
  3eb40e7e84207f7a1af03674336f1ab6  gcc/emit-rtl.h
  f5dba8046a94c319e61cc3cd8a11ad44  gcc/errors.c
  f22c15861cfd290b1e83fccc65b534d1  gcc/errors.h
--- 5443,5461 ----
  8cea2a00e1535e5f231ab41a9682ef64  gcc/domwalk.h
  dd64460f06e1554c5fd8e1fe09836939  gcc/double-int.c
  a16c69e33dc1ae6808e9a513e2545d03  gcc/double-int.h
! 5e1456a483345ba8ef171ccba85b0287  gcc/dse.c
  dbe8c1d99e18c5f9a07096a230996e8f  gcc/dump-context.h
  43bfbc6fc46ac173417adbbceab515a2  gcc/dumpfile.c
  a0e7d76c9e6820c8c60fd7162484c1aa  gcc/dumpfile.h
  8731562505e8ee4827d4bffe59b4e5e6  gcc/dwarf2asm.c
  b301aca61d8288586da32dd2c3e6c7ea  gcc/dwarf2asm.h
  301a89cf04dc4a12bb77b09ad0daa51f  gcc/dwarf2cfi.c
! 74e83ee581f46a765352afe51eff916d  gcc/dwarf2out.c
  f9339d6f2072113fa5a26bc27c7764c9  gcc/dwarf2out.h
  c41773ac5892c49b8063e85e4cf7d803  gcc/early-remat.c
  5d0344605084d3d22969ca333fe08a2e  gcc/edit-context.c
  f5dacf671f84564bb73a46cd515800a4  gcc/edit-context.h
! 503af89f59665f416858651228b7cab1  gcc/emit-rtl.c
  3eb40e7e84207f7a1af03674336f1ab6  gcc/emit-rtl.h
  f5dba8046a94c319e61cc3cd8a11ad44  gcc/errors.c
  f22c15861cfd290b1e83fccc65b534d1  gcc/errors.h
*************** acf60971867c3bda77169fa63b5d9155  gcc/ex
*** 5468,5474 ****
  4abb7d44019c01df643228a63102e0a4  gcc/explow.h
  12ac80aeab1b9a80e5593f38c6250825  gcc/expmed.c
  461a5c7a292b43e45d34d15a6123aa1b  gcc/expmed.h
! 0713647c19b8efba960495ff009cf061  gcc/expr.c
  8dcbd4db5ca82e1fb16c9af198cace7e  gcc/expr.h
  361f6eafe4496f203f4bc0ba87d7ef2a  gcc/fibonacci_heap.c
  8f6ccc49ae1e2133d15bff71830df67c  gcc/fibonacci_heap.h
--- 5469,5475 ----
  4abb7d44019c01df643228a63102e0a4  gcc/explow.h
  12ac80aeab1b9a80e5593f38c6250825  gcc/expmed.c
  461a5c7a292b43e45d34d15a6123aa1b  gcc/expmed.h
! 930c87db8b77271f2531ed656637aea8  gcc/expr.c
  8dcbd4db5ca82e1fb16c9af198cace7e  gcc/expr.h
  361f6eafe4496f203f4bc0ba87d7ef2a  gcc/fibonacci_heap.c
  8f6ccc49ae1e2133d15bff71830df67c  gcc/fibonacci_heap.h
*************** bc014c20048c035718ad5836f6097d78  gcc/fi
*** 5483,5491 ****
  764f38b5e7ac1b3b4079577b45cb0331  gcc/flags.h
  891064e4722e3a6a11417a8a1ecd065a  gcc/fold-const-call.c
  d74e6be78940750833ff959c0f5571bd  gcc/fold-const-call.h
! ed239488833de5f1534c1b74cd5ac146  gcc/fold-const.c
  3812bf5faa6f093ebc438439b278eb2e  gcc/fold-const.h
! 764205aa5c7b9934f7614881a5c9d953  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5484,5492 ----
  764f38b5e7ac1b3b4079577b45cb0331  gcc/flags.h
  891064e4722e3a6a11417a8a1ecd065a  gcc/fold-const-call.c
  d74e6be78940750833ff959c0f5571bd  gcc/fold-const-call.h
! 3c18a183f44bbcb4b76d0e313d8fb763  gcc/fold-const.c
  3812bf5faa6f093ebc438439b278eb2e  gcc/fold-const.h
! 0d4fe6c4b59135c1966497dc7ea6ab15  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** d1595b2ed8fb2a33f6ce0dc595f4f33c  gcc/fo
*** 5509,5517 ****
  ff3a70a964289eb29172b7a5e086ee3f  gcc/fortran/Make-lang.in
  e4b7aeea57f8a7edeb226df1058af6ed  gcc/fortran/arith.c
  5478da78bbb9c6f5ec6f4c291556f64b  gcc/fortran/arith.h
! 9ad68060ee5cc6a20a3bcc4eb8bf35b0  gcc/fortran/array.c
  41d9862a96a73a3888dd71dbfd6a6f48  gcc/fortran/bbt.c
! 6bf670ce7c9199fae127f9c0e2f721a0  gcc/fortran/check.c
  3717b8a023b319090152a5f6aadaff78  gcc/fortran/class.c
  f5d7a68caf3076d5812b149cf771093f  gcc/fortran/config-lang.in
  9ec79e4ff334ab1ae73233b75630f91b  gcc/fortran/constructor.c
--- 5510,5518 ----
  ff3a70a964289eb29172b7a5e086ee3f  gcc/fortran/Make-lang.in
  e4b7aeea57f8a7edeb226df1058af6ed  gcc/fortran/arith.c
  5478da78bbb9c6f5ec6f4c291556f64b  gcc/fortran/arith.h
! fd0c7f1afa3844997e121bacf1505be2  gcc/fortran/array.c
  41d9862a96a73a3888dd71dbfd6a6f48  gcc/fortran/bbt.c
! e917659f3bb01bc700fb91e5c3fe74b8  gcc/fortran/check.c
  3717b8a023b319090152a5f6aadaff78  gcc/fortran/class.c
  f5d7a68caf3076d5812b149cf771093f  gcc/fortran/config-lang.in
  9ec79e4ff334ab1ae73233b75630f91b  gcc/fortran/constructor.c
*************** b1628a6231ddb7f7e4b2cf44b836b928  gcc/fo
*** 5521,5554 ****
  315cf57aecb390202190f4259ba3a36b  gcc/fortran/cpp.h
  ee7a54e5c7f7a1043642f3148aa0e591  gcc/fortran/data.c
  82bc765451efda646706547a38c09487  gcc/fortran/data.h
! bb6a608fea49bacea5ce0a917f5b9673  gcc/fortran/decl.c
! c4f73bba061adfe9eabf763a1a418e5b  gcc/fortran/dependency.c
  d43b0d544fe709c25b81ee187b848372  gcc/fortran/dependency.h
! fc814ce5ee0d7b357f14b97588a3287c  gcc/fortran/dump-parse-tree.c
  d1cd71bb3644df2833513aea82c56ad6  gcc/fortran/error.c
! 5a8abdc1352d538d51c02a492084d7d1  gcc/fortran/expr.c
! da3a0c04f8f87fdb6697ab1965ac58bc  gcc/fortran/f95-lang.c
  8353b630bdf330e4d2b8ef9df747b1df  gcc/fortran/frontend-passes.c
  61d212b06741cc79879806a53df1eaa2  gcc/fortran/gfc-diagnostic.def
  862a8dcb967ce0c214bce57208763cfc  gcc/fortran/gfc-internals.texi
  1e9576f9f76b696a9f3ef0d67154e18d  gcc/fortran/gfortran.h
! 83b13c91736e3468e0fe9e79cdc27a1a  gcc/fortran/gfortran.info
  58ec938eb719edf2ffe5dbfcce4dd1d8  gcc/fortran/gfortran.texi
  13ef845dc55ae5b20f8afe50368263ea  gcc/fortran/gfortranspec.c
! 8042dcc4cf37a109aa435902c09017d9  gcc/fortran/interface.c
  02c410f8928702184b16506978d79946  gcc/fortran/intrinsic.c
  2e04d6a800add4904e0bf8ba5da7b994  gcc/fortran/intrinsic.h
  c09f27d7a8071860d1a900d96da0ec71  gcc/fortran/intrinsic.texi
  c6a48e4292d1489642fbb1664cc3e6c3  gcc/fortran/invoke.texi
  5d1f82f037a7a8c9483a449ef7c29876  gcc/fortran/io.c
  cfb055fb9cb1a68a9974d4b65003c3cb  gcc/fortran/ioparm.def
! 3a153534afac4c41d573cf0c82caf421  gcc/fortran/iresolve.c
  074cd74d31e55c226d9f97157593dc3d  gcc/fortran/iso-c-binding.def
  efbaccc5d8e94375f348176fc0781246  gcc/fortran/iso-fortran-env.def
  0a1b06a8103dcc19be16396515acaa9b  gcc/fortran/lang-specs.h
  09e0020c10cf80b36c91236e34f4d348  gcc/fortran/lang.opt
  4c92759881e572b635603ebb42a2455f  gcc/fortran/libgfortran.h
! ae2f02c68f9911672bdb3b401cb210c2  gcc/fortran/match.c
  7da585148fe4f59ce5a733a65b82746c  gcc/fortran/match.h
  af7a3aa1a1204dd37e34eefa510399cd  gcc/fortran/matchexp.c
  b3b81cd6b5386b281800a93f8e4ade0b  gcc/fortran/mathbuiltins.def
--- 5522,5555 ----
  315cf57aecb390202190f4259ba3a36b  gcc/fortran/cpp.h
  ee7a54e5c7f7a1043642f3148aa0e591  gcc/fortran/data.c
  82bc765451efda646706547a38c09487  gcc/fortran/data.h
! cc5353e18dc5f65dcec721ca43a878fe  gcc/fortran/decl.c
! 1ec2271c4fd797ea9054b5e39934ce87  gcc/fortran/dependency.c
  d43b0d544fe709c25b81ee187b848372  gcc/fortran/dependency.h
! 8709ef0424888ed76726af5456426b77  gcc/fortran/dump-parse-tree.c
  d1cd71bb3644df2833513aea82c56ad6  gcc/fortran/error.c
! 97c7cc1fca9de34f21131f6372fe2997  gcc/fortran/expr.c
! dc573e806d86f97c6c674dc64c0e113b  gcc/fortran/f95-lang.c
  8353b630bdf330e4d2b8ef9df747b1df  gcc/fortran/frontend-passes.c
  61d212b06741cc79879806a53df1eaa2  gcc/fortran/gfc-diagnostic.def
  862a8dcb967ce0c214bce57208763cfc  gcc/fortran/gfc-internals.texi
  1e9576f9f76b696a9f3ef0d67154e18d  gcc/fortran/gfortran.h
! 701ccca211312073330e2c02b7e9b45f  gcc/fortran/gfortran.info
  58ec938eb719edf2ffe5dbfcce4dd1d8  gcc/fortran/gfortran.texi
  13ef845dc55ae5b20f8afe50368263ea  gcc/fortran/gfortranspec.c
! f39217510485d58e67eb40edf78ebb8d  gcc/fortran/interface.c
  02c410f8928702184b16506978d79946  gcc/fortran/intrinsic.c
  2e04d6a800add4904e0bf8ba5da7b994  gcc/fortran/intrinsic.h
  c09f27d7a8071860d1a900d96da0ec71  gcc/fortran/intrinsic.texi
  c6a48e4292d1489642fbb1664cc3e6c3  gcc/fortran/invoke.texi
  5d1f82f037a7a8c9483a449ef7c29876  gcc/fortran/io.c
  cfb055fb9cb1a68a9974d4b65003c3cb  gcc/fortran/ioparm.def
! 87d727d11c45f19058569f4b7b522dcf  gcc/fortran/iresolve.c
  074cd74d31e55c226d9f97157593dc3d  gcc/fortran/iso-c-binding.def
  efbaccc5d8e94375f348176fc0781246  gcc/fortran/iso-fortran-env.def
  0a1b06a8103dcc19be16396515acaa9b  gcc/fortran/lang-specs.h
  09e0020c10cf80b36c91236e34f4d348  gcc/fortran/lang.opt
  4c92759881e572b635603ebb42a2455f  gcc/fortran/libgfortran.h
! e89c88d0e221777b9aa7246f8d43a0e3  gcc/fortran/match.c
  7da585148fe4f59ce5a733a65b82746c  gcc/fortran/match.h
  af7a3aa1a1204dd37e34eefa510399cd  gcc/fortran/matchexp.c
  b3b81cd6b5386b281800a93f8e4ade0b  gcc/fortran/mathbuiltins.def
*************** b3b81cd6b5386b281800a93f8e4ade0b  gcc/fo
*** 5556,5596 ****
  34d7f6342ff4b004dd80669ed3646570  gcc/fortran/module.c
  52a543b51ac574c91c996a85d775d71d  gcc/fortran/openmp.c
  94fda6c5e12794dcdd5f378023229c01  gcc/fortran/options.c
! ebce0975022c83898880627b1d236b65  gcc/fortran/parse.c
  35501e834b34f6440232d3c4c2bbd56c  gcc/fortran/parse.h
  9c9d88bede3c641a5faed0a5f008897c  gcc/fortran/primary.c
! 0dfd0f9a0463797275cb74211f7102e6  gcc/fortran/resolve.c
  15654692fbf8143321f77d50d70bf5db  gcc/fortran/scanner.c
  e878063bf09025352b6adf6b5d0ab78d  gcc/fortran/scanner.h
! ea3832e9d8c05d62f7fb910e16f84497  gcc/fortran/simplify.c
  52826d539d76cfcf3218c02df40aecf6  gcc/fortran/st.c
! e5e5b5f672739daa6b4e6407f9759adf  gcc/fortran/symbol.c
  758aeef05fd4d7d6a4474397ada7c8f3  gcc/fortran/target-memory.c
  0ce203c000f89bcab4e2f2b5885ec8f5  gcc/fortran/target-memory.h
! ce3ff6e2419c5377d733f854a87eb6b2  gcc/fortran/trans-array.c
! e1d78c99b48125ffad30fedc872dc207  gcc/fortran/trans-array.h
  ec0059b31f88bbb8c77c8501ca451961  gcc/fortran/trans-common.c
  42b243fa66682aca47b104fdf75790a3  gcc/fortran/trans-const.c
  08d74bbf02852561cf584f029734d164  gcc/fortran/trans-const.h
! 6f8ae55bd9f6d63f35db16c211fbac35  gcc/fortran/trans-decl.c
! 14d62d3cabdfcfd47bf63ffb587dcaca  gcc/fortran/trans-expr.c
! bf366d42e4c38b769cd37f6d91680376  gcc/fortran/trans-intrinsic.c
  d442a2920715f33cb7ca72f6cf551377  gcc/fortran/trans-io.c
! 43be2b05b7e5fd910ea552fab87c7b34  gcc/fortran/trans-openmp.c
  eaeb250c0757adb537819cf0f257fa05  gcc/fortran/trans-stmt.c
  adac91a5c3e9a289d1e225ac37f895f2  gcc/fortran/trans-stmt.h
! d326420e4ce44493518e5114159f04f6  gcc/fortran/trans-types.c
  a1fc23f04301b08a0068afcd35eff141  gcc/fortran/trans-types.h
  8cbeb3565f45e859c5c085e783fa0db6  gcc/fortran/trans.c
! b262b4a95cd0df959a318ec78009eaeb  gcc/fortran/trans.h
  4933a105c1594895df1049f4ba65aa6a  gcc/fortran/trigd_fe.inc
  83124a3111ee9ddc77f41f656b346c44  gcc/fortran/types.def
  47606f3caeb8667613c0b0a243ec2342  gcc/fp-test.c
  a7378b0ee32d1a8103f2106f776ddeef  gcc/function-abi.cc
  85a682a8db05fbb8149ff43de9b26ac7  gcc/function-abi.h
  3be627fea3a3a6c9f0031cdd2808bada  gcc/function-tests.c
! 0c8a7eb6d8a1230e14ab527edcd7c100  gcc/function.c
! d79e4923da49c9efd0d27575ebe0c3e0  gcc/function.h
  bc49cccf40de468c5af3f7b3077601e9  gcc/fwprop.c
  628dd8bc4c3033a144ca9d7411e136d8  gcc/gcc-ar.c
  9b3cde5e018ae1629dad78df7495c686  gcc/gcc-main.c
--- 5557,5597 ----
  34d7f6342ff4b004dd80669ed3646570  gcc/fortran/module.c
  52a543b51ac574c91c996a85d775d71d  gcc/fortran/openmp.c
  94fda6c5e12794dcdd5f378023229c01  gcc/fortran/options.c
! af51019f137e78485665bbbbfe7e2b76  gcc/fortran/parse.c
  35501e834b34f6440232d3c4c2bbd56c  gcc/fortran/parse.h
  9c9d88bede3c641a5faed0a5f008897c  gcc/fortran/primary.c
! d3b712746c10d721cb936208bbb5d1a1  gcc/fortran/resolve.c
  15654692fbf8143321f77d50d70bf5db  gcc/fortran/scanner.c
  e878063bf09025352b6adf6b5d0ab78d  gcc/fortran/scanner.h
! 89b9a275ca73a232db538c0822e5fb81  gcc/fortran/simplify.c
  52826d539d76cfcf3218c02df40aecf6  gcc/fortran/st.c
! aa211a53c1211bf0ce18027a6f003c95  gcc/fortran/symbol.c
  758aeef05fd4d7d6a4474397ada7c8f3  gcc/fortran/target-memory.c
  0ce203c000f89bcab4e2f2b5885ec8f5  gcc/fortran/target-memory.h
! cbc1520a516fdbfd4490077f7018fdbb  gcc/fortran/trans-array.c
! 69c63b36acf6f0724f477e9923bcd2bb  gcc/fortran/trans-array.h
  ec0059b31f88bbb8c77c8501ca451961  gcc/fortran/trans-common.c
  42b243fa66682aca47b104fdf75790a3  gcc/fortran/trans-const.c
  08d74bbf02852561cf584f029734d164  gcc/fortran/trans-const.h
! a110fc331c5f1eb2f46ce1f2643d82d2  gcc/fortran/trans-decl.c
! ad288cef1293249e6167ba92ee514895  gcc/fortran/trans-expr.c
! 4926b7e6ac1f51c022972854fc1af33b  gcc/fortran/trans-intrinsic.c
  d442a2920715f33cb7ca72f6cf551377  gcc/fortran/trans-io.c
! b700350e62cdce1e61c30e786605a3ec  gcc/fortran/trans-openmp.c
  eaeb250c0757adb537819cf0f257fa05  gcc/fortran/trans-stmt.c
  adac91a5c3e9a289d1e225ac37f895f2  gcc/fortran/trans-stmt.h
! c327c38ab53f43521dc4d3a07fc93272  gcc/fortran/trans-types.c
  a1fc23f04301b08a0068afcd35eff141  gcc/fortran/trans-types.h
  8cbeb3565f45e859c5c085e783fa0db6  gcc/fortran/trans.c
! 8169aa1848a7313a296c2592de432ead  gcc/fortran/trans.h
  4933a105c1594895df1049f4ba65aa6a  gcc/fortran/trigd_fe.inc
  83124a3111ee9ddc77f41f656b346c44  gcc/fortran/types.def
  47606f3caeb8667613c0b0a243ec2342  gcc/fp-test.c
  a7378b0ee32d1a8103f2106f776ddeef  gcc/function-abi.cc
  85a682a8db05fbb8149ff43de9b26ac7  gcc/function-abi.h
  3be627fea3a3a6c9f0031cdd2808bada  gcc/function-tests.c
! c5a9339ec92fd0ce9da14a18d658a9e9  gcc/function.c
! 051f5de7c89e11b8cdbbcbca9b42e9f2  gcc/function.h
  bc49cccf40de468c5af3f7b3077601e9  gcc/fwprop.c
  628dd8bc4c3033a144ca9d7411e136d8  gcc/gcc-ar.c
  9b3cde5e018ae1629dad78df7495c686  gcc/gcc-main.c
*************** bc49cccf40de468c5af3f7b3077601e9  gcc/fw
*** 5598,5604 ****
  219ebc9f8c4780423b0e00faf25cf15c  gcc/gcc-rich-location.c
  7c5eb0bd2d135dca8076b6bbc8e46fe2  gcc/gcc-rich-location.h
  a3ee86700ebe6da680866c325a9e6d01  gcc/gcc-symtab.h
! 495f60d858a8cdbeca218ae37d68ebf0  gcc/gcc.c
  43c0152df742051b3b7f216ea3327943  gcc/gcc.h
  90734fcaf7c44a435600bae6c4f56607  gcc/gcov-counter.def
  2b180ee6c8ef5773ae1afe08e2a54ba5  gcc/gcov-dump.c
--- 5599,5605 ----
  219ebc9f8c4780423b0e00faf25cf15c  gcc/gcc-rich-location.c
  7c5eb0bd2d135dca8076b6bbc8e46fe2  gcc/gcc-rich-location.h
  a3ee86700ebe6da680866c325a9e6d01  gcc/gcc-symtab.h
! 7249348a16df5ff514aa013b7eb9c722  gcc/gcc.c
  43c0152df742051b3b7f216ea3327943  gcc/gcc.h
  90734fcaf7c44a435600bae6c4f56607  gcc/gcov-counter.def
  2b180ee6c8ef5773ae1afe08e2a54ba5  gcc/gcov-dump.c
*************** c920211a66f60aee1bd685d466ad0b1b  gcc/ge
*** 5628,5646 ****
  dd3c872700fc3cbd561dcd8da99e48d6  gcc/genconstants.c
  28414f1934057369df9b38283563f07f  gcc/genemit.c
  5515dbfe6da4ebbeeb7c82287ab99cb4  gcc/genenums.c
! 837b58b37f8a325a85eff474915a9d44  gcc/generic-match-head.c
  1fe363efff16e5f61dc836ca90c79ac6  gcc/generic-match.h
  0851ab0217a3550c4694dc56da1d14a0  gcc/genextract.c
  d8284cac8286a7a7d64ac13ec870daa7  gcc/genflags.c
  950b7513fef07bfbefb505897b6d7448  gcc/gengenrtl.c
! 5dec9be550420ad9483c8c3f8aaea9a1  gcc/gengtype-lex.c
  8ea8a37c0cf6f91ded53bb6db384da0d  gcc/gengtype-lex.l
  548a8efcdbfd7022ebabcc0492a34cf9  gcc/gengtype-parse.c
  87b2b2c69bc05df6161d23040833a374  gcc/gengtype-state.c
  a37cbb582a0ae6a61b86eda06ffb9ac6  gcc/gengtype.c
  94881ec27434a3f6e7b70357815509c7  gcc/gengtype.h
  89b650e6804cbe365244e8a1a6c62d2f  gcc/genhooks.c
! 3153b01c6502511189cd27b40fac2dbb  gcc/genmatch.c
  54cca04c9cb300d0ab0ad99273a73e7c  gcc/genmddeps.c
  0b1ec8e93aaa85abaf253992e194254d  gcc/genmddump.c
  f1d29bde9cddf2b5a4a9c55cad19d1fa  gcc/genmodes.c
--- 5629,5647 ----
  dd3c872700fc3cbd561dcd8da99e48d6  gcc/genconstants.c
  28414f1934057369df9b38283563f07f  gcc/genemit.c
  5515dbfe6da4ebbeeb7c82287ab99cb4  gcc/genenums.c
! b8331fe711c794d31411d145186f839e  gcc/generic-match-head.c
  1fe363efff16e5f61dc836ca90c79ac6  gcc/generic-match.h
  0851ab0217a3550c4694dc56da1d14a0  gcc/genextract.c
  d8284cac8286a7a7d64ac13ec870daa7  gcc/genflags.c
  950b7513fef07bfbefb505897b6d7448  gcc/gengenrtl.c
! 04781352a756be492bf560d710ae7ef9  gcc/gengtype-lex.c
  8ea8a37c0cf6f91ded53bb6db384da0d  gcc/gengtype-lex.l
  548a8efcdbfd7022ebabcc0492a34cf9  gcc/gengtype-parse.c
  87b2b2c69bc05df6161d23040833a374  gcc/gengtype-state.c
  a37cbb582a0ae6a61b86eda06ffb9ac6  gcc/gengtype.c
  94881ec27434a3f6e7b70357815509c7  gcc/gengtype.h
  89b650e6804cbe365244e8a1a6c62d2f  gcc/genhooks.c
! 68f92690a215e0838b8a46a4938bc83f  gcc/genmatch.c
  54cca04c9cb300d0ab0ad99273a73e7c  gcc/genmddeps.c
  0b1ec8e93aaa85abaf253992e194254d  gcc/genmddump.c
  f1d29bde9cddf2b5a4a9c55cad19d1fa  gcc/genmodes.c
*************** f57cf443d784ee093c2c5ba1ab06c0bc  gcc/gg
*** 5659,5665 ****
  7bfeded454c8971d940aa36328e9cf6d  gcc/ggc-page.c
  ecf8d9fd8c961c7c8143950d0dffa4ad  gcc/ggc-tests.c
  8c4c95942af92fe1df1464e359aa00e5  gcc/ggc.h
! 586c2cab2915e4fcfc60eef73c5aa542  gcc/gimple-array-bounds.cc
  ca2520162ec5b4b80e57e4f46690e4c6  gcc/gimple-array-bounds.h
  0050f15d9f43589b0e2f6d2502d4f292  gcc/gimple-builder.c
  6a22e0a2c2e663ac23a368e20fa1fe9c  gcc/gimple-builder.h
--- 5660,5666 ----
  7bfeded454c8971d940aa36328e9cf6d  gcc/ggc-page.c
  ecf8d9fd8c961c7c8143950d0dffa4ad  gcc/ggc-tests.c
  8c4c95942af92fe1df1464e359aa00e5  gcc/ggc.h
! dbec1d8f9e4120a978a6056a19987a24  gcc/gimple-array-bounds.cc
  ca2520162ec5b4b80e57e4f46690e4c6  gcc/gimple-array-bounds.h
  0050f15d9f43589b0e2f6d2502d4f292  gcc/gimple-builder.c
  6a22e0a2c2e663ac23a368e20fa1fe9c  gcc/gimple-builder.h
*************** ca2520162ec5b4b80e57e4f46690e4c6  gcc/gi
*** 5668,5674 ****
  9864da12a5fa4e9052e9a2444e49bdc1  gcc/gimple-fold.c
  19b1447666533a8e534b359325a40685  gcc/gimple-fold.h
  ae9c923ed2c8a79aaa3ca54a22881ef0  gcc/gimple-if-to-switch.cc
! 16b85d8ae65dd9edd56bbf0d38b43aa9  gcc/gimple-isel.cc
  58eb44f6e28f845aeb88cd375156397c  gcc/gimple-iterator.c
  6fd4aeb4f777fa04b054a2682011f913  gcc/gimple-iterator.h
  3471799f94511265663f55a068653533  gcc/gimple-laddress.c
--- 5669,5675 ----
  9864da12a5fa4e9052e9a2444e49bdc1  gcc/gimple-fold.c
  19b1447666533a8e534b359325a40685  gcc/gimple-fold.h
  ae9c923ed2c8a79aaa3ca54a22881ef0  gcc/gimple-if-to-switch.cc
! 20b2c5de7eec5f50e66d6709ccaeeee8  gcc/gimple-isel.cc
  58eb44f6e28f845aeb88cd375156397c  gcc/gimple-iterator.c
  6fd4aeb4f777fa04b054a2682011f913  gcc/gimple-iterator.h
  3471799f94511265663f55a068653533  gcc/gimple-laddress.c
*************** f96959d86d6678e1a7fdf38b6e127bcd  gcc/gi
*** 5698,5707 ****
  b6d23698f494095d6a2998fccaa3f8b9  gcc/gimple-ssa-nonnull-compare.c
  aced049779ec566808a605d67e3515fc  gcc/gimple-ssa-split-paths.c
  1d753067436e68b37dba76eb3eb35ff8  gcc/gimple-ssa-sprintf.c
! dee9befafe077802d5e58f3a7762b100  gcc/gimple-ssa-store-merging.c
  3e8d8a511e1e447865e4c63ef9d1f0dc  gcc/gimple-ssa-strength-reduction.c
! 3ac9a7ed69ad0ec6148c051f54d9a4df  gcc/gimple-ssa-warn-alloca.c
! 3a0b8da8458ff788072a9389e1e51b1b  gcc/gimple-ssa-warn-restrict.c
  cc4f6240e418b12d3aa1b0720c58934c  gcc/gimple-ssa-warn-restrict.h
  495e1a1ff15867379be8e30c1585c550  gcc/gimple-ssa.h
  86582d0b25b77eb58dcf6d25a67f7bd7  gcc/gimple-streamer-in.c
--- 5699,5708 ----
  b6d23698f494095d6a2998fccaa3f8b9  gcc/gimple-ssa-nonnull-compare.c
  aced049779ec566808a605d67e3515fc  gcc/gimple-ssa-split-paths.c
  1d753067436e68b37dba76eb3eb35ff8  gcc/gimple-ssa-sprintf.c
! 276a8c5b44e85e5dddb52d91f21966fb  gcc/gimple-ssa-store-merging.c
  3e8d8a511e1e447865e4c63ef9d1f0dc  gcc/gimple-ssa-strength-reduction.c
! fa6b25f445fc05a803f11195f34d71cb  gcc/gimple-ssa-warn-alloca.c
! 3681b0f7899f686f94905201c010bf3e  gcc/gimple-ssa-warn-restrict.c
  cc4f6240e418b12d3aa1b0720c58934c  gcc/gimple-ssa-warn-restrict.h
  495e1a1ff15867379be8e30c1585c550  gcc/gimple-ssa.h
  86582d0b25b77eb58dcf6d25a67f7bd7  gcc/gimple-streamer-in.c
*************** f600ba03fe6a2c3cd6c70bcc66153eed  gcc/gi
*** 5731,5737 ****
  fd1e7b72f05881b3313665c73e2f4da9  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
  5081e1e198938204286d03d45535b34b  gcc/glimits.h
! 9539e564fe28bea03e53c4372798beb9  gcc/go/ChangeLog
  e905ea0930382dd7f885f6df4e826e16  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
  441e07f72df962bba81b0fca4787a622  gcc/go/config-lang.in
--- 5732,5738 ----
  fd1e7b72f05881b3313665c73e2f4da9  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
  5081e1e198938204286d03d45535b34b  gcc/glimits.h
! 48d7485ec4ee1c0e8a60904063c147d4  gcc/go/ChangeLog
  e905ea0930382dd7f885f6df4e826e16  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
  441e07f72df962bba81b0fca4787a622  gcc/go/config-lang.in
*************** c295442f623ae639ab0eef77ed196a06  gcc/ho
*** 5835,5841 ****
  47380fcad22a8fd1e1a458f7d1a9e758  gcc/hw-doloop.h
  5447fa3d6d110fde15af8fa04ca0f1a1  gcc/hwint.c
  c753347aefd98061e32a83982d6c8f1b  gcc/hwint.h
! c344af190aeaa7efa77f8684fa1c4a76  gcc/ifcvt.c
  5b179229655a9e1ff4addac6bd17bfd3  gcc/ifcvt.h
  4a8573d35397afe052d60dc399f91959  gcc/inchash.c
  ff9cd748484a95fca3cf23a3ed3844e7  gcc/inchash.h
--- 5836,5842 ----
  47380fcad22a8fd1e1a458f7d1a9e758  gcc/hw-doloop.h
  5447fa3d6d110fde15af8fa04ca0f1a1  gcc/hwint.c
  c753347aefd98061e32a83982d6c8f1b  gcc/hwint.h
! c439c6884201fcb0dd0e52cdd6916deb  gcc/ifcvt.c
  5b179229655a9e1ff4addac6bd17bfd3  gcc/ifcvt.h
  4a8573d35397afe052d60dc399f91959  gcc/inchash.c
  ff9cd748484a95fca3cf23a3ed3844e7  gcc/inchash.h
*************** de5c239aa4766cc69fc2017ae8e7d8d1  gcc/in
*** 5859,5872 ****
  f95a69b1f3983dc781ef570590f5b01d  gcc/ipa-fnsummary.h
  7c46ef6a7d9230f2798ed1ce630eeb4a  gcc/ipa-icf-gimple.c
  bde983e86d6dce7cfa528ed5003fbf84  gcc/ipa-icf-gimple.h
! f797e88796d2c2bdb45fdd0f7774f7e5  gcc/ipa-icf.c
  d1c62ca27392156d9ab55eb9a8c5941f  gcc/ipa-icf.h
  6ff03f4502965e2dae22d99c4abbc97c  gcc/ipa-inline-analysis.c
  8eb383763689a3d5ad9bd67cbd1fcb32  gcc/ipa-inline-transform.c
  ec72952e216f97113f1ba6e99817c9ab  gcc/ipa-inline.c
  a10b26f8b2cd4e43b6eb7b9c5fc18a0d  gcc/ipa-inline.h
  527be6d4d86fbdd9748e4c8e967604f6  gcc/ipa-modref-tree.c
! 0d2c0f1bc1412e346c4a96960ac25b80  gcc/ipa-modref-tree.h
  828eec681c95cd80a228140315eaa47d  gcc/ipa-modref.c
  24571d56e05a081b381bee5973dbc170  gcc/ipa-modref.h
  db0361c41637ca821b894c2d6a58dd78  gcc/ipa-param-manipulation.c
--- 5860,5873 ----
  f95a69b1f3983dc781ef570590f5b01d  gcc/ipa-fnsummary.h
  7c46ef6a7d9230f2798ed1ce630eeb4a  gcc/ipa-icf-gimple.c
  bde983e86d6dce7cfa528ed5003fbf84  gcc/ipa-icf-gimple.h
! 705c052b195d5e893795c330fa55fc30  gcc/ipa-icf.c
  d1c62ca27392156d9ab55eb9a8c5941f  gcc/ipa-icf.h
  6ff03f4502965e2dae22d99c4abbc97c  gcc/ipa-inline-analysis.c
  8eb383763689a3d5ad9bd67cbd1fcb32  gcc/ipa-inline-transform.c
  ec72952e216f97113f1ba6e99817c9ab  gcc/ipa-inline.c
  a10b26f8b2cd4e43b6eb7b9c5fc18a0d  gcc/ipa-inline.h
  527be6d4d86fbdd9748e4c8e967604f6  gcc/ipa-modref-tree.c
! 6913bf97992fc345b2d310f2e0f7a4d6  gcc/ipa-modref-tree.h
  828eec681c95cd80a228140315eaa47d  gcc/ipa-modref.c
  24571d56e05a081b381bee5973dbc170  gcc/ipa-modref.h
  db0361c41637ca821b894c2d6a58dd78  gcc/ipa-param-manipulation.c
*************** db0361c41637ca821b894c2d6a58dd78  gcc/ip
*** 5875,5881 ****
  55afec3b06a051269d9c3495954f589c  gcc/ipa-predicate.c
  b6c2e60f0bb50b61ffc003d4287b4a7d  gcc/ipa-predicate.h
  2c565d155fe9a836088f9f0b8d38b331  gcc/ipa-profile.c
! ad3f3de29b2a55179063f8d7c1019dd3  gcc/ipa-prop.c
  26dbfb8e2bba32dbfcc64d9bfc065969  gcc/ipa-prop.h
  69165999b252c49cd319201d87c2ee82  gcc/ipa-pure-const.c
  f4b0cf2eeaf1190a6a7682b15df55bf3  gcc/ipa-ref.c
--- 5876,5882 ----
  55afec3b06a051269d9c3495954f589c  gcc/ipa-predicate.c
  b6c2e60f0bb50b61ffc003d4287b4a7d  gcc/ipa-predicate.h
  2c565d155fe9a836088f9f0b8d38b331  gcc/ipa-profile.c
! 23221a9d0531968140fbdb013c72e0bb  gcc/ipa-prop.c
  26dbfb8e2bba32dbfcc64d9bfc065969  gcc/ipa-prop.h
  69165999b252c49cd319201d87c2ee82  gcc/ipa-pure-const.c
  f4b0cf2eeaf1190a6a7682b15df55bf3  gcc/ipa-ref.c
*************** c1dc66d2ea8aa4cfddebdbd29cf0377a  gcc/ip
*** 5889,5905 ****
  9cdf0cbb22a93045634de6e5fc83cbb8  gcc/ipa-visibility.c
  20e523da6d0cf2dfb75b1cb15523364d  gcc/ipa.c
  420f64db44a55dc486630154a503b01a  gcc/ira-build.c
! 294e8f4137b8651abf438ac9b9fcc8be  gcc/ira-color.c
  05ded0649c09aca2587c5e6478e40a1f  gcc/ira-conflicts.c
  fcdecd375e9f7dcef39dfb29545d6859  gcc/ira-costs.c
  90a73493c275e6fa26e716b5f9a62dcb  gcc/ira-emit.c
  5aec1e89bce0dbfd2b02b96804404e27  gcc/ira-int.h
  6b1fed42d9f5470a586a9f4a2df1625e  gcc/ira-lives.c
! c365b13304c481cc4b9f3145c452a198  gcc/ira.c
  f2cefc86c9a11fe045772f372434ad3c  gcc/ira.h
  a034d62871bbde98ccf4abce95e4bbd3  gcc/is-a.h
  dd335e7d147186c7f4aa9327f600007b  gcc/iterator-utils.h
! 52a82347f59890f016cfeed79a75e907  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
  7da588bb30eff47e724348cf30c9b423  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
--- 5890,5906 ----
  9cdf0cbb22a93045634de6e5fc83cbb8  gcc/ipa-visibility.c
  20e523da6d0cf2dfb75b1cb15523364d  gcc/ipa.c
  420f64db44a55dc486630154a503b01a  gcc/ira-build.c
! f10221dcb3884371d27cff607e0b08d3  gcc/ira-color.c
  05ded0649c09aca2587c5e6478e40a1f  gcc/ira-conflicts.c
  fcdecd375e9f7dcef39dfb29545d6859  gcc/ira-costs.c
  90a73493c275e6fa26e716b5f9a62dcb  gcc/ira-emit.c
  5aec1e89bce0dbfd2b02b96804404e27  gcc/ira-int.h
  6b1fed42d9f5470a586a9f4a2df1625e  gcc/ira-lives.c
! 6ff5e3d23a1cc54979fbf39d071f6bd2  gcc/ira.c
  f2cefc86c9a11fe045772f372434ad3c  gcc/ira.h
  a034d62871bbde98ccf4abce95e4bbd3  gcc/is-a.h
  dd335e7d147186c7f4aa9327f600007b  gcc/iterator-utils.h
! 9c02ba430678bba2a9f3c87f06b0925a  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
  7da588bb30eff47e724348cf30c9b423  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
*************** bdae38125e17ccdbcbd3740ff81dfc29  gcc/lc
*** 6001,6013 ****
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
  a09713569704def17fe9b152b78ba9cc  gcc/loop-doloop.c
  9f6ba5d7d3c36c5fbe0b75e45c60a201  gcc/loop-init.c
! 2a163cd72274af8bcfbce0e199266237  gcc/loop-invariant.c
  6dcb3e50702c1fe35fd4c4afc5d49fc5  gcc/loop-iv.c
  e44196ccae22e5b571a6fc06b0fdda4b  gcc/loop-unroll.c
  4e3d14a2bb20bbfa0b2d7c513a99193d  gcc/loop-unroll.h
  238b4457d72f8b584d6d0aa811cd3184  gcc/lower-subreg.c
  643bcadd79bc8430146b2c58a5fbdf02  gcc/lower-subreg.h
! e88f6ce06ede4edda0af58c2ba7077cd  gcc/lra-assigns.c
  c2e5571dfeb8184312575c2fd39a0c13  gcc/lra-coalesce.c
  a6d81472aa9380f911642c153c4f493f  gcc/lra-constraints.c
  4ab369c9de8d32d33099df49e6d9d1fb  gcc/lra-eliminations.c
--- 6002,6014 ----
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
  a09713569704def17fe9b152b78ba9cc  gcc/loop-doloop.c
  9f6ba5d7d3c36c5fbe0b75e45c60a201  gcc/loop-init.c
! 2819c8014cb2784dd0942b717cbc2c28  gcc/loop-invariant.c
  6dcb3e50702c1fe35fd4c4afc5d49fc5  gcc/loop-iv.c
  e44196ccae22e5b571a6fc06b0fdda4b  gcc/loop-unroll.c
  4e3d14a2bb20bbfa0b2d7c513a99193d  gcc/loop-unroll.h
  238b4457d72f8b584d6d0aa811cd3184  gcc/lower-subreg.c
  643bcadd79bc8430146b2c58a5fbdf02  gcc/lower-subreg.h
! 7810f59c5aa8f6bc2ac72d52b2c0603c  gcc/lra-assigns.c
  c2e5571dfeb8184312575c2fd39a0c13  gcc/lra-coalesce.c
  a6d81472aa9380f911642c153c4f493f  gcc/lra-constraints.c
  4ab369c9de8d32d33099df49e6d9d1fb  gcc/lra-eliminations.c
*************** e891b7eb2f83b1624be70538a0e0d189  gcc/lt
*** 6024,6035 ****
  47aac9d44038f619b8a94acf28f087cf  gcc/lto-section-in.c
  9893be09e11b4b0a29845a41ec6d3cad  gcc/lto-section-names.h
  9363334f16d1c6574695194883b24bd0  gcc/lto-section-out.c
! db7cd7675793a8855cd0550edb79177a  gcc/lto-streamer-in.c
  40a5c9904f9b80ca7236bd30c0679296  gcc/lto-streamer-out.c
  5ad327021166fdb0ecad2661fbca70be  gcc/lto-streamer.c
  c75e2adeba7a17a10efdd07b0b9113b2  gcc/lto-streamer.h
! 8a45ce855be3f79e24add330a8fe9755  gcc/lto-wrapper.c
! 8d9b3cfbdf846260bb3bde211b9b30a9  gcc/lto/ChangeLog
  d5bb42eff522196004d91ca34cfaa49b  gcc/lto/Make-lang.in
  c1fff5b6c2a7f236e55f0d3b5cb28062  gcc/lto/common.c
  71bd5c32de47c74a39491375ef7f71c5  gcc/lto/common.h
--- 6025,6036 ----
  47aac9d44038f619b8a94acf28f087cf  gcc/lto-section-in.c
  9893be09e11b4b0a29845a41ec6d3cad  gcc/lto-section-names.h
  9363334f16d1c6574695194883b24bd0  gcc/lto-section-out.c
! 605f046b0f351688fe42e3e3ffb6374d  gcc/lto-streamer-in.c
  40a5c9904f9b80ca7236bd30c0679296  gcc/lto-streamer-out.c
  5ad327021166fdb0ecad2661fbca70be  gcc/lto-streamer.c
  c75e2adeba7a17a10efdd07b0b9113b2  gcc/lto-streamer.h
! 8ffaca3710dc2b758bb4992782a9458a  gcc/lto-wrapper.c
! 227e2035e0991551fcd637d67d3c0323  gcc/lto/ChangeLog
  d5bb42eff522196004d91ca34cfaa49b  gcc/lto/Make-lang.in
  c1fff5b6c2a7f236e55f0d3b5cb28062  gcc/lto/common.c
  71bd5c32de47c74a39491375ef7f71c5  gcc/lto/common.h
*************** a3d7fa7b491b3c623e8ad32109a8af10  gcc/lt
*** 6051,6057 ****
  c0598ad047996b6b546ae37ac7961415  gcc/machmode.def
  9ed2f72363a926d2750418ef5c5cf728  gcc/machmode.h
  1e3feea915d17412b3e57a55c5a785e8  gcc/main.c
! 98f9f222d0c9d650062597b00dc2c409  gcc/match.pd
  4b41ba6f5c2972934928d702e6ab5c99  gcc/mcf.c
  12ed5d7cdbe37098551333c0d54e68ad  gcc/mem-stats-traits.h
  d36e5c61d9079e93d8844808c4280f3b  gcc/mem-stats.h
--- 6052,6058 ----
  c0598ad047996b6b546ae37ac7961415  gcc/machmode.def
  9ed2f72363a926d2750418ef5c5cf728  gcc/machmode.h
  1e3feea915d17412b3e57a55c5a785e8  gcc/main.c
! 3447d1fe2899c211acf7630e20a297db  gcc/match.pd
  4b41ba6f5c2972934928d702e6ab5c99  gcc/mcf.c
  12ed5d7cdbe37098551333c0d54e68ad  gcc/mem-stats-traits.h
  d36e5c61d9079e93d8844808c4280f3b  gcc/mem-stats.h
*************** ffb6709ef6e104f353edb09bc1651596  gcc/mo
*** 6064,6070 ****
  a98e50c063ce3f17ab72abe936f7f210  gcc/modulo-sched.c
  9b2e40398cd8e086e71e5f469b2799b7  gcc/multiple_target.c
  f82c4a6b9621c8883a3eab86f0dd3768  gcc/mux-utils.h
! d9ee201dfb3a9b7b93a211bfb3c65015  gcc/objc/ChangeLog
  8a483da76277f1107ee3864484da7cfd  gcc/objc/Make-lang.in
  81acf2f4cbd8edc8581291e0c02e76f9  gcc/objc/config-lang.in
  8ca11b02b2a9e21229f11063fb154aee  gcc/objc/lang-specs.h
--- 6065,6071 ----
  a98e50c063ce3f17ab72abe936f7f210  gcc/modulo-sched.c
  9b2e40398cd8e086e71e5f469b2799b7  gcc/multiple_target.c
  f82c4a6b9621c8883a3eab86f0dd3768  gcc/mux-utils.h
! 66f8ccc19f3091c51c76f5831f078d4c  gcc/objc/ChangeLog
  8a483da76277f1107ee3864484da7cfd  gcc/objc/Make-lang.in
  81acf2f4cbd8edc8581291e0c02e76f9  gcc/objc/config-lang.in
  8ca11b02b2a9e21229f11063fb154aee  gcc/objc/lang-specs.h
*************** efc719a9d69c08a88c9ca68c3d91dea6  gcc/ob
*** 6083,6089 ****
  3c7320cdc77c5d2c8ad240f498e04b42  gcc/objc/objc-runtime-shared-support.c
  544d016401099d9ba39ea7ddbce01333  gcc/objc/objc-runtime-shared-support.h
  88490072a5d5ef2282898959e8e55de1  gcc/objc/objc-tree.def
! 6476680a7d05a886660bcc342e25222b  gcc/objcp/ChangeLog
  8268a2fcb604c22c75202509b0338862  gcc/objcp/Make-lang.in
  add0ba454d5eb83cd065d29d3f6b676a  gcc/objcp/config-lang.in
  fbbceaf466354af7b3851fc32a591c77  gcc/objcp/lang-specs.h
--- 6084,6090 ----
  3c7320cdc77c5d2c8ad240f498e04b42  gcc/objc/objc-runtime-shared-support.c
  544d016401099d9ba39ea7ddbce01333  gcc/objc/objc-runtime-shared-support.h
  88490072a5d5ef2282898959e8e55de1  gcc/objc/objc-tree.def
! dcf08cb02acf7a5b121d9b3f2d4b9f15  gcc/objcp/ChangeLog
  8268a2fcb604c22c75202509b0338862  gcc/objcp/Make-lang.in
  add0ba454d5eb83cd065d29d3f6b676a  gcc/objcp/config-lang.in
  fbbceaf466354af7b3851fc32a591c77  gcc/objcp/lang-specs.h
*************** f839d2547a23f21881f462d878a2df5d  gcc/ob
*** 6092,6102 ****
  a7a0bf03aa321b1e7cc047dd65c275c4  gcc/objcp/objcp-lang.c
  605fb5272cb554608cefda2c23cc03c0  gcc/obstack-utils.h
  7b56d1dcf3fd603f94c47c1cf6f3841a  gcc/omp-builtins.def
! 079e9f2c902b70e61e63d018d5de4e95  gcc/omp-expand.c
  acdf170f52ac34b2d16d7fc8d784656e  gcc/omp-expand.h
  4b91eade4a6fc39a4a1bee3e8e7187c3  gcc/omp-general.c
  9b7e003d231715f982f2185c6971389b  gcc/omp-general.h
! 8c065ca396f861e8e44c67a018f1ad88  gcc/omp-low.c
  c8a35605fb251282ba6b62d2877c47ad  gcc/omp-low.h
  968555a5938f5016374fc7d6fe116877  gcc/omp-oacc-kernels-decompose.cc
  655ce306b6a6a7a3eafc559e46ec1feb  gcc/omp-offload.c
--- 6093,6103 ----
  a7a0bf03aa321b1e7cc047dd65c275c4  gcc/objcp/objcp-lang.c
  605fb5272cb554608cefda2c23cc03c0  gcc/obstack-utils.h
  7b56d1dcf3fd603f94c47c1cf6f3841a  gcc/omp-builtins.def
! 23d8b07c52d89cb208a2abf546cc4d08  gcc/omp-expand.c
  acdf170f52ac34b2d16d7fc8d784656e  gcc/omp-expand.h
  4b91eade4a6fc39a4a1bee3e8e7187c3  gcc/omp-general.c
  9b7e003d231715f982f2185c6971389b  gcc/omp-general.h
! dfc97f65dacf865cea17c06a11d5e32e  gcc/omp-low.c
  c8a35605fb251282ba6b62d2877c47ad  gcc/omp-low.h
  968555a5938f5016374fc7d6fe116877  gcc/omp-oacc-kernels-decompose.cc
  655ce306b6a6a7a3eafc559e46ec1feb  gcc/omp-offload.c
*************** dcb81b8ac4afdc7cb3fd19ea5e279e5d  gcc/op
*** 6121,6135 ****
  b53437741beaf4c99ae67bb5623581dc  gcc/optabs.def
  bb7dd65101e190027bd7f5d00537d338  gcc/optabs.h
  87a1a5bcddba75fc52ca8e27664704dc  gcc/optc-gen.awk
! 990b061d98f28e3f81bece38e55950bb  gcc/optc-save-gen.awk
  644f55b613498a30ad5561d8ac2ef3e4  gcc/opth-gen.awk
  41e153ce211a7ce936f374042e78626c  gcc/optinfo-emit-json.cc
  9f4a9925296f20d19d64305038880c83  gcc/optinfo-emit-json.h
  856ea796d22dcbc9579527e46613d813  gcc/optinfo.cc
  bc4ea40198df1dade8ab163363fce555  gcc/optinfo.h
! 4f56fcf0a392e7e80904a168ee8e362e  gcc/opts-common.c
  d5cb4f8e14c4ba3e56b5393c98bf2a04  gcc/opts-diagnostic.h
  c9cb78ef27abfd3a19982545f0f1808d  gcc/opts-global.c
  f316f70576f525302035fef1dada4d51  gcc/opts.c
  e49edd063f36ca8da3c7e467dd2e72bb  gcc/opts.h
  529cc4ae108023927cb547f8ca02217a  gcc/ordered-hash-map-tests.cc
--- 6122,6137 ----
  b53437741beaf4c99ae67bb5623581dc  gcc/optabs.def
  bb7dd65101e190027bd7f5d00537d338  gcc/optabs.h
  87a1a5bcddba75fc52ca8e27664704dc  gcc/optc-gen.awk
! 46b6d861c7798299eb41f073d27ef1bd  gcc/optc-save-gen.awk
  644f55b613498a30ad5561d8ac2ef3e4  gcc/opth-gen.awk
  41e153ce211a7ce936f374042e78626c  gcc/optinfo-emit-json.cc
  9f4a9925296f20d19d64305038880c83  gcc/optinfo-emit-json.h
  856ea796d22dcbc9579527e46613d813  gcc/optinfo.cc
  bc4ea40198df1dade8ab163363fce555  gcc/optinfo.h
! 80caa80c42146fabda6624c84c0cd0aa  gcc/opts-common.c
  d5cb4f8e14c4ba3e56b5393c98bf2a04  gcc/opts-diagnostic.h
  c9cb78ef27abfd3a19982545f0f1808d  gcc/opts-global.c
+ abb990f120fd8b648831963db6ecec8c  gcc/opts-jobserver.h
  f316f70576f525302035fef1dada4d51  gcc/opts.c
  e49edd063f36ca8da3c7e467dd2e72bb  gcc/opts.h
  529cc4ae108023927cb547f8ca02217a  gcc/ordered-hash-map-tests.cc
*************** e733e0309389f9d07184e98b6ad9b536  gcc/pa
*** 6142,6148 ****
  f09db14eb185fcdd795ff7e690b607a3  gcc/plugin.c
  3cc53b8d5f30aebe3f70c00e1bc4929e  gcc/plugin.def
  7a5190d86531b8d3fa67e8cea7db5d60  gcc/plugin.h
! 7cd32b134f7041026af3fd0f94e9cfb7  gcc/po/ChangeLog
  edbad8e043a44996d844fa6a7965ea6f  gcc/po/EXCLUDES
  f2e76d86dce1f72d4adc901bce318410  gcc/po/be.gmo
  ac4e50148300959070bbe8161dc44c3d  gcc/po/be.po
--- 6144,6150 ----
  f09db14eb185fcdd795ff7e690b607a3  gcc/plugin.c
  3cc53b8d5f30aebe3f70c00e1bc4929e  gcc/plugin.def
  7a5190d86531b8d3fa67e8cea7db5d60  gcc/plugin.h
! 5ea9f58a4b7fa2bad33da1cfc60f22d2  gcc/po/ChangeLog
  edbad8e043a44996d844fa6a7965ea6f  gcc/po/EXCLUDES
  f2e76d86dce1f72d4adc901bce318410  gcc/po/be.gmo
  ac4e50148300959070bbe8161dc44c3d  gcc/po/be.po
*************** a7e9bd5354e5a900313112268fece3ed  gcc/po
*** 6187,6194 ****
  b5cf217de74bfb4c25a64c52994cfb70  gcc/poly-int-types.h
  0799d24ba449e6a51e2fd9ed43c2c895  gcc/poly-int.h
  64ee81daa4eca1addeddac912f6da05f  gcc/postreload-gcse.c
! b404bf87ba532b757ab920bf8cfe6048  gcc/postreload.c
! 1c6e02c995e8a1da4d8f82546e0f7c22  gcc/predict.c
  692b197c8926e88856e6061898336287  gcc/predict.def
  41abb41efe44ad2ee6ea81fa0efe8981  gcc/predict.h
  df55ecfee3c8d6902de1f0a401662b34  gcc/prefix.c
--- 6189,6196 ----
  b5cf217de74bfb4c25a64c52994cfb70  gcc/poly-int-types.h
  0799d24ba449e6a51e2fd9ed43c2c895  gcc/poly-int.h
  64ee81daa4eca1addeddac912f6da05f  gcc/postreload-gcse.c
! 7d61b12d2e10322f2f4916479d27ac4a  gcc/postreload.c
! 38c469ffe284c82056461bed86dd84f4  gcc/predict.c
  692b197c8926e88856e6061898336287  gcc/predict.def
  41abb41efe44ad2ee6ea81fa0efe8981  gcc/predict.h
  df55ecfee3c8d6902de1f0a401662b34  gcc/prefix.c
*************** c254cdb20b6b4f0d1184f5efbdb7a12c  gcc/pr
*** 6204,6210 ****
  732d17acf6267a969e39ba2419b27ff9  gcc/profile-count.h
  a96706db9e9f3013d94609d7b3718fab  gcc/profile.c
  1cb6f0995127d2a5f07d8852252b9204  gcc/profile.h
! 5e2a9fce41837994cb9cab6678b9699f  gcc/range-op.cc
  530b558465d45ba8a4791807c6b35b24  gcc/range-op.h
  e63b7b269775057b328a377113078b16  gcc/range.cc
  1d7d661f2f501c3ed5b4b1b370a6a4f0  gcc/range.h
--- 6206,6212 ----
  732d17acf6267a969e39ba2419b27ff9  gcc/profile-count.h
  a96706db9e9f3013d94609d7b3718fab  gcc/profile.c
  1cb6f0995127d2a5f07d8852252b9204  gcc/profile.h
! dabf815b15e218e233024ddcb8342164  gcc/range-op.cc
  530b558465d45ba8a4791807c6b35b24  gcc/range-op.h
  e63b7b269775057b328a377113078b16  gcc/range.cc
  1d7d661f2f501c3ed5b4b1b370a6a4f0  gcc/range.h
*************** f16337b3cb06bf956e8b9881213c9ca6  gcc/re
*** 6219,6231 ****
  1336428ec3de403ee3a67a32e46a2950  gcc/realmpfr.h
  6a97b272d95ec05f8a4ca551c2031d37  gcc/recog.c
  6d79a91b3db1ae875470ac88c3017e73  gcc/recog.h
! d413cb4a0b232cc480a3b8be25d8be8c  gcc/ree.c
  4991d12d362b1f941f85124f99dd06ed  gcc/reg-notes.def
! 37dee4e1c279832a39f2cc014a775cc4  gcc/reg-stack.c
  705a476e963c6de845f4a9cd4a8f5d54  gcc/regcprop.c
  f0e333f39bc1495a06bf48c9bf845507  gcc/regcprop.h
  afbaaa4f2b3dbd0fe78f439084f99424  gcc/reginfo.c
! 94f9d872d3709162b0c8f5cb5a59f3f2  gcc/regrename.c
  db1c9b9d3057a97aba76c18fa6e65fe3  gcc/regrename.h
  cbb3ec9de2848e74201ddcf7756e6912  gcc/regs.h
  b4f529c79dd2003cb163fccdd4d12a8c  gcc/regset.h
--- 6221,6233 ----
  1336428ec3de403ee3a67a32e46a2950  gcc/realmpfr.h
  6a97b272d95ec05f8a4ca551c2031d37  gcc/recog.c
  6d79a91b3db1ae875470ac88c3017e73  gcc/recog.h
! 1190d6a27e117dade166dade38c597a9  gcc/ree.c
  4991d12d362b1f941f85124f99dd06ed  gcc/reg-notes.def
! f15f0e621d8c483841c96a20fbf9b517  gcc/reg-stack.c
  705a476e963c6de845f4a9cd4a8f5d54  gcc/regcprop.c
  f0e333f39bc1495a06bf48c9bf845507  gcc/regcprop.h
  afbaaa4f2b3dbd0fe78f439084f99424  gcc/reginfo.c
! 3989962cd4fbfc5052c078106296bf78  gcc/regrename.c
  db1c9b9d3057a97aba76c18fa6e65fe3  gcc/regrename.h
  cbb3ec9de2848e74201ddcf7756e6912  gcc/regs.h
  b4f529c79dd2003cb163fccdd4d12a8c  gcc/regset.h
*************** e28191cb00a98e949cbc143f320a07f6  gcc/re
*** 6241,6248 ****
  4e409a0d5cc6dc9e0629b228d3b558ba  gcc/rtl-iter.h
  b476f310624f2f8985ae9e6f5cf84795  gcc/rtl-ssa.h
  2bd899bd5847e63d4b3c22b4c3f8d681  gcc/rtl-ssa/access-utils.h
! 9822866edc851e6fd12a04438671f67e  gcc/rtl-ssa/accesses.cc
! f83f422aa1010eeeedab15e026a7da14  gcc/rtl-ssa/accesses.h
  d732812e79a20c21accf4bbde2d16fe6  gcc/rtl-ssa/blocks.cc
  26f90cf52a833397e160517c50f76928  gcc/rtl-ssa/blocks.h
  b749412578d62bfb2a22711a55df1124  gcc/rtl-ssa/change-utils.h
--- 6243,6250 ----
  4e409a0d5cc6dc9e0629b228d3b558ba  gcc/rtl-iter.h
  b476f310624f2f8985ae9e6f5cf84795  gcc/rtl-ssa.h
  2bd899bd5847e63d4b3c22b4c3f8d681  gcc/rtl-ssa/access-utils.h
! 7738e493afe6ad85c015559bf1ff0433  gcc/rtl-ssa/accesses.cc
! 3dadf63307fc85f0decf8fe6c919f049  gcc/rtl-ssa/accesses.h
  d732812e79a20c21accf4bbde2d16fe6  gcc/rtl-ssa/blocks.cc
  26f90cf52a833397e160517c50f76928  gcc/rtl-ssa/blocks.h
  b749412578d62bfb2a22711a55df1124  gcc/rtl-ssa/change-utils.h
*************** e1595b6b1a7c703394640bffc7357aa5  gcc/rt
*** 6256,6268 ****
  3e2be38fa239ba65ce01840b6b1e6717  gcc/rtl-ssa/internals.h
  3bcc3658e3e130fbbe4a9fbd9b0c3cd3  gcc/rtl-ssa/internals.inl
  35c148bf46eb74781693030d7425a974  gcc/rtl-ssa/is-a.inl
! 105bec65bd605c46e6821361bf1e5708  gcc/rtl-ssa/member-fns.inl
! fc0c483ef35b0916889eb450dec30684  gcc/rtl-ssa/movement.h
  6ee04c4c4fb71b581e0a42e7b5a7a73c  gcc/rtl-tests.c
  dea69c3608ee51d947ef5ac67c2ca95b  gcc/rtl.c
  6e2727b9e2075fddcf252ad25dc6d604  gcc/rtl.def
  7e6d263d2294090c692ce74d323d8da7  gcc/rtl.h
! f1c9464a3f3b95e046a84ab7490fa640  gcc/rtlanal.c
  394592e1cbc71b6283d230cf895f1248  gcc/rtlanal.h
  600140db9bd5eefa41bca935dcc1a901  gcc/rtlhash.c
  97a32042580f6bc444125e76325e9f8e  gcc/rtlhash.h
--- 6258,6270 ----
  3e2be38fa239ba65ce01840b6b1e6717  gcc/rtl-ssa/internals.h
  3bcc3658e3e130fbbe4a9fbd9b0c3cd3  gcc/rtl-ssa/internals.inl
  35c148bf46eb74781693030d7425a974  gcc/rtl-ssa/is-a.inl
! ecf66423e53e53927403a7019b1256f3  gcc/rtl-ssa/member-fns.inl
! 701e3ae2663f3af371580252643bf791  gcc/rtl-ssa/movement.h
  6ee04c4c4fb71b581e0a42e7b5a7a73c  gcc/rtl-tests.c
  dea69c3608ee51d947ef5ac67c2ca95b  gcc/rtl.c
  6e2727b9e2075fddcf252ad25dc6d604  gcc/rtl.def
  7e6d263d2294090c692ce74d323d8da7  gcc/rtl.h
! 0a93a9090ad9760e643aeffc81480fc0  gcc/rtlanal.c
  394592e1cbc71b6283d230cf895f1248  gcc/rtlanal.h
  600140db9bd5eefa41bca935dcc1a901  gcc/rtlhash.c
  97a32042580f6bc444125e76325e9f8e  gcc/rtlhash.h
*************** d756cda29fd0d41dd981deb94691ead6  gcc/ru
*** 6274,6280 ****
  849a7f68c59cf805134725f6d573a12a  gcc/run-rtl-passes.h
  88681762ad1b72a93cd61d0ceb6922d4  gcc/sancov.c
  30e67ef52139f9ecf2b0d6888b611676  gcc/sanitizer.def
! e62a73311b504f4617cb975542b8bfce  gcc/sanopt.c
  652586958a380c79d7c38c0636cb92cf  gcc/sbitmap.c
  dd08726afeecf49aad987d4602b45083  gcc/sbitmap.h
  5ba010d53c8923a1bfac3c71876ec3cf  gcc/sched-deps.c
--- 6276,6282 ----
  849a7f68c59cf805134725f6d573a12a  gcc/run-rtl-passes.h
  88681762ad1b72a93cd61d0ceb6922d4  gcc/sancov.c
  30e67ef52139f9ecf2b0d6888b611676  gcc/sanitizer.def
! 7dd4be1a9b9a7d459621dde58f1d5a1d  gcc/sanopt.c
  652586958a380c79d7c38c0636cb92cf  gcc/sbitmap.c
  dd08726afeecf49aad987d4602b45083  gcc/sbitmap.h
  5ba010d53c8923a1bfac3c71876ec3cf  gcc/sched-deps.c
*************** a81acae3c8eb55b9ef11d3725fd55380  gcc/se
*** 6287,6293 ****
  32ad0fcb213a9554215b78467d9d8c75  gcc/sel-sched-ir.h
  1e3da1400d44477e586418140c5d4bab  gcc/sel-sched.c
  a263ac7eb263d57d0455625ac91b1815  gcc/sel-sched.h
! 81d86b5e84c70aa16ff704be30595478  gcc/selftest-diagnostic.c
  266029d83f048bbaa186112f998ff289  gcc/selftest-diagnostic.h
  a58b078dfc2bee6fff5ee6c5c8542221  gcc/selftest-rtl.c
  0a3fdf0a7c1020814aa458f9a978ebe5  gcc/selftest-rtl.h
--- 6289,6295 ----
  32ad0fcb213a9554215b78467d9d8c75  gcc/sel-sched-ir.h
  1e3da1400d44477e586418140c5d4bab  gcc/sel-sched.c
  a263ac7eb263d57d0455625ac91b1815  gcc/sel-sched.h
! e6a4b3c823ce1e1a27a2f0edda9901ab  gcc/selftest-diagnostic.c
  266029d83f048bbaa186112f998ff289  gcc/selftest-diagnostic.h
  a58b078dfc2bee6fff5ee6c5c8542221  gcc/selftest-rtl.c
  0a3fdf0a7c1020814aa458f9a978ebe5  gcc/selftest-rtl.h
*************** a03499ddf4891bc19a18b98c310fa971  gcc/st
*** 6330,6336 ****
  ba17f60121ba1b5f039f9dc1078b46f8  gcc/stringpool.h
  0e9ba4d784593d4ed23ac7186c35ae50  gcc/substring-locations.c
  8dd5c05fb4ef8cc3bf57f5ca63d32846  gcc/substring-locations.h
! 8789ac541d37b67407d2c8a73d692d40  gcc/symbol-summary.h
  236c95c47ab750764d02d4876b55e442  gcc/symtab-clones.cc
  bedb42e729e5bd698d0861dc145266fb  gcc/symtab-clones.h
  8a9324974824a4c433f0d463bbfb69ec  gcc/symtab-thunks.cc
--- 6332,6338 ----
  ba17f60121ba1b5f039f9dc1078b46f8  gcc/stringpool.h
  0e9ba4d784593d4ed23ac7186c35ae50  gcc/substring-locations.c
  8dd5c05fb4ef8cc3bf57f5ca63d32846  gcc/substring-locations.h
! 98c81a459cff09409d3e699ae8bbf2da  gcc/symbol-summary.h
  236c95c47ab750764d02d4876b55e442  gcc/symtab-clones.cc
  bedb42e729e5bd698d0861dc145266fb  gcc/symtab-clones.h
  8a9324974824a4c433f0d463bbfb69ec  gcc/symtab-thunks.cc
*************** b3739b072aa976c2f9f9825ac6d07c80  gcc/ta
*** 6348,6354 ****
  b71dcf011f9b95f3a705da052a95caf9  gcc/targhooks.c
  104445ec4cf950b087d249c268d36edc  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 27401e67713b44e67fb8e8100e2ef209  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 6350,6356 ----
  b71dcf011f9b95f3a705da052a95caf9  gcc/targhooks.c
  104445ec4cf950b087d249c268d36edc  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 830b7d53116002286e8034db00356962  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** e68c59b3c604b0f464d1f4c02629a7a5  gcc/te
*** 9158,9163 ****
--- 9160,9166 ----
  fc40f165305f408a7e0fc682ac4e4e21  gcc/testsuite/c-c++-common/Wshift-overflow-8.c
  f6687e96d1a359321b94d5babcf73720  gcc/testsuite/c-c++-common/Wshift-overflow-9.c
  2095424b6b86a7ddbae9c94c16fa2157  gcc/testsuite/c-c++-common/Wsign-compare-1.c
+ baefeae8b123d7fff8e835b68ec75bf4  gcc/testsuite/c-c++-common/Wsign-compare-2.c
  40bc1e540d092c06d14dc9842ee9cd03  gcc/testsuite/c-c++-common/Wsign-conversion-1.c
  c7eebf2a6120dfecf1a6ae7de1f49694  gcc/testsuite/c-c++-common/Wsizeof-array-div1.c
  60f2f0aa7f30ae4b7fc18937d32ed9b7  gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c
*************** ef95b2391ac4310fde10257ba4f7463b  gcc/te
*** 9396,9401 ****
--- 9399,9405 ----
  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
  c2ffea9f8039ad1708c1c073f6b3b25a  gcc/testsuite/c-c++-common/conflict-markers-10.c
  c83e3d1d9dca930d44de5fee29a51bbb  gcc/testsuite/c-c++-common/conflict-markers-11.c
*************** f2e2a6171e51d284aef6b4356f338ad3  gcc/te
*** 9485,9490 ****
--- 9489,9495 ----
  17f09d053664aa8b96634b37ce0988da  gcc/testsuite/c-c++-common/cpp/spaceship-1.c
  9cdc13ca5a948af9c95ec156cac8609c  gcc/testsuite/c-c++-common/cpp/ucnid-2011-1-utf8.c
  791d43cbbb9115404405c22be44e4ae7  gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c
+ 83bc077362cc4ef37199360c8b7fe130  gcc/testsuite/c-c++-common/cpp/va-opt-10.c
  0f93514d0ad79c03edfd672fb354e619  gcc/testsuite/c-c++-common/cpp/va-opt-2.c
  d4400c02e16c9ce8399bebed26d20e37  gcc/testsuite/c-c++-common/cpp/va-opt-3.c
  ffa7f1250b7f00a641ad13c5836e4f01  gcc/testsuite/c-c++-common/cpp/va-opt-4.c
*************** f10bae63863004428ff4b3fbefab335e  gcc/te
*** 9873,9878 ****
--- 9878,9884 ----
  f0e8744f81b4bd363089960ae8a6bbb6  gcc/testsuite/c-c++-common/gomp/doacross-2.c
  c9f7d4328381112d463ae5d7abf05d6b  gcc/testsuite/c-c++-common/gomp/doacross-3.c
  b80b407c1b236d995633edd987b92089  gcc/testsuite/c-c++-common/gomp/doacross-4.c
+ db5184f418f1fcff4229563335cdcac7  gcc/testsuite/c-c++-common/gomp/doacross-8.c
  5a70f931f3d1911a210ec6155240d4dc  gcc/testsuite/c-c++-common/gomp/element-1.c
  b4b404945f33512628e60c9ebd9b767a  gcc/testsuite/c-c++-common/gomp/flush-1.c
  3ed4af2aec57a7165a1a730e299b4935  gcc/testsuite/c-c++-common/gomp/flush-2.c
*************** b3c3fe5a4ecc31231711cb240274d62c  gcc/te
*** 9928,9933 ****
--- 9934,9941 ----
  5d5843e74a197943e19c270c43a913e1  gcc/testsuite/c-c++-common/gomp/pr102431.c
  6c331d01569cfa98850571463b5b3cc7  gcc/testsuite/c-c++-common/gomp/pr102432.c
  ef8ec3320ae234be32fcdfc5379eaca2  gcc/testsuite/c-c++-common/gomp/pr102640.c
+ 1164bc26f7382179d1bd6b607af1d336  gcc/testsuite/c-c++-common/gomp/pr106981.c
+ 8f995161beda01326e712ba172a760f8  gcc/testsuite/c-c++-common/gomp/pr107001.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
*************** ae2fa528701d8a7118d0446869032faa  gcc/te
*** 10140,10145 ****
--- 10148,10156 ----
  05e5f34e1a745d2204989ec4f256e3c7  gcc/testsuite/c-c++-common/pr101537.c
  3b77bbb422eaff74de51c6cd92512232  gcc/testsuite/c-c++-common/pr103881.c
  f7797890edb72db96871a3c3582464f4  gcc/testsuite/c-c++-common/pr105186.c
+ d5189fe9f7cb5f4a822563c9d438762d  gcc/testsuite/c-c++-common/pr105998.c
+ 01a09737cb2c3c4ba35d97feda5c3aeb  gcc/testsuite/c-c++-common/pr107358.c
+ e1ef9c58498f72552b0ec84751024b54  gcc/testsuite/c-c++-common/pr107465.c
  f5dce8e27cfb8a6bfffe57596fecb796  gcc/testsuite/c-c++-common/pr19807-1.c
  325d7c32f3748e10d55ba2faba3f1ce2  gcc/testsuite/c-c++-common/pr19807-2.c
  fb902cfe5a28251e99c554d18fb797e4  gcc/testsuite/c-c++-common/pr19807-3.c
*************** ea224ace5832cd0eba6a6d58558ed280  gcc/te
*** 10355,10360 ****
--- 10366,10372 ----
  0ff677a7f94c47b0db47cc14f3e6f746  gcc/testsuite/c-c++-common/pr96369.c
  e7da4642e25c14b28d3cbf86173d69a5  gcc/testsuite/c-c++-common/pr96545.c
  4fe8ad019b60941d4903ffbf3df4e8dc  gcc/testsuite/c-c++-common/pr97164.c
+ 81e319f6287462f1138a4fa254bcfda0  gcc/testsuite/c-c++-common/pr97498.c
  7859693e4c5c966ac09c6aa874fe5eb9  gcc/testsuite/c-c++-common/pr98556.c
  dcb1283b3d236483f0079fddb308212a  gcc/testsuite/c-c++-common/pr98943.c
  7e14f7ea529494ee1df50282a20a267c  gcc/testsuite/c-c++-common/pr99113.c
*************** e421ddf2d69b41e79c4238d86ca23e02  gcc/te
*** 10624,10629 ****
--- 10636,10642 ----
  701ee447bdcb3bdd63f4e19e0aa275c7  gcc/testsuite/c-c++-common/ubsan/div-by-zero-5.c
  6f79bf0d7a915586511e6d16f808b12f  gcc/testsuite/c-c++-common/ubsan/div-by-zero-6.c
  d48169540b483892cb5aef4288256769  gcc/testsuite/c-c++-common/ubsan/div-by-zero-7.c
+ 1a58dcff8d9551745c7d182be6aae836  gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c
  8d9e9d9d9f81061daf513b5ba1554c80  gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c
  96159bb28961f7d226730c47d4f46b1c  gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-10.c
  412e240273773d78a1d355e70f1bb47f  gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-11.c
*************** d44301076a2b5c1b6d67f8097ebccdc3  gcc/te
*** 11504,11509 ****
--- 11517,11523 ----
  60125e183bd40bfbd86f4bb4ff301e9d  gcc/testsuite/g++.dg/concepts/equiv.C
  bad35a69b0266b020bc955ced2b14050  gcc/testsuite/g++.dg/concepts/equiv2.C
  777ac81f55c638a07da402594472e54f  gcc/testsuite/g++.dg/concepts/explicit-spec1.C
+ 54d3adb5daf405d53fb4cae734d0d1a8  gcc/testsuite/g++.dg/concepts/explicit-spec1a.C
  5035d2866ee1c240c402c7e67d6968f3  gcc/testsuite/g++.dg/concepts/expression.C
  9fe31807d4c7abdadc0b3bfa1b68cea5  gcc/testsuite/g++.dg/concepts/expression2.C
  2da19a671e12ee60540bcf641442c919  gcc/testsuite/g++.dg/concepts/expression3.C
*************** e272ef3520e23457da8ff42e7d7411cb  gcc/te
*** 11686,11691 ****
--- 11700,11707 ----
  a3a3822acc6c0ae0b1c800209c7c3369  gcc/testsuite/g++.dg/conversion/to-virtual-base-1.C
  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
+ 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
  b9cdf449335374fa9e29301f8b540c5e  gcc/testsuite/g++.dg/coroutines/co-await-syntax-02-outside-fn.C
*************** cb41fef7448625fa4e0c8fd96e24fc4d  gcc/te
*** 11748,11753 ****
--- 11764,11770 ----
  0338cdb719c46fedef7227899cb0ad47  gcc/testsuite/g++.dg/coroutines/coroutines.exp
  5a6ab803d16d71889bbcfbe081300785  gcc/testsuite/g++.dg/coroutines/pr102454.C
  85cc1b4c4f0e73f17a81693bed3275fa  gcc/testsuite/g++.dg/coroutines/pr103328.C
+ c5029b3ababd909d21fec108130560c2  gcc/testsuite/g++.dg/coroutines/pr106188.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
  e9b715cb41c54f5b179b4725b788e338  gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C
*************** c11fb9d024f89aea2e027172cee4bda2  gcc/te
*** 12217,12222 ****
--- 12234,12240 ----
  82b611352fd26c7db573eb5226ef4366  gcc/testsuite/g++.dg/cpp0x/cond2.C
  49892879cc50168564ac99cc87bfb0ab  gcc/testsuite/g++.dg/cpp0x/constexpr-100111.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
*************** c42ce017f72e0ac9bc977500bc2d096c  gcc/te
*** 12443,12448 ****
--- 12461,12467 ----
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
  19eb610e0af0918f7473197af97c60d4  gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C
  54953d2c31360e2eeefa3305044bd360  gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C
+ 98f85ca947a471fd37217a8fc9e771fb  gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C
  aa1967267d5d21b22c4d54dfa617fcfc  gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C
  928d1a775ac6fb68d34dd89fdd936ada  gcc/testsuite/g++.dg/cpp0x/constexpr-fold1.C
  216c6548cc77db922bab7f78e595ac97  gcc/testsuite/g++.dg/cpp0x/constexpr-fold2.C
*************** a5ce11f6f7a1de2ab9382765eaae19a9  gcc/te
*** 12533,12538 ****
--- 12552,12558 ----
  9b22329501cdc0c04eb177944b0b9482  gcc/testsuite/g++.dg/cpp0x/constexpr-pedantic.C
  21cafe90c117f963b0c4d2102a2109a0  gcc/testsuite/g++.dg/cpp0x/constexpr-pmf1.C
  22f1652453d581ac1aa114c7e107eb73  gcc/testsuite/g++.dg/cpp0x/constexpr-pmf2.C
+ 35b3637981f7a87405df79bbf34a383f  gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C
  71bf544adf239f884a43b6d72e78604e  gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C
  e29b90d7c0ad7662446a6055addb6315  gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C
  a82ef0f27014a7256099b10bb3cb2b1a  gcc/testsuite/g++.dg/cpp0x/constexpr-ptrcomp1.C
*************** f192edc5aab7159d4df05835d1b9ecd0  gcc/te
*** 12766,12771 ****
--- 12786,12792 ----
  21abe8f16d0d01595ec939e338038b2b  gcc/testsuite/g++.dg/cpp0x/decltype78.C
  6fca30204c9f40dfe34f43d06bc82ff6  gcc/testsuite/g++.dg/cpp0x/decltype79.C
  bbdff105c665351973aaa6a25eaa0940  gcc/testsuite/g++.dg/cpp0x/decltype8.C
+ 8b610d64de6905aa68e67fd0017df0c1  gcc/testsuite/g++.dg/cpp0x/decltype81.C
  037e88423c377bc171f0dea56fb59c12  gcc/testsuite/g++.dg/cpp0x/decltype9.C
  3b20b1750b2ca6ed0f61eed98be9416e  gcc/testsuite/g++.dg/cpp0x/deduce.C
  3187223bdfa9e7cd351538529dc18cf1  gcc/testsuite/g++.dg/cpp0x/defaulted1.C
*************** f520b3c677602a9f4bb925811947dd27  gcc/te
*** 12904,12909 ****
--- 12925,12931 ----
  4314a939d182c8ee315404a2d9cf3ec3  gcc/testsuite/g++.dg/cpp0x/enum4.C
  1180e3480996d107ee707434d64528e0  gcc/testsuite/g++.dg/cpp0x/enum40.C
  04d281e3cb2c000a5e49e2b16f623027  gcc/testsuite/g++.dg/cpp0x/enum41.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
*************** f8949630a7a02f66d0ceb796b5525cb8  gcc/te
*** 13159,13164 ****
--- 13181,13188 ----
  c7426143406ef7a62dfbbb6b6ef974ca  gcc/testsuite/g++.dg/cpp0x/initlist-new3.C
  2462ced2f35f174d3a192fbb553556f8  gcc/testsuite/g++.dg/cpp0x/initlist-new4.C
  0eb8216638573813eaf1d41d50899505  gcc/testsuite/g++.dg/cpp0x/initlist-new5.C
+ eb8899f6095da627d668fbc099e59316  gcc/testsuite/g++.dg/cpp0x/initlist-new6.C
+ 99344f656bc7edb059f04cde31dcaa17  gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C
  bcbe398391cda8139c8462f46935b7e2  gcc/testsuite/g++.dg/cpp0x/initlist-opt.C
  e572423dbc63856346f68c0f83dab54a  gcc/testsuite/g++.dg/cpp0x/initlist-overload1.C
  a054a7d4e96233b7a3a6591843a8d33f  gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C
*************** cd0880983dc32cb469f470728ae8b22b  gcc/te
*** 13349,13354 ****
--- 13373,13379 ----
  8fc3ab70c2058568fbe8578145b021ae  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C
  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
  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
*************** dbabde6c9b65d0b2533bd2602dd6b6c4  gcc/te
*** 13379,13384 ****
--- 13404,13410 ----
  f84ddfe5534d65a28836f3e1f7f92bbe  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C
  6ae63f2c8f3dcde85465487f60927b71  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C
  8e8636849d06c71cef7fbe0973b2ace5  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C
+ b7541efb5750181bf83ef0c6c0074ed7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C
  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
*************** fb7661df85ad6b415b31574c67fa4ee0  gcc/te
*** 13803,13808 ****
--- 13829,13835 ----
  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
  e51fa7b3953a97711f4b666480bad308  gcc/testsuite/g++.dg/cpp0x/overload3.C
*************** ec3fccada021f17376f5255d71d5545b  gcc/te
*** 13816,13821 ****
--- 13843,13849 ----
  a174690fe306aaf345b02df91c3ddebe  gcc/testsuite/g++.dg/cpp0x/parse2.C
  6802ea11c1f5811ef4a3d0490040dcc1  gcc/testsuite/g++.dg/cpp0x/pr102305.C
  ab53f37eb7254188dd01a8c1e25841fd  gcc/testsuite/g++.dg/cpp0x/pr105256.C
+ fa773bb98628f5c9f0fa9d8d8b29beda  gcc/testsuite/g++.dg/cpp0x/pr107065.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
*************** b111f953ff16a99ffc3ad09a151f0958  gcc/te
*** 14092,14101 ****
  663c80121f28c2e7c23a73bc07b03f24  gcc/testsuite/g++.dg/cpp0x/ref-bind1.C
  8a71cf891e8518665824499f113e2f05  gcc/testsuite/g++.dg/cpp0x/ref-bind2.C
  2d20779c52193e2ab44ed26a7073b235  gcc/testsuite/g++.dg/cpp0x/ref-bind3.C
! 7bd7d572797664b340cbbd95894feb6e  gcc/testsuite/g++.dg/cpp0x/ref-bind4.C
  26f40a31991788187bf4bd2b2bebe9b5  gcc/testsuite/g++.dg/cpp0x/ref-bind5.C
  49a197500ff063e67fcb6e5da7a86594  gcc/testsuite/g++.dg/cpp0x/ref-bind6.C
  40e3f42cd5f4b322013adb46fba11bd2  gcc/testsuite/g++.dg/cpp0x/ref-bind7.C
  87cba3bd81389f956a4ab8405ad5dc46  gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C
  af4673410b97bcc5393dd82a2599c2d1  gcc/testsuite/g++.dg/cpp0x/ref-qual-multi-neg.C
  d0d588806aef3922d92ee7fb7c632659  gcc/testsuite/g++.dg/cpp0x/ref-qual1.C
--- 14120,14130 ----
  663c80121f28c2e7c23a73bc07b03f24  gcc/testsuite/g++.dg/cpp0x/ref-bind1.C
  8a71cf891e8518665824499f113e2f05  gcc/testsuite/g++.dg/cpp0x/ref-bind2.C
  2d20779c52193e2ab44ed26a7073b235  gcc/testsuite/g++.dg/cpp0x/ref-bind3.C
! 050b4a2d3a8f313526e14084d11d939e  gcc/testsuite/g++.dg/cpp0x/ref-bind4.C
  26f40a31991788187bf4bd2b2bebe9b5  gcc/testsuite/g++.dg/cpp0x/ref-bind5.C
  49a197500ff063e67fcb6e5da7a86594  gcc/testsuite/g++.dg/cpp0x/ref-bind6.C
  40e3f42cd5f4b322013adb46fba11bd2  gcc/testsuite/g++.dg/cpp0x/ref-bind7.C
+ 15ad30c4d2016e8133378c56ef3b191f  gcc/testsuite/g++.dg/cpp0x/ref-bind8.C
  87cba3bd81389f956a4ab8405ad5dc46  gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C
  af4673410b97bcc5393dd82a2599c2d1  gcc/testsuite/g++.dg/cpp0x/ref-qual-multi-neg.C
  d0d588806aef3922d92ee7fb7c632659  gcc/testsuite/g++.dg/cpp0x/ref-qual1.C
*************** c58aea587f92e9318dcbcd4325ab9500  gcc/te
*** 14758,14763 ****
--- 14787,14793 ----
  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
+ f97d20d3d680128b6e125d1793e29b87  gcc/testsuite/g++.dg/cpp1y/auto-fn64.C
  03b6f2674c38c8f6ed9f7fc03583b1dc  gcc/testsuite/g++.dg/cpp1y/auto-fn7.C
  e9a317fa32e36cef4553b50965e48550  gcc/testsuite/g++.dg/cpp1y/auto-fn8.C
  d67958b896eb1dae6f8862fd59b01c62  gcc/testsuite/g++.dg/cpp1y/auto-fn9.C
*************** af7d2fcb1d1338760b009b72c73a0154  gcc/te
*** 14777,14782 ****
--- 14807,14813 ----
  596bb0c9ae27b7c107953a30347295f0  gcc/testsuite/g++.dg/cpp1y/constexpr-104284-3.C
  b18c63a0e6b162de2b47ab0e61b704bd  gcc/testsuite/g++.dg/cpp1y/constexpr-104284-4.C
  6193cad472a1684eae83fead9fc5d0d7  gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C
+ afbdcf440b8da95f919e745c0f3a85d1  gcc/testsuite/g++.dg/cpp1y/constexpr-105774.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
*************** fdb8b6b86d13d007f2629fe0e79ef65b  gcc/te
*** 14839,14845 ****
  e6815ab618d6af99025ddeacf6ab0545  gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C
  4808950072f67f78922c9046e31e486d  gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C
  9b6ce1c2202c1ce9ea82fda5f060499b  gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C
! 9e871814c326197a59b4ae1738313788  gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C
  d4fc72d059e047077b1d6033d4c13026  gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C
  f1a863bb06163b628459fbc6a355ec3f  gcc/testsuite/g++.dg/cpp1y/constexpr-empty4.C
  995873768089d805df939c03d2be8b1c  gcc/testsuite/g++.dg/cpp1y/constexpr-hana1.C
--- 14870,14876 ----
  e6815ab618d6af99025ddeacf6ab0545  gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C
  4808950072f67f78922c9046e31e486d  gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C
  9b6ce1c2202c1ce9ea82fda5f060499b  gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C
! b8279a438f13574240482fd43dc100d3  gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C
  d4fc72d059e047077b1d6033d4c13026  gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C
  f1a863bb06163b628459fbc6a355ec3f  gcc/testsuite/g++.dg/cpp1y/constexpr-empty4.C
  995873768089d805df939c03d2be8b1c  gcc/testsuite/g++.dg/cpp1y/constexpr-hana1.C
*************** a429d84bc7f4132705bbe16ebbde7773  gcc/te
*** 14986,14991 ****
--- 15017,15023 ----
  82b03b4626aa950dab28dc141638ae81  gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep2.C
  b3d105376831c9fced97427b9128fab4  gcc/testsuite/g++.dg/cpp1y/lambda-generic-empty1.C
  d3f8bce30776925a103e5bcc1681b6ab  gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum1.C
+ bebbad2dccf149ad3697584e53703d3d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C
  b7efd8d29878f4a8e3a07f9cf622188c  gcc/testsuite/g++.dg/cpp1y/lambda-generic-func1.C
  82fea772a2540cf9ab702c17cc2cdb54  gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice1.C
  2c1a495f8eecefe79fade7ccb361c16c  gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice10.C
*************** b49a994714f8ac92c508dd3d6ab50d9d  gcc/te
*** 15283,15288 ****
--- 15315,15321 ----
  b481e5273496bfbbf3b3909be7169b4c  gcc/testsuite/g++.dg/cpp1y/var-templ68.C
  7ec7355a58dc65697a20d36778907420  gcc/testsuite/g++.dg/cpp1y/var-templ68a.C
  3c670164f1a7f8f91ef1db2f80526182  gcc/testsuite/g++.dg/cpp1y/var-templ7.C
+ 65e2c5dc982b2101d716a561b1d08003  gcc/testsuite/g++.dg/cpp1y/var-templ78.C
  7490ba7f2bf9511118a48f52e8c4ceed  gcc/testsuite/g++.dg/cpp1y/var-templ8.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
  2e5f8fa912af0b2871356af6f1adbd06  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
*************** ca10f046e47ea09ba5b87084372f1ce2  gcc/te
*** 15317,15322 ****
--- 15350,15356 ----
  4dbddfffb31fb9d4ab9b40b6ac489d84  gcc/testsuite/g++.dg/cpp1z/aligned-new6.C
  c5e8ac858eac19a1f1f10709e9b49389  gcc/testsuite/g++.dg/cpp1z/aligned-new7.C
  1c005f415746635350d5fd1bf3068b93  gcc/testsuite/g++.dg/cpp1z/aligned-new8.C
+ 91a3b7a59ec3f2f070c0cc2e24a851b2  gcc/testsuite/g++.dg/cpp1z/aligned-new9.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
*************** daf6a1ab8d18fad76864f7a9c31adc71  gcc/te
*** 15331,15337 ****
  871331a13941944f7010cfb1344eab6e  gcc/testsuite/g++.dg/cpp1z/class-deduction109.C
  517aaeb274419d156e09eb5a7d5b7077  gcc/testsuite/g++.dg/cpp1z/class-deduction11.C
  9f4ecb418c0bbb6f3b318882c20889a4  gcc/testsuite/g++.dg/cpp1z/class-deduction110.C
! 0ee09ea78093c92338c6b29bc4a5b4ba  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
  e3e05c165da411f84f868e0fb1238dca  gcc/testsuite/g++.dg/cpp1z/class-deduction15.C
--- 15365,15371 ----
  871331a13941944f7010cfb1344eab6e  gcc/testsuite/g++.dg/cpp1z/class-deduction109.C
  517aaeb274419d156e09eb5a7d5b7077  gcc/testsuite/g++.dg/cpp1z/class-deduction11.C
  9f4ecb418c0bbb6f3b318882c20889a4  gcc/testsuite/g++.dg/cpp1z/class-deduction110.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
  e3e05c165da411f84f868e0fb1238dca  gcc/testsuite/g++.dg/cpp1z/class-deduction15.C
*************** f663fe16c189e85a87c99ac3e556cdff  gcc/te
*** 15412,15426 ****
--- 15446,15464 ----
  7d0faa5e56f529947c47f73b3309ce56  gcc/testsuite/g++.dg/cpp1z/class-deduction84.C
  533990a3a8f21fecb63572f9aaf57a51  gcc/testsuite/g++.dg/cpp1z/class-deduction85.C
  3920e918276476b088679b893b9cde19  gcc/testsuite/g++.dg/cpp1z/class-deduction9.C
+ 196827ac69f45d97751bae8af9fb4549  gcc/testsuite/g++.dg/cpp1z/class-deduction99.C
  d09105e6c1f377543e5514e34d2837cd  gcc/testsuite/g++.dg/cpp1z/constexpr-83692.C
  6962bfa121a4383ee0b7a8f045abde3f  gcc/testsuite/g++.dg/cpp1z/constexpr-84684.C
  45c5f013f34b63d5d77c2d394365a506  gcc/testsuite/g++.dg/cpp1z/constexpr-96575.C
  db812bf22a911000584c903aac50ffd3  gcc/testsuite/g++.dg/cpp1z/constexpr-96862.C
+ 731a5da264413704826d204eeb2f2046  gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C
  58f65982ee216b64a2a721ba861c9e63  gcc/testsuite/g++.dg/cpp1z/constexpr-array1.C
+ 70b535b9e8c7e79ff364a6bca9996aa2  gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C
  d309961f0255b13605cf111efa2b095a  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda1.C
  6031d9adb83bdf87e2dd05c8108493d1  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda2.C
  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
  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
*************** af1e704cf45a12bb8c7e2865e6b7debc  gcc/te
*** 15539,15544 ****
--- 15577,15584 ----
  483e3caa4572c2f88ee6dff747cf3056  gcc/testsuite/g++.dg/cpp1z/decomp53.C
  46ef66cc9a593b59b8b3f161586b0533  gcc/testsuite/g++.dg/cpp1z/decomp54.C
  9e963a76a6e736436964ce0e71d75f41  gcc/testsuite/g++.dg/cpp1z/decomp55.C
+ 7473f4d78f4cab74d8165611ea38a63d  gcc/testsuite/g++.dg/cpp1z/decomp57.C
+ 055f4b76f99d823ab62ec060da73a672  gcc/testsuite/g++.dg/cpp1z/decomp58.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
*************** a53a61e2c3773add424075de3343c370  gcc/te
*** 15572,15577 ****
--- 15612,15618 ----
  c74b2113efcb17ebf1be773837691046  gcc/testsuite/g++.dg/cpp1z/fold10.C
  ba52c35faa435abd9cb368147dc00857  gcc/testsuite/g++.dg/cpp1z/fold11.C
  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
*************** bd11bdac9c20a2f5798e7207aca814ab  gcc/te
*** 15584,15589 ****
--- 15625,15631 ----
  fade45a91157c646e6940a215501f1c9  gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C
  ac9f13854ea3e455a1371aaa819ee22a  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C
  5f34b6f6c6b9801ac84fd35a7072c291  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations2.C
+ 9f9fa73c4ae67e4de5904663c140998d  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C
  712e0c3f886fdb90e5e03d39bd877f92  gcc/testsuite/g++.dg/cpp1z/inh-ctor1.C
  a5a039fe3394138160509efa1a2212c5  gcc/testsuite/g++.dg/cpp1z/inh-ctor22.C
  b303784bcf07c99011e96f0a6da77c55  gcc/testsuite/g++.dg/cpp1z/inh-ctor23.C
*************** c307915525471ee8f08e6059faf237d8  gcc/te
*** 15757,15762 ****
--- 15799,15805 ----
  e8f7bd0576728e974495935283ad4f39  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit7.C
  94d923eb6e3e9a6e1a82b6aa88915ed5  gcc/testsuite/g++.dg/cpp23/cplusplus.C
  d39bcd154de40d84b2eefbe2f9697524  gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C
+ 1f301f9b519009a1705e491647a55829  gcc/testsuite/g++.dg/cpp23/lambda-attr1.C
  570aa212dcff2a498d044c98fa66a858  gcc/testsuite/g++.dg/cpp23/lambda-specifiers1.C
  0b54a398f8b42d5fc1ce9e8f422c3298  gcc/testsuite/g++.dg/cpp23/lambda-specifiers2.C
  5fe66da6d2baee159060686defa0e47e  gcc/testsuite/g++.dg/cpp23/size_t-literals.C
*************** a8200681bca98aa623d744251dada14f  gcc/te
*** 16085,16090 ****
--- 16128,16135 ----
  9c9bfab9cfda662c9a6cf1fcf12eba12  gcc/testsuite/g++.dg/cpp2a/concepts-requires29.C
  e6e703168548b58827e38ded644feb36  gcc/testsuite/g++.dg/cpp2a/concepts-requires29a.C
  ed7e50860b352f18084c5990524595b2  gcc/testsuite/g++.dg/cpp2a/concepts-requires3.C
+ af01c600c3ac040f6855ee2ed2bff7bc  gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C
+ 4e9fea94af314664c5d064df3b008f44  gcc/testsuite/g++.dg/cpp2a/concepts-requires31.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
*************** cd7abc8d42b6882b26382ab5c9549dc9  gcc/te
*** 16094,16099 ****
--- 16139,16145 ----
  df41d5e3eb088a4079a9e8ca6adc1cd1  gcc/testsuite/g++.dg/cpp2a/concepts-return-req1.C
  73d7ca2c4ac7816b0388f526d4e04629  gcc/testsuite/g++.dg/cpp2a/concepts-return-req2.C
  328e3a75620bf7edb8349523d4785673  gcc/testsuite/g++.dg/cpp2a/concepts-return-req3.C
+ ad64150b7244228f6fbd5e2a90ba099c  gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C
  dfcd95576f20c2cc8e894aafe754dd43  gcc/testsuite/g++.dg/cpp2a/concepts-sfinae1.C
  94e516c88a3b958114e11fa18857ea12  gcc/testsuite/g++.dg/cpp2a/concepts-spec1.C
  e7d2cd347c791b674d0be66da74077a1  gcc/testsuite/g++.dg/cpp2a/concepts-syntax1.C
*************** ec9215388b111eac1916dca163b2b4dd  gcc/te
*** 16107,16112 ****
--- 16153,16159 ----
  ee36c7ebc03385f37bcba1c49e06c808  gcc/testsuite/g++.dg/cpp2a/concepts-this1.C
  39c15f1dc604f714304d144250164089  gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C
  c9a6ab7bc0f1947e843b9c7150ccb98c  gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C
+ da802903e656a602947ee543e58f625e  gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C
  82c399ad9b34b095f9489e636de58940  gcc/testsuite/g++.dg/cpp2a/concepts-ts1.C
  202e848af4b3017e51ab2eb5995fffeb  gcc/testsuite/g++.dg/cpp2a/concepts-ts2.C
  ea441494e2367b584a16520ca6327732  gcc/testsuite/g++.dg/cpp2a/concepts-ts3.C
*************** dbce59796cf14d5203c5f6510a0ae622  gcc/te
*** 16283,16288 ****
--- 16330,16336 ----
  a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/testsuite/g++.dg/cpp2a/constinit13.C
  abe4f29f72a423fef4342d122db1f1e3  gcc/testsuite/g++.dg/cpp2a/constinit14.C
  6c452707a42527df0dd492198f4a03d6  gcc/testsuite/g++.dg/cpp2a/constinit15.C
+ 5f1a0d190f7b063f2ab37e1844af8991  gcc/testsuite/g++.dg/cpp2a/constinit18.C
  9f7da905ea744d36251021c627953aa7  gcc/testsuite/g++.dg/cpp2a/constinit2.C
  ec97b4f24af7c726b645ccd07978270a  gcc/testsuite/g++.dg/cpp2a/constinit3.C
  ec5836ef75d0047a1e68f87292524d25  gcc/testsuite/g++.dg/cpp2a/constinit4.C
*************** a6ee108d333ad358664c642b33d39e46  gcc/te
*** 16312,16317 ****
--- 16360,16366 ----
  989b46f026a86ab54fda41f606108878  gcc/testsuite/g++.dg/cpp2a/desig23.C
  37f9adbe25dc46488b6c27d2e6505657  gcc/testsuite/g++.dg/cpp2a/desig24.C
  338ebe449657eb02c4167973adb86777  gcc/testsuite/g++.dg/cpp2a/desig25.C
+ 4509437e82877d48180736a8562517df  gcc/testsuite/g++.dg/cpp2a/desig26.C
  9f489d7f3f58294a91f5e5ea62989f5c  gcc/testsuite/g++.dg/cpp2a/desig3.C
  a1e304613b1097092d10ed459e46fe0c  gcc/testsuite/g++.dg/cpp2a/desig4.C
  bf71e77b18ad9c10b7e9f64f07ee9d28  gcc/testsuite/g++.dg/cpp2a/desig5.C
*************** b37f129ff7900818716e38b8fde743c0  gcc/te
*** 16389,16394 ****
--- 16438,16445 ----
  40ea32951dfb4570c1774e238c30f434  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C
  c1cdf23c08dcb292bbd629847ef95a23  gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic21.C
  f3d333d9133ccc3fed58f15dd1e6c1c1  gcc/testsuite/g++.dg/cpp2a/lambda-generic1.C
+ 31de1847090a23a3b1145ba426b1f12b  gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C
+ d5563aeee3f9b44dbd622e206e23998d  gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C
  101950bd66265e5e952f39292d61abee  gcc/testsuite/g++.dg/cpp2a/lambda-generic2.C
  f3183e909b7fd601906b1f284b8514e9  gcc/testsuite/g++.dg/cpp2a/lambda-generic3.C
  53b70e7bd216f774ecdcfeda866f430c  gcc/testsuite/g++.dg/cpp2a/lambda-generic4.C
*************** f50c8e7c7812a7eade38d014e8410110  gcc/te
*** 16404,16409 ****
--- 16455,16461 ----
  76aebdeb346269b3700ddb3dc4e2d8ac  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init4.C
  922e5dff9ed1946970d8d28661c33f0f  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init5.C
  05ee01266fc805cc3327ad09e070330c  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C
+ 85f2c06ad2ac5e902901d52119b92b66  gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.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
*************** bf80b786a1a4ec9eac5fda8277196264  gcc/te
*** 16582,16587 ****
--- 16634,16640 ----
  494f62ed4d3c86eb9614203922c107f6  gcc/testsuite/g++.dg/cpp2a/spaceship-decltype1.C
  78449a6026dc94a1940145f131e40dbd  gcc/testsuite/g++.dg/cpp2a/spaceship-eq1.C
  7ef8ca64f3d128751171c4bc6c6d1dc9  gcc/testsuite/g++.dg/cpp2a/spaceship-eq10.C
+ 38fdc580773803f5236af81425b44d75  gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C
  35b5b00dc11e88e35813caed81c920fc  gcc/testsuite/g++.dg/cpp2a/spaceship-eq1a.C
  da366bbf37859e5c77c24a8138c72180  gcc/testsuite/g++.dg/cpp2a/spaceship-eq2.C
  930eb55b3ccd27e9ad1d90ede793b4f1  gcc/testsuite/g++.dg/cpp2a/spaceship-eq3.C
*************** e83eaca9dc6f24d5d311cbc3b0f5e3e8  gcc/te
*** 16690,16700 ****
  e0594ebf50b79f339906f3410ba74411  gcc/testsuite/g++.dg/cpp2a/using-enum-7.C
  2a6d4537e5c7ceafb005d88ac7453264  gcc/testsuite/g++.dg/cpp2a/using-enum-8.C
  3b9024d3a27c4b1a195fd5d7e4185661  gcc/testsuite/g++.dg/cpp2a/using-enum-9.C
! eb3624cc3c4aaf45b38420c1d813e807  gcc/testsuite/g++.dg/cpp2a/volatile1.C
  1268b9025db1cda367f76654228c1829  gcc/testsuite/g++.dg/cpp2a/volatile2.C
! 38a1560b8b9b22be4d576d30a8cef4c3  gcc/testsuite/g++.dg/cpp2a/volatile3.C
  6ef0acb96637db85886dfa5cfceedf60  gcc/testsuite/g++.dg/cpp2a/volatile4.C
! 96dafb009a7feee933cad2b35c2cccf6  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
--- 16743,16753 ----
  e0594ebf50b79f339906f3410ba74411  gcc/testsuite/g++.dg/cpp2a/using-enum-7.C
  2a6d4537e5c7ceafb005d88ac7453264  gcc/testsuite/g++.dg/cpp2a/using-enum-8.C
  3b9024d3a27c4b1a195fd5d7e4185661  gcc/testsuite/g++.dg/cpp2a/using-enum-9.C
! 533045ce55798a72315286511613854a  gcc/testsuite/g++.dg/cpp2a/volatile1.C
  1268b9025db1cda367f76654228c1829  gcc/testsuite/g++.dg/cpp2a/volatile2.C
! 3fa8ac8868e5ba1230d5ea9f4490bfef  gcc/testsuite/g++.dg/cpp2a/volatile3.C
  6ef0acb96637db85886dfa5cfceedf60  gcc/testsuite/g++.dg/cpp2a/volatile4.C
! 9857faea61370aed22b9ca9ef059dcd8  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
*************** c7ffd1dd0ae40378732be3ac8729a37c  gcc/te
*** 16795,16800 ****
--- 16848,16854 ----
  abe2799d2ba99877ff9ac9491b7f3baf  gcc/testsuite/g++.dg/debug/dwarf2/noreturn-function.C
  b3cbbd79d5ff077a6732280d76b2284e  gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C
  b117227269644a100a7a06bf2bc9bf6f  gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C
+ b43f4d6e4f27dc96c0e870436aa41ff2  gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C
  7054dc65c88179389afb9e79cad0df38  gcc/testsuite/g++.dg/debug/dwarf2/pr41063.C
  9118e81e091fae9d3d9c8c39a846e724  gcc/testsuite/g++.dg/debug/dwarf2/pr44641.C
  90028c65be83718cb8e154df1b502d99  gcc/testsuite/g++.dg/debug/dwarf2/pr45997-1.C
*************** a0ac13a0885ee162c972f58ffbd934e7  gcc/te
*** 16880,16885 ****
--- 16934,16941 ----
  8d1c97a9b811ba8c9a789baf97c48ce4  gcc/testsuite/g++.dg/debug/namespace1.C
  98d1fa8a42200722f612a8f915bb9673  gcc/testsuite/g++.dg/debug/namespace2.C
  c805656a195d9a98cc7141e7db52d9ef  gcc/testsuite/g++.dg/debug/nullptr01.C
+ 57e21034689a45ffd010ec86b2596de5  gcc/testsuite/g++.dg/debug/pr106261.C
+ 19de4ef7373a891f957af0121c166d89  gcc/testsuite/g++.dg/debug/pr108967.C
  fcdc9d29f34ff56d1b7de0d55a1eaed7  gcc/testsuite/g++.dg/debug/pr15736.cc
  d25b84553c2083b28615202497b8f94a  gcc/testsuite/g++.dg/debug/pr16792.C
  91880dfb66fda0db4ddabf486346b755  gcc/testsuite/g++.dg/debug/pr22514.C
*************** d9a1f43ca6ac2a073e22bbbf243f300b  gcc/te
*** 18413,18418 ****
--- 18469,18478 ----
  9950e1331756ada98404843c3491b239  gcc/testsuite/g++.dg/gomp/pr101516.C
  0c11b92a016ab75deb360c1427f9b571  gcc/testsuite/g++.dg/gomp/pr101759.C
  3da3560251942b44a47c6e2c267e97f2  gcc/testsuite/g++.dg/gomp/pr102431.C
+ 7e0c22485f96abb66b7f1423871e39b0  gcc/testsuite/g++.dg/gomp/pr106124.C
+ 2a1bc0a0ca3eb44a30af243b7764d562  gcc/testsuite/g++.dg/gomp/pr106492.C
+ e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
+ 8c2b289e4e3768861822d1f92823a842  gcc/testsuite/g++.dg/gomp/pr108607.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
*************** dcecc8a81073a9824c153ff083f81a4a  gcc/te
*** 18602,18608 ****
  012194f3f4441fc0dc8fb4ba94a8882b  gcc/testsuite/g++.dg/graphite/pr42681.C
  dfe63b7d52f6d97e04da25f267ac330c  gcc/testsuite/g++.dg/graphite/pr42930.C
  4cf735ba9e5b65e201dbbd4ec916b359  gcc/testsuite/g++.dg/graphite/pr43026.C
! a75b83e8d5052fa0817648b5802726ae  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
--- 18662,18668 ----
  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
*************** b25b382db37739c81869b75df02687cf  gcc/te
*** 18990,18995 ****
--- 19050,19056 ----
  89bc34eae0365b381ab82e8d4ca5957f  gcc/testsuite/g++.dg/init/pr43890.C
  f660de16a9cf160558064bb92eb21901  gcc/testsuite/g++.dg/init/pr44086.C
  880ee6b08cc835f2a1db0bae613e7a23  gcc/testsuite/g++.dg/init/pr48859.C
+ 326a48b27d057d316de2e35aec05d132  gcc/testsuite/g++.dg/init/pr53932.C
  aa6fb39dc7128d68580ac96eb833e456  gcc/testsuite/g++.dg/init/pr55497.C
  c835d50eaf5fe1a2b052a1579b5ce77f  gcc/testsuite/g++.dg/init/pr58811.C
  f25ce72283c3004e08c0df4685ca2469  gcc/testsuite/g++.dg/init/pr60572.C
*************** d0415e5d5ed79c73a04e7df5551e4b95  gcc/te
*** 19172,19177 ****
--- 19233,19239 ----
  867fb18fd70a2df8847d32f03eb09d64  gcc/testsuite/g++.dg/ipa/ivinline-9.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
  02f3704c0511b2d171c55dbf09c64325  gcc/testsuite/g++.dg/ipa/pr43695.C
  5345293723ad062b59b168c319738e1e  gcc/testsuite/g++.dg/ipa/pr43812.C
  b001cbe3dfdeb7d2a1061f024aa08ea4  gcc/testsuite/g++.dg/ipa/pr44372.C
*************** c50416bd024b7f394ccf13b2af42d6e9  gcc/te
*** 19372,19377 ****
--- 19434,19440 ----
  6c4b3ee38e0ef8c73906d3d6ef93c86e  gcc/testsuite/g++.dg/lookup/friend20.C
  a484b9799b124bf970c056c966db32e6  gcc/testsuite/g++.dg/lookup/friend21.C
  e5da5eba809ee821e6882a9f27fe37d6  gcc/testsuite/g++.dg/lookup/friend22.C
+ 2212655cd503f3dbf25bf127bc32e45f  gcc/testsuite/g++.dg/lookup/friend24.C
  e51e64a92ddf4c4d012cb738bf62fde5  gcc/testsuite/g++.dg/lookup/friend3.C
  96ad222df48d0097eb84d66dbf37d17d  gcc/testsuite/g++.dg/lookup/friend4.C
  187ba092057b229619d98cf5e000c6e1  gcc/testsuite/g++.dg/lookup/friend5.C
*************** ceb308a6392d6912753d38c2f9a2bccb  gcc/te
*** 20808,20814 ****
  3a893c5a8b908d302fc91bf865138018  gcc/testsuite/g++.dg/modules/tpl-extern-var-1_b.C
  051a2753ec2e8d615e18875ab2746fa8  gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C
  2d9be0b173bceba0cbfd5a1ee4909f4c  gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C
! 127b3c98362ebb3267f51d1773afb775  gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
  4511743d659541c1148b76a234b62a41  gcc/testsuite/g++.dg/modules/tpl-friend-2_b.C
  95a880cc0f3eee2ff8309d2183f7f9d4  gcc/testsuite/g++.dg/modules/tpl-friend-3_a.C
  2f75113d46c35f669145b81d5620b94d  gcc/testsuite/g++.dg/modules/tpl-friend-3_b.C
--- 20871,20877 ----
  3a893c5a8b908d302fc91bf865138018  gcc/testsuite/g++.dg/modules/tpl-extern-var-1_b.C
  051a2753ec2e8d615e18875ab2746fa8  gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C
  2d9be0b173bceba0cbfd5a1ee4909f4c  gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C
! d36e0a1f34b1d7f2cacd00844d768335  gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
  4511743d659541c1148b76a234b62a41  gcc/testsuite/g++.dg/modules/tpl-friend-2_b.C
  95a880cc0f3eee2ff8309d2183f7f9d4  gcc/testsuite/g++.dg/modules/tpl-friend-3_a.C
  2f75113d46c35f669145b81d5620b94d  gcc/testsuite/g++.dg/modules/tpl-friend-3_b.C
*************** b879c3972fcf09a0bef4781d973dea10  gcc/te
*** 20992,20997 ****
--- 21055,21061 ----
  6ce6781eee8599f8f5762ae874d368af  gcc/testsuite/g++.dg/opt/const4.C
  8acf967b641c44d3b713b18abd459981  gcc/testsuite/g++.dg/opt/const5.C
  77ef3f0315a1d75cc03361805c714b79  gcc/testsuite/g++.dg/opt/const6.C
+ 5bc6618e030e397aeed7cf91aa526f63  gcc/testsuite/g++.dg/opt/const7.C
  8a6577c2e8b91d69c2d55b8ed2488fc8  gcc/testsuite/g++.dg/opt/copysign-1.C
  5c2d124413a2eaf9d343379ef14570a2  gcc/testsuite/g++.dg/opt/covariant1.C
  2b8e568482a37c0e98a0154aa649f58b  gcc/testsuite/g++.dg/opt/crash1.C
*************** b599b75470b905e959a7172363b13d69  gcc/te
*** 21109,21114 ****
--- 21173,21180 ----
  4821bda808ec2c117c297e4f155752e3  gcc/testsuite/g++.dg/opt/pr104681.C
  a05f3fe9e917eacdb552f9ade1d73f34  gcc/testsuite/g++.dg/opt/pr104880.C
  bad9496f071793031ea4ab93b911a483  gcc/testsuite/g++.dg/opt/pr105235-1.C
+ 0fd8014a8bf41063904c9006c6d3f334  gcc/testsuite/g++.dg/opt/pr108365.C
+ 2613159e61afceaa9e7ace58beef53f4  gcc/testsuite/g++.dg/opt/pr108854.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
*************** eef8c677d4ba7576d1abc34640929821  gcc/te
*** 22245,22251 ****
  eb7d271a7110d4e8fc3f749e65b2288f  gcc/testsuite/g++.dg/parse/new5.C
  5070f40d76becad391ac11ebc8fc25b2  gcc/testsuite/g++.dg/parse/new6.C
  802d61ac08eb06bb2eb54839cd4accf8  gcc/testsuite/g++.dg/parse/no-type-defn1.C
! 43b7207a4c945d2ace1328cdc697c267  gcc/testsuite/g++.dg/parse/no-typename1.C
  aa5411fd5e6b230e1e272f2eabca94bc  gcc/testsuite/g++.dg/parse/no-value1.C
  d3d5c74c2536d2bbc64765e6108f9905  gcc/testsuite/g++.dg/parse/non-dependent1.C
  73062b089778c12a0028db31493ae2c0  gcc/testsuite/g++.dg/parse/non-dependent2.C
--- 22311,22317 ----
  eb7d271a7110d4e8fc3f749e65b2288f  gcc/testsuite/g++.dg/parse/new5.C
  5070f40d76becad391ac11ebc8fc25b2  gcc/testsuite/g++.dg/parse/new6.C
  802d61ac08eb06bb2eb54839cd4accf8  gcc/testsuite/g++.dg/parse/no-type-defn1.C
! 69077da5839ad8d28331fbad77fcd87e  gcc/testsuite/g++.dg/parse/no-typename1.C
  aa5411fd5e6b230e1e272f2eabca94bc  gcc/testsuite/g++.dg/parse/no-value1.C
  d3d5c74c2536d2bbc64765e6108f9905  gcc/testsuite/g++.dg/parse/non-dependent1.C
  73062b089778c12a0028db31493ae2c0  gcc/testsuite/g++.dg/parse/non-dependent2.C
*************** ed8b4046f6c267966d1156016f2f0431  gcc/te
*** 22343,22348 ****
--- 22409,22415 ----
  322abe6d2d840b6218ecf16b70637d21  gcc/testsuite/g++.dg/parse/qualified3.C
  c6c725343704e95eb7f4ce2862bce46b  gcc/testsuite/g++.dg/parse/qualified4.C
  5f4c2303e76572835b5428d77b8b77ec  gcc/testsuite/g++.dg/parse/qualified5.C
+ 2c7ef51e8071727ef6ac34013c08759f  gcc/testsuite/g++.dg/parse/qualified6.C
  8d6d8891281e77e95edf66cda3bc270f  gcc/testsuite/g++.dg/parse/redef1.C
  ea5aebd8cd9820744d1d08f3b5429dca  gcc/testsuite/g++.dg/parse/redef2.C
  19c9483f0726842c500357ad04acc983  gcc/testsuite/g++.dg/parse/ref-qual1.C
*************** e051d5cb1d92744fe18b74552249a54e  gcc/te
*** 22505,22510 ****
--- 22572,22578 ----
  4e74baf6e971213789395d81a85385e0  gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c
  2e53d96b8ba6ffa8b9414775da7e87f3  gcc/testsuite/g++.dg/pr100253.C
  b4e42a0948b84ed96d9d06db882fdc2e  gcc/testsuite/g++.dg/pr100574.C
+ 18b9174889675eec328ca8173a24e49a  gcc/testsuite/g++.dg/pr104869.C
  2ac64817a39fe1a5c2dc328f4233cda1  gcc/testsuite/g++.dg/pr37742.C
  32b2fbda29ffd2ac2181c43c971f3a7d  gcc/testsuite/g++.dg/pr44328.C
  e43b4ea2d038b181b57782d5d56d22ba  gcc/testsuite/g++.dg/pr44486.C
*************** c196198d50bad93b87f24ccaf1c0ee15  gcc/te
*** 22576,22593 ****
  2925678828b854c5f2a448d4d34d8e08  gcc/testsuite/g++.dg/pr64688.C
  0f0d9bb4908d6bdb56109652b1ef4e88  gcc/testsuite/g++.dg/pr65032.C
  2a99023224d23b7b4c2df438196b9877  gcc/testsuite/g++.dg/pr65049.C
! e806b69344c18eb3f9f4d25e7ef1cbb7  gcc/testsuite/g++.dg/pr65240-1.C
! ee3a7e458d7954444a8959c8662bdeba  gcc/testsuite/g++.dg/pr65240-2.C
! 3a4a8f388dfc83911ec4b20be25740b4  gcc/testsuite/g++.dg/pr65240-3.C
! 185b61c9f9f2771ca0469650321db79c  gcc/testsuite/g++.dg/pr65240-4.C
  ff90a96b0f5bda64aea35147770302e1  gcc/testsuite/g++.dg/pr65240.h
! 0057ba501387c41f5fcb4c3488ae63ac  gcc/testsuite/g++.dg/pr65242.C
  c987d521d6ec4222a0bbaff58ae0df77  gcc/testsuite/g++.dg/pr65295.C
  20bcb78b164336c6b42304de362d905a  gcc/testsuite/g++.dg/pr66655.C
  575d8cfa0f7cc7a30ac74c14eec274d2  gcc/testsuite/g++.dg/pr66655.h
  9b717eabe7d22f65a71673e3ffc1470b  gcc/testsuite/g++.dg/pr66655_1.cc
  c014278b0e7c6cf72bd8834b1b9d6631  gcc/testsuite/g++.dg/pr66866.C
! e76d57f03d20c287845bd04c939c4d73  gcc/testsuite/g++.dg/pr67211.C
  54fc8bd86f8a81eead6183ed98044e5e  gcc/testsuite/g++.dg/pr67351.C
  c15a8cc45a8eaf8903cfaae658dc8822  gcc/testsuite/g++.dg/pr67405.C
  61d6f57e830446105d84b6744eecd7eb  gcc/testsuite/g++.dg/pr67666.C
--- 22644,22661 ----
  2925678828b854c5f2a448d4d34d8e08  gcc/testsuite/g++.dg/pr64688.C
  0f0d9bb4908d6bdb56109652b1ef4e88  gcc/testsuite/g++.dg/pr65032.C
  2a99023224d23b7b4c2df438196b9877  gcc/testsuite/g++.dg/pr65049.C
! 922496f33a9ac5ccae6f8aa317a02a67  gcc/testsuite/g++.dg/pr65240-1.C
! 8bd9fd039876f7fc1a911c89028258ff  gcc/testsuite/g++.dg/pr65240-2.C
! 5ba7c1a90046e9179ea6288129367815  gcc/testsuite/g++.dg/pr65240-3.C
! d50cfc924c3c6bfe48d010f49b0320c5  gcc/testsuite/g++.dg/pr65240-4.C
  ff90a96b0f5bda64aea35147770302e1  gcc/testsuite/g++.dg/pr65240.h
! 225c688c4f2ead1be77c30e05bf4245c  gcc/testsuite/g++.dg/pr65242.C
  c987d521d6ec4222a0bbaff58ae0df77  gcc/testsuite/g++.dg/pr65295.C
  20bcb78b164336c6b42304de362d905a  gcc/testsuite/g++.dg/pr66655.C
  575d8cfa0f7cc7a30ac74c14eec274d2  gcc/testsuite/g++.dg/pr66655.h
  9b717eabe7d22f65a71673e3ffc1470b  gcc/testsuite/g++.dg/pr66655_1.cc
  c014278b0e7c6cf72bd8834b1b9d6631  gcc/testsuite/g++.dg/pr66866.C
! 6e5baacb67506374f7db3dffb5272daf  gcc/testsuite/g++.dg/pr67211.C
  54fc8bd86f8a81eead6183ed98044e5e  gcc/testsuite/g++.dg/pr67351.C
  c15a8cc45a8eaf8903cfaae658dc8822  gcc/testsuite/g++.dg/pr67405.C
  61d6f57e830446105d84b6744eecd7eb  gcc/testsuite/g++.dg/pr67666.C
*************** b76c7ee65b34b2377285a776d351781b  gcc/te
*** 22606,22619 ****
  29300174b10233fd47c932d1ffd4c3bf  gcc/testsuite/g++.dg/pr69123.C
  72bb8a9ea548aaaada55dbcdb8d6a802  gcc/testsuite/g++.dg/pr69338.C
  07ceb93faa4d6543359b7c47e9a5e94a  gcc/testsuite/g++.dg/pr69379.C
! 7577b450ba2f8422ac17aa9a168a69c1  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
  d8fba4e6baf8e0880ae882765e1135b4  gcc/testsuite/g++.dg/pr70590.C
  5c6cf3e2bb082400e2ca3d17973fdd4b  gcc/testsuite/g++.dg/pr70965.C
  0b728dae13a5f48195e47018a83c4f35  gcc/testsuite/g++.dg/pr71184.C
! 8b83dfbae2a2ae737596ef723b347d76  gcc/testsuite/g++.dg/pr71294.C
  dd5b895f9e8e377b3fc861eecf9bdbf7  gcc/testsuite/g++.dg/pr71389.C
  6b1ee9b05340152c90e7c09d5b9eb5c2  gcc/testsuite/g++.dg/pr71488.C
  8756c72da60c2ac8cdddc20291df82e3  gcc/testsuite/g++.dg/pr71655.C
--- 22674,22687 ----
  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
  d8fba4e6baf8e0880ae882765e1135b4  gcc/testsuite/g++.dg/pr70590.C
  5c6cf3e2bb082400e2ca3d17973fdd4b  gcc/testsuite/g++.dg/pr70965.C
  0b728dae13a5f48195e47018a83c4f35  gcc/testsuite/g++.dg/pr71184.C
! 1c81a3ae2a74a3e67c56f46fd05e05ae  gcc/testsuite/g++.dg/pr71294.C
  dd5b895f9e8e377b3fc861eecf9bdbf7  gcc/testsuite/g++.dg/pr71389.C
  6b1ee9b05340152c90e7c09d5b9eb5c2  gcc/testsuite/g++.dg/pr71488.C
  8756c72da60c2ac8cdddc20291df82e3  gcc/testsuite/g++.dg/pr71655.C
*************** bf14562b088e1e4c01e4050adbd18394  gcc/te
*** 22655,22661 ****
  a8cae2d227c02ee5705e9b5b205bb1d1  gcc/testsuite/g++.dg/pr83979.c
  8528aaf5d93c3e6771dcc4828d7264b5  gcc/testsuite/g++.dg/pr84231.C
  083c1f5c90058b5d83822264c5d52f0e  gcc/testsuite/g++.dg/pr84264.C
! 11b4cccb7d83f94f276075c4b5417588  gcc/testsuite/g++.dg/pr84279.C
  fcd3d77f2c884effb0321a5b04ff8ca6  gcc/testsuite/g++.dg/pr84492.C
  ebc2502b64fbdf6e7c61b806ec979487  gcc/testsuite/g++.dg/pr84729.C
  75d741968e42202427b6e9c163e5c326  gcc/testsuite/g++.dg/pr84821.C
--- 22723,22729 ----
  a8cae2d227c02ee5705e9b5b205bb1d1  gcc/testsuite/g++.dg/pr83979.c
  8528aaf5d93c3e6771dcc4828d7264b5  gcc/testsuite/g++.dg/pr84231.C
  083c1f5c90058b5d83822264c5d52f0e  gcc/testsuite/g++.dg/pr84264.C
! 26d10f4b383162ffd9eb468d61656fe3  gcc/testsuite/g++.dg/pr84279.C
  fcd3d77f2c884effb0321a5b04ff8ca6  gcc/testsuite/g++.dg/pr84492.C
  ebc2502b64fbdf6e7c61b806ec979487  gcc/testsuite/g++.dg/pr84729.C
  75d741968e42202427b6e9c163e5c326  gcc/testsuite/g++.dg/pr84821.C
*************** c31c403acbaa655ae0413e1d4350ae4b  gcc/te
*** 23018,23023 ****
--- 23086,23092 ----
  c28b6679b01f4bbe8403c045289d2aef  gcc/testsuite/g++.dg/template/conv14.C
  d03295ed120e37ef2651d9c57aa0b774  gcc/testsuite/g++.dg/template/conv15.C
  bc45c52058d378ff45879106160f09fc  gcc/testsuite/g++.dg/template/conv16.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
*************** f8b96612d216a7b190f337247c8e8315  gcc/te
*** 23427,23432 ****
--- 23496,23503 ----
  1d4f923241bfe8578940f39c34f80d7c  gcc/testsuite/g++.dg/template/friend7.C
  33f91697bdb7e2294d13e7eb88e92b55  gcc/testsuite/g++.dg/template/friend70.C
  20f36227317bf6bb8a652c05ab8aac80  gcc/testsuite/g++.dg/template/friend71.C
+ 08aeef7e95f0f822e6e8b78c88d9bbb7  gcc/testsuite/g++.dg/template/friend74.C
+ 5ded44dad812054a2b06422df4b95665  gcc/testsuite/g++.dg/template/friend78.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
*************** ffd1465e85fe6778f5e32548bb4d2ad5  gcc/te
*** 23582,23587 ****
--- 23653,23659 ----
  b12c9a151e46871b430564ee47c57714  gcc/testsuite/g++.dg/template/nested4.C
  55bd98cb7f4709362363619cbba3ca30  gcc/testsuite/g++.dg/template/nested5.C
  3d7ff2f50901cdae15e987265ff20ed6  gcc/testsuite/g++.dg/template/nested6.C
+ eb97b845951649a22172514806d1ef72  gcc/testsuite/g++.dg/template/nested7.C
  57b33208329c8d10ea904c3d123076a9  gcc/testsuite/g++.dg/template/new1.C
  dd5106154e8f9fa0866be1a1283b490e  gcc/testsuite/g++.dg/template/new10.C
  8a3716757b496de374cb6d6a4f5b6a64  gcc/testsuite/g++.dg/template/new11.C
*************** efb971f4591133c5f1a27dea6aeb5d1a  gcc/te
*** 23689,23694 ****
--- 23761,23768 ----
  486d4c5a4f5f81e0939deae14d55e933  gcc/testsuite/g++.dg/template/partial-order1.C
  ae5d48999739c18e13002880ad3cd978  gcc/testsuite/g++.dg/template/partial-order2.C
  e187a317d102d915368fe357726202ba  gcc/testsuite/g++.dg/template/partial-specialization.C
+ 9ba8631cf52f4ca9887f51f7e2a0dee4  gcc/testsuite/g++.dg/template/partial-specialization11.C
+ c6626df8c629f478dbdc351fb543d7ae  gcc/testsuite/g++.dg/template/partial-specialization12.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
*************** f7e4853292654f0af6a0a460b8924add  gcc/te
*** 24272,24277 ****
--- 24346,24355 ----
  6e16acccf0c9f3e11f613dd140679e49  gcc/testsuite/g++.dg/tls/thread_local12j.C
  9eb8b3d800f83f9d7d869d484abd19e6  gcc/testsuite/g++.dg/tls/thread_local12k.C
  b6d15debf41ad15b105889629ec239cc  gcc/testsuite/g++.dg/tls/thread_local12l.C
+ 172557168cbc67b1f30728843273661b  gcc/testsuite/g++.dg/tls/thread_local13-aux.cc
+ f872c9bb06d86928cee03742631d043b  gcc/testsuite/g++.dg/tls/thread_local13.C
+ 55b421ef887d033e9d55b24ecf73ba9a  gcc/testsuite/g++.dg/tls/thread_local14-aux.cc
+ 10f422a7b298c551b33dc01dd37d0089  gcc/testsuite/g++.dg/tls/thread_local14.C
  24b7dce2c6b463d883c54b5a853ce0ad  gcc/testsuite/g++.dg/tls/thread_local2.C
  6c980c168dd76bd2823f2ec310b5f47b  gcc/testsuite/g++.dg/tls/thread_local2g.C
  6c7d3f08d2224c4d24f97029d8604655  gcc/testsuite/g++.dg/tls/thread_local3.C
*************** ce4f8106ed96ef070bead8ca0df02eea  gcc/te
*** 24405,24416 ****
  4a0b418d1bbb783ee191f2d05263d191  gcc/testsuite/g++.dg/torture/dg-torture.exp
  fab1470d87fc879a4a285622c057b736  gcc/testsuite/g++.dg/torture/init-list1.C
  4054dd6c177ca7971902e3ac60e34695  gcc/testsuite/g++.dg/torture/ipa-cp-1.C
! 37b54578dbb493ce1238308444c1008c  gcc/testsuite/g++.dg/torture/ppc-ldst-array.C
  ae9c2124c5383beeccdcf4ac2d3bcbd0  gcc/testsuite/g++.dg/torture/pr10148.C
  3fd9794b761154c19e5b03ca7b0727a1  gcc/testsuite/g++.dg/torture/pr102505.C
  674377855743be77a442d6fe11fc86e1  gcc/testsuite/g++.dg/torture/pr103361.C
  7bea79d22c6b5a627f409edb9e3048f3  gcc/testsuite/g++.dg/torture/pr104601.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.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
--- 24483,24497 ----
  4a0b418d1bbb783ee191f2d05263d191  gcc/testsuite/g++.dg/torture/dg-torture.exp
  fab1470d87fc879a4a285622c057b736  gcc/testsuite/g++.dg/torture/init-list1.C
  4054dd6c177ca7971902e3ac60e34695  gcc/testsuite/g++.dg/torture/ipa-cp-1.C
! dd60ebe4e09cf5edd91dd360bcbcba8e  gcc/testsuite/g++.dg/torture/ppc-ldst-array.C
  ae9c2124c5383beeccdcf4ac2d3bcbd0  gcc/testsuite/g++.dg/torture/pr10148.C
  3fd9794b761154c19e5b03ca7b0727a1  gcc/testsuite/g++.dg/torture/pr102505.C
  674377855743be77a442d6fe11fc86e1  gcc/testsuite/g++.dg/torture/pr103361.C
+ e4fcffb0dc348c47faab30b8fa077a54  gcc/testsuite/g++.dg/torture/pr104450.C
  7bea79d22c6b5a627f409edb9e3048f3  gcc/testsuite/g++.dg/torture/pr104601.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.C
+ 42b175a7c38d6a15012b0e11d9e7457d  gcc/testsuite/g++.dg/torture/pr106131.C
+ 695916482bd1d276cc3c727b90232254  gcc/testsuite/g++.dg/torture/pr109724.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
*************** ebc4dd8d7b9c346d612ab748d0d8bda0  gcc/te
*** 25166,25171 ****
--- 25247,25253 ----
  684067ddb47560c655180c085c6980e8  gcc/testsuite/g++.dg/ubsan/object-size-1.C
  80dcb1a17f65b63cbfe2e3509439563c  gcc/testsuite/g++.dg/ubsan/pr101210.C
  ad6c0b4132032f21f64bfdd4836d3313  gcc/testsuite/g++.dg/ubsan/pr105093.C
+ 59f2687e6719ef7d3d19b4de0e99a075  gcc/testsuite/g++.dg/ubsan/pr105729.C
  a654df71119821a4303cc9fe0501191b  gcc/testsuite/g++.dg/ubsan/pr59250.C
  420a6623146bb014dc1310134356d81f  gcc/testsuite/g++.dg/ubsan/pr59306.C
  79755a51c3cbb97ff48bd411272f6b08  gcc/testsuite/g++.dg/ubsan/pr59331.C
*************** ec1873d6dd21d2c7cc0b6215931efed0  gcc/te
*** 25275,25280 ****
--- 25357,25364 ----
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
  276b94843e74f8cadd0fe569be60befb  gcc/testsuite/g++.dg/vect/pr102788.cc
  5cc7bcb3384dda5ac9ed1595171888bf  gcc/testsuite/g++.dg/vect/pr105053.cc
+ 13bc7912af5a3fc0b482bebcd1a313b8  gcc/testsuite/g++.dg/vect/pr105437.cc
+ c378ba928bee729112b705d875e7738f  gcc/testsuite/g++.dg/vect/pr109573.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
*************** b524c7274934e8875fa2c0efd508fc92  gcc/te
*** 25396,25401 ****
--- 25480,25486 ----
  017ae9052a1c7ed7c39be76298ec9639  gcc/testsuite/g++.dg/warn/Warray-bounds-22.C
  d36f126068fa0852b0b29fa28089dbd3  gcc/testsuite/g++.dg/warn/Warray-bounds-23.C
  a0e826a4537965b07b3880791c956f9a  gcc/testsuite/g++.dg/warn/Warray-bounds-24.C
+ ab97df5ad2431719f3fb0cd4fdf111d8  gcc/testsuite/g++.dg/warn/Warray-bounds-27.C
  de22eb15ae2420b77fbb90f3b584c785  gcc/testsuite/g++.dg/warn/Warray-bounds-3.C
  44982cde6de999156b24ac5b0d41b330  gcc/testsuite/g++.dg/warn/Warray-bounds-4.C
  843811e9e3bbecf56a84c608e9fd1073  gcc/testsuite/g++.dg/warn/Warray-bounds-5.C
*************** d41d8cd98f00b204e9800998ecf8427e  gcc/te
*** 25494,25499 ****
--- 25579,25585 ----
  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
+ 90dde3d2eabc1a35285253724486da84  gcc/testsuite/g++.dg/warn/Wignored-qualifiers2.C
  f9b7e3158d7918eb87fb4faeb4bb757d  gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-1.C
  e8496d82a0f58fc4bc26efa7a0a75fd3  gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-2.C
  126f476a9780bcba16781feab90ed2d8  gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-3.C
*************** d183cd43f2c2caf1b71024ba3762ff44  gcc/te
*** 25526,25531 ****
--- 25612,25618 ----
  da3dbc8526151b41f4a741a5d5e51eae  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-4.C
  1632b5578dfbecab9e72d333b0e82675  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-5.C
  3089b7e4a074a4993652acd742390397  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete.C
+ 7729ea0086a47fb6cab7bd9640283fcd  gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C
  9e3053e15f6b0726e17bd19ce7fc3bf8  gcc/testsuite/g++.dg/warn/Wmismatched-tags-2.C
  34c810b16cc722166ffa4de29c41c7e5  gcc/testsuite/g++.dg/warn/Wmismatched-tags-3.C
  52f77f366a578c7b96fa3a4d1ae9a1c9  gcc/testsuite/g++.dg/warn/Wmismatched-tags-4.C
*************** ea532b8d02c84e413fb770ee0fdd34c7  gcc/te
*** 25663,25668 ****
--- 25750,25756 ----
  d0d6c5fe9b201bcd8b68523fbf3f0ce2  gcc/testsuite/g++.dg/warn/Wsequence-point-2.C
  21e8a0380962b41685ed2da030d6e679  gcc/testsuite/g++.dg/warn/Wsequence-point-3.C
  f58385057fb43a4541194480dc43d360  gcc/testsuite/g++.dg/warn/Wsequence-point-4.C
+ f09d07e0fd5c0b9c0c417b86039ac382  gcc/testsuite/g++.dg/warn/Wsequence-point-5.C
  8fb4b9a6c1d26c1e9bde7782d85ab4db  gcc/testsuite/g++.dg/warn/Wsequence-point-pr18050.C
  44fe19ff71727efce22e2f732d2ac553  gcc/testsuite/g++.dg/warn/Wshadow-1.C
  501d6f433bab53d27b046fc419dcb80a  gcc/testsuite/g++.dg/warn/Wshadow-10.C
*************** eee589a3fa31332d5466e5037b1a870e  gcc/te
*** 26023,26028 ****
--- 26111,26117 ----
  c36be50bce1bb66a16eefbbb8eed1e5c  gcc/testsuite/g++.dg/warn/pmf2.C
  ac14aaa010428fa00cd60d6e6bb808c0  gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C
  cc35779b6305bb8c111aecea1f3f7d25  gcc/testsuite/g++.dg/warn/pr101515.C
+ 1ba5741dd0aa023aa23edc39041b235e  gcc/testsuite/g++.dg/warn/pr108365.C
  adea0a023eba0c3c51b6a4894014d35a  gcc/testsuite/g++.dg/warn/pr11159.C
  f257fca4d00c8c67aa2b9d6e43ee906f  gcc/testsuite/g++.dg/warn/pr11492.C
  5fab7f879534ef351718dc73d825b667  gcc/testsuite/g++.dg/warn/pr12242.C
*************** bee40081d8891411f689d510017ed4cc  gcc/te
*** 29379,29384 ****
--- 29468,29479 ----
  3f212b0014307c14669d5a3154904207  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  992600153061bcf9c4f34a765c2c8f7e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C
  ebce94697839c9a076df3569eade77eb  gcc/testsuite/g++.target/aarch64/bfloat_cpp_typecheck.C
+ c975ccbddf4ad62c5fa9795e339ffb9c  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
+ c89aad61597a03b775b192f6f96fa2c5  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
+ 02c6ef60e1093a8729ad30197a17d419  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C
+ 48d4600d981eb71f75243e3f0bd90301  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C
+ b9257e58ced87b65b17170b8e6ad90ed  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align8-O2.C
+ f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h
  c11e5f97e7a5971cc5c5017024f54496  gcc/testsuite/g++.target/aarch64/diag_aka_1.C
  4d5fd415b9746bcd53f093e8282fb37d  gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
  20b857cf626aad749264f74e19d94347  gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
*************** c3abd0fb44ca490064aaa6988814d40c  gcc/te
*** 29586,29591 ****
--- 29681,29687 ----
  015182fced49b5ec2160104b1e1fcfd5  gcc/testsuite/g++.target/i386/mv28.C
  dac0893381524d0f9aaec2e84e62637f  gcc/testsuite/g++.target/i386/mv29.C
  bad9a677892adffe2c45653797aad55c  gcc/testsuite/g++.target/i386/mv3.C
+ fa451153638d7156cf73160e572eb5b1  gcc/testsuite/g++.target/i386/mv31.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
*************** a1f1d426b1b50862a624c700e26cea03  gcc/te
*** 29603,29608 ****
--- 29699,29705 ----
  186a4f48c778c8bfd308076ed5277d77  gcc/testsuite/g++.target/i386/pr102295.C
  6d6c399b53fe1c3078aa132a559fe2ab  gcc/testsuite/g++.target/i386/pr102548.C
  2a03baff08b5b7bdeb8d3633c49032bb  gcc/testsuite/g++.target/i386/pr103012.C
+ dbf2edb74c1c8a97c95dfeccae24697a  gcc/testsuite/g++.target/i386/pr106875.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
*************** b3fdfe2866e1905292894d815f1fa291  gcc/te
*** 29640,29650 ****
--- 29737,29749 ----
  a621b799eff193996043d9d5462e5c27  gcc/testsuite/g++.target/i386/sse4_1-check.h
  821d1f6cc7812ffc5220fc45c484c00f  gcc/testsuite/g++.target/i386/sse4_1-pr54700-1.C
  05e47f652ea4bc7c8df9bae20aaaa2b4  gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C
+ 6d0d9132ecd5c558bd1ec20dcee32d5d  gcc/testsuite/g++.target/i386/vec-tmpl1.C
  436543179ef45c1a7c596bfa70c8ef1d  gcc/testsuite/g++.target/msp430/data-attributes.C
  105ca4af68fcc0dddd766a75cb581d3b  gcc/testsuite/g++.target/msp430/msp430.exp
  5848d6741a53192ff50fe53e91b24df1  gcc/testsuite/g++.target/nios2/hello-pie.C
  b3b6e31577bc973ad6e12e7336213059  gcc/testsuite/g++.target/nios2/nios2.exp
  fa8aa783bcf6fa703e7e93442b148996  gcc/testsuite/g++.target/powerpc/powerpc.exp
+ a873678a5188427c7ceb88e3a408ce84  gcc/testsuite/g++.target/powerpc/pr101322.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
*************** dcaa1bc6d2f365241f63a018eb986a02  gcc/te
*** 30683,30688 ****
--- 30782,30793 ----
  39dff9806811d8b2c82afb7f1bb80e27  gcc/testsuite/gcc.c-torture/compile/pr100576.c
  9c461bedf4ba5d689841294e9c5464f6  gcc/testsuite/gcc.c-torture/compile/pr101562.c
  6d13d2354182ca3dc50d8f4d6d5ed5ab  gcc/testsuite/gcc.c-torture/compile/pr103813.c
+ 9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
+ e12df015117953bcc79bb2bd0912de65  gcc/testsuite/gcc.c-torture/compile/pr106751.c
+ 591ba0d7b38a8f57d62f0b2928e693c4  gcc/testsuite/gcc.c-torture/compile/pr107997.c
+ e1a987965f844354ef93e18f546749c9  gcc/testsuite/gcc.c-torture/compile/pr108237.c
+ 9c6d8cdc69d8f80df1390e153dd3fffc  gcc/testsuite/gcc.c-torture/compile/pr108596.c
+ 531e04fb4e7100e6b28bab7727b5ce6b  gcc/testsuite/gcc.c-torture/compile/pr108688-1.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
*************** e854bc80f793329b6c96d31e3f80a012  gcc/te
*** 32713,32718 ****
--- 32818,32827 ----
  6f562291c92a478431678da451525a90  gcc/testsuite/gcc.c-torture/execute/pr103052.c
  a5b5957138d71ec5e7dbb1056f5b6cf4  gcc/testsuite/gcc.c-torture/execute/pr103255.c
  8f1a8c89149c065ac6e73140793989be  gcc/testsuite/gcc.c-torture/execute/pr104814.c
+ 6b9abb094fcd9b7fa8d30c4251026072  gcc/testsuite/gcc.c-torture/execute/pr106032.c
+ 154a19663c66fcea6a49b6718c685882  gcc/testsuite/gcc.c-torture/execute/pr108498-1.c
+ ee35df6bcc12c95f226b88f0d72b377d  gcc/testsuite/gcc.c-torture/execute/pr108498-2.c
+ 23cbbe0d93f89048f8d1ce1883e61ac2  gcc/testsuite/gcc.c-torture/execute/pr109778.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
*************** bdfc84bbf5e13810fd8696c1956e6639  gcc/te
*** 34384,34389 ****
--- 34493,34501 ----
  3f583dbde80b3efe12b65cefa6758f9f  gcc/testsuite/gcc.dg/analyzer/pr100011.c
  e0e00f8ff65a3533430a5abc47af4315  gcc/testsuite/gcc.dg/analyzer/pr100615.c
  7bab391201f50e8d8fb6965f76c3af60  gcc/testsuite/gcc.dg/analyzer/pr101962.c
+ 7db1771ee016e8eff4a7d43565e82ac4  gcc/testsuite/gcc.dg/analyzer/pr105252.c
+ 7ec8beca5852bf5760ba785d3b75d3e5  gcc/testsuite/gcc.dg/analyzer/pr105365.c
+ 9c9974fbe8ddd03c7a3dd80e2127e20d  gcc/testsuite/gcc.dg/analyzer/pr105366.c
  4d9dda4c090b351e888380f256fdf703  gcc/testsuite/gcc.dg/analyzer/pr61861.c
  3b715088546567d4c2cc30cc26417f11  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-simplified.c
  9198ebbc5c221a40b5e3d9c3b8dfadad  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools.c
*************** b8a049317908d7e0078316ad82437346  gcc/te
*** 34610,34615 ****
--- 34722,34730 ----
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
  62ddd0ab49b2d8a39773ae7568d8aa74  gcc/testsuite/gcc.dg/asan/pr104449.c
  3424b712fda248acb67afe3bbb5dbc46  gcc/testsuite/gcc.dg/asan/pr105214.c
+ 695fe49bfb0b0c5cd4e60ba1a0f27cf6  gcc/testsuite/gcc.dg/asan/pr105396.c
+ 1a25dd9cb28d8417a3ce246587233c84  gcc/testsuite/gcc.dg/asan/pr106190.c
+ c3b533151735c602f99cd3d2cb415cf8  gcc/testsuite/gcc.dg/asan/pr107317.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
*************** e2a79e8b69a6b8bbbeab0ba442c5de78  gcc/te
*** 34781,34787 ****
  675327adce99f8c97f34c5251a8c4280  gcc/testsuite/gcc.dg/attr-alias-5.c
  ef49e9f0f717d3a4d1c827df010599a5  gcc/testsuite/gcc.dg/attr-aligned-2.c
  9a4118e77ef09128c8a4e3bf859f9a05  gcc/testsuite/gcc.dg/attr-aligned-3.c
! d2d3ddd7487e05512cd24d38b3a730ee  gcc/testsuite/gcc.dg/attr-aligned.c
  a9ff03a6ff85f7c46fced4797280e236  gcc/testsuite/gcc.dg/attr-alloc_align-1.c
  daf15f1ec989bc8e1d4831a0d1c70e3e  gcc/testsuite/gcc.dg/attr-alloc_align-2.c
  a40448e5fa79d5f463c4408a645a3bb7  gcc/testsuite/gcc.dg/attr-alloc_align-3.c
--- 34896,34902 ----
  675327adce99f8c97f34c5251a8c4280  gcc/testsuite/gcc.dg/attr-alias-5.c
  ef49e9f0f717d3a4d1c827df010599a5  gcc/testsuite/gcc.dg/attr-aligned-2.c
  9a4118e77ef09128c8a4e3bf859f9a05  gcc/testsuite/gcc.dg/attr-aligned-3.c
! 218ecba16d2d3bab118b45a8fd07376c  gcc/testsuite/gcc.dg/attr-aligned.c
  a9ff03a6ff85f7c46fced4797280e236  gcc/testsuite/gcc.dg/attr-alloc_align-1.c
  daf15f1ec989bc8e1d4831a0d1c70e3e  gcc/testsuite/gcc.dg/attr-alloc_align-2.c
  a40448e5fa79d5f463c4408a645a3bb7  gcc/testsuite/gcc.dg/attr-alloc_align-3.c
*************** dc6685bcab4cd7ed276483fd8d031507  gcc/te
*** 36412,36420 ****
--- 36527,36537 ----
  d9dc93acb42ceaf059f158db6f7ea6d2  gcc/testsuite/gcc.dg/cwsc1.c
  31f68cda2cf50ca6f7c6c4a9cf4545fd  gcc/testsuite/gcc.dg/darwin-20040809-2.c
  fb2cff7f2512c80434d59d702b80e754  gcc/testsuite/gcc.dg/darwin-20040812-1.c
+ e3c60516eb9991f352d93d33fde752d3  gcc/testsuite/gcc.dg/darwin-aligned-globals.c
  3010db4d547a5bce8e8559d5cc724330  gcc/testsuite/gcc.dg/darwin-cfstring-1.c
  e43f7a2f13e87638cc08c97ba7326543  gcc/testsuite/gcc.dg/darwin-cfstring-2.c
  c4152191bf290926b6b747aa4397e015  gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c
+ 4b9fbc9c27c43751e8b7c93a99afaabc  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
*************** ee94511375797117140ca777fd1695b1  gcc/te
*** 36438,36444 ****
  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
! e8f6d0185a2daf606cad42ced94090fb  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
--- 36555,36561 ----
  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
*************** a0ac850750aaa6f8934dd8d86cad48b3  gcc/te
*** 36749,36754 ****
--- 36866,36872 ----
  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
*************** f711435274df71049aa71808a78fc7a5  gcc/te
*** 37525,37530 ****
--- 37643,37649 ----
  d9a1f43ca6ac2a073e22bbbf243f300b  gcc/testsuite/gcc.dg/gomp/parallel-4.c
  0f7ac2e81ae2d400d52c34aa1c0b379a  gcc/testsuite/gcc.dg/gomp/pr100508.c
  410119ba8ee90eb1671f6b992533b966  gcc/testsuite/gcc.dg/gomp/pr104517.c
+ a633f425b4fdde0a7b6f0aa6aa2f2754  gcc/testsuite/gcc.dg/gomp/pr108435.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
*************** b9aafcde73d659e8a8f12aec94a7cb09  gcc/te
*** 38022,38028 ****
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  6572d7b6a1c070b8e6c4fe22f6133e02  gcc/testsuite/gcc.dg/guality/example.c
  c2dbe29811bd94d5d243fab419e7cc46  gcc/testsuite/gcc.dg/guality/guality.c
! 6a55e291b85166259225a8d7acf8f3c5  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
  1acafa5b9d5aeba7e4788b85be32dc52  gcc/testsuite/gcc.dg/guality/inline-params.c
--- 38141,38147 ----
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  6572d7b6a1c070b8e6c4fe22f6133e02  gcc/testsuite/gcc.dg/guality/example.c
  c2dbe29811bd94d5d243fab419e7cc46  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
  1acafa5b9d5aeba7e4788b85be32dc52  gcc/testsuite/gcc.dg/guality/inline-params.c
*************** d183c6f1cbbc46bd9c8e5df2bbcd8795  gcc/te
*** 38399,38404 ****
--- 38518,38524 ----
  303b00685d04afefddddce7106c02b2d  gcc/testsuite/gcc.dg/ipa/pr102714.c
  07a283c50d826e50a31e66247a684841  gcc/testsuite/gcc.dg/ipa/pr103083-1.c
  e738f44ee66719b5f944fb952895f40e  gcc/testsuite/gcc.dg/ipa/pr103083-2.c
+ d6d366e61e9493a8fc9ad14a2e6f9ba4  gcc/testsuite/gcc.dg/ipa/pr105739.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
*************** e4aec3391bc7aed1a5d886edeb277407  gcc/te
*** 38737,38742 ****
--- 38857,38864 ----
  02d829cec4d5ff9723124841f79edca9  gcc/testsuite/gcc.dg/lto/pr101868_3.c
  54599eb36fac6d6bc3b48bfa2a679738  gcc/testsuite/gcc.dg/lto/pr101949_0.c
  eb5d2fc7242b611f019d43c7d00a7531  gcc/testsuite/gcc.dg/lto/pr101949_1.c
+ ef0b90ba09e6e56d1d655afdcb63cdd4  gcc/testsuite/gcc.dg/lto/pr109778_0.c
+ c3ad752a64c11978f9f2cce0520bf58c  gcc/testsuite/gcc.dg/lto/pr109778_1.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
*************** a4874d44c0ba05d6340ed06bc5958e53  gcc/te
*** 39403,39408 ****
--- 39525,39531 ----
  8226e377d45ef0ffeb7badfb04740ab9  gcc/testsuite/gcc.dg/pr10392-1.c
  274592903ac1b8bb26cb04aaeb7bceb4  gcc/testsuite/gcc.dg/pr104263.c
  6cdf5f889cfeab1185ff2396685e6d88  gcc/testsuite/gcc.dg/pr104288.c
+ 160540a96840a88fee73e5380198b7d0  gcc/testsuite/gcc.dg/pr104464.c
  c055fb27d1a723e98ef6bd9290551487  gcc/testsuite/gcc.dg/pr104511.c
  1198a55fbf04ab73754710d047131b2b  gcc/testsuite/gcc.dg/pr104544.c
  c04efe12f2d4a15f1ea2cae1889ba4cf  gcc/testsuite/gcc.dg/pr104675-1.c
*************** d8ac6e8cccf7bcb1070140ae44ef117a  gcc/te
*** 39412,39420 ****
--- 39535,39563 ----
  2968ba86ec9be073192c7975ec531fb3  gcc/testsuite/gcc.dg/pr104786.c
  8c0ed1baab74c7b05d89e60fb2786609  gcc/testsuite/gcc.dg/pr104910.c
  f8d1a8342ac7db3ad1336ab098edd372  gcc/testsuite/gcc.dg/pr105094.c
+ 194a2dad6f902fdbaa5355dc3fa0ebe6  gcc/testsuite/gcc.dg/pr105140.c
  299f6a400b7fb5db65f2901e5285cc2c  gcc/testsuite/gcc.dg/pr105165.c
+ 25a6db2efb48684f6cb2974051effc2a  gcc/testsuite/gcc.dg/pr105173.c
  b01f707de15442a63cdb3e32148021fd  gcc/testsuite/gcc.dg/pr105211.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
+ df5c854ae6b61ad7980dc609c12732b5  gcc/testsuite/gcc.dg/pr105333.c
+ bd694253207b0e4d0a25d5c16b288b5c  gcc/testsuite/gcc.dg/pr105528.c
+ de5d81445ad859074ca4d853ab220c74  gcc/testsuite/gcc.dg/pr106027.c
+ 289edb9f71d96816c053cd6cf90ff744  gcc/testsuite/gcc.dg/pr106189.c
+ c475e08b8000c7ada2ebc07c02d67b0d  gcc/testsuite/gcc.dg/pr106719.c
+ d39b4203470156b99b330266683a9790  gcc/testsuite/gcc.dg/pr107107.c
+ 8dd35121cb6e8e3f018e6f4551ce80b1  gcc/testsuite/gcc.dg/pr107127.c
+ d64d53420ac059d0a4813bb6b0e625bd  gcc/testsuite/gcc.dg/pr107554.c
+ 4b0c665c9ac4f4701760e4205e109f61  gcc/testsuite/gcc.dg/pr108095.c
+ c056feceecb1e4c44f6bf01a21cb6e9d  gcc/testsuite/gcc.dg/pr108264.c
+ e0baf0198b26b94a0e92182918c52449  gcc/testsuite/gcc.dg/pr108573.c
+ 58629ccc236a40b8dec9ecfe5aa35f2a  gcc/testsuite/gcc.dg/pr108625.c
+ 21a62b0e858621e46700af10fbe121e4  gcc/testsuite/gcc.dg/pr108692.c
+ 8c5ddd68de1ed874eb52f91b7136909e  gcc/testsuite/gcc.dg/pr109410.c
  860f163dcd0b252ea3f85323bc959a7d  gcc/testsuite/gcc.dg/pr11459-1.c
  e164a736918661d669864e3645da290c  gcc/testsuite/gcc.dg/pr11492.c
  3b83403729a3686d25552352bf0c4577  gcc/testsuite/gcc.dg/pr11864-1.c
*************** b2947b2840760e6f6cb66c30dda3f057  gcc/te
*** 40519,40525 ****
  f28c9c90b3d30633266db4aef0f121a8  gcc/testsuite/gcc.dg/pr64454.c
  d2253df541cef89436be2e59701319fc  gcc/testsuite/gcc.dg/pr64465.c
  c6f1921b2165f45723cda892443a24c3  gcc/testsuite/gcc.dg/pr64511.c
! fbcba818644b54491e9e8f3b9c6cd09b  gcc/testsuite/gcc.dg/pr64536.c
  d509539e43ac4a3bf9c9b01c0503ebdf  gcc/testsuite/gcc.dg/pr64563.c
  a797044c31f28103c61f4bcbbfbf1066  gcc/testsuite/gcc.dg/pr64637.c
  84213f413cfa8fc453fa64e68f295dd4  gcc/testsuite/gcc.dg/pr64663.c
--- 40662,40668 ----
  f28c9c90b3d30633266db4aef0f121a8  gcc/testsuite/gcc.dg/pr64454.c
  d2253df541cef89436be2e59701319fc  gcc/testsuite/gcc.dg/pr64465.c
  c6f1921b2165f45723cda892443a24c3  gcc/testsuite/gcc.dg/pr64511.c
! 9173e74c9221989537bb7b9fa47ef9e9  gcc/testsuite/gcc.dg/pr64536.c
  d509539e43ac4a3bf9c9b01c0503ebdf  gcc/testsuite/gcc.dg/pr64563.c
  a797044c31f28103c61f4bcbbfbf1066  gcc/testsuite/gcc.dg/pr64637.c
  84213f413cfa8fc453fa64e68f295dd4  gcc/testsuite/gcc.dg/pr64663.c
*************** ff83f1142d27828d619d4abf6063f64d  gcc/te
*** 41410,41416 ****
  d96f1f1b79bd3d34227f08f817f8c40a  gcc/testsuite/gcc.dg/pragma-diag-8.c
  24a9270f9a6635bb396c6d700a9d9d2c  gcc/testsuite/gcc.dg/pragma-init-fini-2.c
  8ea7784f3024c6da48a3ea846fb015cf  gcc/testsuite/gcc.dg/pragma-init-fini.c
! 811b358bae37344e12a6159506ad1c6e  gcc/testsuite/gcc.dg/pragma-message.c
  5ba7295e8d296fad3e6dbec62f078a08  gcc/testsuite/gcc.dg/pragma-ms_struct.c
  70c646980b7f8688082508ee2b320463  gcc/testsuite/gcc.dg/pragma-pack-2.c
  91e7f7dc0a6185be839ea6c1b0927ab2  gcc/testsuite/gcc.dg/pragma-pack-3.c
--- 41553,41559 ----
  d96f1f1b79bd3d34227f08f817f8c40a  gcc/testsuite/gcc.dg/pragma-diag-8.c
  24a9270f9a6635bb396c6d700a9d9d2c  gcc/testsuite/gcc.dg/pragma-init-fini-2.c
  8ea7784f3024c6da48a3ea846fb015cf  gcc/testsuite/gcc.dg/pragma-init-fini.c
! 5f05939ddb5a26eeb821ec9bdfd424e7  gcc/testsuite/gcc.dg/pragma-message.c
  5ba7295e8d296fad3e6dbec62f078a08  gcc/testsuite/gcc.dg/pragma-ms_struct.c
  70c646980b7f8688082508ee2b320463  gcc/testsuite/gcc.dg/pragma-pack-2.c
  91e7f7dc0a6185be839ea6c1b0927ab2  gcc/testsuite/gcc.dg/pragma-pack-3.c
*************** a22c0db258dd69508b2ceb6070cac172  gcc/te
*** 41704,41709 ****
--- 41847,41853 ----
  69fbd818614a3c1f7529e6e1957b7a16  gcc/testsuite/gcc.dg/sso-11.c
  e5a2d2cf2501ec1e111692875eb21b34  gcc/testsuite/gcc.dg/sso-14.c
  ae63ef59d4955da47b8b32d066fbadb0  gcc/testsuite/gcc.dg/sso-16.c
+ 48e05b713f14b7737a5213a884d6b0ed  gcc/testsuite/gcc.dg/sso-17.c
  1596e67c3fd5ccc4a9264cba4aa398c4  gcc/testsuite/gcc.dg/sso-2.c
  4a6f7bb1645423ba5d23a61f98233d1d  gcc/testsuite/gcc.dg/sso-3.c
  edaa32662275ea6100c4a0657754194a  gcc/testsuite/gcc.dg/sso-4.c
*************** c7fa8c61aab4091ae9cc7d1dac0e5731  gcc/te
*** 42408,42414 ****
--- 42552,42569 ----
  733762e1d02b2686fe659b417b8dcfb8  gcc/testsuite/gcc.dg/torture/pr103489.c
  66fcee07a56c19209cb4aaa0d4aaaded  gcc/testsuite/gcc.dg/torture/pr103596.c
  187b7ab38abc20e5b403f44030455c53  gcc/testsuite/gcc.dg/torture/pr104402.c
+ 122d618652aeac29059cdbb22234c7b4  gcc/testsuite/gcc.dg/torture/pr105148.c
+ ca1b8736d16b2cdaabaec84f87fa4d15  gcc/testsuite/gcc.dg/torture/pr105163.c
  a88279579fa471a64faeb41da64a9eb4  gcc/testsuite/gcc.dg/torture/pr105198.c
+ ff84a95c5f69f1f2863800f55eb74095  gcc/testsuite/gcc.dg/torture/pr105484.c
+ cfa64624c60a354aabfb89f439ddf206  gcc/testsuite/gcc.dg/torture/pr105598.c
+ b14f04ff913718764d3bdef465cc8316  gcc/testsuite/gcc.dg/torture/pr106112.c
+ dcce8968ffefc4127aace33be872b0b1  gcc/testsuite/gcc.dg/torture/pr106513.c
+ a18e1aed520ae0e9f74f76068f8a2c9f  gcc/testsuite/gcc.dg/torture/pr106809.c
+ e1b483b65be081b4b298ed61ad7e3eed  gcc/testsuite/gcc.dg/torture/pr106892.c
+ 52e50fb88c76596d45c9fa47a5313317  gcc/testsuite/gcc.dg/torture/pr107451.c
+ 5badd9cb552b126e1568f773f867f8b3  gcc/testsuite/gcc.dg/torture/pr108076.c
+ 72f322a0e5d8096eb7fa42e2d8fabe7d  gcc/testsuite/gcc.dg/torture/pr109585.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
*************** b142c2ddae2c16c5c72a74e4640c1177  gcc/te
*** 43771,43776 ****
--- 43926,43932 ----
  44ea79b170e8361106ff0a9791223f68  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-10.c
  64291369db8a3b1bf41782ff1eb3de9b  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-11.c
  2592f2d893131e439632395ceaa9705b  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-12.c
+ 9f7d76e1b617499178fafd478cc82d21  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c
  e79cd62bd574d773375b923ec037485f  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-2.c
  33591a0fcd9e8448e38471ecb4875798  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-3.c
  9a8efc85cc4761046085ad119ebeab81  gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-4.c
*************** a894721a77fea7c94bacb921fa950e92  gcc/te
*** 44321,44326 ****
--- 44477,44484 ----
  5865561cafce8352e1b97ad299ec6398  gcc/testsuite/gcc.dg/tree-ssa/popcount5ll.c
  54f39b48fa6b3cbd7593e9bc52d33a21  gcc/testsuite/gcc.dg/tree-ssa/pr100278.c
  d5dace55f72aa8ccb51636dff79f5ccc  gcc/testsuite/gcc.dg/tree-ssa/pr101824.c
+ 660324e032912162df8b4570de2731f5  gcc/testsuite/gcc.dg/tree-ssa/pr105860.c
+ 0b2312ef2558ac9fd9aad91d8afc7009  gcc/testsuite/gcc.dg/tree-ssa/pr107323.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
*************** c456ebf49f3666d48ef00a6ef3c341c7  gcc/te
*** 45287,45292 ****
--- 45445,45451 ----
  6e2983c6ef63d3ea5a3fe01596a9b0c0  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-13.c
  7d0707c4a3f43204bc5bb9f08a490d52  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-14.c
  e8ad1077cbbf867b677d6dbe00524406  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c
+ 99cacb357948a00b34aa1d255c66558b  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c
  c0ab69fe1a4b916817bbafe5e5048c34  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
  d00d2a078458d4fc876af7d2a29c241a  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-5.c
  769aa5eb478537be389d55c410c46887  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-6.c
*************** be3ea69b52e071fd375d56784f1b9d68  gcc/te
*** 45338,45343 ****
--- 45497,45503 ----
  f237fb84d8c929de79482cd9290e2e8a  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-15.c
  9e4571c11c00c3659ac6fa7b355ad2a1  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-16.c
  3c6a12559e34ac818f0f924443d7e92d  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-17.c
+ f360773251cbe7efb83da443aa75b310  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c
  4bbb26d9f9200b0547c48796adb2e91a  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c
  9e954e0c4211f2af3854b3c3f34d48df  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c
  1b3e5b9953e3b8856581281f20abc008  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c
*************** acf0af3723cb1d2f1a5fe0dbbb7d9fa9  gcc/te
*** 45586,45591 ****
--- 45746,45752 ----
  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
+ cefdc2a9eb13f2095c81dff3665fcbe2  gcc/testsuite/gcc.dg/ubsan/pr107183.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
*************** e7e998e227aa0d1f54e5abb40415b355  gcc/te
*** 46007,46029 ****
  b125fd3af935d5cc8ec4d8330aefa9d8  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
  f625432e6319d231e8b25325f3b636c2  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
  04c2b7329d6c8e7bf861f74e0c5255b4  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
! 5c35a2bc9c358285f18287843b89c582  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
  c8c88ecb3145b5ae379a4eaf565e7867  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
! efd6bea5941d7cfcb94db14adf7ae6bb  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
! 1e91a7d1fce917497566671d76c7cbe0  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
! ddbb4ecae39d3ca6c8aac4a137b1703b  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
! 70ea9a5f6beb0a0593de856e5c5fca71  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
! 2631aacfc2a544fb0b74a09a2593afd9  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
! d8462c356de5e1452d1517be6b6f7f4e  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
  7c5f3f1180d421a5ac299c84526ea6d2  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
  323cabdbf2c12f8d5d69a4250f10d17e  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
! 083b6f004442a2284ec75fb6f17ebda3  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
! 9c918cf0b4d739de71c8dea14ea0025c  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
! 0c910864a9648681bf5c27a5a5043d0f  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! 8e9cc748b0590d6e56b7dc7fd05aa8d5  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
! 7c668ea9d5a3187193b0519e54ae32e9  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
! ae013061562cfc8fe6a899a1496e7a72  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
! e004eb218c0be56a2e2702d215c4211f  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
  4e1876202a0dc92b35499bdd138583d4  gcc/testsuite/gcc.dg/vect/complex/pr102819-1.c
  ccf39ed31245c0fb65f9c01c6e5d3b84  gcc/testsuite/gcc.dg/vect/complex/pr102819-2.c
  225c29797a1db0d4d58b8bd12cfee997  gcc/testsuite/gcc.dg/vect/complex/pr102819-3.c
--- 46168,46190 ----
  b125fd3af935d5cc8ec4d8330aefa9d8  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
  f625432e6319d231e8b25325f3b636c2  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
  04c2b7329d6c8e7bf861f74e0c5255b4  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
! 46e3d45e350f090d6980a1e0431e58c1  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
  c8c88ecb3145b5ae379a4eaf565e7867  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
! 6701638eb7c412a219993a3e49351040  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
! dc9ce49dcc6631e2eda8610ab7dcb050  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
! ea6ecb8eb1c4807fafaeef993ad9104f  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
! 17681470257f21a1741d290027ee6320  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
! 02549823c408c283a8ff6eeb91e102ae  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
! 13f53490d24bc0b038b9cdc4de9616b5  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
  7c5f3f1180d421a5ac299c84526ea6d2  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c
  323cabdbf2c12f8d5d69a4250f10d17e  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c
! 9c372bfd4e5a508d067815909d5f9d55  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
! 25abb662796a29992142f21fc0d3d9f3  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
! 16ddd7abbca38805bedb38360d0f1037  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! 98fa4ebd560d04334f6892eefea39dbb  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
! 203e39f86592c0300fdd78e06d9dee68  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
! f00ea04f68192109f0a5aaa6a35ce073  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
! 0943cd3b1d1f46db937e77679a2b9a76  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
  4e1876202a0dc92b35499bdd138583d4  gcc/testsuite/gcc.dg/vect/complex/pr102819-1.c
  ccf39ed31245c0fb65f9c01c6e5d3b84  gcc/testsuite/gcc.dg/vect/complex/pr102819-2.c
  225c29797a1db0d4d58b8bd12cfee997  gcc/testsuite/gcc.dg/vect/complex/pr102819-3.c
*************** bd8562e8bd66700ee1114f70cbcff47e  gcc/te
*** 46055,46061 ****
  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
! 22ccbb5f325080c594838c3093ae8c53  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
--- 46216,46222 ----
  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
*************** ac90ad8f4383592387ff86cb8dbd78ce  gcc/te
*** 46204,46212 ****
--- 46365,46380 ----
  bd6686ddac4dec394f0f0af136fe8012  gcc/testsuite/gcc.dg/vect/pr101445.c
  ae8b9fa809bc0868516d373dbc070b85  gcc/testsuite/gcc.dg/vect/pr101505.c
  6893aed7299a121a69eb5b9deac04ae4  gcc/testsuite/gcc.dg/vect/pr102046.c
+ a0e8cb9f9f5598691ceabc4164c5e796  gcc/testsuite/gcc.dg/vect/pr103116-1.c
+ cfaa4c4a67ed4d2706caf5ad80e52e9a  gcc/testsuite/gcc.dg/vect/pr103116-2.c
  b02b62e31de9fe3f178db0e94281db9e  gcc/testsuite/gcc.dg/vect/pr103544.c
  5b80820316db69308b9fa48a7a5d642b  gcc/testsuite/gcc.dg/vect/pr103864.c
  1e8e221275bfa8e8dc66a37d14f07f32  gcc/testsuite/gcc.dg/vect/pr104782.c
+ f1c2ca8659ed33069fed7de6e429bc7e  gcc/testsuite/gcc.dg/vect/pr107212-1.c
+ 4d42750e9517b302a0544999b3f7fcc1  gcc/testsuite/gcc.dg/vect/pr107212-2.c
+ bdc9d900f60b3777cfec5cd1a41102d7  gcc/testsuite/gcc.dg/vect/pr108950.c
+ bce13fdf2ea61a0bc1886470eed1bf60  gcc/testsuite/gcc.dg/vect/pr109473.c
+ aa0a603e6aee5b8a3fd3463354c9bf10  gcc/testsuite/gcc.dg/vect/pr109502.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
*************** ab5379404640e60b68283cea3a87ea22  gcc/te
*** 47305,47311 ****
  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
! 7d2c6eaf321cb302aa2a3c256dd11514  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
--- 47473,47479 ----
  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
! 17ec7fad2ee4229f9618a961b342c03b  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
*************** bf28a9ad5feaa7564970d3116eaae230  gcc/te
*** 47778,47783 ****
--- 47946,47952 ----
  acaaa7b0871f73bf93a15b8ccdd87575  gcc/testsuite/gcc.target/aarch64/acle/crc32d.c
  17ec255ef73cef3bbc3a0c8ca9ea408d  gcc/testsuite/gcc.target/aarch64/acle/crc32h.c
  fa7ed3baf58293efac2270a829b36fbf  gcc/testsuite/gcc.target/aarch64/acle/crc32w.c
+ 6717fca79661e30514c554d809b9ded2  gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c
  56cadf41ea040c38f913b6c3e6475be3  gcc/testsuite/gcc.target/aarch64/acle/jcvt_1.c
  a7c4014d53740d897076d06edcac5aaa  gcc/testsuite/gcc.target/aarch64/acle/jcvt_2.c
  ff3a09d9afde293ac1598cb7530ead9d  gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c
*************** a1f177ffd0862f4b4d2cf8089b641e17  gcc/te
*** 48360,48365 ****
--- 48529,48535 ----
  904fcc9a4fae07870b9cb9e077d40e2a  gcc/testsuite/gcc.target/aarch64/aes_1.c
  f579ec2c6b2aaae4154654375a568cb8  gcc/testsuite/gcc.target/aarch64/aes_2.c
  6fc5ea113b9f1a18e380dabb486b1f93  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
*************** fdee6dc65f1aea1fb6a62ac64d03d92d  gcc/te
*** 48436,48441 ****
--- 48606,48617 ----
  946b6917c33aba8084d5a129bb3f3e87  gcc/testsuite/gcc.target/aarch64/bics_3.c
  7b6b35a52fbd180696cad88dbba07bee  gcc/testsuite/gcc.target/aarch64/bics_4.c
  dbf9d0b9347271827283e2f005a43518  gcc/testsuite/gcc.target/aarch64/bics_5.c
+ b9adf5710f6e4412e311d9842a7e6a74  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c
+ 1ea2338a337ffffcbf0070527e645884  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c
+ 274d78b2b764b056cccf893916f4d307  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c
+ 896bab66fe63bc480061c68eaf5242f6  gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
+ e6fb09982b6bafd6c889c22cb3ec1cb9  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
  d7e52c3c883fc5ffda3d68cfbc199f9c  gcc/testsuite/gcc.target/aarch64/branch-protection-attr.c
  c45ad55864031fa75ffa4f831160438a  gcc/testsuite/gcc.target/aarch64/branch-protection-option-2.c
*************** c84ec68e16463ed98fee3cd8cb4e230f  gcc/te
*** 48500,48505 ****
--- 48676,48682 ----
  f88dcec7a52a0d115da213f16170f154  gcc/testsuite/gcc.target/aarch64/cpunative/info_13
  0e1794c5980d78e11a9aff64bd2dc530  gcc/testsuite/gcc.target/aarch64/cpunative/info_14
  a83f195cec2faf2fbf29ad0e4f2fa03e  gcc/testsuite/gcc.target/aarch64/cpunative/info_15
+ 77b9d125c413bdfe2a579cf2a959f461  gcc/testsuite/gcc.target/aarch64/cpunative/info_18
  4b5005c4193fa80868408bf4492b4e3b  gcc/testsuite/gcc.target/aarch64/cpunative/info_2
  4c4387d4071cf10c793b4efe11f43439  gcc/testsuite/gcc.target/aarch64/cpunative/info_3
  d8a7caffcc99feff5312001aed51cd38  gcc/testsuite/gcc.target/aarch64/cpunative/info_4
*************** d381cd3e88e2680adaf2d96ab40c7f36  gcc/te
*** 48516,48521 ****
--- 48693,48699 ----
  c033638d0946e9ee53dca3d93087a1e9  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
+ 7f6f8f8e6241c818ea037d533dc71d1a  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c
  ae5358d52499de77a7a1beac3683c709  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_2.c
  5932d955ed9dc11faefb9f331763ff2c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_3.c
  cfd988497c936bc048f9b952dc82ebac  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c
*************** c634a3e3729a1cf014159113aaaa5923  gcc/te
*** 48760,48765 ****
--- 48938,48947 ----
  1c78040ee8384426d5334c9b28ab2f6e  gcc/testsuite/gcc.target/aarch64/pr100056.c
  c3d44b74cbd361a863813180478ad6c8  gcc/testsuite/gcc.target/aarch64/pr100075.c
  d476917b01e1a6ee9c389abac401fcf6  gcc/testsuite/gcc.target/aarch64/pr103523.c
+ d31b19093bf5b52a4ab71663355a6864  gcc/testsuite/gcc.target/aarch64/pr104921-1.c
+ de49e9125d6237709299bcc3a1dfd315  gcc/testsuite/gcc.target/aarch64/pr104921-2.c
+ 80bfa364bfe20370e6bd035b978c10f8  gcc/testsuite/gcc.target/aarch64/pr104921.x
+ a7d8042acc2272e21686f52da76e42f1  gcc/testsuite/gcc.target/aarch64/pr108589.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
*************** d43406280c991dedd7072642fee590a0  gcc/te
*** 48822,48829 ****
  cb9ff251051d24e9eaa0963c842a29d1  gcc/testsuite/gcc.target/aarch64/pr91710.c
  fc91452912566f4106b747b6e9c396e5  gcc/testsuite/gcc.target/aarch64/pr91927.c
  9562a96a900add1659850fcc3d3901cf  gcc/testsuite/gcc.target/aarch64/pr92424-1.c
! fa96ea78d21fc13d022162f4fb6d0e23  gcc/testsuite/gcc.target/aarch64/pr92424-2.c
! cc14caf0fac017855cfb26da3f9bd70f  gcc/testsuite/gcc.target/aarch64/pr92424-3.c
  2c2213c9e95d84ffb54b1bf1c59ba1a4  gcc/testsuite/gcc.target/aarch64/pr92526.c
  4a3651caf4f05ecfa237c1017ec5b341  gcc/testsuite/gcc.target/aarch64/pr93119.c
  040dfb8e58ad051e80d35c470c8ab52a  gcc/testsuite/gcc.target/aarch64/pr93221.c
--- 49004,49011 ----
  cb9ff251051d24e9eaa0963c842a29d1  gcc/testsuite/gcc.target/aarch64/pr91710.c
  fc91452912566f4106b747b6e9c396e5  gcc/testsuite/gcc.target/aarch64/pr91927.c
  9562a96a900add1659850fcc3d3901cf  gcc/testsuite/gcc.target/aarch64/pr92424-1.c
! 089246fb9d610dba2682e4db293a1081  gcc/testsuite/gcc.target/aarch64/pr92424-2.c
! 82d090f026d0bcb989e44bc06fb71ba3  gcc/testsuite/gcc.target/aarch64/pr92424-3.c
  2c2213c9e95d84ffb54b1bf1c59ba1a4  gcc/testsuite/gcc.target/aarch64/pr92526.c
  4a3651caf4f05ecfa237c1017ec5b341  gcc/testsuite/gcc.target/aarch64/pr93119.c
  040dfb8e58ad051e80d35c470c8ab52a  gcc/testsuite/gcc.target/aarch64/pr93221.c
*************** c5ac198fcc683ea88b36ff21fc73e2c5  gcc/te
*** 48851,48856 ****
--- 49033,49039 ----
  fd312dc569ccf5ce510dd16b64f1203b  gcc/testsuite/gcc.target/aarch64/pr97701.c
  98e2f872193b247fc94cc5d6f30aaddf  gcc/testsuite/gcc.target/aarch64/pr98603.c
  d36ed016a2b11c922ff41b3a63eb03d8  gcc/testsuite/gcc.target/aarch64/pr98772.c
+ d99763de0d53b85cfa8475cec6740085  gcc/testsuite/gcc.target/aarch64/pr98776.c
  18603818c100529306da07a556c00769  gcc/testsuite/gcc.target/aarch64/pr99381.c
  1f2ce8a6e6be36322ada7a2a222926ac  gcc/testsuite/gcc.target/aarch64/pr99767.c
  49e4573c158d59f2a37800471ca3bc65  gcc/testsuite/gcc.target/aarch64/pr99808.c
*************** c117eaeade3674a6a21013315de55b26  gcc/te
*** 48858,48864 ****
  c45bc47433163208f0aec414ada73705  gcc/testsuite/gcc.target/aarch64/pr99873_2.c
  18c52a2faa4e83538abeef107e3b4d8a  gcc/testsuite/gcc.target/aarch64/pr99873_3.c
  5e9a238ae88bfc957497e635ed104144  gcc/testsuite/gcc.target/aarch64/pr99988.c
! d3e6defa85b5cd4bb506306377e59a53  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  42c7828cb4d5253e1a3df46c971f945a  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  1802b716a6dff570eaf8df2688efe1dd  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
--- 49041,49047 ----
  c45bc47433163208f0aec414ada73705  gcc/testsuite/gcc.target/aarch64/pr99873_2.c
  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
  42c7828cb4d5253e1a3df46c971f945a  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  1802b716a6dff570eaf8df2688efe1dd  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
*************** cffa63a742186323feab22505915a6e9  gcc/te
*** 51203,51213 ****
  e566a5e929cb642a78066bf00691e1bc  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
! 5ae6341c57153ec20112c098c47d4a4f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c
  4eea3d7baf0e2958356c0c33600e72e4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_2.c
! 47cd2b091e30ac40fddd5d5428615f8d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c
  727e5a19783b8b46c75ba94a5a33f1da  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_2.c
! 88cae91706dea5ab1150bf4ba8df41d5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c
  3e4d3053ca7b442dbfeb54e8df14d433  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpa_1.c
  41715679da86b4845c2da3233725d0f2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpb_1.c
  4e7a3ff45a72f35e2476f4e660886eb0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_1.c
--- 51386,51397 ----
  e566a5e929cb642a78066bf00691e1bc  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
  4eea3d7baf0e2958356c0c33600e72e4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_2.c
! f81d80fd6fc545f0e3c86a51a1ad1aa8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c
  727e5a19783b8b46c75ba94a5a33f1da  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_2.c
! f05f061869c6f335b6395f5250ec83ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c
! 649722b7feeb54ead3f4ff347e8ef4db  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c
  3e4d3053ca7b442dbfeb54e8df14d433  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpa_1.c
  41715679da86b4845c2da3233725d0f2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpb_1.c
  4e7a3ff45a72f35e2476f4e660886eb0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_1.c
*************** f247489d5a83c25a52bba3f69ccf6256  gcc/te
*** 51958,51963 ****
--- 52142,52148 ----
  ab7e96ffad0e120db206c2fe1d3866a9  gcc/testsuite/gcc.target/aarch64/sve/pr104474-1.c
  7730534c4e1ec8c38e74c96c2505af9f  gcc/testsuite/gcc.target/aarch64/sve/pr104474-2.c
  e30fd5dcda5a72ba3b2d66a5485b282a  gcc/testsuite/gcc.target/aarch64/sve/pr104474-3.c
+ fca208aba0269c8218d4736a10ac6a83  gcc/testsuite/gcc.target/aarch64/sve/pr109176.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
*************** b360e0ac1da1500645df64fce4fab7dd  gcc/te
*** 53167,53176 ****
--- 53352,53364 ----
  d807c78d9b80a1f49bc50cb0cae86706  gcc/testsuite/gcc.target/aarch64/sve2/whilewr_2.c
  c1ccdcf1821a2a9f689561bfc74f48dc  gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
  b4127affc5c8c177d402c917c2b81097  gcc/testsuite/gcc.target/aarch64/symbol-range.c
+ d707fbbaf0d37436be7ea3b6ac3b81d7  gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c
  c210c6b6344e5119de7869315aefba48  gcc/testsuite/gcc.target/aarch64/sync-comp-swap.c
  322a3d828a7a9ead661b7d17a7aeceea  gcc/testsuite/gcc.target/aarch64/sync-comp-swap.x
+ 2687cc48cb064e67e3949a43386961bf  gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c
  002f159c83e5462862ec82620c2630ae  gcc/testsuite/gcc.target/aarch64/sync-op-acquire.c
  1e1c36a3eb9a0bd45a0e250e1d2b1ce5  gcc/testsuite/gcc.target/aarch64/sync-op-acquire.x
+ 14c3e5537db0cba1ee1aa29279f1d44a  gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c
  34216778cb9e5a4611eb55ae4ccfaf4b  gcc/testsuite/gcc.target/aarch64/sync-op-full.c
  17abd80a4e460d31237f3ece87c85558  gcc/testsuite/gcc.target/aarch64/sync-op-full.x
  f87f898044cd78f2ebf530577d3cf7bb  gcc/testsuite/gcc.target/aarch64/sync-op-release.c
*************** c850677a06284224d4f4c40ffd5e4d78  gcc/te
*** 53187,53194 ****
  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
! bda8eed00f321b4cfe8fffd7a2a549d1  gcc/testsuite/gcc.target/aarch64/target_attr_20.c
! 9ea0cd1c37488478ebbda0afaf90eb5a  gcc/testsuite/gcc.target/aarch64/target_attr_21.c
  a4a6eccdba213faef4196f8ebe4152a3  gcc/testsuite/gcc.target/aarch64/target_attr_3.c
  c17cb964233b0aa7dd1ec0085d5a8fe2  gcc/testsuite/gcc.target/aarch64/target_attr_4.c
  77ed3e7c559e6c7bb67620fa37d32e76  gcc/testsuite/gcc.target/aarch64/target_attr_5.c
--- 53375,53382 ----
  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
! 8b44261d4e827e2d0e48c50c109f35b5  gcc/testsuite/gcc.target/aarch64/target_attr_20.c
! 6fc49b0d1c0f511ac3f21e291184cb00  gcc/testsuite/gcc.target/aarch64/target_attr_21.c
  a4a6eccdba213faef4196f8ebe4152a3  gcc/testsuite/gcc.target/aarch64/target_attr_3.c
  c17cb964233b0aa7dd1ec0085d5a8fe2  gcc/testsuite/gcc.target/aarch64/target_attr_4.c
  77ed3e7c559e6c7bb67620fa37d32e76  gcc/testsuite/gcc.target/aarch64/target_attr_5.c
*************** a9f54382c872d8300abd0751aaf2baa7  gcc/te
*** 53438,53443 ****
--- 53626,53632 ----
  582df4fc7c8b439347d0ffcf02953017  gcc/testsuite/gcc.target/alpha/cix-2.c
  c4eec60b3306ebc857f91dd9f92ff8fe  gcc/testsuite/gcc.target/alpha/max-1.c
  868d557785ef579297eaa8d96b97b3fc  gcc/testsuite/gcc.target/alpha/max-2.c
+ cda436a64900819743f9c85f6ef0caae  gcc/testsuite/gcc.target/alpha/pr105209.c
  dc5943b1dd495250e6dc8076b32c902c  gcc/testsuite/gcc.target/alpha/pr19518.c
  f8467590e67b2b5f4718d571a9ba60c0  gcc/testsuite/gcc.target/alpha/pr22093.c
  b36471f8edbf2a11ce23359823ecc10b  gcc/testsuite/gcc.target/alpha/pr24178.c
*************** c41d03fd2be1eae911f39252caa40c73  gcc/te
*** 55329,55334 ****
--- 55518,55524 ----
  58cb73d621b713ebe5634431509c7854  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrwq_z_f32.c
  fc232654d74a8f153c430f830464193d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrwq_z_s32.c
  5b256b4d531fa066fb2d4b1429db5841  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrwq_z_u32.c
+ c74c5973fcfef73146c302e43aae1d84  gcc/testsuite/gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c
  4596f8a6680597f5526864379597c690  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmaxaq_m_s16.c
  9bc88de909354740e2801b0cefb06212  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmaxaq_m_s32.c
  b4ffdc567fee6bf0d9219f602465b6ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmaxaq_m_s8.c
*************** ce2ea998f70f030c1e5c5cf0f3536bd7  gcc/te
*** 56843,56848 ****
--- 57033,57039 ----
  7a1f853ca353ec3249c7750b5684b3e6  gcc/testsuite/gcc.target/arm/peep-strd-2.c
  ca03d4215dfd4e98fc1d17e6890fcc4a  gcc/testsuite/gcc.target/arm/polytypes.c
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
+ b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.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
*************** f55df70acaaa1a05030d45495848eb2b  gcc/te
*** 59242,59247 ****
--- 59433,59439 ----
  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
+ e776362bd500a8b0461d6aa8e0e1660e  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
  63e7956c8ca198ce2181d80ed229bbbb  gcc/testsuite/gcc.target/i386/avx512bf16-vdpbf16ps-1.c
*************** c937938a0a49e70d699ee5ef70d33cb0  gcc/te
*** 61990,61996 ****
  a6020162b1207dec1f78ff7901093fbd  gcc/testsuite/gcc.target/i386/i386.exp
  2d69eb6ddebbb701ee0dbfa08d2eb6b8  gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp
  824179ec90e1e4fdb872aed133f8d523  gcc/testsuite/gcc.target/i386/iamcu/args.h
! 75e691882a781a986cbf2b848eacc017  gcc/testsuite/gcc.target/i386/iamcu/asm-support.S
  a77c8e89ec538edb98eb4ac96da0db61  gcc/testsuite/gcc.target/i386/iamcu/defines.h
  ced3e7fc25757fe027f4eacc904e6881  gcc/testsuite/gcc.target/i386/iamcu/macros.h
  b37244b808ec210193fd56756594c8e3  gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
--- 62182,62188 ----
  a6020162b1207dec1f78ff7901093fbd  gcc/testsuite/gcc.target/i386/i386.exp
  2d69eb6ddebbb701ee0dbfa08d2eb6b8  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
  ced3e7fc25757fe027f4eacc904e6881  gcc/testsuite/gcc.target/i386/iamcu/macros.h
  b37244b808ec210193fd56756594c8e3  gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c
*************** c89ecd0f9931568f536dc071eea76350  gcc/te
*** 62155,62162 ****
  380986fccfc94de2053cb58bda652e65  gcc/testsuite/gcc.target/i386/keylocker-aesenc256kl.c
  82f0c1688e98d57bb5b380c9b834d5f5  gcc/testsuite/gcc.target/i386/keylocker-aesencwide128kl.c
  bce5027ed86913143560e79cc6a745fe  gcc/testsuite/gcc.target/i386/keylocker-aesencwide256kl.c
! 4c4a88b13cbf3c58c70ad98c32a8879d  gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c
! 5d4d1e811f69626e9becd2b2c2a1c6d6  gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c
  78393ec91600382e98db57e560deaea9  gcc/testsuite/gcc.target/i386/keylocker-loadiwkey.c
  6a61f297f5746de86187140f048ab655  gcc/testsuite/gcc.target/i386/l_fma_1.h
  c598c1d2a127be1189b3dfe020919429  gcc/testsuite/gcc.target/i386/l_fma_2.h
--- 62347,62354 ----
  380986fccfc94de2053cb58bda652e65  gcc/testsuite/gcc.target/i386/keylocker-aesenc256kl.c
  82f0c1688e98d57bb5b380c9b834d5f5  gcc/testsuite/gcc.target/i386/keylocker-aesencwide128kl.c
  bce5027ed86913143560e79cc6a745fe  gcc/testsuite/gcc.target/i386/keylocker-aesencwide256kl.c
! c6f6aaff47d064fbceed4cfbcb5b9279  gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c
! a468c392fd8838d0198cfb8b367d4b6d  gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c
  78393ec91600382e98db57e560deaea9  gcc/testsuite/gcc.target/i386/keylocker-loadiwkey.c
  6a61f297f5746de86187140f048ab655  gcc/testsuite/gcc.target/i386/l_fma_1.h
  c598c1d2a127be1189b3dfe020919429  gcc/testsuite/gcc.target/i386/l_fma_2.h
*************** f34a56063b53daa2722dd66e280f5aab  gcc/te
*** 62439,62444 ****
--- 62631,62637 ----
  30d7b1638a5f604ac4353737e0db1816  gcc/testsuite/gcc.target/i386/pr104458.c
  a92681d4c2c5095462e23684946fe9fd  gcc/testsuite/gcc.target/i386/pr104469.c
  6f32caf69432ac867dd42051bcfa22a8  gcc/testsuite/gcc.target/i386/pr104502.c
+ 21083ed0382a1c184689d3a9ee1bc7ee  gcc/testsuite/gcc.target/i386/pr104637.c
  c0361c1e4d91a839c96bfc8c71f15139  gcc/testsuite/gcc.target/i386/pr104674.c
  69c507a5894d6d6b62f48b087adf9652  gcc/testsuite/gcc.target/i386/pr104890.c
  8aea430f8fa49eb985ac268facb6294c  gcc/testsuite/gcc.target/i386/pr104963.c
*************** a892cf5449c572594d9ac500ec2178bc  gcc/te
*** 62448,62453 ****
--- 62641,62651 ----
  6c6335b2ca1f773cd45cd27ad0d7a133  gcc/testsuite/gcc.target/i386/pr105000-3.c
  6835f42a37c0159616cc082bd3c33721  gcc/testsuite/gcc.target/i386/pr105032.c
  3de9ba59994fd09bad053a28eecbc68d  gcc/testsuite/gcc.target/i386/pr105123.c
+ db0abcfd3877faa33b33aa19a57352a5  gcc/testsuite/gcc.target/i386/pr105554.c
+ afe42f2264a7583bee62a6e718faeef5  gcc/testsuite/gcc.target/i386/pr105970.c
+ f39114cabb6d2efeaa8e1f1a944e05e0  gcc/testsuite/gcc.target/i386/pr107304.c
+ 972837aa3a25d88acfe4af629c37d530  gcc/testsuite/gcc.target/i386/pr107863.c
+ a643678ff500c5823e0dfd6f13a78767  gcc/testsuite/gcc.target/i386/pr109276.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
*************** d82c437b681e812dd9c8b48af5ec1850  gcc/te
*** 63791,63797 ****
  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
! 8101acdea56668e935e1e380034afee9  gcc/testsuite/gcc.target/i386/pr89261.c
  956a0e340ae4dfe5721ba6a3ab98969f  gcc/testsuite/gcc.target/i386/pr89290.c
  9b171107d18eb3849a61bea08c583e1a  gcc/testsuite/gcc.target/i386/pr89346.c
  3672969c19203520cc6589315eed1976  gcc/testsuite/gcc.target/i386/pr89386-1.c
--- 63989,63995 ----
  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
  9b171107d18eb3849a61bea08c583e1a  gcc/testsuite/gcc.target/i386/pr89346.c
  3672969c19203520cc6589315eed1976  gcc/testsuite/gcc.target/i386/pr89386-1.c
*************** cc8a162617784a2e883a5e726d28ebde  gcc/te
*** 64258,64264 ****
  49bde97b271274cb2bc26697ce2b19be  gcc/testsuite/gcc.target/i386/sse-11.c
  1bb2f373c5a5eb9db6b65e377d0dac63  gcc/testsuite/gcc.target/i386/sse-12.c
  5cb56c1bb70d3d793b9deec82cee096a  gcc/testsuite/gcc.target/i386/sse-13.c
! ffb6ed9866dd66aafe68051249fa57a5  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
--- 64456,64462 ----
  49bde97b271274cb2bc26697ce2b19be  gcc/testsuite/gcc.target/i386/sse-11.c
  1bb2f373c5a5eb9db6b65e377d0dac63  gcc/testsuite/gcc.target/i386/sse-12.c
  5cb56c1bb70d3d793b9deec82cee096a  gcc/testsuite/gcc.target/i386/sse-13.c
! c181495c6cf99501a49865ad490489ec  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
*************** f9b1cdb0433ef7064bd1c61cb70fbb98  gcc/te
*** 65062,65099 ****
  7526bd093b536c4b62a2a718b487c3e3  gcc/testsuite/gcc.target/i386/xsaves-1.c
  d29a546e91cb2c29d0c4181a1d0bf029  gcc/testsuite/gcc.target/i386/xsaves64-1.c
  2b33ab73b2913b0e2f41e8e40b35c582  gcc/testsuite/gcc.target/i386/zee.c
! ccd89cdfd8574cb92a2380ea8610e36d  gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c
! 9bc3af9ce20206c7d70ba2b92e9a38d5  gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c
  f6edf832011ee2bcc9cb8599745631a2  gcc/testsuite/gcc.target/i386/zero-scratch-regs-11.c
  377aef2617b3e54b81a10664c1a4f011  gcc/testsuite/gcc.target/i386/zero-scratch-regs-12.c
! e360a1594269460443979aab1086c546  gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c
! 0d43081f3a2c19e4acda8fb37b28b74a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c
! 11d29f16f6f1cf20ab22f237f9ef5054  gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c
! 86e2d7c8f1fdc9ece0dcc18057e734c8  gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c
! 8b0e760acf235bfcf91f1a6c508c54df  gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c
! 70644638653618b2cf37d7e270df7cc9  gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c
! 634bc9f8790c34b13a94555596d63793  gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c
! 3e24ced421af0e7083b0ba2ba1126cbb  gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c
! 60cc9f696188a2cb9662989a963abb3a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
! ae2465acaa67981b1f9db664ba66b215  gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
! ec58478e3410c2cfdf4caf20cd193e45  gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
! bb8f994780f5208149eaaaf321159b73  gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
  edede09b1afb458f310c448a3a2ffa14  gcc/testsuite/gcc.target/i386/zero-scratch-regs-24.c
  a7c92b064cd3dfa35552d030d9c88443  gcc/testsuite/gcc.target/i386/zero-scratch-regs-25.c
! 8b3188eddf0c6025da16c21d609fe504  gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
! bb99510058d3acea81186ab9ff44c967  gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c
! 2c914180b27b9d39191b19ad4912efe7  gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c
  a0db901c2d58c6ec7373c71e5e9f5f96  gcc/testsuite/gcc.target/i386/zero-scratch-regs-29.c
! ab5126d4988a6006a3080fe606738e8d  gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c
  bc37db967928436168b8c1061133369a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-30.c
! e7d7d3c51cfe8dc0a336491296c53036  gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c
  66378b9cfd36021151804e3b9acaa10c  gcc/testsuite/gcc.target/i386/zero-scratch-regs-32.c
! 50fd322246b281489b8fa52d8f5f61f4  gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c
! 679061d42db8d05f6910156661c88636  gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c
! 1c3ace2c0c644df8fd0480bf9027c1ea  gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c
! 0322291ed263d0bcbf4365c9f2923225  gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c
! c8cfd937be632996a527ce2873df1368  gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c
! 7eb891e2209cd79e3b41fc54d2fea2c4  gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.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
--- 65260,65297 ----
  7526bd093b536c4b62a2a718b487c3e3  gcc/testsuite/gcc.target/i386/xsaves-1.c
  d29a546e91cb2c29d0c4181a1d0bf029  gcc/testsuite/gcc.target/i386/xsaves64-1.c
  2b33ab73b2913b0e2f41e8e40b35c582  gcc/testsuite/gcc.target/i386/zee.c
! 4527e3f177bad69ef63bade044ed5b90  gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c
! 5f9a71b75dc2564f1ad22de60aff16f6  gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c
  f6edf832011ee2bcc9cb8599745631a2  gcc/testsuite/gcc.target/i386/zero-scratch-regs-11.c
  377aef2617b3e54b81a10664c1a4f011  gcc/testsuite/gcc.target/i386/zero-scratch-regs-12.c
! e119f919349398a051e64f94a4f814f2  gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c
! d924e961ea6a8f265cbc975304951897  gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c
! c6feb34d25dd6f06809a37f6beadb10b  gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c
! a4b791bababf57b05d768d33e17ccb0b  gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c
! f59054992a46415551113e95f1883e48  gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c
! d0580d13a6dbb354380d9300b48ad169  gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c
! ab819272e806b4bdb4319962a9673c71  gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c
! d313cc77f313c4dd63cd510957fdd87c  gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c
! 04745ab7394d1702daa975607c216973  gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
! c8dd24e1b18af774be1f6fa045252612  gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
! 2e396378f3ddbd9c2d4a3a214f00eeda  gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
! 844ff919190ce8569bfc0a5820c77ff5  gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
  edede09b1afb458f310c448a3a2ffa14  gcc/testsuite/gcc.target/i386/zero-scratch-regs-24.c
  a7c92b064cd3dfa35552d030d9c88443  gcc/testsuite/gcc.target/i386/zero-scratch-regs-25.c
! ec39e4f7e99d99e583f0ad35694883c0  gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
! 21aad5fd641b7c2182d6f16bfb2693e1  gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c
! df0dc23a33eb491ee7e7877623b71191  gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c
  a0db901c2d58c6ec7373c71e5e9f5f96  gcc/testsuite/gcc.target/i386/zero-scratch-regs-29.c
! 7b29158ed7c8cc9b7feb32c04249959b  gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c
  bc37db967928436168b8c1061133369a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-30.c
! 436c4c4db448d2a78bd0a4ff74e64d3a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c
  66378b9cfd36021151804e3b9acaa10c  gcc/testsuite/gcc.target/i386/zero-scratch-regs-32.c
! eadfc0a02336a6e52dffc2fcf8dfcf59  gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c
! 66756a81f305b4e4d2c8a4d048f9a6ab  gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c
! 1c155a5b2fa12b705e2c04f01342749d  gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c
! 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
  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
*************** d98190bc7003de5846e7f794a9f2b8ab  gcc/te
*** 66410,66416 ****
  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
! 5699e52d1e8829cb7c7861195d1cc017  gcc/testsuite/gcc.target/powerpc/bswap-brw.c
  5f5298f748bcfaf7c81d750d7b190615  gcc/testsuite/gcc.target/powerpc/bswap-run.c
  8c821490f5d0cf5f71e7cdc07e3c700f  gcc/testsuite/gcc.target/powerpc/bswap16.c
  3fcf5bd2b192fb87864426edc98d3d3c  gcc/testsuite/gcc.target/powerpc/bswap32.c
--- 66608,66614 ----
  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
! ebdd5d41e115bd9fb63175dee376d2eb  gcc/testsuite/gcc.target/powerpc/bswap-brw.c
  5f5298f748bcfaf7c81d750d7b190615  gcc/testsuite/gcc.target/powerpc/bswap-run.c
  8c821490f5d0cf5f71e7cdc07e3c700f  gcc/testsuite/gcc.target/powerpc/bswap16.c
  3fcf5bd2b192fb87864426edc98d3d3c  gcc/testsuite/gcc.target/powerpc/bswap32.c
*************** d4ce6459348a97119b44b465bb11034f  gcc/te
*** 66631,66636 ****
--- 66829,66836 ----
  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
+ 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
*************** f158c23481154ab06c25cbdd745dec8d  gcc/te
*** 66926,66933 ****
  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
! 8b2d1bd52f7c861f8d72b5a44d92ef4c  gcc/testsuite/gcc.target/powerpc/fusion.c
! 36aa1f73a4f5f1d0803aa750e5b13826  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
--- 67126,67133 ----
  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
*************** d4c680a0477ecbe2fd90e52278838082  gcc/te
*** 66939,66945 ****
  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
! 30e34ab9a7759046ef94138494f0bb86  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
--- 67139,67145 ----
  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
! 9ff2865c08f0dc0b603621a01126bf9e  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
*************** bc09ccd31ca386dda15202c6adf9371a  gcc/te
*** 67013,67018 ****
--- 67213,67220 ----
  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
+ 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
*************** c28edf1d4900581a18cfe9388ed98dd7  gcc/te
*** 67067,67073 ****
  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
! c35fe992924972f820d30b13b50e1d48  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
--- 67269,67275 ----
  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
*************** e1b8cd08f8318d0a6b2e5b855075001d  gcc/te
*** 67082,67095 ****
  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
! 6f1960cdffbaef21e4593eccd38e7929  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c
! f671afd110d5f782e9d20ab4ebc4d4be  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c
! eba9fb2ef8829b4f12eb280c7bdf546b  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c
! 61e552d417782e245d4e82c437d23974  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c
! 3fa98625eb1aca5e5de550a027af26ab  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c
! e3d0df1fe70a1a16f61af01a0541b590  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c
  2ed902e6a35be029c1294e839ad3a0f6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c
! 140e9ccca6e080ac87e45aa4eca7f44f  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
--- 67284,67297 ----
  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
  2ed902e6a35be029c1294e839ad3a0f6  gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c
! 20a218e848b9d768abfeca4affaeecda  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
*************** c93356c7aed0735689569396e6f3134e  gcc/te
*** 67098,67111 ****
  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
! 3fb71c141b802aa4981bc89dd61a0241  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c
! 998f7612089f7ca7151c60d297457a09  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c
! b2622014ac647ae93ca6a19d4a0f6e63  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c
! e3a4c5a3f53fd1f78bbff95301a9a0f3  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c
! a619bdf3d50595136050c6201d6a33d5  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c
! dd4a9f2f07298325bccd0457959de0aa  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c
  e91a9930ace643bb1e055207643380c2  gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c
! 3ddfe6216b76faa377fb67e65f91b4dd  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
--- 67300,67313 ----
  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
  e91a9930ace643bb1e055207643380c2  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
*************** ee8c0fe3fe328a4102e36f1a91ad6105  gcc/te
*** 67124,67130 ****
  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
! 1927d37785de58e49934412776e54594  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
--- 67326,67332 ----
  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
*************** a64bd4e47397af3253bc9e8dc2c56780  gcc/te
*** 67239,67246 ****
--- 67441,67450 ----
  c5b190f8976eee8b644b3fa33d5ebbb2  gcc/testsuite/gcc.target/powerpc/pr101849.c
  fef209ac364aa52b3c1bab51422d611c  gcc/testsuite/gcc.target/powerpc/pr101985-1.c
  bbe41009113780dbcd6527cbec5f943c  gcc/testsuite/gcc.target/powerpc/pr101985-2.c
+ 47aed0bc9ee0c4e28ab685155a8f49ea  gcc/testsuite/gcc.target/powerpc/pr102059-4.c
  a192830e09e3a3d8478a89f2b2add0ff  gcc/testsuite/gcc.target/powerpc/pr102347.c
  0726fc47d5d46d095efa95b874637be7  gcc/testsuite/gcc.target/powerpc/pr102976.c
+ 2e28abb3dab00a40af19eb41bc4d56ce  gcc/testsuite/gcc.target/powerpc/pr103353.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
*************** b7339ab4137e4c5175deca053bb790c8  gcc/te
*** 67250,67255 ****
--- 67454,67475 ----
  db72de734e5e70d9f1ed20b5a54e7a2a  gcc/testsuite/gcc.target/powerpc/pr104894-2.c
  bc8ea782345dbe874b74f42d43945922  gcc/testsuite/gcc.target/powerpc/pr104894.c
  3c6d84405eb197341e1b506784b6c749  gcc/testsuite/gcc.target/powerpc/pr104923.c
+ 6e7b6dccd503c20a37d0e145939b54a6  gcc/testsuite/gcc.target/powerpc/pr105041.c
+ 1ab2f3b15230d62d1557536701b89524  gcc/testsuite/gcc.target/powerpc/pr106016.c
+ 1717ad0418e192e7d5bbcdcc715baa9a  gcc/testsuite/gcc.target/powerpc/pr106017.c
+ 77039220fc5a52161837a12ea92d1ea3  gcc/testsuite/gcc.target/powerpc/pr106091.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
+ 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
+ d1ebac89ce86ba01adcab56447399dd9  gcc/testsuite/gcc.target/powerpc/pr108699.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
*************** c2bb4c50496aade60596e697b1d8782d  gcc/te
*** 67355,67360 ****
--- 67575,67581 ----
  f04c5add43326054cacbb6544404890d  gcc/testsuite/gcc.target/powerpc/pr70010-4.c
  1de006067bf04677e8e3043c80b99112  gcc/testsuite/gcc.target/powerpc/pr70010.c
  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
*************** ffc3e49b879237e4c50decbfa7827c62  gcc/te
*** 67533,67543 ****
--- 67754,67766 ----
  ca39e661d5c8829e74d8a523cedd9a16  gcc/testsuite/gcc.target/powerpc/pr94740.c
  baf149d64053b2f0f606c42999ad64b8  gcc/testsuite/gcc.target/powerpc/pr95450.c
  e7cf1c47ea2ac68fa8b2f1bc1dc06872  gcc/testsuite/gcc.target/powerpc/pr95907.c
+ 5c286273d2472c19e1388a58fbf1fae4  gcc/testsuite/gcc.target/powerpc/pr96072.c
  c3fdf2edbc3880b6e23670387a188c81  gcc/testsuite/gcc.target/powerpc/pr96125.c
  c41dc78db559b0a60ade2f03b039206d  gcc/testsuite/gcc.target/powerpc/pr96139-a.c
  a07b15408dfcb7108da14ce215101920  gcc/testsuite/gcc.target/powerpc/pr96139-b.c
  077f66488295d290f80d30233e453520  gcc/testsuite/gcc.target/powerpc/pr96139-c.c
  260b4195fb458fd7f0ec3afc524236ff  gcc/testsuite/gcc.target/powerpc/pr96264.c
+ 42e9d864b740d7bf95a81bde9f4f1fbe  gcc/testsuite/gcc.target/powerpc/pr96373.c
  4041fca09c3daed5a381d4dc45e9a366  gcc/testsuite/gcc.target/powerpc/pr96446.c
  06df07809324154deb45d934dbebf494  gcc/testsuite/gcc.target/powerpc/pr96493.c
  f296eca9a733cf4bb4e198a3539e8cec  gcc/testsuite/gcc.target/powerpc/pr96506-1.c
*************** f138cfa6e387e1bc85747da2fc38e305  gcc/te
*** 67984,67990 ****
  1e5fee04b7943239f19f0ce10776f9d1  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
  e2ea17dd5726f5123cfd41828cad3a67  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin.c
  b08d7736f6c15cd2e7a7cbbf0732a171  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
! fffb5388e3f0454f2afd0eade4181a0c  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
--- 68207,68213 ----
  1e5fee04b7943239f19f0ce10776f9d1  gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c
  e2ea17dd5726f5123cfd41828cad3a67  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin.c
  b08d7736f6c15cd2e7a7cbbf0732a171  gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c
! e87f7fb838fef2237995418c77791ad2  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
*************** eb96a92710915622b3f65dba4a30955d  gcc/te
*** 68812,68817 ****
--- 69035,69044 ----
  25c3bd00fd3d097e42ac8cfc215fd0c4  gcc/testsuite/gcc.target/s390/pfpo.c
  bdf3ebe1c6a408e4efe2845222b3d54d  gcc/testsuite/gcc.target/s390/pr102222.c
  182ebf3677a29bf9b1dbb033505f78dd  gcc/testsuite/gcc.target/s390/pr104775.c
+ b65b6b60679fe5fe589b83fa813950ac  gcc/testsuite/gcc.target/s390/pr106355-1.c
+ 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
  765307a040de72f2f4376b7068d68018  gcc/testsuite/gcc.target/s390/pr20927.c
  85f31fb9b4b15529205376d3f6fa385c  gcc/testsuite/gcc.target/s390/pr24624.c
  7adacbd67601dc0845e556e5632cd718  gcc/testsuite/gcc.target/s390/pr27661.c
*************** e470b0a0d1a056b60c3915a6dfcfd4ae  gcc/te
*** 69444,69449 ****
--- 69671,69681 ----
  bf95d536cbad4db92f264aa740abbbbc  gcc/testsuite/gcc.target/sparc/20181129-1.c
  3b3205cedf38a33c506ea5c4414d489f  gcc/testsuite/gcc.target/sparc/20181129-2.c
  3f593e1ef43ebce309fa2b2033f8be77  gcc/testsuite/gcc.target/sparc/20210917-1.c
+ 0c6705acc2a655d06368478b465dca00  gcc/testsuite/gcc.target/sparc/20220510-1.c
+ 40321901935127f9cf34a34197b9b48a  gcc/testsuite/gcc.target/sparc/20230328-1.c
+ 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
  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
*************** d5b39965a2815d8cdcaf9e4867510a0c  gcc/te
*** 69848,69858 ****
  6f2569a915010fe1765ab3c82b2d6910  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
! 892eb2ee284fd96557fd507fa0642156  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
  d9a3cf5cce632b5561f35999a595447f  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
! 0df09e54902b0a238caad6de9dc92c5d  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
--- 70080,70090 ----
  6f2569a915010fe1765ab3c82b2d6910  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
  d9a3cf5cce632b5561f35999a595447f  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
*************** d02989c16f0d1cd0951fe435483c550e  gcc/te
*** 69862,69868 ****
  9e27e7507adfbc177435248fa82da5ef  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
! 018d5507f0c4c2e50d7895e924a53c1b  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
--- 70094,70100 ----
  9e27e7507adfbc177435248fa82da5ef  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
*************** d02a2912e872fd8b7b39b69b74482091  gcc/te
*** 69890,69896 ****
  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
! d162a29793ce69ce8e4f6ebb6f65cbe3  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
  4745141569ff606b1093ca95943384f4  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
--- 70122,70128 ----
  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
! 2128957d25011aafcbdad36eface57a2  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
  4745141569ff606b1093ca95943384f4  gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp
*************** b2f1a9a045a9e57b6091049452751096  gcc/te
*** 70190,70195 ****
--- 70422,70428 ----
  502192866584cff5028f4aa00858d119  gcc/testsuite/gdc.dg/Waddress.d
  94208575e1a523900cf5bbbacff458ff  gcc/testsuite/gdc.dg/Wcastresult1.d
  48a00a7acec933f1e03b4d13199e7e63  gcc/testsuite/gdc.dg/Wcastresult2.d
+ ba3ec121536606fdf9d34aff37b9da35  gcc/testsuite/gdc.dg/Wpadded.d
  684da8abc6d44a02e6b361d163e350c1  gcc/testsuite/gdc.dg/array1.d
  06295fc1f9b1f0161cf0de7d4310451e  gcc/testsuite/gdc.dg/asan/asan.exp
  10180752a9d53fac31ca576e678cdd06  gcc/testsuite/gdc.dg/asan/gdc272.d
*************** b60175beb28e5f269667d25260e08c71  gcc/te
*** 70293,70298 ****
--- 70526,70535 ----
  4a1c45c1482afaf7fe165064453176a8  gcc/testsuite/gdc.dg/imports/gdc256.d
  22f231195c5f7726c704d3f9d99b0d85  gcc/testsuite/gdc.dg/imports/gdc27.d
  aeec8ff75316a52def72f86d4bc1708c  gcc/testsuite/gdc.dg/imports/gdcpkg256/package.d
+ 8fba2c4130687ac9061c9b748ca84568  gcc/testsuite/gdc.dg/imports/pr108050/mod1.d
+ 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
  b9989889ba43c533b1edad45c8a4bca1  gcc/testsuite/gdc.dg/intrinsics.d
  2049e750a9b0b91100888e640127b311  gcc/testsuite/gdc.dg/lto/lto.exp
*************** c0f2db1fcb83cbb41fda8295889368ff  gcc/te
*** 70308,70313 ****
--- 70545,70557 ----
  13e2f7b1a821d0fa1089525b3df15479  gcc/testsuite/gdc.dg/pr101640.d
  00da6db0d966d43d573f86b9fe032508  gcc/testsuite/gdc.dg/pr102185.d
  616697349b5740e41fd04c0ae6074cd2  gcc/testsuite/gdc.dg/pr105004.d
+ 4043769c4b670791abe6549858a885b3  gcc/testsuite/gdc.dg/pr106139a.d
+ f4b93d30d706ee858eb3d1d73cac63f0  gcc/testsuite/gdc.dg/pr106139b.d
+ 78fb78f49f61330c2751bcc186e8fade  gcc/testsuite/gdc.dg/pr106139c.d
+ 27e575511646bb151afbd1a856acdadc  gcc/testsuite/gdc.dg/pr106139d.d
+ 9e838ba67909954cf1aa94614647413b  gcc/testsuite/gdc.dg/pr107592.d
+ 5e07b36b71c4e1c18324a1aa28b644c9  gcc/testsuite/gdc.dg/pr108050.d
+ 531ba2cfc6bb317d132b6b86e9221526  gcc/testsuite/gdc.dg/pr108877.d
  d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/testsuite/gdc.dg/pr89017.d
  53fa8db94d4ca3fc9ba83769733dc0e7  gcc/testsuite/gdc.dg/pr89041.d
  6c316b13f71ea31fcada56b58a41ebd1  gcc/testsuite/gdc.dg/pr89042a.d
*************** fda0cf305776db386c768d3546d5e0b9  gcc/te
*** 70401,70410 ****
--- 70645,70656 ----
  b0b5c68386e1c5992cb977b215d56e58  gcc/testsuite/gdc.dg/torture/gdc57.d
  d3cb0d42e94f3b4127de8609610ded70  gcc/testsuite/gdc.dg/torture/gdc66.d
  663b84ca45dda4d3daa1e65189c181b8  gcc/testsuite/gdc.dg/torture/imports/gdc36.d
+ 50c9072e0ffdfc079790d637e1a5c72a  gcc/testsuite/gdc.dg/torture/imports/pr109108.d
  646170aa418a99d37c59a7bb02130400  gcc/testsuite/gdc.dg/torture/init1.d
  1ae8edb9b2cd9747efb9868621aec4e8  gcc/testsuite/gdc.dg/torture/pr100882.d
  cede80748e43884ad3613a2a7e4b6ff3  gcc/testsuite/gdc.dg/torture/pr101273.d
  a24df8e498053d7ab8325fc58ede1835  gcc/testsuite/gdc.dg/torture/pr101282.d
+ 41c17e6e62da4333262dbaa7b4e20510  gcc/testsuite/gdc.dg/torture/pr109108.d
  580aadb24b666799e25f1f02ef3b7bbb  gcc/testsuite/gdc.dg/torture/pr92309.d
  1b111ae77202133585fd76e6867c2615  gcc/testsuite/gdc.dg/torture/pr94424.d
  658ecf9f1faf93eb8bdf8896b94d1b62  gcc/testsuite/gdc.dg/torture/pr94777b.d
*************** be211d00217b412a281626e091521ca8  gcc/te
*** 70430,70436 ****
  db32bdd5bf5efb008a8d0769d3d86934  gcc/testsuite/gdc.dg/torture/simd9304.d
  c8641c4ecb508bce56fb288cf0e0f8e3  gcc/testsuite/gdc.dg/torture/simd9449.d
  f74a24d5b20a5e26cd6f9d895a213ec6  gcc/testsuite/gdc.dg/torture/simd9910.d
! 4a51e6554d37213263e08170594ef9d0  gcc/testsuite/gdc.dg/torture/torture.exp
  967f582cf2771c2254957b0968fef157  gcc/testsuite/gdc.dg/ubsan/pr88957.d
  23e164f0b6f05198e3bc517f109acb2e  gcc/testsuite/gdc.dg/ubsan/ubsan.exp
  310f79be9999b0b9e22f7cfbfe79f71d  gcc/testsuite/gdc.test/README.gcc
--- 70676,70682 ----
  db32bdd5bf5efb008a8d0769d3d86934  gcc/testsuite/gdc.dg/torture/simd9304.d
  c8641c4ecb508bce56fb288cf0e0f8e3  gcc/testsuite/gdc.dg/torture/simd9449.d
  f74a24d5b20a5e26cd6f9d895a213ec6  gcc/testsuite/gdc.dg/torture/simd9910.d
! b674d0d67d0978d507faeae5f49518c4  gcc/testsuite/gdc.dg/torture/torture.exp
  967f582cf2771c2254957b0968fef157  gcc/testsuite/gdc.dg/ubsan/pr88957.d
  23e164f0b6f05198e3bc517f109acb2e  gcc/testsuite/gdc.dg/ubsan/ubsan.exp
  310f79be9999b0b9e22f7cfbfe79f71d  gcc/testsuite/gdc.test/README.gcc
*************** e31c57d6974d04e2c34bbe41ae8c9706  gcc/te
*** 72046,72051 ****
--- 72292,72298 ----
  02081a92305510de44e261c5fa5e3c34  gcc/testsuite/gdc.test/fail_compilation/ice17074.d
  7324203f77755460dfd2b206a19d914d  gcc/testsuite/gdc.test/fail_compilation/ice17690.d
  be6c358100e2ef5988a9d561cda1e90b  gcc/testsuite/gdc.test/fail_compilation/ice17831.d
+ b976eedb61aadb4465ca084f17ddd25d  gcc/testsuite/gdc.test/fail_compilation/ice20264.d
  1ee2df9e731e72df6ec1774356fb21e5  gcc/testsuite/gdc.test/fail_compilation/ice21060.d
  61d25d3d66bc23fc5137fdca361068bc  gcc/testsuite/gdc.test/fail_compilation/ice2843.d
  c73e0422319d9ada15828705fb8abcaa  gcc/testsuite/gdc.test/fail_compilation/ice4094.d
*************** d2f401f9391bf1d2889872bbdc34f16b  gcc/te
*** 72870,72877 ****
--- 73117,73131 ----
  f1950e4b4b23dc2b32ca290715b1dd9c  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_8.f90
  ad366711f9b7f7d71373eab3da4b4e4b  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.c
  131a58eb857fe3f727bc57d2b9f21e8f  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.f90
+ 8039ff93d1683c85f89961a47ca07935  gcc/testsuite/gfortran.dg/PR100029.f90
+ 3a862d4d610ca334e395074243d0fe19  gcc/testsuite/gfortran.dg/PR100040.f90
  b57006fa0a1329365a93526a47af1b48  gcc/testsuite/gfortran.dg/PR100094.f90
+ 7d31691eac81b2cecc47db81ebb7f3e7  gcc/testsuite/gfortran.dg/PR100097.f90
+ 3a9f3e07df20211a1c48ab0f8f6eca97  gcc/testsuite/gfortran.dg/PR100098.f90
+ 1bb9c8f2a91f52e7916455864ee6937a  gcc/testsuite/gfortran.dg/PR100132.f90
+ 6bb46c09071a440785e94a2327da031c  gcc/testsuite/gfortran.dg/PR100136.f90
  e4d3c523324e00f5ab10bffefb1a7961  gcc/testsuite/gfortran.dg/PR10018.f90
+ 6999a567af5689945feacbc26380e000  gcc/testsuite/gfortran.dg/PR100245.f90
  36cd9c1e3875c80db22097b9c2ad49b3  gcc/testsuite/gfortran.dg/PR19754_1.f90
  e8f29c2ce9f345e588516849caa9db8f  gcc/testsuite/gfortran.dg/PR19754_2.f90
  7ea18cc404b53eee2348e3e57683bb56  gcc/testsuite/gfortran.dg/PR19872.f
*************** c066328da870ad9b313bf9491c5b72d6  gcc/te
*** 73366,73371 ****
--- 73620,73626 ----
  7e01c786b8c72874d3ae753530cfb5cb  gcc/testsuite/gfortran.dg/associate_24.f90
  55bfeb67bee60022ebbe2186b11826b6  gcc/testsuite/gfortran.dg/associate_25.f90
  c0997c9e951767642f9b109c7f40a532  gcc/testsuite/gfortran.dg/associate_26.f90
+ 000795c302b3191fa720282e0b5b71c8  gcc/testsuite/gfortran.dg/associate_26a.f90
  aecd7da9302bacf7aeebde56d90a2445  gcc/testsuite/gfortran.dg/associate_27.f90
  366c019a469c1a5eac01c46514e12c86  gcc/testsuite/gfortran.dg/associate_28.f90
  9236179c94e8ef2f6258dcf917d9dee9  gcc/testsuite/gfortran.dg/associate_29.f90
*************** fd5aa0aeb583bf1c520647699c09098c  gcc/te
*** 73608,73613 ****
--- 73863,73869 ----
  1176bc1003bc9902e2cbbd0881833a6a  gcc/testsuite/gfortran.dg/bind_c_usage_32.f90
  487ac439b45d829bb00287edc9eb7e78  gcc/testsuite/gfortran.dg/bind_c_usage_33.f90
  5ba4c967cb57e47c3083d78e775e9474  gcc/testsuite/gfortran.dg/bind_c_usage_33_c.c
+ fe581e5151066f7aab1872a01eedd446  gcc/testsuite/gfortran.dg/bind_c_usage_34.f90
  d245d9e737fbf5c0213b3df7d060446c  gcc/testsuite/gfortran.dg/bind_c_usage_5.f03
  1b4c4194bd216642b83f69c705e997b9  gcc/testsuite/gfortran.dg/bind_c_usage_6.f03
  298c127c34080232f15365f9c6db6fc0  gcc/testsuite/gfortran.dg/bind_c_usage_7.f03
*************** e22aa437c55ee962c7781d739761dfd4  gcc/te
*** 74083,74089 ****
  8d4999c0b84adf6f411457cf3deaee67  gcc/testsuite/gfortran.dg/class_55.f90
  081b7861449ee503eb0eafc38aa74102  gcc/testsuite/gfortran.dg/class_56.f90
  2fbf5aa2a748bac8f14f06f6aecf4b6a  gcc/testsuite/gfortran.dg/class_57.f90
! e5fb2c5d38e11474d612c7ab279406ba  gcc/testsuite/gfortran.dg/class_58.f90
  dd2c7b1cf9668f23e882c3d64580ab34  gcc/testsuite/gfortran.dg/class_59.f90
  3559a2034886d45662cf5cdbdd177000  gcc/testsuite/gfortran.dg/class_6.f03
  e8904afb9adfeb76555179cf83d18504  gcc/testsuite/gfortran.dg/class_60.f90
--- 74339,74345 ----
  8d4999c0b84adf6f411457cf3deaee67  gcc/testsuite/gfortran.dg/class_55.f90
  081b7861449ee503eb0eafc38aa74102  gcc/testsuite/gfortran.dg/class_56.f90
  2fbf5aa2a748bac8f14f06f6aecf4b6a  gcc/testsuite/gfortran.dg/class_57.f90
! 71ce5af334c27ba11d877d65ad0f7113  gcc/testsuite/gfortran.dg/class_58.f90
  dd2c7b1cf9668f23e882c3d64580ab34  gcc/testsuite/gfortran.dg/class_59.f90
  3559a2034886d45662cf5cdbdd177000  gcc/testsuite/gfortran.dg/class_6.f03
  e8904afb9adfeb76555179cf83d18504  gcc/testsuite/gfortran.dg/class_60.f90
*************** cc0c048415b8d0593fe7e5b164763dc7  gcc/te
*** 74100,74105 ****
--- 74356,74362 ----
  cd9759177f83fe4b6a6a007850b05c80  gcc/testsuite/gfortran.dg/class_70.f03
  77eb9432daba5a35f6be287dfec77ae3  gcc/testsuite/gfortran.dg/class_71.f90
  92c121dc110b05822b93da0d70bcd5bb  gcc/testsuite/gfortran.dg/class_72.f90
+ a2da662ef1c6e78fb94337f5f919de4b  gcc/testsuite/gfortran.dg/class_73.f90
  765b5ae237d318aee8909def266c457e  gcc/testsuite/gfortran.dg/class_8.f03
  6ad3d2ed9f82c5534e18375c93ce8c03  gcc/testsuite/gfortran.dg/class_9.f03
  eff35de84f2c16f8b8abcbc407237414  gcc/testsuite/gfortran.dg/class_alias.f90
*************** f1da6751bbd1a6186b7f03b7f7e77113  gcc/te
*** 74426,74431 ****
--- 74683,74689 ----
  d3d62d1603bee1c8f8a03953e6eebba0  gcc/testsuite/gfortran.dg/common_24.f
  d5539b20ee7c35bfc0fcb236052a68ea  gcc/testsuite/gfortran.dg/common_25.f90
  70a95b679d7df7dca534b69660b7f48b  gcc/testsuite/gfortran.dg/common_26.f90
+ d92cf739756be07096c110006ed91771  gcc/testsuite/gfortran.dg/common_27.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
*************** ad86654ff26be55d6f8c03aa15c45da9  gcc/te
*** 74696,74701 ****
--- 74954,74960 ----
  f955c03c941b0c9e430dd0aa042c978f  gcc/testsuite/gfortran.dg/dec_union_1.f90
  54fa8897424354fe36b1147275b1b014  gcc/testsuite/gfortran.dg/dec_union_10.f90
  5211d9ae6a702f4330743f9f87e83568  gcc/testsuite/gfortran.dg/dec_union_11.f90
+ 436b819785ec03fd97943e5f6729ee25  gcc/testsuite/gfortran.dg/dec_union_12.f90
  6c8431ff3b4a3278ce13b373701985a8  gcc/testsuite/gfortran.dg/dec_union_2.f90
  85cd1980dadce1ec2db721b54e8725bf  gcc/testsuite/gfortran.dg/dec_union_3.f90
  a4db5df7b9375240006aa16fab80e2c0  gcc/testsuite/gfortran.dg/dec_union_4.f90
*************** bf2ca054d24e06523331d95407dee17a  gcc/te
*** 75244,75249 ****
--- 75503,75509 ----
  d5c2becdf2a2a9b3476dac72cfc54877  gcc/testsuite/gfortran.dg/extends_type_of_1.f03
  400c9de8234ec3d29a78be5af6d85a84  gcc/testsuite/gfortran.dg/extends_type_of_2.f03
  3485cc1f6803a287f97032484eec3440  gcc/testsuite/gfortran.dg/extends_type_of_3.f90
+ e2f6b20fdc9bcc4ddec5f7df21ca5ff7  gcc/testsuite/gfortran.dg/extends_type_of_4.f90
  df764dd66e24cfa5a1af1a03b983104b  gcc/testsuite/gfortran.dg/external_implicit_none.f90
  ce177780ee2e2bc535a2720b3ea4612c  gcc/testsuite/gfortran.dg/external_implicit_none_2.f90
  4eca303332980555d4132fbdc52d774a  gcc/testsuite/gfortran.dg/external_initializer.f90
*************** ae88a47a36ff81768bbc94c2fccb750c  gcc/te
*** 75616,75621 ****
--- 75876,75882 ----
  b95bed0058de43a18f0b95b0a13babee  gcc/testsuite/gfortran.dg/g77/labug1.f
  5cd5db2f5585dc7595a6f6ad12e9e45d  gcc/testsuite/gfortran.dg/g77/large_vec.f
  7ebb2b647b7391d93f548e6b083eeb94  gcc/testsuite/gfortran.dg/g77/le.f
+ 38f3a98d6bdf1614d9d5429efbce8943  gcc/testsuite/gfortran.dg/g77/pr105203.f
  08b2d0aa4e5c504bd6c05415aec457fb  gcc/testsuite/gfortran.dg/g77/pr9258.f
  db8b6c06ec8fa683359365a4c0484581  gcc/testsuite/gfortran.dg/g77/short.f
  632f6b94f0110d72eedbee7641bd627f  gcc/testsuite/gfortran.dg/g77/strlen0.f
*************** daa1172ed1d5a6072057b20aaca3b1ec  gcc/te
*** 76332,76338 ****
  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
! ffb510b687f0ea0845b8ed3e93ad308d  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
--- 76593,76599 ----
  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
*************** f6a9f065bf39a878f022cf1db27088dd  gcc/te
*** 76378,76383 ****
--- 76639,76645 ----
  7c6d282fb7219ea8b6437744a0db709a  gcc/testsuite/gfortran.dg/ibclr_1.f90
  ec89660ed76fbd433f83eba57f853883  gcc/testsuite/gfortran.dg/ibits.f90
  e6c37a9def09433a6a2f8bc1d9220133  gcc/testsuite/gfortran.dg/ibits_1.f90
+ 9d771e73f5b650886f4c509ed7ba4557  gcc/testsuite/gfortran.dg/ibits_2.f90
  9f3ccb4943f5f4737bc99acb427e11b0  gcc/testsuite/gfortran.dg/ibset_1.f90
  cc7201a9525a4793e8bf391d30c3653d  gcc/testsuite/gfortran.dg/ichar_1.f90
  8201f75f0deee5480134fc16f1113f0c  gcc/testsuite/gfortran.dg/ichar_2.f90
*************** e8ea43c66fd6d11794019ae65955f295  gcc/te
*** 76409,76414 ****
--- 76671,76677 ----
  124ba3e9f6c8b5f20acc161515766cff  gcc/testsuite/gfortran.dg/illegal_boz_arg_1.f90
  4a93b827c3cbecf80132e133c9ffea76  gcc/testsuite/gfortran.dg/illegal_boz_arg_2.f90
  b8ee27c210d03cbdecd63b4186ae10dc  gcc/testsuite/gfortran.dg/illegal_boz_arg_3.f90
+ eb8442e24d68dcf7d000ba19c179291d  gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90
  ca72e2369ff19137157ceaaa2012b721  gcc/testsuite/gfortran.dg/illegal_char.f90
  d827b941652feab002a335b27a4dd9f2  gcc/testsuite/gfortran.dg/imag_1.f
  eaad0ac26fe911d75f0d0769ade8436c  gcc/testsuite/gfortran.dg/impl_do_var_data.f90
*************** d0fdfb1260988468dbfc57fc49c04ccf  gcc/te
*** 76494,76499 ****
--- 76757,76763 ----
  6c6d1484cc1b9a1f8096ff70ef06c025  gcc/testsuite/gfortran.dg/index_3.f90
  1e3290f670df03f4a15dc4b8eb731606  gcc/testsuite/gfortran.dg/index_4.f90
  691597f0ec46c0a83eb0d9e74ff02fb3  gcc/testsuite/gfortran.dg/index_5.f90
+ 4238009ecd17e63a28a02c73d37bd245  gcc/testsuite/gfortran.dg/index_6.f90
  c32bcbb681492fc8fc92c7fc08a343a1  gcc/testsuite/gfortran.dg/init_char_with_nonchar_ctr.f90
  3b7a3a6914e202c00024fd409f044ac6  gcc/testsuite/gfortran.dg/init_flag_1.f90
  1d493b9ebf831129455128eb3bc913e8  gcc/testsuite/gfortran.dg/init_flag_10.f90
*************** ba84e533d9d999d5cafa2eeaa917daa3  gcc/te
*** 76625,76636 ****
--- 76889,76902 ----
  9a94a4b4c3991300273d3eff16279572  gcc/testsuite/gfortran.dg/intent_optimize_1.f90
  22c1f90f08c40546088dde105474e28c  gcc/testsuite/gfortran.dg/intent_optimize_2.f90
  88021d562ad8f075c52113ab0ba9582c  gcc/testsuite/gfortran.dg/intent_optimize_3.f90
+ 91ea197b8dde98766b625414c120237d  gcc/testsuite/gfortran.dg/intent_optimize_4.f90
  6ad3133cfe62e722e018d386dbfd3404  gcc/testsuite/gfortran.dg/intent_out_1.f90
  ba93579108c80828d584884c6d1a3d2a  gcc/testsuite/gfortran.dg/intent_out_10.f90
  7fb312ab28cce81b97498d8f3f4e4685  gcc/testsuite/gfortran.dg/intent_out_11.f90
  844229c9eb8a37075774f7aa5ffaec68  gcc/testsuite/gfortran.dg/intent_out_12.f90
  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
  633b564832f11b231ba2e100650127bb  gcc/testsuite/gfortran.dg/intent_out_2.f90
  88fc721c29050bdf0a2d0d7c4e316336  gcc/testsuite/gfortran.dg/intent_out_3.f90
  a4fb1377a7e3fd7d6f3a448f1c020623  gcc/testsuite/gfortran.dg/intent_out_4.f90
*************** c18b2575d6a9b63674756f658ca93389  gcc/te
*** 77377,77382 ****
--- 77643,77649 ----
  1ce8153704ce4cea80385ed72012931d  gcc/testsuite/gfortran.dg/nearest_3.f90
  07145278f20c5f56fba9fc10e9fbfba2  gcc/testsuite/gfortran.dg/nearest_4.f90
  e5f705447cfe3093ee85b04291d3f80c  gcc/testsuite/gfortran.dg/nearest_5.f90
+ a00cc61eb38cdddde8ae56513298e5bc  gcc/testsuite/gfortran.dg/nearest_6.f90
  5d4401879d53df84adcf50a08316a8f8  gcc/testsuite/gfortran.dg/negative-z-descriptor.f90
  d2f9406b4dddc3388ec13c7a6343827c  gcc/testsuite/gfortran.dg/negative_automatic_size.f90
  e1c6d38824a9f8693b5457db2f9968c6  gcc/testsuite/gfortran.dg/negative_unit.f
*************** ccf25bc57c7fd0870f3fa7fea60340a6  gcc/te
*** 77410,77416 ****
  2c6f079dd50cdebef82b1b476222d282  gcc/testsuite/gfortran.dg/newunit_6.f90
  25543ea4ce258c615de028583580ae15  gcc/testsuite/gfortran.dg/nint_1.f90
  16d9cc312dc3603f84627c0edcbc49a2  gcc/testsuite/gfortran.dg/nint_2.f90
! f867bd2d1caf94b8344ac3386b825ea1  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
--- 77677,77683 ----
  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
*************** e67abf33c2578358a5d5bab3e11f00e9  gcc/te
*** 77448,77453 ****
--- 77715,77721 ----
  a268bf435ff3e542009031168b6619a0  gcc/testsuite/gfortran.dg/null_8.f90
  f1e3cfba25a768bf7f9073932a36c7db  gcc/testsuite/gfortran.dg/null_9.f90
  fb9d6abbd9b9049c00ee6e992d1a8859  gcc/testsuite/gfortran.dg/null_actual.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
*************** c081e1f510a2d68ec176356111dab188  gcc/te
*** 77701,77715 ****
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
  cc6ac3aa934c104c85fad8e43ae6985d  gcc/testsuite/gfortran.dg/pr102817.f90
! 87fa8e20851e07d06d4d5991b6fc240d  gcc/testsuite/gfortran.dg/pr102860.f90
! a082b0c5fdbc266f00ae264494538e49  gcc/testsuite/gfortran.dg/pr103505.f90
  dc7a57f897711dfb7a3fba377198c10c  gcc/testsuite/gfortran.dg/pr103588.f90
  a27b232d198fc2463c04af17903b1b4c  gcc/testsuite/gfortran.dg/pr103606.f90
  ea7b00fcccc1df091b8087b16e502d92  gcc/testsuite/gfortran.dg/pr103607.f90
  e83cb447f532a018a571c0eb3b9813ac  gcc/testsuite/gfortran.dg/pr103609.f90
  448c7638e7741c015d95260e6491d8fa  gcc/testsuite/gfortran.dg/pr103692.f90
  9c2a780c1ca6904bb5164e252d9e5455  gcc/testsuite/gfortran.dg/pr104210.f90
  73191330286eb3bf2c13130685c97c95  gcc/testsuite/gfortran.dg/pr104211.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
--- 77969,78008 ----
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
  cc6ac3aa934c104c85fad8e43ae6985d  gcc/testsuite/gfortran.dg/pr102817.f90
! c35066e873add73fe333d803e2854739  gcc/testsuite/gfortran.dg/pr102860.f90
! 4b404e5693e05cfd48ecd00e22ac323d  gcc/testsuite/gfortran.dg/pr103259.f90
! b624133cafd19857eb2915c507731455  gcc/testsuite/gfortran.dg/pr103504.f90
! 0ca27f571c157feff083b371f4147538  gcc/testsuite/gfortran.dg/pr103505.f90
  dc7a57f897711dfb7a3fba377198c10c  gcc/testsuite/gfortran.dg/pr103588.f90
  a27b232d198fc2463c04af17903b1b4c  gcc/testsuite/gfortran.dg/pr103606.f90
  ea7b00fcccc1df091b8087b16e502d92  gcc/testsuite/gfortran.dg/pr103607.f90
  e83cb447f532a018a571c0eb3b9813ac  gcc/testsuite/gfortran.dg/pr103609.f90
  448c7638e7741c015d95260e6491d8fa  gcc/testsuite/gfortran.dg/pr103692.f90
+ 7880bd79a12dd5ee034f461bbaebed02  gcc/testsuite/gfortran.dg/pr103694.f90
  9c2a780c1ca6904bb5164e252d9e5455  gcc/testsuite/gfortran.dg/pr104210.f90
  73191330286eb3bf2c13130685c97c95  gcc/testsuite/gfortran.dg/pr104211.f90
+ 4d8d0ebddb3e8c68a7b0604135d30ec0  gcc/testsuite/gfortran.dg/pr104313.f
+ 7a5b7a18d621b5e1b9d04b73e259ddd4  gcc/testsuite/gfortran.dg/pr104849.f90
+ 22283af469347d85bd1fe4dae42939a3  gcc/testsuite/gfortran.dg/pr105230.f90
+ 04437d9e5ce70eee9f187cabd7a3ae39  gcc/testsuite/gfortran.dg/pr105633.f90
+ d4e9f09fafa1c1f5e009aedb22732715  gcc/testsuite/gfortran.dg/pr105954.f90
+ 088bf2cb06c9d1fbdf7cdf44f05322a7  gcc/testsuite/gfortran.dg/pr106209.f90
+ 8466016b4be322b136a27ed5b067e9d8  gcc/testsuite/gfortran.dg/pr106331.f90
+ 667a7f6ee3d729bf7c1cce653b1cff1c  gcc/testsuite/gfortran.dg/pr106857.f90
+ 09719e2d59fe58682ef7a737cdf01620  gcc/testsuite/gfortran.dg/pr106934.f90
+ e1ccca85dc432ca649742c05520157d9  gcc/testsuite/gfortran.dg/pr106945.f90
+ a9c6ba4d14cec93cd2edec54fda6a916  gcc/testsuite/gfortran.dg/pr106985.f90
+ eb96b826eeaf84f157c8635706721d40  gcc/testsuite/gfortran.dg/pr106986.f90
+ 11beaeea87162696e195837c5224fa2d  gcc/testsuite/gfortran.dg/pr107054.f90
+ ba47b0afdca4ac305945fe0fc5dcb1d2  gcc/testsuite/gfortran.dg/pr107872.f90
+ 51c1978cd57328dca2798eaa646a34b7  gcc/testsuite/gfortran.dg/pr108131.f90
+ d10ee488f163142e4a7a74b3c6a8e12f  gcc/testsuite/gfortran.dg/pr108193.f90
+ b1a3cfdc35d1fd73d94697f204666296  gcc/testsuite/gfortran.dg/pr108420.f90
+ ed294cde0b27b346f37fa7a32bf91ea7  gcc/testsuite/gfortran.dg/pr108421.f90
+ 28a670973e90363c78fb79b83bf40490  gcc/testsuite/gfortran.dg/pr108501.f90
+ 1836eed7a2cdfcdba4e590204735e288  gcc/testsuite/gfortran.dg/pr108502.f90
+ bb19038b0b7c42c6403475e34570ae3d  gcc/testsuite/gfortran.dg/pr108527.f90
+ a367beafff806aa88b45192d28091201  gcc/testsuite/gfortran.dg/pr108529.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
*************** cca539dda55db1fe3d9ab628330a364e  gcc/te
*** 77879,77885 ****
  8dc00e13e8017aa32673c1673ad9bb9b  gcc/testsuite/gfortran.dg/pr47054_1.f90
  dbb1bf91a8856be53abe8cd67ff0f627  gcc/testsuite/gfortran.dg/pr47054_2.f90
  18cfa159030f8b4b160fe0d8e9420c68  gcc/testsuite/gfortran.dg/pr47574.f90
! 0280bd4bfb5b153f438a9cfd70e3cd82  gcc/testsuite/gfortran.dg/pr47614.f
  9ff6a3335f233c3bfe3926ceefc544b9  gcc/testsuite/gfortran.dg/pr47757-1.f90
  f3e2e80b3229e8fec07b3263f3453fed  gcc/testsuite/gfortran.dg/pr47757-2.f90
  9d5355ff4338853aec406e4f5edae9ea  gcc/testsuite/gfortran.dg/pr47757-3.f90
--- 78172,78178 ----
  8dc00e13e8017aa32673c1673ad9bb9b  gcc/testsuite/gfortran.dg/pr47054_1.f90
  dbb1bf91a8856be53abe8cd67ff0f627  gcc/testsuite/gfortran.dg/pr47054_2.f90
  18cfa159030f8b4b160fe0d8e9420c68  gcc/testsuite/gfortran.dg/pr47574.f90
! 5bac258cba16f4d9d341434b93beae68  gcc/testsuite/gfortran.dg/pr47614.f
  9ff6a3335f233c3bfe3926ceefc544b9  gcc/testsuite/gfortran.dg/pr47757-1.f90
  f3e2e80b3229e8fec07b3263f3453fed  gcc/testsuite/gfortran.dg/pr47757-2.f90
  9d5355ff4338853aec406e4f5edae9ea  gcc/testsuite/gfortran.dg/pr47757-3.f90
*************** a3fc06fbb8d6c53a22462ce8a5fade30  gcc/te
*** 77939,77945 ****
  fcdffb26a3d7f862eb7d9eaee5b49b49  gcc/testsuite/gfortran.dg/pr58027.f90
  1ca63f28ae284979c3b2b1c01dc88abf  gcc/testsuite/gfortran.dg/pr58290.f90
  bc63d6ff9d523e63fa42eb148fceb4c6  gcc/testsuite/gfortran.dg/pr58484.f
! 756af060f4f83f1c7fac64450555d67c  gcc/testsuite/gfortran.dg/pr58968.f
  38761fc6ca20bfa8a4d47530bb0173c3  gcc/testsuite/gfortran.dg/pr59107.f90
  54642dc29547df928c052d04531cae6f  gcc/testsuite/gfortran.dg/pr59440-1.f90
  29517347731146172a1733a27581daa9  gcc/testsuite/gfortran.dg/pr59440-2.f90
--- 78232,78238 ----
  fcdffb26a3d7f862eb7d9eaee5b49b49  gcc/testsuite/gfortran.dg/pr58027.f90
  1ca63f28ae284979c3b2b1c01dc88abf  gcc/testsuite/gfortran.dg/pr58290.f90
  bc63d6ff9d523e63fa42eb148fceb4c6  gcc/testsuite/gfortran.dg/pr58484.f
! 2892cc9f5f933b8f3110403ca2a7f315  gcc/testsuite/gfortran.dg/pr58968.f
  38761fc6ca20bfa8a4d47530bb0173c3  gcc/testsuite/gfortran.dg/pr59107.f90
  54642dc29547df928c052d04531cae6f  gcc/testsuite/gfortran.dg/pr59440-1.f90
  29517347731146172a1733a27581daa9  gcc/testsuite/gfortran.dg/pr59440-2.f90
*************** b5430af005fc8cc1b6db9ceb57688fe3  gcc/te
*** 78189,78194 ****
--- 78482,78488 ----
  725e595013765639d219c2012948cd9d  gcc/testsuite/gfortran.dg/pr85797.f90
  e85019fafc2465365ffe52752040d464  gcc/testsuite/gfortran.dg/pr85798.f90
  6de8b7c7567dcceb9bbbf46563935272  gcc/testsuite/gfortran.dg/pr85816.f90
+ 81b431dbb9eb76aee80a85f44bfec348  gcc/testsuite/gfortran.dg/pr85877.f90
  052b31eec86fd95fce096fa3b0045dd3  gcc/testsuite/gfortran.dg/pr85895.f90
  e74818417ee12b9bac513c2c5a86fdd1  gcc/testsuite/gfortran.dg/pr85938.f90
  97f1dd51f9cd45871f43a46b11736fb7  gcc/testsuite/gfortran.dg/pr85975.f90
*************** a14ff0a951de87e6e87ae4eba23ae32e  gcc/te
*** 78421,78426 ****
--- 78715,78722 ----
  d21234ae551d720040933254256c6861  gcc/testsuite/gfortran.dg/pr95980.f90
  ac524c67dbf5c0b6588328a02f46a124  gcc/testsuite/gfortran.dg/pr95980_2.f90
  18491a80af7ea815a2d1049a91942f07  gcc/testsuite/gfortran.dg/pr95981.f90
+ 46d582cee8b64dec9357e5dc86eb10c8  gcc/testsuite/gfortran.dg/pr96024.f90
+ 95f12b0fb52668b7e207c4e71746b5c6  gcc/testsuite/gfortran.dg/pr96025.f90
  4cd7e1edd1f016be3c9016b1817d703e  gcc/testsuite/gfortran.dg/pr96038.f90
  e6acc3eb976952fc47981d6ab4ed7205  gcc/testsuite/gfortran.dg/pr96085.f90
  45d800261f64da91bf2398a00691d7c4  gcc/testsuite/gfortran.dg/pr96086.f90
*************** a78afb0368bddc411548d63311098918  gcc/te
*** 78459,78464 ****
--- 78755,78761 ----
  8a48e2264b578c77fe953f48d587af4e  gcc/testsuite/gfortran.dg/pr98411.f90
  661afc7f73f5e470bae7d7efa0a06cbd  gcc/testsuite/gfortran.dg/pr98661.f90
  6f14584e7c3845718818a0eab4f992ff  gcc/testsuite/gfortran.dg/pr98974.F90
+ c308feb04384f4d499a6fd6368791b62  gcc/testsuite/gfortran.dg/pr99036.f90
  ab9d92c634833928d03c56d815ba4f69  gcc/testsuite/gfortran.dg/pr99060.f90
  c4cc8ded91592083a4019a67d9837e2c  gcc/testsuite/gfortran.dg/pr99112.f90
  2b316ebb5f0c34f4b1c5764c77c3e824  gcc/testsuite/gfortran.dg/pr99204.f90
*************** ddf6a96210acd9846d96c96f4d91e038  gcc/te
*** 78675,78680 ****
--- 78972,78978 ----
  b6c22a1a69dfaeda3ed576a61060580d  gcc/testsuite/gfortran.dg/ptr-func-2.f90
  2878e4bfa1dc2e80db541a4a8304daaf  gcc/testsuite/gfortran.dg/ptr-func-3.f90
  cf5c200d1a2cf2ebf7bcad1269a85bc7  gcc/testsuite/gfortran.dg/ptr-func-4.f90
+ 2c7d131d00c984ad2bd259734d3144c7  gcc/testsuite/gfortran.dg/ptr-func-5.f90
  c3fb068a6513a1b586c18e7f98aee0e3  gcc/testsuite/gfortran.dg/ptr_func_assign_1.f08
  1e99e686da2b4f91da550dc5cbd8e4b4  gcc/testsuite/gfortran.dg/ptr_func_assign_2.f08
  deda23d08864e8fd5de581142c84d0c3  gcc/testsuite/gfortran.dg/ptr_func_assign_3.f08
*************** e6c7c7cbf695fec200c964f4e3b125ec  gcc/te
*** 78931,78936 ****
--- 79229,79235 ----
  eef9c4fb4632664f421c4067e9f7dd53  gcc/testsuite/gfortran.dg/save_4.f90
  9619c507201f560eff2135e49692d052  gcc/testsuite/gfortran.dg/save_5.f90
  bcec3240f40aa5093a05d7cd8024acf3  gcc/testsuite/gfortran.dg/save_6.f90
+ 751220763a6526f3644c983c901f1c25  gcc/testsuite/gfortran.dg/save_7.f90
  969e348eec71de0c469550da97db323d  gcc/testsuite/gfortran.dg/save_common.f90
  8077a483f690b8b2a62c945c63fa4b57  gcc/testsuite/gfortran.dg/save_parameter.f90
  1a1f478cd1af5c7ca0f1139bd3142853  gcc/testsuite/gfortran.dg/save_result.f90
*************** c6f31959a6f27a049ee01954f0a811f0  gcc/te
*** 79029,79034 ****
--- 79328,79334 ----
  768c7a5a7ac507eb3c4fef8d48f0a08b  gcc/testsuite/gfortran.dg/semicolon_free.f90
  c137ead9ed9a3cbd4ca5f75d50965b1c  gcc/testsuite/gfortran.dg/semicolon_free_2.f90
  e5ae2b5b89173ed8361161ef10e352e2  gcc/testsuite/gfortran.dg/sequence_types_1.f90
+ 600b9b73c8e3223409f781d7f1222630  gcc/testsuite/gfortran.dg/set_exponent_1.f90
  df7acd1342733a419754eb5cbcbc9a3f  gcc/testsuite/gfortran.dg/set_vm_limit.c
  8c21b488e7773e67f9472b6a064868b9  gcc/testsuite/gfortran.dg/shape_1.f90
  2a136a103d2e76c84d90569febf9b783  gcc/testsuite/gfortran.dg/shape_10.f90
*************** dfedf49d73e274e5c02366ccc586a488  gcc/te
*** 79537,79542 ****
--- 79837,79843 ----
  a38aec42f7e0058d56277b2bdbf39923  gcc/testsuite/gfortran.dg/unpack_bounds_3.f90
  a16cffa781475700beb86772ba80edef  gcc/testsuite/gfortran.dg/unpack_init_expr.f03
  77425eab660cd99123828c97f2657ca9  gcc/testsuite/gfortran.dg/unpack_mask_1.f90
+ 3f54f0cd1eb1eee8a11f6a750a442af4  gcc/testsuite/gfortran.dg/unpack_vector_1.f90
  21ad1ac865ebfe7d633e040a09836574  gcc/testsuite/gfortran.dg/unpack_zerosize_1.f90
  fbd9ec98233c6fecb3330e95ece01679  gcc/testsuite/gfortran.dg/unreferenced_use_assoc_1.f90
  7b43b740c1827893f88c955a8b8544ac  gcc/testsuite/gfortran.dg/unresolved_fixup_1.f90
*************** c4cdbb7826f698ed16a2354d36deafa1  gcc/te
*** 79672,79677 ****
--- 79973,79979 ----
  ca22fb0f028313d733f9f90efd6b98e6  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32377.f90
  19e92e71600fa931dce3409e389d0482  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32457.f90
  bba5c2c089f258e8640ba52dab163abe  gcc/testsuite/gfortran.dg/vect/pr100981-1.f90
+ 151833a2475cd28c993b813d478c8b37  gcc/testsuite/gfortran.dg/vect/pr107254.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
*************** be5803453205216364ce8b4a9f0356a8  gcc/te
*** 81526,81531 ****
--- 81828,81836 ----
  02b04a1bcbc91f013644c665394a541a  gcc/testsuite/gnat.dg/opt1.adb
  c36f023977042ca971d3f58ec44a533a  gcc/testsuite/gnat.dg/opt1.ads
  f9299b514c5c25293c940907f5a4059d  gcc/testsuite/gnat.dg/opt10.adb
+ 96951bbcc111d51906e9a661916136fc  gcc/testsuite/gnat.dg/opt100.adb
+ 0ab0b8847dab59911bd57ae14b153fc9  gcc/testsuite/gnat.dg/opt100_pkg.adb
+ edbbd0b00edd7e8662b7c3b2dafa9ede  gcc/testsuite/gnat.dg/opt100_pkg.ads
  5d50fb38b1ab84c39760906cb103c522  gcc/testsuite/gnat.dg/opt10_pkg.ads
  603264d4afdd2fd2174ea9c4cf4653ed  gcc/testsuite/gnat.dg/opt11.adb
  53160585b3a5d820b653e1e0d5f14c75  gcc/testsuite/gnat.dg/opt11.ads
*************** e610e24aa950be5f6c35dbb10447cb02  gcc/te
*** 81724,81729 ****
--- 82029,82038 ----
  cebcd76e2479c79677bbc78316b57186  gcc/testsuite/gnat.dg/opt96.adb
  be4ae336c50882da5846142a7791cd3a  gcc/testsuite/gnat.dg/opt96_pkg.adb
  15c1a01fd2ed3d1a51b5d70bb800b81b  gcc/testsuite/gnat.dg/opt96_pkg.ads
+ 98bbede57f573f4a759215419cb26366  gcc/testsuite/gnat.dg/opt99.adb
+ 5a7b2faacf185dcb0d549681fb261c3d  gcc/testsuite/gnat.dg/opt99_pkg1.adb
+ 270ad38b717c4d318e19c32599dd7fed  gcc/testsuite/gnat.dg/opt99_pkg1.ads
+ 6bd34debf3443a19d8e0cd9764e4138d  gcc/testsuite/gnat.dg/opt99_pkg2.ads
  feb376d91f5514b647b1ad61b025d828  gcc/testsuite/gnat.dg/opt9_pkg.ads
  0a9bf4dbd445ef99721501592f66cea2  gcc/testsuite/gnat.dg/others1.adb
  9f62042ad37161c5182cb92d70d0b24d  gcc/testsuite/gnat.dg/out_param.adb
*************** d6f97a056d7edd5832ebc058a0740e52  gcc/te
*** 82324,82329 ****
--- 82633,82639 ----
  d5c146078d224d7491b0622d11647b77  gcc/testsuite/gnat.dg/sso14.adb
  d0480aca937a9fe678328be80c523277  gcc/testsuite/gnat.dg/sso15.adb
  9a8b9c8338f7df1d565755ffc671257e  gcc/testsuite/gnat.dg/sso16.adb
+ 6c87692ce5565e68f354b3b1cb842c39  gcc/testsuite/gnat.dg/sso18.adb
  ff784f7bca69d0717e740273960b0387  gcc/testsuite/gnat.dg/sso2.adb
  ccf43eb5df39869bb23ff9110d3b93cb  gcc/testsuite/gnat.dg/sso2.ads
  6fe64945c0d0238672cdece04341c316  gcc/testsuite/gnat.dg/sso3.adb
*************** d56265e2a1a748cf215dbdfa2b2045c0  gcc/te
*** 84849,84855 ****
  59c449d9856c1d9abb57c3c96fccf9eb  gcc/testsuite/lib/go-torture.exp
  4b1e185024a94be744054157b9fa0d8e  gcc/testsuite/lib/go.exp
  d2c996c0f1e4f52698d0d195e6ac13b8  gcc/testsuite/lib/hwasan-dg.exp
! 642d0328ce602fa6ea3a213535de4da0  gcc/testsuite/lib/lto.exp
  68f849efff01c1f0a1b6f6a334fd4cea  gcc/testsuite/lib/mike-g++.exp
  f4e309b118df6bc1f55a0b5ed4e7807d  gcc/testsuite/lib/mike-gcc.exp
  dfa03e4b5bdd1b947f7c23113f25ef34  gcc/testsuite/lib/multiline.exp
--- 85159,85165 ----
  59c449d9856c1d9abb57c3c96fccf9eb  gcc/testsuite/lib/go-torture.exp
  4b1e185024a94be744054157b9fa0d8e  gcc/testsuite/lib/go.exp
  d2c996c0f1e4f52698d0d195e6ac13b8  gcc/testsuite/lib/hwasan-dg.exp
! 07c6090d0848f773ba2edb96258cd708  gcc/testsuite/lib/lto.exp
  68f849efff01c1f0a1b6f6a334fd4cea  gcc/testsuite/lib/mike-g++.exp
  f4e309b118df6bc1f55a0b5ed4e7807d  gcc/testsuite/lib/mike-gcc.exp
  dfa03e4b5bdd1b947f7c23113f25ef34  gcc/testsuite/lib/multiline.exp
*************** dfa03e4b5bdd1b947f7c23113f25ef34  gcc/te
*** 84861,84867 ****
  cc525046146fcc22f0ed46eaef6d6c8b  gcc/testsuite/lib/options.exp
  4356077d58e9164b4a0f859041ea57c9  gcc/testsuite/lib/plugin-support.exp
  d21b42e68cda8f47745d2babefc2107a  gcc/testsuite/lib/profopt.exp
! 3bf5d4eb2d9617844cabefebef3d2218  gcc/testsuite/lib/prune.exp
  9b94dfbb5d5e167bb2e2390303de9665  gcc/testsuite/lib/scanasm.exp
  77b098872b985d9089c10ba029c2355b  gcc/testsuite/lib/scandump.exp
  608b5374b252be291023c223f9a33dc9  gcc/testsuite/lib/scanipa.exp
--- 85171,85177 ----
  cc525046146fcc22f0ed46eaef6d6c8b  gcc/testsuite/lib/options.exp
  4356077d58e9164b4a0f859041ea57c9  gcc/testsuite/lib/plugin-support.exp
  d21b42e68cda8f47745d2babefc2107a  gcc/testsuite/lib/profopt.exp
! 436fd8352c0e77a78cdc56d276e544eb  gcc/testsuite/lib/prune.exp
  9b94dfbb5d5e167bb2e2390303de9665  gcc/testsuite/lib/scanasm.exp
  77b098872b985d9089c10ba029c2355b  gcc/testsuite/lib/scandump.exp
  608b5374b252be291023c223f9a33dc9  gcc/testsuite/lib/scanipa.exp
*************** bf57f760d7e706b8742823fbb639ae4c  gcc/te
*** 84875,84881 ****
  ee11afd0bed136fe5f9f4b0b9347fbc1  gcc/testsuite/lib/scanwpaipa.exp
  e85eac7191a9c0639c23f2d8cb32aa3d  gcc/testsuite/lib/target-libpath.exp
  29911997572e845d73d87588342bbc60  gcc/testsuite/lib/target-supports-dg.exp
! bc21273636ce21248bc8c920a67c422c  gcc/testsuite/lib/target-supports.exp
  3726aa6af2e0ec126a1f3165db93c458  gcc/testsuite/lib/target-utils.exp
  7f2401885e3237bcc8a97ce8be301082  gcc/testsuite/lib/timeout-dg.exp
  3159102522e362ff5b08ae959de2db09  gcc/testsuite/lib/timeout.exp
--- 85185,85191 ----
  ee11afd0bed136fe5f9f4b0b9347fbc1  gcc/testsuite/lib/scanwpaipa.exp
  e85eac7191a9c0639c23f2d8cb32aa3d  gcc/testsuite/lib/target-libpath.exp
  29911997572e845d73d87588342bbc60  gcc/testsuite/lib/target-supports-dg.exp
! d287d8054b60f62452ef24d9f47c54b1  gcc/testsuite/lib/target-supports.exp
  3726aa6af2e0ec126a1f3165db93c458  gcc/testsuite/lib/target-utils.exp
  7f2401885e3237bcc8a97ce8be301082  gcc/testsuite/lib/timeout-dg.exp
  3159102522e362ff5b08ae959de2db09  gcc/testsuite/lib/timeout.exp
*************** a5a19934fc7c58ec8c046fe943bcc7b2  gcc/te
*** 84942,84948 ****
  f6a135d669303e10360f4a9e17664aa7  gcc/testsuite/obj-c++.dg/cxx-class-1.mm
  7a5a474af4c3ae26683ee29295314d7b  gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
  2dd2f7dd6f655732fc606d8c85af825b  gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
! 118f7827cc56ea7303e814e19ff4f7a5  gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
  0f4f03268c6b5629c2c23fe7fbc06966  gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
  74ea4974ad0f897a229d4bd99f47da95  gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
  4d63d224c8c642188a58882a0609e394  gcc/testsuite/obj-c++.dg/defs.mm
--- 85252,85258 ----
  f6a135d669303e10360f4a9e17664aa7  gcc/testsuite/obj-c++.dg/cxx-class-1.mm
  7a5a474af4c3ae26683ee29295314d7b  gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
  2dd2f7dd6f655732fc606d8c85af825b  gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
! e91047651063a1662428088ff7456f48  gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
  0f4f03268c6b5629c2c23fe7fbc06966  gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
  74ea4974ad0f897a229d4bd99f47da95  gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
  4d63d224c8c642188a58882a0609e394  gcc/testsuite/obj-c++.dg/defs.mm
*************** b6a4bff612a08ec461838ac1b3bd23f1  gcc/te
*** 85049,85055 ****
  ae0cb1e1f2ed9485ab1abd0d8669c498  gcc/testsuite/obj-c++.dg/naming-3.mm
  dcb5ecceff49837d638a19ab2eabd0ad  gcc/testsuite/obj-c++.dg/naming-4.mm
  bb8ccf448c201adbf05356ac551899fb  gcc/testsuite/obj-c++.dg/no-extra-load.mm
! e5781d45f8249482300a6cabf2eefd87  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
  5b12ec15a14b9b9f9987ee302a9137e0  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
--- 85359,85365 ----
  ae0cb1e1f2ed9485ab1abd0d8669c498  gcc/testsuite/obj-c++.dg/naming-3.mm
  dcb5ecceff49837d638a19ab2eabd0ad  gcc/testsuite/obj-c++.dg/naming-4.mm
  bb8ccf448c201adbf05356ac551899fb  gcc/testsuite/obj-c++.dg/no-extra-load.mm
! 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
  5b12ec15a14b9b9f9987ee302a9137e0  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
*************** ab539e16480243bccd13cb0ab5c05a26  gcc/te
*** 85533,85539 ****
  81b21eb69c89e40578d3c8712e5193e2  gcc/testsuite/objc.dg/objc-foreach-3.m
  d6bb76e151385d5dcc0bccac5e79fa6e  gcc/testsuite/objc.dg/objc-foreach-4.m
  7aa5deeefbee0740247f45a83aea37f4  gcc/testsuite/objc.dg/objc-foreach-5.m
! cb9b5197bed9aef6cef86220a5ab2fd9  gcc/testsuite/objc.dg/objc-gc-4.m
  19ed68d9eed2befbaefc5dc8b866d0cf  gcc/testsuite/objc.dg/objc-nofilename-1.m
  35fb6a51ab2ee402a296c57fae46dd84  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
--- 85843,85849 ----
  81b21eb69c89e40578d3c8712e5193e2  gcc/testsuite/objc.dg/objc-foreach-3.m
  d6bb76e151385d5dcc0bccac5e79fa6e  gcc/testsuite/objc.dg/objc-foreach-4.m
  7aa5deeefbee0740247f45a83aea37f4  gcc/testsuite/objc.dg/objc-foreach-5.m
! 608ea2106bb549a54ca754a76a22fde2  gcc/testsuite/objc.dg/objc-gc-4.m
  19ed68d9eed2befbaefc5dc8b866d0cf  gcc/testsuite/objc.dg/objc-nofilename-1.m
  35fb6a51ab2ee402a296c57fae46dd84  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
*************** f75e637e91dac91b91c777479ef081fb  gcc/tr
*** 85935,85950 ****
  5b3d82167a78e6c870c4b85721b98f7d  gcc/tree-emutls.c
  df51783bb1013af8d36a6926324b9944  gcc/tree-hash-traits.h
  4e0ed6ef3bdd74441de24187193d838f  gcc/tree-hasher.h
! 511676ae9943534d43b199dfae5d4478  gcc/tree-if-conv.c
  a3ff52ffa889157518435812a966fe3d  gcc/tree-if-conv.h
! 57d82e2b2b776193ccc17a53320580fc  gcc/tree-inline.c
  b0a166f5b8df4431a3a01703e73ca5e0  gcc/tree-inline.h
! 7bbed0b509eec2f9ac682b47cd5237c2  gcc/tree-into-ssa.c
  84e9d715b2250b3a6d8f326c5b90c1a8  gcc/tree-into-ssa.h
  362bdb78a0bdfa101b91dba0c927dc5f  gcc/tree-iterator.c
  36ab5451f3575ada26fffe25b559d254  gcc/tree-iterator.h
! bcd24e6df75dc13de98c2ea3bb72fd00  gcc/tree-loop-distribution.c
! 8569b405b180aa6eaf3c9650d5fbdaee  gcc/tree-nested.c
  9b519af6b08c9d2fbe9dad37203b5196  gcc/tree-nested.h
  bf98a34c788757224ad19a297b7e6e98  gcc/tree-nrv.c
  31323bc7fd67cf0285f538efc0a1ee45  gcc/tree-object-size.c
--- 86245,86260 ----
  5b3d82167a78e6c870c4b85721b98f7d  gcc/tree-emutls.c
  df51783bb1013af8d36a6926324b9944  gcc/tree-hash-traits.h
  4e0ed6ef3bdd74441de24187193d838f  gcc/tree-hasher.h
! 31022778d18bf792a69a187ac79ca3b7  gcc/tree-if-conv.c
  a3ff52ffa889157518435812a966fe3d  gcc/tree-if-conv.h
! 75fbbf1adcb320a5718f2e08c024e18f  gcc/tree-inline.c
  b0a166f5b8df4431a3a01703e73ca5e0  gcc/tree-inline.h
! 6c5a02ff772cdfc006605f2111870348  gcc/tree-into-ssa.c
  84e9d715b2250b3a6d8f326c5b90c1a8  gcc/tree-into-ssa.h
  362bdb78a0bdfa101b91dba0c927dc5f  gcc/tree-iterator.c
  36ab5451f3575ada26fffe25b559d254  gcc/tree-iterator.h
! cccab62e1e945617803be890ebcc612b  gcc/tree-loop-distribution.c
! c9ed3e3c7133b073e16ace262b613d21  gcc/tree-nested.c
  9b519af6b08c9d2fbe9dad37203b5196  gcc/tree-nested.h
  bf98a34c788757224ad19a297b7e6e98  gcc/tree-nrv.c
  31323bc7fd67cf0285f538efc0a1ee45  gcc/tree-object-size.c
*************** d3b084ad7aba2560ef42b2f258f952f6  gcc/tr
*** 85956,85982 ****
  a51487616194a8071dfe4b9c3bd11c1d  gcc/tree-pass.h
  5699380a625e6242da8eea993e58e918  gcc/tree-phinodes.c
  853eb3b96a580d586e049ff23c1f1ca9  gcc/tree-phinodes.h
! 96a8529c97ec5c2d5f4bfc1414c403fd  gcc/tree-predcom.c
  0e721a7ed54aae97900bc285a55f9060  gcc/tree-pretty-print.c
  a47959dbcad350d44f1fb6b79a580f48  gcc/tree-pretty-print.h
  6e0dc1ffdcd6528a72da60eb226c8ec5  gcc/tree-profile.c
  4d7fa46a3c3b714a513a8cc862595763  gcc/tree-scalar-evolution.c
  3119791bf78200bcb022199390392521  gcc/tree-scalar-evolution.h
! d96860bf091765735df36806aaa21a7f  gcc/tree-sra.c
  1ae9bb0b98165f1efe0c7c7a11bab6cc  gcc/tree-sra.h
  ee9c205c9ab2fa90fe88b3ae0c79920e  gcc/tree-ssa-address.c
  c54597ef98c1ca43588073766641d8d8  gcc/tree-ssa-address.h
  1dc8bd000811175c3b54ac3d7057a41c  gcc/tree-ssa-alias-compare.h
! ae6b9755cd7d52e366ae8e3ff8a55b13  gcc/tree-ssa-alias.c
  c9427a5d21dd629e85e87b47aeb4fe74  gcc/tree-ssa-alias.h
! 97eeb8af4b63d82c62d38723598b98f3  gcc/tree-ssa-ccp.c
  c3a38b89c2fc91798eb9bcec7d1a921b  gcc/tree-ssa-ccp.h
  14f20b171e9eeef632fb82641a87fd7d  gcc/tree-ssa-coalesce.c
  dbf97ae62841bae185383de08c1010af  gcc/tree-ssa-coalesce.h
  7cda46f9d86f92ef2a6a9b13d9ea5458  gcc/tree-ssa-copy.c
  b47681fd6550b2337b9111c3b884c764  gcc/tree-ssa-dce.c
  f89d08a599ef7443309a0083d3eed3b5  gcc/tree-ssa-dce.h
! e6b364314b092283962e9b8fc40f2b2a  gcc/tree-ssa-dom.c
  5d4ec6bd4c2537b8b3b9934eeb5ac5bd  gcc/tree-ssa-dom.h
  1d91441633d5656eb9eb7aaffb6abfbf  gcc/tree-ssa-dse.c
  b0a51b2bfb537b29341db8e5e9d06c49  gcc/tree-ssa-dse.h
--- 86266,86292 ----
  a51487616194a8071dfe4b9c3bd11c1d  gcc/tree-pass.h
  5699380a625e6242da8eea993e58e918  gcc/tree-phinodes.c
  853eb3b96a580d586e049ff23c1f1ca9  gcc/tree-phinodes.h
! c39a05e74944c253a30c592f5e5c050f  gcc/tree-predcom.c
  0e721a7ed54aae97900bc285a55f9060  gcc/tree-pretty-print.c
  a47959dbcad350d44f1fb6b79a580f48  gcc/tree-pretty-print.h
  6e0dc1ffdcd6528a72da60eb226c8ec5  gcc/tree-profile.c
  4d7fa46a3c3b714a513a8cc862595763  gcc/tree-scalar-evolution.c
  3119791bf78200bcb022199390392521  gcc/tree-scalar-evolution.h
! d77845e3fdbc8ee510ec6e021838de11  gcc/tree-sra.c
  1ae9bb0b98165f1efe0c7c7a11bab6cc  gcc/tree-sra.h
  ee9c205c9ab2fa90fe88b3ae0c79920e  gcc/tree-ssa-address.c
  c54597ef98c1ca43588073766641d8d8  gcc/tree-ssa-address.h
  1dc8bd000811175c3b54ac3d7057a41c  gcc/tree-ssa-alias-compare.h
! 47b033b1d0ce877637ca3f13d1c7867f  gcc/tree-ssa-alias.c
  c9427a5d21dd629e85e87b47aeb4fe74  gcc/tree-ssa-alias.h
! 08f21094a7adde6f4140996dd8e711aa  gcc/tree-ssa-ccp.c
  c3a38b89c2fc91798eb9bcec7d1a921b  gcc/tree-ssa-ccp.h
  14f20b171e9eeef632fb82641a87fd7d  gcc/tree-ssa-coalesce.c
  dbf97ae62841bae185383de08c1010af  gcc/tree-ssa-coalesce.h
  7cda46f9d86f92ef2a6a9b13d9ea5458  gcc/tree-ssa-copy.c
  b47681fd6550b2337b9111c3b884c764  gcc/tree-ssa-dce.c
  f89d08a599ef7443309a0083d3eed3b5  gcc/tree-ssa-dce.h
! e8d307398085c8e9e10df7def0cee108  gcc/tree-ssa-dom.c
  5d4ec6bd4c2537b8b3b9934eeb5ac5bd  gcc/tree-ssa-dom.h
  1d91441633d5656eb9eb7aaffb6abfbf  gcc/tree-ssa-dse.c
  b0a51b2bfb537b29341db8e5e9d06c49  gcc/tree-ssa-dse.h
*************** f87b8cba0a5eaf206c581f51abff7795  gcc/tr
*** 85985,85993 ****
  5e21627768f782974d385f0b8591b7c3  gcc/tree-ssa-live.c
  92bca15e046dc5f13eb16bedaf5bdf70  gcc/tree-ssa-live.h
  98d45850103ddab74c7b6b7446089026  gcc/tree-ssa-loop-ch.c
! 440e59e128fa41f324523645d1c23303  gcc/tree-ssa-loop-im.c
  15f1defc34f3db829c93c302e1b7fd48  gcc/tree-ssa-loop-ivcanon.c
! 120e8a77d75728ac826cd04b9e0addf5  gcc/tree-ssa-loop-ivopts.c
  cc3adcca25191b12b03af31ce868f9f5  gcc/tree-ssa-loop-ivopts.h
  ac370f5c6ed5c448ce93e995b5b90a23  gcc/tree-ssa-loop-manip.c
  9101108741728365b900cefedbca0f1a  gcc/tree-ssa-loop-manip.h
--- 86295,86303 ----
  5e21627768f782974d385f0b8591b7c3  gcc/tree-ssa-live.c
  92bca15e046dc5f13eb16bedaf5bdf70  gcc/tree-ssa-live.h
  98d45850103ddab74c7b6b7446089026  gcc/tree-ssa-loop-ch.c
! dd195eca2449c8e9d51427eb1005726d  gcc/tree-ssa-loop-im.c
  15f1defc34f3db829c93c302e1b7fd48  gcc/tree-ssa-loop-ivcanon.c
! da7a763b8d68d52c1d4f38fa52b3a2eb  gcc/tree-ssa-loop-ivopts.c
  cc3adcca25191b12b03af31ce868f9f5  gcc/tree-ssa-loop-ivopts.h
  ac370f5c6ed5c448ce93e995b5b90a23  gcc/tree-ssa-loop-manip.c
  9101108741728365b900cefedbca0f1a  gcc/tree-ssa-loop-manip.h
*************** ac370f5c6ed5c448ce93e995b5b90a23  gcc/tr
*** 85998,86004 ****
  80c9261b9586acb7b3f4dd8057e45a00  gcc/tree-ssa-loop-unswitch.c
  7c5fb48d5c26a7cc6cc1328519686513  gcc/tree-ssa-loop.c
  e7b45902d3db8fd8ee5db0a06d9ebd6a  gcc/tree-ssa-loop.h
! 0162473e371a1803cd6e2ab6854b1a90  gcc/tree-ssa-math-opts.c
  21767eb2af5cf900357d0cdff9563462  gcc/tree-ssa-math-opts.h
  c4f4a7c3982de8a83d63700eeab025e2  gcc/tree-ssa-operands.c
  89fb9150ca77cb47d3eb6e508c47a938  gcc/tree-ssa-operands.h
--- 86308,86314 ----
  80c9261b9586acb7b3f4dd8057e45a00  gcc/tree-ssa-loop-unswitch.c
  7c5fb48d5c26a7cc6cc1328519686513  gcc/tree-ssa-loop.c
  e7b45902d3db8fd8ee5db0a06d9ebd6a  gcc/tree-ssa-loop.h
! 49535e84dc43edc22b7eb241cbb11c3d  gcc/tree-ssa-math-opts.c
  21767eb2af5cf900357d0cdff9563462  gcc/tree-ssa-math-opts.h
  c4f4a7c3982de8a83d63700eeab025e2  gcc/tree-ssa-operands.c
  89fb9150ca77cb47d3eb6e508c47a938  gcc/tree-ssa-operands.h
*************** aca824b1c600ea02a32079f9880c7dea  gcc/tr
*** 86007,86020 ****
  14975f2fbf60664af2dc43d15b308760  gcc/tree-ssa-pre.c
  53216871795caf5a9e7fc4db4952b4cf  gcc/tree-ssa-propagate.c
  2f608b017c74261fb20e2c50494fd211  gcc/tree-ssa-propagate.h
! eee92cf1f06ab8481d88af258f022f9d  gcc/tree-ssa-reassoc.c
  4f7d545bd96bf81d7343beee53323b74  gcc/tree-ssa-reassoc.h
! 4950a1f43992a5da4cf68d70522c8fb9  gcc/tree-ssa-sccvn.c
  cbdcf02ee4848c736cf8a9fee3c78084  gcc/tree-ssa-sccvn.h
  654628a1f0f77b863091072217fd81f1  gcc/tree-ssa-scopedtables.c
  89f4a37820db62debf8e9c7547c734db  gcc/tree-ssa-scopedtables.h
! 88ea1b186fca75987e9c87011bdc67e1  gcc/tree-ssa-sink.c
! dd6a2364f5f12e2e98ceb10340828c81  gcc/tree-ssa-strlen.c
  07cd4ed8db0b69a9df3f67a6c078ee8d  gcc/tree-ssa-strlen.h
  9fb3a1e33afb337d2a7ba2fc50492ee3  gcc/tree-ssa-structalias.c
  226048531a518fe848311ca013413b8d  gcc/tree-ssa-tail-merge.c
--- 86317,86330 ----
  14975f2fbf60664af2dc43d15b308760  gcc/tree-ssa-pre.c
  53216871795caf5a9e7fc4db4952b4cf  gcc/tree-ssa-propagate.c
  2f608b017c74261fb20e2c50494fd211  gcc/tree-ssa-propagate.h
! 195680d13dd61ce280c58ecc4cb79f78  gcc/tree-ssa-reassoc.c
  4f7d545bd96bf81d7343beee53323b74  gcc/tree-ssa-reassoc.h
! c70a726c1b1a70e7d6dde2a0f8c7a841  gcc/tree-ssa-sccvn.c
  cbdcf02ee4848c736cf8a9fee3c78084  gcc/tree-ssa-sccvn.h
  654628a1f0f77b863091072217fd81f1  gcc/tree-ssa-scopedtables.c
  89f4a37820db62debf8e9c7547c734db  gcc/tree-ssa-scopedtables.h
! 790c1b8ddfefcb28fa83b8c8da6711c8  gcc/tree-ssa-sink.c
! 2a74814d76e466173dbdd4a59430aeb5  gcc/tree-ssa-strlen.c
  07cd4ed8db0b69a9df3f67a6c078ee8d  gcc/tree-ssa-strlen.h
  9fb3a1e33afb337d2a7ba2fc50492ee3  gcc/tree-ssa-structalias.c
  226048531a518fe848311ca013413b8d  gcc/tree-ssa-tail-merge.c
*************** b252a171d500e0cab975d3ee869ac82d  gcc/tr
*** 86027,86033 ****
  7bc29409f7411f4024d12d0d0ac494ad  gcc/tree-ssa-threadupdate.h
  f8386c0188448d8e4805f34fc0e485b3  gcc/tree-ssa-uncprop.c
  ea574c34b2c417a9766c17108b7e8dbf  gcc/tree-ssa-uninit.c
! 29bb73fc2a8d417d652e5e3951bd183a  gcc/tree-ssa.c
  b1739bf5d288192714af8e0c8b1c1e7d  gcc/tree-ssa.h
  e61b4c021883038ea2d1201943d95548  gcc/tree-ssanames.c
  5f0d001d3a6ba13a46a13e9ddf70fd64  gcc/tree-ssanames.h
--- 86337,86343 ----
  7bc29409f7411f4024d12d0d0ac494ad  gcc/tree-ssa-threadupdate.h
  f8386c0188448d8e4805f34fc0e485b3  gcc/tree-ssa-uncprop.c
  ea574c34b2c417a9766c17108b7e8dbf  gcc/tree-ssa-uninit.c
! 0ebe7ed201fdfab089f555ee9da5b365  gcc/tree-ssa.c
  b1739bf5d288192714af8e0c8b1c1e7d  gcc/tree-ssa.h
  e61b4c021883038ea2d1201943d95548  gcc/tree-ssanames.c
  5f0d001d3a6ba13a46a13e9ddf70fd64  gcc/tree-ssanames.h
*************** e61b4c021883038ea2d1201943d95548  gcc/tr
*** 86041,86062 ****
  4af837819cb8ea23c7b76ee276d8c81c  gcc/tree-switch-conversion.h
  749044dc570d709e923db8e1de207a10  gcc/tree-tailcall.c
  9255abeccc3056f1b1dec591b5f7b8be  gcc/tree-vect-data-refs.c
! 1ebc96a1f1b17e2d4917ee7d5f298d55  gcc/tree-vect-generic.c
  faa5329b1f390b639f568c946e5a7777  gcc/tree-vect-loop-manip.c
! 242637c341c0caf2914dc3bcb4bd49d4  gcc/tree-vect-loop.c
! acca60fc389457619cfc622078ceff30  gcc/tree-vect-patterns.c
  d20a5aa2757fc39d3413e3c933b5a72c  gcc/tree-vect-slp-patterns.c
! 8ca7395eca12fec080251f1f107d9ed6  gcc/tree-vect-slp.c
! 009c29bf1d3888a29458c28ac5c11e99  gcc/tree-vect-stmts.c
  f6bd437c971fbfa030e5a50db314eb6d  gcc/tree-vector-builder.c
  ab254195b6cc59013f830527799845a1  gcc/tree-vector-builder.h
  a81602a0b8310bde0b9239772d873f96  gcc/tree-vectorizer.c
  792136b23c7db03363719c735c0ee4d4  gcc/tree-vectorizer.h
  b54ce4bde08399c6f5c90b9f9a513261  gcc/tree-vrp.c
  8b2b735df1dd01f7b24caa58f59891c7  gcc/tree-vrp.h
! 0adc6587548100af57ad30b73ca05895  gcc/tree.c
  54bdda1062541e94a710f93dc39c2732  gcc/tree.def
! 979c1c60ea69e2a2957e90be2a76611e  gcc/tree.h
  f5d9f8fed65a9d8d94c3bc3a54d17175  gcc/treestruct.def
  29d87aedf6eb8f5f9b858b6ce49f18ba  gcc/tristate.cc
  0462624e1a963d1b936e36b375115848  gcc/tristate.h
--- 86351,86372 ----
  4af837819cb8ea23c7b76ee276d8c81c  gcc/tree-switch-conversion.h
  749044dc570d709e923db8e1de207a10  gcc/tree-tailcall.c
  9255abeccc3056f1b1dec591b5f7b8be  gcc/tree-vect-data-refs.c
! fa3d1b7ce69a8d17ed7bc454487932da  gcc/tree-vect-generic.c
  faa5329b1f390b639f568c946e5a7777  gcc/tree-vect-loop-manip.c
! a395535355e0cfda3f747375413325a7  gcc/tree-vect-loop.c
! 203988e6abb4803e9aaebad41e562ada  gcc/tree-vect-patterns.c
  d20a5aa2757fc39d3413e3c933b5a72c  gcc/tree-vect-slp-patterns.c
! 651826aa7fb759a2afbbaf965da09c94  gcc/tree-vect-slp.c
! 22bcf7fc4bcb86b28aac757c9aabe029  gcc/tree-vect-stmts.c
  f6bd437c971fbfa030e5a50db314eb6d  gcc/tree-vector-builder.c
  ab254195b6cc59013f830527799845a1  gcc/tree-vector-builder.h
  a81602a0b8310bde0b9239772d873f96  gcc/tree-vectorizer.c
  792136b23c7db03363719c735c0ee4d4  gcc/tree-vectorizer.h
  b54ce4bde08399c6f5c90b9f9a513261  gcc/tree-vrp.c
  8b2b735df1dd01f7b24caa58f59891c7  gcc/tree-vrp.h
! 2783c26b54321979fd4c3f1132dc4010  gcc/tree.c
  54bdda1062541e94a710f93dc39c2732  gcc/tree.def
! a19c8f255b245f3003488a0502147b24  gcc/tree.h
  f5d9f8fed65a9d8d94c3bc3a54d17175  gcc/treestruct.def
  29d87aedf6eb8f5f9b858b6ce49f18ba  gcc/tristate.cc
  0462624e1a963d1b936e36b375115848  gcc/tristate.h
*************** c71a123f0c3811bd59554fb1ad3c863e  gcc/ub
*** 86071,86077 ****
  20c6e75500616d21c9936946caddc196  gcc/unique-ptr-tests.cc
  9f40370f290cb66e11bbd1a3249892a7  gcc/valtrack.c
  e9a5a2bcf328bb2c2dbec4ecfd97885e  gcc/valtrack.h
! 0195b138ae357db0146d1d1c4542e946  gcc/value-prof.c
  70a81436a47247d33da6b1e9538938e3  gcc/value-prof.h
  caeec7cd819a00f5cf83cd1c83a1913b  gcc/value-query.cc
  edd2102162203ffa195120a8bbef433c  gcc/value-query.h
--- 86381,86387 ----
  20c6e75500616d21c9936946caddc196  gcc/unique-ptr-tests.cc
  9f40370f290cb66e11bbd1a3249892a7  gcc/valtrack.c
  e9a5a2bcf328bb2c2dbec4ecfd97885e  gcc/valtrack.h
! cb06809d168b36aea2dadb6ed47049e8  gcc/value-prof.c
  70a81436a47247d33da6b1e9538938e3  gcc/value-prof.h
  caeec7cd819a00f5cf83cd1c83a1913b  gcc/value-query.cc
  edd2102162203ffa195120a8bbef433c  gcc/value-query.h
*************** b570e943102175a39a612c7e13a38a2a  gcc/va
*** 86080,86086 ****
  e4d9d9cdb525e7d4d2d226084ad63a4a  gcc/value-range.cc
  7b1ab74e3c70cb1e22679b101181c1ea  gcc/value-range.h
  b4a721a0d586edfb07a7dfe2a28a2e57  gcc/var-tracking.c
! 0ba7005a97ed487b4279e905a00e533d  gcc/varasm.c
  b8d6bbc9c059388ffa49a3df1eeeb2aa  gcc/varasm.h
  454e8d39b138d6457d65bb6ea63fc17c  gcc/varpool.c
  55d5e60e44e9f699246223cdcfc9fd2c  gcc/vec-perm-indices.c
--- 86390,86396 ----
  e4d9d9cdb525e7d4d2d226084ad63a4a  gcc/value-range.cc
  7b1ab74e3c70cb1e22679b101181c1ea  gcc/value-range.h
  b4a721a0d586edfb07a7dfe2a28a2e57  gcc/var-tracking.c
! 5bac24280d14f3b71b3fe442797293c8  gcc/varasm.c
  b8d6bbc9c059388ffa49a3df1eeeb2aa  gcc/varasm.h
  454e8d39b138d6457d65bb6ea63fc17c  gcc/varpool.c
  55d5e60e44e9f699246223cdcfc9fd2c  gcc/vec-perm-indices.c
*************** a5ff571a86711f1889f6148b6f0a1a72  gcc/vt
*** 86100,86115 ****
  b35c7bd9acfca64983cd187331ce7fc6  gcc/wide-int-bitmask.h
  8d3319eefa4768131dfef66304346db8  gcc/wide-int-print.cc
  010cd322521c1ee0542f4081fab7aaf6  gcc/wide-int-print.h
! b7defe2c7e4731284f747aa156bda45a  gcc/wide-int.cc
! fe759b1aa00610d99f1520cfe196ce92  gcc/wide-int.h
  3fbc3ce873dd1439e18734542a1cd26e  gcc/xcoff.h
  5a99ef1e1f569bf6e04aebf72d4afad4  gcc/xcoffout.c
  b683ffab756b05a88907135f72dec974  gcc/xcoffout.h
! 2985e36c2600337bbde4afeba4e536a6  gnattools/ChangeLog
  aaa671ca98fa9f94bfedd0ab395c5505  gnattools/Makefile.in
! 8385a4d775aa1b9949c1f88488491c86  gnattools/configure
! 1e063bb0b806e41cc0ed23d1b7047746  gnattools/configure.ac
! c4f96c1af9fbd72d1893af0e8ee88f54  gotools/ChangeLog
  6f7b730e8dfbdff92349c010bb18cf00  gotools/Makefile.am
  040d059ae30c619fdd918cd30bfbfae4  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
--- 86410,86425 ----
  b35c7bd9acfca64983cd187331ce7fc6  gcc/wide-int-bitmask.h
  8d3319eefa4768131dfef66304346db8  gcc/wide-int-print.cc
  010cd322521c1ee0542f4081fab7aaf6  gcc/wide-int-print.h
! 2124eec1dfdfe903e5f9b8b957b62d76  gcc/wide-int.cc
! 3f7c57c8afe9673aff295ccc58ea0024  gcc/wide-int.h
  3fbc3ce873dd1439e18734542a1cd26e  gcc/xcoff.h
  5a99ef1e1f569bf6e04aebf72d4afad4  gcc/xcoffout.c
  b683ffab756b05a88907135f72dec974  gcc/xcoffout.h
! f0c70c6b8982a9bb8589209b5531210c  gnattools/ChangeLog
  aaa671ca98fa9f94bfedd0ab395c5505  gnattools/Makefile.in
! 612bff48e9d0bfce4a8a8b2ce0e136ae  gnattools/configure
! 5904825aa8ada9f931733a205c8ed847  gnattools/configure.ac
! 5ba578a6ea80c04b3bd4005daee93f5f  gotools/ChangeLog
  6f7b730e8dfbdff92349c010bb18cf00  gotools/Makefile.am
  040d059ae30c619fdd918cd30bfbfae4  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
*************** c4e8176c1964a5ebe0a55900f2141299  gotool
*** 86120,86126 ****
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! d73a46aa8d4299508a777584456b6e44  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
  550446a6d9ed6d7ecce30d964b346154  include/ansidecl.h
--- 86430,86436 ----
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! b659f105ecd44a8ad0d1977ee30fa0cd  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
  550446a6d9ed6d7ecce30d964b346154  include/ansidecl.h
*************** e58c74ae29d8b45747b53a32b29ba5af  includ
*** 86167,86173 ****
  a19eadb3ab028fbbb684ab26b212fe84  include/xregex2.h
  05cc8ec924c7145a48d1d059c0b58df2  include/xtensa-config.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! 0cc3dde214d3eb99cf3b9c54dbbcff27  intl/ChangeLog
  ad7ef2b19b44e4d5518287805d6ded02  intl/Makefile.in
  6ec998bb4716c744bf8185e607f69301  intl/README
  76ca170a525d5b84d90f0478fe788931  intl/VERSION
--- 86477,86483 ----
  a19eadb3ab028fbbb684ab26b212fe84  include/xregex2.h
  05cc8ec924c7145a48d1d059c0b58df2  include/xtensa-config.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! ea4d75c7a75a5a8692c4c19bc015bf2c  intl/ChangeLog
  ad7ef2b19b44e4d5518287805d6ded02  intl/Makefile.in
  6ec998bb4716c744bf8185e607f69301  intl/README
  76ca170a525d5b84d90f0478fe788931  intl/VERSION
*************** ec38b8a64a735196854a8f7d76b79a78  intl/p
*** 86210,86221 ****
  b4758a0194e3e41362b939911472ce62  intl/relocatable.c
  bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
  43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
! bd5afc89cd9c4aed2a3b07f7c35b3ebe  libada/ChangeLog
  84bf37346561835ab6fb79f3753dbf61  libada/Makefile.in
  c851e0f50ad5e334f1cdf3b8c0bae3e2  libada/configure
  ad0c7ec998fb800e00bc645459274350  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! c5486c19736406439617d61bf5149484  libatomic/ChangeLog
  d910fab8524c7ab8918b567931a14133  libatomic/Makefile.am
  8f480fdd121c7e44c048fec76c598b1f  libatomic/Makefile.in
  879263fa8d462b018b9a483d6ac68e45  libatomic/acinclude.m4
--- 86520,86531 ----
  b4758a0194e3e41362b939911472ce62  intl/relocatable.c
  bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
  43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
! fe258fe4e62aa683f6287039d67947d0  libada/ChangeLog
  84bf37346561835ab6fb79f3753dbf61  libada/Makefile.in
  c851e0f50ad5e334f1cdf3b8c0bae3e2  libada/configure
  ad0c7ec998fb800e00bc645459274350  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! eebbe627fd1aeab0e90eb3af5d784bef  libatomic/ChangeLog
  d910fab8524c7ab8918b567931a14133  libatomic/Makefile.am
  8f480fdd121c7e44c048fec76c598b1f  libatomic/Makefile.in
  879263fa8d462b018b9a483d6ac68e45  libatomic/acinclude.m4
*************** e5afe77110b6d4c991ded92ab19ff55f  libato
*** 86240,86250 ****
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
  ff19d9adec40aace68f117295ca8e962  libatomic/config/rtems/host-config.h
  d162950eb155d3f7b71fa7fd06738e07  libatomic/config/rtems/lock.c
  dde9dd7b7e923b04f6925736c96905aa  libatomic/config/s390/exch_n.c
  ed3d69739cb2f35407547229f0393f92  libatomic/config/t-aix
  ad77cb9ee31bb899efbe3bbf69552fd8  libatomic/config/x86/fenv.c
  ae940a7b89ae9316379daa6d06c11015  libatomic/config/x86/host-config.h
! 516566ff2313eff082a068934d1ddd1c  libatomic/config/x86/init.c
  1a3caf1a22e09fc89766313026e541e3  libatomic/configure
  009993f4c4928e75d0ab6d3d73aab846  libatomic/configure.ac
  87f2fe7e2bce59d09f679252f292d515  libatomic/configure.tgt
--- 86550,86563 ----
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
  ff19d9adec40aace68f117295ca8e962  libatomic/config/rtems/host-config.h
  d162950eb155d3f7b71fa7fd06738e07  libatomic/config/rtems/lock.c
+ a8478ee8d2cd46e9a043499fcd5a5000  libatomic/config/s390/cas_n.c
  dde9dd7b7e923b04f6925736c96905aa  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
  ad77cb9ee31bb899efbe3bbf69552fd8  libatomic/config/x86/fenv.c
  ae940a7b89ae9316379daa6d06c11015  libatomic/config/x86/host-config.h
! b0b763dbb2ecced5d84e7a614d80d1c6  libatomic/config/x86/init.c
  1a3caf1a22e09fc89766313026e541e3  libatomic/configure
  009993f4c4928e75d0ab6d3d73aab846  libatomic/configure.ac
  87f2fe7e2bce59d09f679252f292d515  libatomic/configure.tgt
*************** c03a072efac9b30f8f8429ac52fd246b  libato
*** 86305,86311 ****
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! af231953141eb286b0b8dd94a2bd4dae  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
  e2733ae499e3face714f963e5163ef66  libbacktrace/Makefile.am
  f5ab4b9f2111a21142693282701ca531  libbacktrace/Makefile.in
--- 86618,86624 ----
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! aa9f6ccd0567112272550a637344eae7  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
  e2733ae499e3face714f963e5163ef66  libbacktrace/Makefile.am
  f5ab4b9f2111a21142693282701ca531  libbacktrace/Makefile.in
*************** a1a0a081f4a744549061bcb3714c3dad  libbac
*** 86353,86359 ****
  45e5c08b384a557511236842576c4857  libbacktrace/xcoff.c
  16559a9b859947ea3f119724e6184a22  libbacktrace/xztest.c
  b4592ed6fe2affe39672dd913198f71a  libbacktrace/ztest.c
! 6075b1d96c0ee6c5bd58b9e0a33b6398  libcc1/ChangeLog
  28f4a58e6f8e07b09cd25b0a1ad72059  libcc1/Makefile.am
  a02f5370fb2d8bff9e13e39745a680ca  libcc1/Makefile.in
  b39668f1b706dbfe7203b3cfa277b792  libcc1/aclocal.m4
--- 86666,86672 ----
  45e5c08b384a557511236842576c4857  libbacktrace/xcoff.c
  16559a9b859947ea3f119724e6184a22  libbacktrace/xztest.c
  b4592ed6fe2affe39672dd913198f71a  libbacktrace/ztest.c
! e39eb398206b0883783c76644c5b882d  libcc1/ChangeLog
  28f4a58e6f8e07b09cd25b0a1ad72059  libcc1/Makefile.am
  a02f5370fb2d8bff9e13e39745a680ca  libcc1/Makefile.in
  b39668f1b706dbfe7203b3cfa277b792  libcc1/aclocal.m4
*************** d7011f3caeeeb336058853a2a6ae7759  libcc1
*** 86385,86391 ****
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! 73836cc08c51d197e88a2b6679e9a291  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
  3d4a4494284f7f6d717caade46832e87  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
--- 86698,86704 ----
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! 2306704c50aae3a46662fb6e14ccbd25  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
  3d4a4494284f7f6d717caade46832e87  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
*************** a1b928d660ba86d7133b5ee270e45bcc  libcod
*** 86404,86410 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! e9528382b04de8e8b2951f52942d2c51  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  93f0c1663de0a7f51de84bcf52cf415a  libcpp/Makefile.in
  9d15bb14e9ac1a74366e673ea260722e  libcpp/aclocal.m4
--- 86717,86723 ----
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! f86437d681fca5dc211c16107b247e0f  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  93f0c1663de0a7f51de84bcf52cf415a  libcpp/Makefile.in
  9d15bb14e9ac1a74366e673ea260722e  libcpp/aclocal.m4
*************** aa753fa10493688739205dff0d332e7b  libcpp
*** 86412,86420 ****
  a82e3eb1d8561484e9ba80fe49aaa3d2  libcpp/config.in
  d8b25b32c46363f3c8d928ff9659642f  libcpp/configure
  ba01f7813ce714bfa7427ced165ee873  libcpp/configure.ac
! daafcf78bfd2e318f5c757e3d61bd1ed  libcpp/directives.c
  a66a22409e4a783d7044f888621c8bc2  libcpp/errors.c
! 663c725deffa3329ae6a2554c1e7e64f  libcpp/expr.c
  317ee9a4d4fd5e7d914307f5ba7151ff  libcpp/files.c
  d5218c1d5fc8cde726dc168fafef10a7  libcpp/generated_cpp_wcwidth.h
  0b7cb9146c5ba48f860378f633064ffc  libcpp/identifiers.c
--- 86725,86733 ----
  a82e3eb1d8561484e9ba80fe49aaa3d2  libcpp/config.in
  d8b25b32c46363f3c8d928ff9659642f  libcpp/configure
  ba01f7813ce714bfa7427ced165ee873  libcpp/configure.ac
! 285fe80b6fe0aa36c70bb91ec075e270  libcpp/directives.c
  a66a22409e4a783d7044f888621c8bc2  libcpp/errors.c
! 17086cc131942082bc7a791c97d65e8d  libcpp/expr.c
  317ee9a4d4fd5e7d914307f5ba7151ff  libcpp/files.c
  d5218c1d5fc8cde726dc168fafef10a7  libcpp/generated_cpp_wcwidth.h
  0b7cb9146c5ba48f860378f633064ffc  libcpp/identifiers.c
*************** bc0fe66954c989fdf43e0bbe096954b5  libcpp
*** 86431,86437 ****
  a8704715c342e0c595438ec99b83299f  libcpp/makeucnid.c
  016253cecf75a29fd5f5075b866cca1f  libcpp/mkdeps.c
  944a753ccf1b023047aaed1f1f362bec  libcpp/pch.c
! 66d04d8bc89629cd6ca2820ce59032c3  libcpp/po/ChangeLog
  236a7764238de3aa208e3a857c56f478  libcpp/po/be.gmo
  ede9d45d28b1c1cb82c92ff039a45d66  libcpp/po/be.po
  a64f63d1193f804860308855177c5f6a  libcpp/po/ca.gmo
--- 86744,86750 ----
  a8704715c342e0c595438ec99b83299f  libcpp/makeucnid.c
  016253cecf75a29fd5f5075b866cca1f  libcpp/mkdeps.c
  944a753ccf1b023047aaed1f1f362bec  libcpp/pch.c
! c0df2beafed6a11a810da02ec25b28ce  libcpp/po/ChangeLog
  236a7764238de3aa208e3a857c56f478  libcpp/po/be.gmo
  ede9d45d28b1c1cb82c92ff039a45d66  libcpp/po/be.po
  a64f63d1193f804860308855177c5f6a  libcpp/po/ca.gmo
*************** bcbe0b107dacf31d1cf1ca1261d43f1b  libcpp
*** 86481,86487 ****
  56610cf3fd7d260581ebd54124f17a78  libcpp/ucnid.h
  89258efea2d9a909c625ed72b6acbd8c  libcpp/ucnid.tab
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! 7c4a46981e1b31d34713e935baf4a96d  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
  1eef4e8e73dcf150b06bd03f9621374a  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
--- 86794,86800 ----
  56610cf3fd7d260581ebd54124f17a78  libcpp/ucnid.h
  89258efea2d9a909c625ed72b6acbd8c  libcpp/ucnid.tab
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! f794296cfb4f466a29f5c05313a9a5f4  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
  1eef4e8e73dcf150b06bd03f9621374a  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
*************** a97c47969dfc92a7666dfe3c2e1e1448  libdec
*** 86544,86550 ****
  7557e8f40c659cd1bb5f753e31c6a143  libdecnumber/dpd/decimal64.c
  8bd3494633aae56ffed31440b3d78709  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
! 3555496716856585bd114ba7a86be457  libffi/ChangeLog
  ba66fc19311348d373ec271be939a659  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
--- 86857,86863 ----
  7557e8f40c659cd1bb5f753e31c6a143  libdecnumber/dpd/decimal64.c
  8bd3494633aae56ffed31440b3d78709  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
! b359a38fe32eb2709b6f27b1207dd590  libffi/ChangeLog
  ba66fc19311348d373ec271be939a659  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
*************** d47c79b281339983862a8e52d8c73f0f  libffi
*** 86905,86913 ****
  291be426192f460f6a07dfe1c96ab094  libffi/testsuite/libffi.special/special.exp
  93fc3ea311b79f64004992807ce75d1e  libffi/testsuite/libffi.special/unwindtest.cc
  185d0795017fbbe253a13db8e34085f9  libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
! 6eb0d5982b6db18571060241a0f5b0a9  libgcc/ChangeLog
  90ca8ec10aa72a56ea751ad2cb5c131a  libgcc/Makefile.in
! baa9afece0e8bacf77a73da979ef7ffd  libgcc/config.host
  312fccd8251056a36e26bad71f9cfaa2  libgcc/config.in
  5d16c02b68779d0e7fb45016d4ecb4ac  libgcc/config/aarch64/aarch64-unwind.h
  646d68758bd6b30ca567cbceb14dfb6a  libgcc/config/aarch64/crtfastmath.c
--- 87218,87226 ----
  291be426192f460f6a07dfe1c96ab094  libffi/testsuite/libffi.special/special.exp
  93fc3ea311b79f64004992807ce75d1e  libffi/testsuite/libffi.special/unwindtest.cc
  185d0795017fbbe253a13db8e34085f9  libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
! bff2eb5d0a89cb50526f322672f82521  libgcc/ChangeLog
  90ca8ec10aa72a56ea751ad2cb5c131a  libgcc/Makefile.in
! 93556a381ebbadb36302bee1564ee40c  libgcc/config.host
  312fccd8251056a36e26bad71f9cfaa2  libgcc/config.in
  5d16c02b68779d0e7fb45016d4ecb4ac  libgcc/config/aarch64/aarch64-unwind.h
  646d68758bd6b30ca567cbceb14dfb6a  libgcc/config/aarch64/crtfastmath.c
*************** cfe47d82e0550bbf47dc813dc9bbe0e0  libgcc
*** 86917,86928 ****
  d8a39f13120bd3c04e6a660de012539c  libgcc/config/aarch64/libgcc-softfp.ver
  988f848a48f8b5e837cc00431d88c52f  libgcc/config/aarch64/linux-unwind.h
  40132133c0c5920f1fbe0e2f68fe1a20  libgcc/config/aarch64/lse-init.c
! 3dbd9bbf24aab9a0ce5e58a017487e43  libgcc/config/aarch64/lse.S
  b4ebe34df7eb6f156fa0092446240683  libgcc/config/aarch64/sfp-exceptions.c
  5686e75a58d21cab99056d441253793a  libgcc/config/aarch64/sfp-machine.h
  0fed261daa40e6ac5e19e0418624df97  libgcc/config/aarch64/sync-cache.c
  46ad32ea4432c33cc66b5c506f256f85  libgcc/config/aarch64/t-aarch64
! a21eb9a6807f6899bae0eba1b99913d8  libgcc/config/aarch64/t-lse
  2df62f8f58c3b33868deef587589dd2d  libgcc/config/aarch64/t-softfp
  cf8972e02bca2f3487befef7eb41b710  libgcc/config/aarch64/value-unwind.h
  4298c844b474b4c6e1fd422499d78722  libgcc/config/alpha/crtfastmath.c
--- 87230,87241 ----
  d8a39f13120bd3c04e6a660de012539c  libgcc/config/aarch64/libgcc-softfp.ver
  988f848a48f8b5e837cc00431d88c52f  libgcc/config/aarch64/linux-unwind.h
  40132133c0c5920f1fbe0e2f68fe1a20  libgcc/config/aarch64/lse-init.c
! 3249f3907d28a93bab13505596f1a45c  libgcc/config/aarch64/lse.S
  b4ebe34df7eb6f156fa0092446240683  libgcc/config/aarch64/sfp-exceptions.c
  5686e75a58d21cab99056d441253793a  libgcc/config/aarch64/sfp-machine.h
  0fed261daa40e6ac5e19e0418624df97  libgcc/config/aarch64/sync-cache.c
  46ad32ea4432c33cc66b5c506f256f85  libgcc/config/aarch64/t-aarch64
! 88a123d0c9ed9611199aa827ca596aa9  libgcc/config/aarch64/t-lse
  2df62f8f58c3b33868deef587589dd2d  libgcc/config/aarch64/t-softfp
  cf8972e02bca2f3487befef7eb41b710  libgcc/config/aarch64/value-unwind.h
  4298c844b474b4c6e1fd422499d78722  libgcc/config/alpha/crtfastmath.c
*************** f86b268e128ae9507dd4c4ab33f481bd  libgcc
*** 87033,87039 ****
  528c00778fc721cd65682dee59c24986  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  8694b2f379782b84ed6357615cf633d2  libgcc/config/avr/lib2funcs.c
! 0463102ac73d8b70755095df6a10d30f  libgcc/config/avr/libf7/ChangeLog
  01d9cd125602bd97e7101818005c93ea  libgcc/config/avr/libf7/asm-defs.h
  0b54a2cbfebb93a4e1bddfa3600d6f0b  libgcc/config/avr/libf7/f7-renames.h
  d2e81096820c9d7276656d444c139c73  libgcc/config/avr/libf7/f7-wraps.h
--- 87346,87352 ----
  528c00778fc721cd65682dee59c24986  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  8694b2f379782b84ed6357615cf633d2  libgcc/config/avr/lib2funcs.c
! 76aaab386aa600183c3a6d05245160d4  libgcc/config/avr/libf7/ChangeLog
  01d9cd125602bd97e7101818005c93ea  libgcc/config/avr/libf7/asm-defs.h
  0b54a2cbfebb93a4e1bddfa3600d6f0b  libgcc/config/avr/libf7/f7-renames.h
  d2e81096820c9d7276656d444c139c73  libgcc/config/avr/libf7/f7-wraps.h
*************** c0d4a5a9b2844505ec941ff60cae008f  libgcc
*** 87041,87047 ****
  bd55d461babc1d292e882d26b3147797  libgcc/config/avr/libf7/f7wraps.sh
  e967bbaef515b9bde9023a1a7a336849  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! 987f580afc3d26e1d2f693c55f7d1572  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
  9e2660f882f79c124c85b8732a55464e  libgcc/config/avr/libf7/libf7-common.mk
  d911b844dc79ba84d1e0184f8f67ed31  libgcc/config/avr/libf7/libf7-const.def
--- 87354,87360 ----
  bd55d461babc1d292e882d26b3147797  libgcc/config/avr/libf7/f7wraps.sh
  e967bbaef515b9bde9023a1a7a336849  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! 291b23e34bf1ddf0e9af2a5d1c0c8bde  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
  9e2660f882f79c124c85b8732a55464e  libgcc/config/avr/libf7/libf7-common.mk
  d911b844dc79ba84d1e0184f8f67ed31  libgcc/config/avr/libf7/libf7-const.def
*************** df9f2dd192dc7f0c2fa7379e97d7dd56  libgcc
*** 87115,87121 ****
  6869661ee0baed578d47394ab32af913  libgcc/config/darwin-crt-tm.c
  03e941235ffae6f01e89a827a6ce2281  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
! 0a39ed05e14b91757915624896a5823f  libgcc/config/darwin10-unwind-find-enc-func.c
  c71a778a00e36dfcea7f846c3f944d73  libgcc/config/epiphany/crti.S
  81ae5aa8ec7128f805369eae26a9ca51  libgcc/config/epiphany/crtint.S
  66f1c169dbd8ad3adee5b4141420edf6  libgcc/config/epiphany/crtm1reg-r43.S
--- 87428,87434 ----
  6869661ee0baed578d47394ab32af913  libgcc/config/darwin-crt-tm.c
  03e941235ffae6f01e89a827a6ce2281  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
! 416f37158b8f19edbb3c495781577dd5  libgcc/config/darwin10-unwind-find-enc-func.c
  c71a778a00e36dfcea7f846c3f944d73  libgcc/config/epiphany/crti.S
  81ae5aa8ec7128f805369eae26a9ca51  libgcc/config/epiphany/crtint.S
  66f1c169dbd8ad3adee5b4141420edf6  libgcc/config/epiphany/crtm1reg-r43.S
*************** a5336bdb818cef70b030985f1ecd71d2  libgcc
*** 87324,87330 ****
  106eb3ec1043b9c1da426cc9d86d298d  libgcc/config/ia64/vms-unwind.h
  3111db86980b8c9207be8642a36d5dd2  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! d45ed72194da04b134152c4f522c63ed  libgcc/config/libbid/ChangeLog
  877df4b05d912fc2033823fa0eece3af  libgcc/config/libbid/_addsub_dd.c
  a3d813dc882ec4c07e412c32c9b380e1  libgcc/config/libbid/_addsub_sd.c
  3cd22bfaff5638bc2cb990fbc4e906cd  libgcc/config/libbid/_addsub_td.c
--- 87637,87643 ----
  106eb3ec1043b9c1da426cc9d86d298d  libgcc/config/ia64/vms-unwind.h
  3111db86980b8c9207be8642a36d5dd2  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! d781b2eb9746a66453f9924c4be916f2  libgcc/config/libbid/ChangeLog
  877df4b05d912fc2033823fa0eece3af  libgcc/config/libbid/_addsub_dd.c
  a3d813dc882ec4c07e412c32c9b380e1  libgcc/config/libbid/_addsub_sd.c
  3cd22bfaff5638bc2cb990fbc4e906cd  libgcc/config/libbid/_addsub_td.c
*************** ada9a39786da3b2e999f7440a17a1ed7  libgcc
*** 88125,88132 ****
  7f567bcd22705a965e07f79e8f68ebaa  libgcc/config/stormy16/umodsi3.c
  f199b38114ce849b77b38bd475d72cff  libgcc/config/t-crtfm
  060a49bb5c4a53a2125123d4cbd571de  libgcc/config/t-crtstuff-pic
! 06e78a9599e0fde8f283aa4d9bed8e2e  libgcc/config/t-darwin
  f699f9e7159ba2c6033406086c5c8299  libgcc/config/t-darwin-ehs
  ee7ad6460936fc6f3f89ecb711376477  libgcc/config/t-dfprules
  d747115cbcc2bd56b6b4f73c350c2ae3  libgcc/config/t-eh-dw2-dip
  b9d08c1cbead9131f216accd515ec32c  libgcc/config/t-fdpbit
--- 88438,88448 ----
  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
*************** d2f04dc4b7a8d7df8c1cbc551b037ded  libgcc
*** 88146,88152 ****
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
  bf9d89259ee614c5ffe517d943e09be5  libgcc/config/t-slibgcc
! 3ecc4173a1b262e4770c789455b2cfc9  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
  d6e035c76b062969d2034bfb0db3e68b  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
--- 88462,88468 ----
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
  bf9d89259ee614c5ffe517d943e09be5  libgcc/config/t-slibgcc
! 588d81383c65cf44cee60a4c7ff77fcb  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
  d6e035c76b062969d2034bfb0db3e68b  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
*************** e67a974e1f8cb55dcc72068be10e9832  libgcc
*** 88381,88387 ****
  8a8461c4f8e531d7252eacf261e3799b  libgcc/vtv_end_preinit.c
  d1bdf1e757a5a9eeb3bc447fc6938f48  libgcc/vtv_start.c
  f99c5f0b1f8f77dbbb1db940bb61ef02  libgcc/vtv_start_preinit.c
! 95e78facf3c971311d7c0a2b14be3033  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
--- 88697,88703 ----
  8a8461c4f8e531d7252eacf261e3799b  libgcc/vtv_end_preinit.c
  d1bdf1e757a5a9eeb3bc447fc6938f48  libgcc/vtv_start.c
  f99c5f0b1f8f77dbbb1db940bb61ef02  libgcc/vtv_start_preinit.c
! b9cecd49614c34e0d2561524255d2f3d  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
*************** caf93ff057c135366a3fabf9c1992ad9  libgo/
*** 93173,93179 ****
  0b7cc30b317196a42882ace5a55527bd  libgo/go/syscall/libcall_hurd.go
  562e5aacf2778a3c9a00918069e43b2f  libgo/go/syscall/libcall_hurd_386.go
  ad4306c7d52c93cc9cdfbaa2415c8ad4  libgo/go/syscall/libcall_irix.go
! 2f1987db41335974b8c0d5af17cf3895  libgo/go/syscall/libcall_linux.go
  08d02e9ba31a2f132b6670d56e5f9a91  libgo/go/syscall/libcall_linux_386.go
  d0dfa8e45cee5defb536480f056ed447  libgo/go/syscall/libcall_linux_alpha.go
  0f110f6b4b28d847963c11d0307ebbfb  libgo/go/syscall/libcall_linux_amd64.go
--- 93489,93495 ----
  0b7cc30b317196a42882ace5a55527bd  libgo/go/syscall/libcall_hurd.go
  562e5aacf2778a3c9a00918069e43b2f  libgo/go/syscall/libcall_hurd_386.go
  ad4306c7d52c93cc9cdfbaa2415c8ad4  libgo/go/syscall/libcall_irix.go
! 40420bf875a1f378e0c79829b064df72  libgo/go/syscall/libcall_linux.go
  08d02e9ba31a2f132b6670d56e5f9a91  libgo/go/syscall/libcall_linux_386.go
  d0dfa8e45cee5defb536480f056ed447  libgo/go/syscall/libcall_linux_alpha.go
  0f110f6b4b28d847963c11d0307ebbfb  libgo/go/syscall/libcall_linux_amd64.go
*************** da8feb87689c14c2ade32638da912eac  libgo/
*** 93763,93769 ****
  9f3cbb4598995168f1b1042a587ee8e9  libgo/runtime/runtime_c.c
  7e8c8817ee732c944857259927850d02  libgo/runtime/stack.c
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
! 3ed2085cb41333632578bcadc9dc38b7  libgo/sysinfo.c
  64195708a46fb2d5225149f15a8e3991  libgo/testsuite/Makefile.am
  a88e7b262182c586e88c9684af1ccc29  libgo/testsuite/Makefile.in
  180c96a619276205ec9fc8e8217b67bd  libgo/testsuite/config/default.exp
--- 94079,94085 ----
  9f3cbb4598995168f1b1042a587ee8e9  libgo/runtime/runtime_c.c
  7e8c8817ee732c944857259927850d02  libgo/runtime/stack.c
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
! bbdd09eff35db84aaca212e617f7a7a5  libgo/sysinfo.c
  64195708a46fb2d5225149f15a8e3991  libgo/testsuite/Makefile.am
  a88e7b262182c586e88c9684af1ccc29  libgo/testsuite/Makefile.in
  180c96a619276205ec9fc8e8217b67bd  libgo/testsuite/config/default.exp
*************** e3e86019491a40bd4f45424d7ce11037  libgo/
*** 93772,93778 ****
  c5574d106d35be5d94e80301b0855ada  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! ec2a66db82d0f24a63e3418b3247e9ad  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  775674136485d314e8cfa08ec26c4fc4  libgomp/Makefile.am
  cc0f858ff11f575dddb9c6738a27e009  libgomp/Makefile.in
--- 94088,94094 ----
  c5574d106d35be5d94e80301b0855ada  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 1ffbbc864d940ea48e2573fd8a0457a7  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  775674136485d314e8cfa08ec26c4fc4  libgomp/Makefile.am
  cc0f858ff11f575dddb9c6738a27e009  libgomp/Makefile.in
*************** de1c2d0c718443d5a90b60ea327939da  libgom
*** 93903,93912 ****
  a9602ab9ee9f89734074f35456117573  libgomp/libgomp-plugin.c
  465ccd19218bce34f9416c8e5367ac12  libgomp/libgomp-plugin.h
  aaa17bf11b59931da2d709d5a2e528a2  libgomp/libgomp.h
! 68a20844b29390c9e09e2416ac66b5b9  libgomp/libgomp.info
  67964eb0101a54721e14945594dc2c5a  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 1207eb54aa3a040f8b931b86d5d21b1d  libgomp/libgomp.texi
  b474ebd58d1c5d3bcb39f0c5f2efec6a  libgomp/libgomp_f.h.in
  09ffcd91d661a0b21fe7c335ce09c201  libgomp/libgomp_g.h
  8233367e108fccb64e978ccda1dd0951  libgomp/lock.c
--- 94219,94228 ----
  a9602ab9ee9f89734074f35456117573  libgomp/libgomp-plugin.c
  465ccd19218bce34f9416c8e5367ac12  libgomp/libgomp-plugin.h
  aaa17bf11b59931da2d709d5a2e528a2  libgomp/libgomp.h
! 432d5efca3f07728384abbca918233db  libgomp/libgomp.info
  67964eb0101a54721e14945594dc2c5a  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 35bd4b0ff6c30e1469eefe3679e00b15  libgomp/libgomp.texi
  b474ebd58d1c5d3bcb39f0c5f2efec6a  libgomp/libgomp_f.h.in
  09ffcd91d661a0b21fe7c335ce09c201  libgomp/libgomp_g.h
  8233367e108fccb64e978ccda1dd0951  libgomp/lock.c
*************** e372584ef8304cf52e4e09a9fc05adf3  libgom
*** 93944,93951 ****
  954d195e8d56380488976617fde73813  libgomp/single.c
  e6cf92cd98976f129367e400696fabbb  libgomp/splay-tree.c
  48ca4acfe2742359f3e2a732ec5d92d4  libgomp/splay-tree.h
! 3671c9767a3fc1f7e8f80f6478c46c2e  libgomp/target.c
! 7d9ef00b8b9879aafb854635ed8dcd09  libgomp/task.c
  ff8d8695435d2fd418bcc6437db02562  libgomp/taskloop.c
  1d1cca28977e6aef439521c8d10eed90  libgomp/team.c
  8d61131215921c894f5e0449c79c0a18  libgomp/teams.c
--- 94260,94267 ----
  954d195e8d56380488976617fde73813  libgomp/single.c
  e6cf92cd98976f129367e400696fabbb  libgomp/splay-tree.c
  48ca4acfe2742359f3e2a732ec5d92d4  libgomp/splay-tree.h
! 8069e8d901e58ae167f068c77f31f8ba  libgomp/target.c
! d28876ac11c1d87fccada014c29d267a  libgomp/task.c
  ff8d8695435d2fd418bcc6437db02562  libgomp/taskloop.c
  1d1cca28977e6aef439521c8d10eed90  libgomp/team.c
  8d61131215921c894f5e0449c79c0a18  libgomp/teams.c
*************** bddf1919febc77ab73283f66e954b61e  libgom
*** 94051,94056 ****
--- 94367,94373 ----
  3bbd0f0d348eb705be604978b2e32097  libgomp/testsuite/libgomp.c++/member-7.C
  1af322f02a0df2cf1f3c2c01d328da07  libgomp/testsuite/libgomp.c++/nested-1.C
  3f755c96f4b692988ea0d1ddeef1ca9b  libgomp/testsuite/libgomp.c++/parallel-1.C
+ 918bd233ad318b00f080ec4f186b4ee1  libgomp/testsuite/libgomp.c++/pr108180.C
  c57d4e906a72b08e5f49bef40306b63f  libgomp/testsuite/libgomp.c++/pr24455-1.C
  e922df8c56b5c5885b9aa8d370725ea9  libgomp/testsuite/libgomp.c++/pr24455.C
  ebbf9a13ba035141ba01b3281fd27fea  libgomp/testsuite/libgomp.c++/pr26691.C
*************** dfe1951e336cd10cf4b2330c5ffb28f4  libgom
*** 94266,94271 ****
--- 94583,94589 ----
  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
+ 010e1c442bf8c18b7045c53d36e8346e  libgomp/testsuite/libgomp.c-c++-common/pr106981.c
  67c38424bb3c5c571b180f7bdadaa4f8  libgomp/testsuite/libgomp.c-c++-common/pr45784.c
  68cf777b22e15a310c790cabde33a5f1  libgomp/testsuite/libgomp.c-c++-common/pr64824.c
  800ed634329eb97a562e7e84ebd4044b  libgomp/testsuite/libgomp.c-c++-common/pr64868.c
*************** d2cb6d4c0500a7f9ba372f1dbf3296c1  libgom
*** 94324,94329 ****
--- 94642,94649 ----
  e4f419faa09d744436aad29d88eb43cf  libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c
  d284915ed4a4ac417bfb2b7632453bec  libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c
  9c603541ce46d78d4526034634edb381  libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c
+ e653bf8d31dab3838d4fca110a3ce845  libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c
+ 6fc6fff584c1f373ed1f3621bae88c86  libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c
  47acc8ff8c516165766737c2f13be4cf  libgomp/testsuite/libgomp.c-c++-common/task-reduction-2.c
  33b998ac8605f9aab9808c883f2e85eb  libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c
  5ab2e1d3a94c19b612a71f802938e9d8  libgomp/testsuite/libgomp.c-c++-common/task-reduction-4.c
*************** ebdfdc0bfc1675a26f73ba66329d6e75  libgom
*** 94533,94538 ****
--- 94853,94859 ----
  dce925481bd33e4b6155a992941a2741  libgomp/testsuite/libgomp.c/places-7.c
  033508b78702497acf629bd938d3000c  libgomp/testsuite/libgomp.c/places-8.c
  bb57a9ccf51a738ab2985a513801a658  libgomp/testsuite/libgomp.c/pr104385.c
+ 37f576b8026bd1367998c4594550703d  libgomp/testsuite/libgomp.c/pr108459.c
  c522146f1617da47efbc34dedb563f61  libgomp/testsuite/libgomp.c/pr24455-1.c
  4d9e31cef64ff399334db6c29e3a07db  libgomp/testsuite/libgomp.c/pr24455.c
  5f9c41745fbf27e0d2ca8e182c9ff34f  libgomp/testsuite/libgomp.c/pr26171.c
*************** cfb96280c2ccf2711f5cc008a7b246ae  libgom
*** 94685,94691 ****
  3676a99310c885b9ffc9885d81871df4  libgomp/testsuite/libgomp.c/target-29.c
  b7efacf79d1aeccedabb2bb25be9f758  libgomp/testsuite/libgomp.c/target-3.c
  89b93437359f4de22f03c55eb9283547  libgomp/testsuite/libgomp.c/target-30.c
! fb05ccdba2c69c6ada8c59531dc61e6b  libgomp/testsuite/libgomp.c/target-31.c
  dceaa3615119793c5e2cc8a17d2db8bf  libgomp/testsuite/libgomp.c/target-32.c
  bccccd438324ee9e479d4e3a0bdb6d81  libgomp/testsuite/libgomp.c/target-33.c
  1ac6fb011b9f01d7645493e720fffe9b  libgomp/testsuite/libgomp.c/target-34.c
--- 95006,95012 ----
  3676a99310c885b9ffc9885d81871df4  libgomp/testsuite/libgomp.c/target-29.c
  b7efacf79d1aeccedabb2bb25be9f758  libgomp/testsuite/libgomp.c/target-3.c
  89b93437359f4de22f03c55eb9283547  libgomp/testsuite/libgomp.c/target-30.c
! 95908bcfba12e260232003299ef50b2d  libgomp/testsuite/libgomp.c/target-31.c
  dceaa3615119793c5e2cc8a17d2db8bf  libgomp/testsuite/libgomp.c/target-32.c
  bccccd438324ee9e479d4e3a0bdb6d81  libgomp/testsuite/libgomp.c/target-33.c
  1ac6fb011b9f01d7645493e720fffe9b  libgomp/testsuite/libgomp.c/target-34.c
*************** f7ff00e5f2a30832f7f427c91fa1f61b  libgom
*** 94714,94719 ****
--- 95035,95042 ----
  d3e7c403248ba696f161f0c29c1f87a6  libgomp/testsuite/libgomp.c/task-4.c
  d4661425a651c88d20ba240b4b095d25  libgomp/testsuite/libgomp.c/task-5.c
  44bdb32169338741ef61362037413b94  libgomp/testsuite/libgomp.c/task-6.c
+ be9ace9f504e4b04cbe60d9c44b6ec06  libgomp/testsuite/libgomp.c/task-7.c
+ fa0452ae69f7810be8c0d18767e0b973  libgomp/testsuite/libgomp.c/task-8.c
  38213b90919e07d4d9f35aca2fd48cdd  libgomp/testsuite/libgomp.c/task-reduction-1.c
  ccf79f1a3cd3d9897f6ea88c19bfbdc8  libgomp/testsuite/libgomp.c/task-reduction-2.c
  e25fde9ed6b03c3c743ea8cf6c8eaa3e  libgomp/testsuite/libgomp.c/task-reduction-3.c
*************** a0fea6593244c117295ec1c75e63b64f  libgom
*** 94878,94883 ****
--- 95201,95207 ----
  e3121f156cff11c333c32e13f4f02f1c  libgomp/testsuite/libgomp.fortran/examples-4/teams-6.f90
  f221242394d1d1eed14fbd76d9a03c2f  libgomp/testsuite/libgomp.fortran/fortran.exp
  1d7f490f3aa22662cdd277712b26a462  libgomp/testsuite/libgomp.fortran/is_device_ptr-1.f90
+ 7d6e994b12e9cf90a0da46994b83ba45  libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90
  c25692d207e679ebce7864339e12a85f  libgomp/testsuite/libgomp.fortran/jacobi.f
  de6f55a3f86dc416877253cfdf1ab448  libgomp/testsuite/libgomp.fortran/lastprivate-conditional-10.f90
  ae72f9bef5c27e6ae84ab0ff6ee16399  libgomp/testsuite/libgomp.fortran/lastprivate1.f90
*************** d58b22d6389008961e84f8a1b3d9a8f9  libgom
*** 95063,95068 ****
--- 95387,95393 ----
  5b0545422a5d32741adf1b28e189108a  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-1.f90
  95257bb64bc7b70916e7cf5e4c13ac0a  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-2.f90
  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
  fecda9fc3e70ac57c13ecf7a85196138  libgomp/testsuite/libgomp.fortran/vla1.f90
  4bd76ef74f55ed2027a8be5f22222133  libgomp/testsuite/libgomp.fortran/vla2.f90
*************** e8a3245c095430c8ef2413afe2ee4c48  libgom
*** 95716,95722 ****
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
  8ad28ef1808c27a75ad52229a13307c4  libgomp/work.c
! 0600fee6b19aff2c196bbd8652e43fa4  libhsail-rt/ChangeLog
  9147b482b39962a71e580b4a8265285e  libhsail-rt/Makefile.am
  f63e3c959c7490f1fbe708067e4884ae  libhsail-rt/Makefile.in
  de97a355fadb5753d182cbcf06b1b33a  libhsail-rt/README
--- 96041,96047 ----
  1d2e2e1ab9f0d92351625f2c5661dbb8  libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90
  989e6535f20045be32e9e91643a0b08f  libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90
  8ad28ef1808c27a75ad52229a13307c4  libgomp/work.c
! 8199367cfb5b8c9a3936e07edaf953d0  libhsail-rt/ChangeLog
  9147b482b39962a71e580b4a8265285e  libhsail-rt/Makefile.am
  f63e3c959c7490f1fbe708067e4884ae  libhsail-rt/Makefile.in
  de97a355fadb5753d182cbcf06b1b33a  libhsail-rt/README
*************** f35af2a2efaa8dd337095878b57cabf5  libhsa
*** 95743,95754 ****
  ef9f05873915c22cae79ef5545355353  libhsail-rt/target-config.h.in
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 3ef05da1891969dfc77c23fe81145f5f  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  d2b139408a3f08c5813183e34dc39b38  libiberty/Makefile.in
  c68dbf7834af4281ebd84caa3fd54680  libiberty/README
  f9b2cd52c3c30368d71459347fb64849  libiberty/_doprnt.c
! ad7456c201ca1e60520e6955b41a964c  libiberty/acinclude.m4
  d1955a5319e9f2bf4d714152f8da1d1a  libiberty/aclocal.m4
  e60c2e7c5dcdd19510066c13f1a527d3  libiberty/alloca.c
  2a8c5652b247080a01280f8c6af37fdc  libiberty/argv.c
--- 96068,96079 ----
  ef9f05873915c22cae79ef5545355353  libhsail-rt/target-config.h.in
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 42df9bda84ab9b70a31fb6a816b4490e  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  d2b139408a3f08c5813183e34dc39b38  libiberty/Makefile.in
  c68dbf7834af4281ebd84caa3fd54680  libiberty/README
  f9b2cd52c3c30368d71459347fb64849  libiberty/_doprnt.c
! 2e1dbd37d12611c5ab73d891f76df8da  libiberty/acinclude.m4
  d1955a5319e9f2bf4d714152f8da1d1a  libiberty/aclocal.m4
  e60c2e7c5dcdd19510066c13f1a527d3  libiberty/alloca.c
  2a8c5652b247080a01280f8c6af37fdc  libiberty/argv.c
*************** c490c2d0e84347da40a272a019f71dd4  libibe
*** 95772,95778 ****
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! 56a45e5f8af31c8caed97f4e4dc5379f  libiberty/configure
  a93da0f9e4f38f080e092efb748971a0  libiberty/configure.ac
  5824bd0f9be9f4fa74bb3bdc7fd9431c  libiberty/configure.com
  3f7c04aad9685c914253ef29a611199e  libiberty/copying-lib.texi
--- 96097,96103 ----
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! bad9c83898f551f0fcf3586aee84ec2f  libiberty/configure
  a93da0f9e4f38f080e092efb748971a0  libiberty/configure.ac
  5824bd0f9be9f4fa74bb3bdc7fd9431c  libiberty/configure.com
  3f7c04aad9685c914253ef29a611199e  libiberty/copying-lib.texi
*************** cc534c2ea00ea0b5e49ba8f61c6e467d  libibe
*** 95873,95879 ****
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  f214096086d1747033efa505022dd89c  libiberty/strsignal.c
! 4f7ee7afbc48687f2bb8436658acff27  libiberty/strstr.c
  ef49b0148e933f2d05c4db04f2e84822  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
--- 96198,96204 ----
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  f214096086d1747033efa505022dd89c  libiberty/strsignal.c
! 118932d11e6b27c7319a4397c2b933f7  libiberty/strstr.c
  ef49b0148e933f2d05c4db04f2e84822  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
*************** b2c289eb14e9197dcad172f3acba12b7  libibe
*** 95910,95916 ****
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  8d3c8fb3f736a2aa560ea573c413e8a7  libiberty/xstrndup.c
  e99d7e473939c4eba9b0590e304ce757  libiberty/xvasprintf.c
! 4a6c2b57c38c180822666ad7c42a8d10  libitm/ChangeLog
  a9df0726c501bf71a46f426068e8fc9f  libitm/Makefile.am
  06bb67375770bbbe550b5708624ed9d8  libitm/Makefile.in
  af64519b66d5357841d3fcdec64563ed  libitm/aatree.cc
--- 96235,96241 ----
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  8d3c8fb3f736a2aa560ea573c413e8a7  libiberty/xstrndup.c
  e99d7e473939c4eba9b0590e304ce757  libiberty/xvasprintf.c
! e09a2544b98f04759459847912ba0a69  libitm/ChangeLog
  a9df0726c501bf71a46f426068e8fc9f  libitm/Makefile.am
  06bb67375770bbbe550b5708624ed9d8  libitm/Makefile.in
  af64519b66d5357841d3fcdec64563ed  libitm/aatree.cc
*************** c9222a512fcc4f010415011a88500092  libitm
*** 95968,95974 ****
  ab70f9809e69aeb6236ac85b453d22ae  libitm/dispatch.h
  00dbe1cee8d24eca61f7b471d1bdb412  libitm/eh_cpp.cc
  0fc2c7d1a46777c2f9aeaa3dbc4010c1  libitm/libitm.h
! 0f6bf728083356d692bee2d5435b13e6  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
  210ab7d12145f345b6d37bcbc56f15c7  libitm/libitm.texi
--- 96293,96299 ----
  ab70f9809e69aeb6236ac85b453d22ae  libitm/dispatch.h
  00dbe1cee8d24eca61f7b471d1bdb412  libitm/eh_cpp.cc
  0fc2c7d1a46777c2f9aeaa3dbc4010c1  libitm/libitm.h
! c1fc682ec5f42c6b58a80400747a6925  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
  210ab7d12145f345b6d37bcbc56f15c7  libitm/libitm.texi
*************** b4e503ecfdccc9f13da8f73eeb6f23a9  libitm
*** 96014,96020 ****
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
  fe2e602544303e0ca40c8acd58bf0397  libitm/useraction.cc
  c3a4f9a7b553245bf2dbb55c53767427  libitm/util.cc
! 82b71d58ac5e330e61497928e573d767  libobjc/ChangeLog
  fee63cfea98fac80ab4c9369ce19765a  libobjc/Makefile.in
  0b2f74b5c1588ee9de0dd076fccc99a6  libobjc/NXConstStr.m
  df7a2af88216fb36f0319f328ada2fb8  libobjc/Object.m
--- 96339,96345 ----
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
  fe2e602544303e0ca40c8acd58bf0397  libitm/useraction.cc
  c3a4f9a7b553245bf2dbb55c53767427  libitm/util.cc
! 62d09b1bd225b6fd9431b0491c2bf762  libobjc/ChangeLog
  fee63cfea98fac80ab4c9369ce19765a  libobjc/Makefile.in
  0b2f74b5c1588ee9de0dd076fccc99a6  libobjc/NXConstStr.m
  df7a2af88216fb36f0319f328ada2fb8  libobjc/Object.m
*************** e514cfffa12c9e3a276f91bda41431b4  libobj
*** 96071,96077 ****
  b19a45655f215076ddf0ba0abecfbb45  libobjc/selector.c
  1c03202bdb561211ad5e1d73cbb0172e  libobjc/sendmsg.c
  efb54be80262d2dd7d3b30974990576e  libobjc/thr.c
! e85300e88baba6ec17a08d77fc3ce9b9  liboffloadmic/ChangeLog
  99e2b0817f42c602b520261f7dee183b  liboffloadmic/Makefile.am
  a64a74f82774f355013471ad4dbe5014  liboffloadmic/Makefile.in
  ab5ae12a0dda7edadc0bd2be40ccff6a  liboffloadmic/aclocal.m4
--- 96396,96402 ----
  b19a45655f215076ddf0ba0abecfbb45  libobjc/selector.c
  1c03202bdb561211ad5e1d73cbb0172e  libobjc/sendmsg.c
  efb54be80262d2dd7d3b30974990576e  libobjc/thr.c
! 44e07d11ccf4a715faa9b6b1a45e69cc  liboffloadmic/ChangeLog
  99e2b0817f42c602b520261f7dee183b  liboffloadmic/Makefile.am
  a64a74f82774f355013471ad4dbe5014  liboffloadmic/Makefile.in
  ab5ae12a0dda7edadc0bd2be40ccff6a  liboffloadmic/aclocal.m4
*************** b1def68202639bd452fb59aea3371fe4  liboff
*** 96159,96165 ****
  4659326a13bd5fed47bb680ddb6f5dc3  liboffloadmic/runtime/orsl-lite/include/orsl-lite.h
  cc603cdf253cc686bfcee192bb7630df  liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
  dff5c8575c49d6aa71e549b0fa021479  liboffloadmic/runtime/orsl-lite/version.txt
! 793d5c99ec5ebb7fca5998ec76aa8152  libphobos/ChangeLog
  33bab560c80ad2bb8f6a01c76e8fac58  libphobos/Makefile.am
  c82f2c9df9a32b41c885f634fd4618b4  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
--- 96484,96490 ----
  4659326a13bd5fed47bb680ddb6f5dc3  liboffloadmic/runtime/orsl-lite/include/orsl-lite.h
  cc603cdf253cc686bfcee192bb7630df  liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
  dff5c8575c49d6aa71e549b0fa021479  liboffloadmic/runtime/orsl-lite/version.txt
! ebda4a0cd4cf549c396fa50dd2ea265d  libphobos/ChangeLog
  33bab560c80ad2bb8f6a01c76e8fac58  libphobos/Makefile.am
  c82f2c9df9a32b41c885f634fd4618b4  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
*************** f276ebf85ef328a41c5ca86da694d73f  libpho
*** 96211,96222 ****
  e73e1e0aaf48227fef16ff41037ecbdd  libphobos/libdruntime/core/stdc/ctype.d
  b0bed8bde9d9aa6689fee207f4ae06e0  libphobos/libdruntime/core/stdc/errno.d
  e91ed8a068db9723b27deb61078c2a0e  libphobos/libdruntime/core/stdc/errno_.c
! 5bc69913491ed28a0c3a08bf4d2434d8  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
! f81c12ec62853e665d8537a2590e7006  libphobos/libdruntime/core/stdc/math.d
  94c1f25ee3344d05581afb7715c36fd8  libphobos/libdruntime/core/stdc/signal.d
  637ca0b5e651c59698ec62ce8235a651  libphobos/libdruntime/core/stdc/stdarg.d
  ec9f863d9c7addf6af7a13d803894041  libphobos/libdruntime/core/stdc/stddef.d
--- 96536,96547 ----
  e73e1e0aaf48227fef16ff41037ecbdd  libphobos/libdruntime/core/stdc/ctype.d
  b0bed8bde9d9aa6689fee207f4ae06e0  libphobos/libdruntime/core/stdc/errno.d
  e91ed8a068db9723b27deb61078c2a0e  libphobos/libdruntime/core/stdc/errno_.c
! 8b7dca68e04aed464404e277aa7f4c04  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
! e24fe2f6a3ac4e63538f26572ef003d6  libphobos/libdruntime/core/stdc/math.d
  94c1f25ee3344d05581afb7715c36fd8  libphobos/libdruntime/core/stdc/signal.d
  637ca0b5e651c59698ec62ce8235a651  libphobos/libdruntime/core/stdc/stdarg.d
  ec9f863d9c7addf6af7a13d803894041  libphobos/libdruntime/core/stdc/stddef.d
*************** ed254802fe236c52abe7ec9ebf7f8f79  libpho
*** 96373,96379 ****
  c1dac6288753c891f8ec173a3dc57d62  libphobos/libdruntime/core/sys/posix/arpa/inet.d
  1a446ce70964990d0864c586f5755fe0  libphobos/libdruntime/core/sys/posix/config.d
  676658d748ed751e7fc65ece0c887cfc  libphobos/libdruntime/core/sys/posix/dirent.d
! 131db3f9d781b6dfdb4fa72d4981218d  libphobos/libdruntime/core/sys/posix/dlfcn.d
  308cbd84ae80447c14acd90eabef36aa  libphobos/libdruntime/core/sys/posix/fcntl.d
  7c2ed4684f1e1236c753e224d3861bc6  libphobos/libdruntime/core/sys/posix/grp.d
  78097ad54d7e30233bc2096505d9381f  libphobos/libdruntime/core/sys/posix/iconv.d
--- 96698,96704 ----
  c1dac6288753c891f8ec173a3dc57d62  libphobos/libdruntime/core/sys/posix/arpa/inet.d
  1a446ce70964990d0864c586f5755fe0  libphobos/libdruntime/core/sys/posix/config.d
  676658d748ed751e7fc65ece0c887cfc  libphobos/libdruntime/core/sys/posix/dirent.d
! 03375c438f630c39214517a4695f81ca  libphobos/libdruntime/core/sys/posix/dlfcn.d
  308cbd84ae80447c14acd90eabef36aa  libphobos/libdruntime/core/sys/posix/fcntl.d
  7c2ed4684f1e1236c753e224d3861bc6  libphobos/libdruntime/core/sys/posix/grp.d
  78097ad54d7e30233bc2096505d9381f  libphobos/libdruntime/core/sys/posix/iconv.d
*************** f018b3052e24a1c26e41901675990102  libpho
*** 96390,96396 ****
  453c6c187ee2dc82d0fa5abc3504c0b1  libphobos/libdruntime/core/sys/posix/pwd.d
  4a9f21b35663aad717b12e86926bf338  libphobos/libdruntime/core/sys/posix/sched.d
  e28f540a5c2e22756eefd8b50d01a0a0  libphobos/libdruntime/core/sys/posix/semaphore.d
! 802cdc5f25ac3225689c0d239b5568df  libphobos/libdruntime/core/sys/posix/setjmp.d
  eecb290966813f46751b150311a3e9ba  libphobos/libdruntime/core/sys/posix/signal.d
  c93e4de9caab4a1470e278682e6c903d  libphobos/libdruntime/core/sys/posix/spawn.d
  5c93ef14880500138d9f642ec4d501e0  libphobos/libdruntime/core/sys/posix/stdc/time.d
--- 96715,96721 ----
  453c6c187ee2dc82d0fa5abc3504c0b1  libphobos/libdruntime/core/sys/posix/pwd.d
  4a9f21b35663aad717b12e86926bf338  libphobos/libdruntime/core/sys/posix/sched.d
  e28f540a5c2e22756eefd8b50d01a0a0  libphobos/libdruntime/core/sys/posix/semaphore.d
! db51838365bfc29283d5d8a115f4cb99  libphobos/libdruntime/core/sys/posix/setjmp.d
  eecb290966813f46751b150311a3e9ba  libphobos/libdruntime/core/sys/posix/signal.d
  c93e4de9caab4a1470e278682e6c903d  libphobos/libdruntime/core/sys/posix/spawn.d
  5c93ef14880500138d9f642ec4d501e0  libphobos/libdruntime/core/sys/posix/stdc/time.d
*************** d1a065cefdde38d41ee3b3018f769a41  libpho
*** 96412,96418 ****
  a1bfb009ab16e1b9ac568b1bdee35fac  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
  f71ae7f996ce3771b140c9a921b5aeb9  libphobos/libdruntime/core/sys/posix/sys/time.d
  3ae60f821a06e5d186bca19aba1d47e6  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
! 7a8ec90679d130ed9a9a2a83dbca6592  libphobos/libdruntime/core/sys/posix/sys/types.d
  2d6bebed89a89ff7ab8a98164586e3f8  libphobos/libdruntime/core/sys/posix/sys/uio.d
  052e161c5cb19aa20eb6573d04d35678  libphobos/libdruntime/core/sys/posix/sys/un.d
  9d80c5eb1f9e3c226152f4b1a775ade7  libphobos/libdruntime/core/sys/posix/sys/utsname.d
--- 96737,96743 ----
  a1bfb009ab16e1b9ac568b1bdee35fac  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
  f71ae7f996ce3771b140c9a921b5aeb9  libphobos/libdruntime/core/sys/posix/sys/time.d
  3ae60f821a06e5d186bca19aba1d47e6  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
! a494a1fe4fe480d2879d58c59cea5b29  libphobos/libdruntime/core/sys/posix/sys/types.d
  2d6bebed89a89ff7ab8a98164586e3f8  libphobos/libdruntime/core/sys/posix/sys/uio.d
  052e161c5cb19aa20eb6573d04d35678  libphobos/libdruntime/core/sys/posix/sys/un.d
  9d80c5eb1f9e3c226152f4b1a775ade7  libphobos/libdruntime/core/sys/posix/sys/utsname.d
*************** a29875e6acf5d065eab3c5037a3b3e8c  libpho
*** 96634,96640 ****
  ba6c574496316ee8452cb145f4f816fb  libphobos/libdruntime/gcc/config.d.in
  d1bc6dd2550ef17d320b1583376b8b36  libphobos/libdruntime/gcc/deh.d
  bffb543e12c3ce864f73bb97ca4107ae  libphobos/libdruntime/gcc/drtstuff.c
! 4ed9b6c174a2679960bcb7ec76b3ec47  libphobos/libdruntime/gcc/emutls.d
  9a777f758428471cbf8230c1c999b6df  libphobos/libdruntime/gcc/gthread.d
  952bb8e2b4c008fd81f8acb0f0c972b9  libphobos/libdruntime/gcc/libbacktrace.d.in
  8cf9845da9c1aedb6ce9878ed08c9df8  libphobos/libdruntime/gcc/sections/common.d
--- 96959,96965 ----
  ba6c574496316ee8452cb145f4f816fb  libphobos/libdruntime/gcc/config.d.in
  d1bc6dd2550ef17d320b1583376b8b36  libphobos/libdruntime/gcc/deh.d
  bffb543e12c3ce864f73bb97ca4107ae  libphobos/libdruntime/gcc/drtstuff.c
! e8579b2f859f0798b654aa6ad988dcfc  libphobos/libdruntime/gcc/emutls.d
  9a777f758428471cbf8230c1c999b6df  libphobos/libdruntime/gcc/gthread.d
  952bb8e2b4c008fd81f8acb0f0c972b9  libphobos/libdruntime/gcc/libbacktrace.d.in
  8cf9845da9c1aedb6ce9878ed08c9df8  libphobos/libdruntime/gcc/sections/common.d
*************** d5e63a537336c57c3de8697fc334d37b  libpho
*** 96645,96651 ****
  e3859370c796afb93733e146dc19ea70  libphobos/libdruntime/gcc/unwind/arm.d
  e9f9b70dcc86d63920bac973ef5f9fc0  libphobos/libdruntime/gcc/unwind/arm_common.d
  50e5fecb9286822a640e4145c21d7807  libphobos/libdruntime/gcc/unwind/c6x.d
! c9ece913a80fb2002e7e45b3c7d12cd8  libphobos/libdruntime/gcc/unwind/generic.d
  ae8fde642e27c32d71fbe494e7033cf6  libphobos/libdruntime/gcc/unwind/package.d
  883e374c29aa5c26149e82cca526b7e4  libphobos/libdruntime/gcc/unwind/pe.d
  a3c7fae6372b9dfd9fcc3bf208e19d61  libphobos/libdruntime/object.d
--- 96970,96976 ----
  e3859370c796afb93733e146dc19ea70  libphobos/libdruntime/gcc/unwind/arm.d
  e9f9b70dcc86d63920bac973ef5f9fc0  libphobos/libdruntime/gcc/unwind/arm_common.d
  50e5fecb9286822a640e4145c21d7807  libphobos/libdruntime/gcc/unwind/c6x.d
! 5f6ac74ec69fe8af787e4f8ea36636a1  libphobos/libdruntime/gcc/unwind/generic.d
  ae8fde642e27c32d71fbe494e7033cf6  libphobos/libdruntime/gcc/unwind/package.d
  883e374c29aa5c26149e82cca526b7e4  libphobos/libdruntime/gcc/unwind/pe.d
  a3c7fae6372b9dfd9fcc3bf208e19d61  libphobos/libdruntime/object.d
*************** d64e7c6f9f940e7d7f14d7d36c358989  libpho
*** 96799,96805 ****
  d471e006e4eff73c7d20b9167e24d741  libphobos/src/std/numeric.d
  388208c6635979df5a07648d1f0cdc2e  libphobos/src/std/outbuffer.d
  842f278bff583b4bd01499694eadcb0c  libphobos/src/std/parallelism.d
! 2b189485e4897de30dbd494f6d788e0b  libphobos/src/std/path.d
  8e5e73cca99a16adb64a6a03126b3caa  libphobos/src/std/process.d
  592b96acd85b7ae34760c56d2e1af9f7  libphobos/src/std/random.d
  1d5f5bfe4477f509753c7242be1c9583  libphobos/src/std/range/interfaces.d
--- 97124,97130 ----
  d471e006e4eff73c7d20b9167e24d741  libphobos/src/std/numeric.d
  388208c6635979df5a07648d1f0cdc2e  libphobos/src/std/outbuffer.d
  842f278bff583b4bd01499694eadcb0c  libphobos/src/std/parallelism.d
! fcf7bc584822bd24e2dff6630f0b2bfa  libphobos/src/std/path.d
  8e5e73cca99a16adb64a6a03126b3caa  libphobos/src/std/process.d
  592b96acd85b7ae34760c56d2e1af9f7  libphobos/src/std/random.d
  1d5f5bfe4477f509753c7242be1c9583  libphobos/src/std/range/interfaces.d
*************** b99f626316273c3daf2953bfd822609c  libpho
*** 96817,96823 ****
  df4f18ae8c7b1188ceb25cebc8cdbfad  libphobos/src/std/signals.d
  209df4ea3736cae127de93cd246ea310  libphobos/src/std/socket.d
  6a33097edd4ad1e0309cbf45449a8d4e  libphobos/src/std/stdint.d
! be8a624f7d83029b625cc6a304f7ce56  libphobos/src/std/stdio.d
  54c3c76107b8a7608d8de8cfbff0a908  libphobos/src/std/string.d
  ae3eea4dd286cc0c253a4bf4f0382cef  libphobos/src/std/system.d
  857bc18696d7036249f50428486036b0  libphobos/src/std/traits.d
--- 97142,97148 ----
  df4f18ae8c7b1188ceb25cebc8cdbfad  libphobos/src/std/signals.d
  209df4ea3736cae127de93cd246ea310  libphobos/src/std/socket.d
  6a33097edd4ad1e0309cbf45449a8d4e  libphobos/src/std/stdint.d
! 57242fb8198eaad3e6f7a207b8f9aa86  libphobos/src/std/stdio.d
  54c3c76107b8a7608d8de8cfbff0a908  libphobos/src/std/string.d
  ae3eea4dd286cc0c253a4bf4f0382cef  libphobos/src/std/system.d
  857bc18696d7036249f50428486036b0  libphobos/src/std/traits.d
*************** b32be97cb294b7836a5e6d15a92b9047  libpho
*** 96892,96900 ****
  78729aa84444a843eaada3c2e3a17e43  libphobos/testsuite/libphobos.typeinfo/comparison.d
  f0442e8b8974938ded0d17389f8b0608  libphobos/testsuite/libphobos.typeinfo/struct-align.d
  245b43d36cad9840fce44fbf4358d424  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
! 9b10185286c1d2167a91a48b650c30fd  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 082fc14a59e440c9da61462ac0a56041  libquadmath/ChangeLog
  4696eddf264dd090e144b4849b0a6d91  libquadmath/Makefile.am
  644a78a01d94abe28b364eaa21142d82  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
--- 97217,97225 ----
  78729aa84444a843eaada3c2e3a17e43  libphobos/testsuite/libphobos.typeinfo/comparison.d
  f0442e8b8974938ded0d17389f8b0608  libphobos/testsuite/libphobos.typeinfo/struct-align.d
  245b43d36cad9840fce44fbf4358d424  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
! b3afbf17360c0b2823892dba0b9bb0fd  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 5c9aa15085fb39e4af9c48b247e8f2ee  libquadmath/ChangeLog
  4696eddf264dd090e144b4849b0a6d91  libquadmath/Makefile.am
  644a78a01d94abe28b364eaa21142d82  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
*************** d9afbc1f1e04c7e461265ff9323cc6f4  libqua
*** 96902,96908 ****
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
  7b01e196ad5d8354ad07398ee5c470fe  libquadmath/configure
  279cb151e8c43d5af048eb1a9608a435  libquadmath/configure.ac
! 4181c78dc5377afc7ef8c3c5c3ad4107  libquadmath/libquadmath.info
  f698e3dbcbae17420f2b72b77578ea17  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
--- 97227,97233 ----
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
  7b01e196ad5d8354ad07398ee5c470fe  libquadmath/configure
  279cb151e8c43d5af048eb1a9608a435  libquadmath/configure.ac
! 294a516d45bf6cb3b333799e2aa38934  libquadmath/libquadmath.info
  f698e3dbcbae17420f2b72b77578ea17  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
*************** cd139c8f7066ccd99c46052b7b67b2cb  libqua
*** 97030,97040 ****
  a21481cfd0382ef41901608376f2161c  libquadmath/quadmath_weak.h
  e766022f8615b72cbc38335d262e9d3d  libquadmath/strtod/grouping.h
  a73fdec6746eaad8ccdc8e8403aac562  libquadmath/strtod/mpn2flt128.c
! a81cc82679e80c86cfbd5575867450d0  libquadmath/strtod/strtod_l.c
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! b292904740befccece28f220ae057841  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  4b97cb7f10927471b74a1536f5472643  libsanitizer/LOCAL_PATCHES
--- 97355,97365 ----
  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
! d98cbb0940ba935aea752d0cbe71d04f  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  4b97cb7f10927471b74a1536f5472643  libsanitizer/LOCAL_PATCHES
*************** c38c4aad80d927b2557c5e1699d5ad04  libsan
*** 97112,97120 ****
  b0666c8f23d627e872a9a54b1a201cec  libsanitizer/asan/libtool-version
  5e33ed31fe41aaddda140fbff4ce0a62  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! 71791af9e7d64000760bb85e094f90bd  libsanitizer/configure
! b3d0b12bf4f8383e0827e526087737cb  libsanitizer/configure.ac
! ebd023260ace15db0db0a8e46ee9efa1  libsanitizer/configure.tgt
  cc44a43ab9d9eda272e30cd495ce110f  libsanitizer/hwasan/Makefile.am
  4145fee4229c812edebc4f61974d28de  libsanitizer/hwasan/Makefile.in
  d7b2b70db329a1129a9bed7c9f516b5d  libsanitizer/hwasan/hwasan.cpp
--- 97437,97445 ----
  b0666c8f23d627e872a9a54b1a201cec  libsanitizer/asan/libtool-version
  5e33ed31fe41aaddda140fbff4ce0a62  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! d44020b94021641c8c4778a0c40c187b  libsanitizer/configure
! e36acdc823a7fe758ab63c509ff67705  libsanitizer/configure.ac
! 2aa7184c9837a70e5e06a2eddb23b890  libsanitizer/configure.tgt
  cc44a43ab9d9eda272e30cd495ce110f  libsanitizer/hwasan/Makefile.am
  4145fee4229c812edebc4f61974d28de  libsanitizer/hwasan/Makefile.in
  d7b2b70db329a1129a9bed7c9f516b5d  libsanitizer/hwasan/hwasan.cpp
*************** dfd8ca61572d533c9a5fef9d44521a89  libsan
*** 97320,97326 ****
  51a6933c53085e75485e4b4c59f1e3e2  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
! 05a4270278b83d4569c32fecd5704e86  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
  7401184b97c53ec1f30593bc0174b15b  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  6a600fe0b2f737602ab53034aaeaf443  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  7e240cd8f027b06b432493422a3ffc45  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
--- 97645,97651 ----
  51a6933c53085e75485e4b4c59f1e3e2  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
! 2dda80709396f16ca211c082039e1cb9  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
  7401184b97c53ec1f30593bc0174b15b  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  6a600fe0b2f737602ab53034aaeaf443  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  7e240cd8f027b06b432493422a3ffc45  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
*************** bd58abd803667b3373381b6bb1b68f1b  libsan
*** 97501,97507 ****
  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
! abb78e1fad31fd8ca1ab017d1c54d6d3  libssp/ChangeLog
  cf4ee646515263611d025bd12ba88148  libssp/Makefile.am
  b56958cdc5828ca811c35bbf479b3a09  libssp/Makefile.in
  f6f6c804e40e3a3ef407d3d13fafb6c0  libssp/aclocal.m4
--- 97826,97832 ----
  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
! dcba294aae1119c721821ee1901385f4  libssp/ChangeLog
  cf4ee646515263611d025bd12ba88148  libssp/Makefile.am
  b56958cdc5828ca811c35bbf479b3a09  libssp/Makefile.in
  f6f6c804e40e3a3ef407d3d13fafb6c0  libssp/aclocal.m4
*************** df66ccf23f6b963bb290249d790ccb82  libssp
*** 97530,97536 ****
  0a9dff73d2333b2997da42b4615533fd  libssp/strncpy-chk.c
  11c140b790d482decba4951f6508dd84  libssp/vsnprintf-chk.c
  2ce510f683585f686681d926e3fafb82  libssp/vsprintf-chk.c
! 7611c7124f4f303e076c2155c0e67d22  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 97855,97861 ----
  0a9dff73d2333b2997da42b4615533fd  libssp/strncpy-chk.c
  11c140b790d482decba4951f6508dd84  libssp/vsnprintf-chk.c
  2ce510f683585f686681d926e3fafb82  libssp/vsprintf-chk.c
! 02740c537980456c66c0543fbef1f690  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a8f4290dba5b481ad426148a03c75dd0  libstd
*** 97559,97565 ****
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
  9f6362760cb2f50e39da8d81855a408f  libstdc++-v3/acinclude.m4
  734c1cbc8791fbceb09b49c5d07d6966  libstdc++-v3/aclocal.m4
! 03206c41c4b2669881872e3465f2c926  libstdc++-v3/config.h.in
  b01fddf6d6bea14bdfb65dbd4c979845  libstdc++-v3/config/abi/compatibility.h
  4dc0ed9711e1e8d1c3555df4a246013c  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
--- 97884,97890 ----
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
  9f6362760cb2f50e39da8d81855a408f  libstdc++-v3/acinclude.m4
  734c1cbc8791fbceb09b49c5d07d6966  libstdc++-v3/aclocal.m4
! 7a21bb3f82d6599b3df6536f6c5e2b6b  libstdc++-v3/config.h.in
  b01fddf6d6bea14bdfb65dbd4c979845  libstdc++-v3/config/abi/compatibility.h
  4dc0ed9711e1e8d1c3555df4a246013c  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
*************** f4f2b26e27c3957ff5929b885646364f  libstd
*** 97703,97709 ****
  bf2705404dd521ebcceeafe57468080d  libstdc++-v3/config/os/generic/ctype_base.h
  73886695d0bba09b495be44138801960  libstdc++-v3/config/os/generic/ctype_configure_char.cc
  48817692e8c606525ef9889af16b6269  libstdc++-v3/config/os/generic/ctype_inline.h
! 47fdd345f650cdcb509d00e47f36e44a  libstdc++-v3/config/os/generic/error_constants.h
  431a6ecf06ba237be9373b2cb922d764  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
  c99864811cb81795f882ee8d709a39f8  libstdc++-v3/config/os/gnu-linux/ctype_base.h
--- 98028,98034 ----
  bf2705404dd521ebcceeafe57468080d  libstdc++-v3/config/os/generic/ctype_base.h
  73886695d0bba09b495be44138801960  libstdc++-v3/config/os/generic/ctype_configure_char.cc
  48817692e8c606525ef9889af16b6269  libstdc++-v3/config/os/generic/ctype_inline.h
! e85acf0e6ea1dc38eb0bb62caabf030e  libstdc++-v3/config/os/generic/error_constants.h
  431a6ecf06ba237be9373b2cb922d764  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
  c99864811cb81795f882ee8d709a39f8  libstdc++-v3/config/os/gnu-linux/ctype_base.h
*************** d00b9bfddb0e8397de2d35e76f678cf4  libstd
*** 97750,97757 ****
  233fbfff89917179ae9fc7fecbd37a4b  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  1b61257cbf79eed6c1465ccd5906ed98  libstdc++-v3/config/os/vxworks/ctype_inline.h
  cf270f423d6238158d5385095a7fc932  libstdc++-v3/config/os/vxworks/os_defines.h
! a69bbe50a3ebbd9d900f2fb44dc7fd53  libstdc++-v3/configure
! d3b5d9175c6f9f05ef6fc6392133a461  libstdc++-v3/configure.ac
  6f48d91af78c16e62f258e7bedec5125  libstdc++-v3/configure.host
  1ad0555cf1f65702d35f5d19683b6a49  libstdc++-v3/crossconfig.m4
  cc745dd7b8642a37dd519d4df34943fc  libstdc++-v3/doc/Makefile.am
--- 98075,98082 ----
  233fbfff89917179ae9fc7fecbd37a4b  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  1b61257cbf79eed6c1465ccd5906ed98  libstdc++-v3/config/os/vxworks/ctype_inline.h
  cf270f423d6238158d5385095a7fc932  libstdc++-v3/config/os/vxworks/os_defines.h
! bb138c795b8fa8f9b6308a322527f2d6  libstdc++-v3/configure
! e75e2a687e109a14e424958757b1a73d  libstdc++-v3/configure.ac
  6f48d91af78c16e62f258e7bedec5125  libstdc++-v3/configure.host
  1ad0555cf1f65702d35f5d19683b6a49  libstdc++-v3/crossconfig.m4
  cc745dd7b8642a37dd519d4df34943fc  libstdc++-v3/doc/Makefile.am
*************** cc745dd7b8642a37dd519d4df34943fc  libstd
*** 97761,97770 ****
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
  3486d64b0aaa601908006a0e78395ca3  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! 094b7ada8fdae2bf6b49063199dddd20  libstdc++-v3/doc/doxygen/user.cfg.in
  66e139590a163a3e9d632f33fbe1d1b3  libstdc++-v3/doc/html/README
  c68ff21babfa14f20b98e36a2c808418  libstdc++-v3/doc/html/api.html
! fd168dc2b2d0c12b1e17b40ffec96390  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
  a75d614dcfc1b2374bccc626e2464c94  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
--- 98086,98095 ----
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
  3486d64b0aaa601908006a0e78395ca3  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! ae1d81dcf67297b85e355542550b5a72  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
  a75d614dcfc1b2374bccc626e2464c94  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
*************** d7249eb4d31bd107d0b09ea3c80cb723  libstd
*** 97846,97852 ****
  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
! c31c56e341c4377c8c4d0ab3861a0fce  libstdc++-v3/doc/html/index.html
  24de5f936e90a1f57f037f166ff75004  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
  70a5fa3916abe3de8650b93632b6914b  libstdc++-v3/doc/html/manual/api.html
--- 98171,98177 ----
  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
! 610c408505940d785574f4226d31a6ac  libstdc++-v3/doc/html/index.html
  24de5f936e90a1f57f037f166ff75004  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
  70a5fa3916abe3de8650b93632b6914b  libstdc++-v3/doc/html/manual/api.html
*************** b8ac9fc2f2cfcaed0450c79e2fb01569  libstd
*** 97861,97867 ****
  d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
  c60c6ae778d5dedae24ac21abf948bdb  libstdc++-v3/doc/html/manual/bitmap_allocator.html
  3a3d01d1d9478286b8c505d1449531d4  libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
! f6f0410c2bcc234e2fa3a5dd8949e086  libstdc++-v3/doc/html/manual/bugs.html
  cc3700f2fde50987f186f23abf98a7b1  libstdc++-v3/doc/html/manual/concept_checking.html
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
  99088f38a5f288b88340a71d68f773eb  libstdc++-v3/doc/html/manual/configure.html
--- 98186,98192 ----
  d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
  c60c6ae778d5dedae24ac21abf948bdb  libstdc++-v3/doc/html/manual/bitmap_allocator.html
  3a3d01d1d9478286b8c505d1449531d4  libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
! 190c152c7bf619500ce7752aa21d0d14  libstdc++-v3/doc/html/manual/bugs.html
  cc3700f2fde50987f186f23abf98a7b1  libstdc++-v3/doc/html/manual/concept_checking.html
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
  99088f38a5f288b88340a71d68f773eb  libstdc++-v3/doc/html/manual/configure.html
*************** afcc2751dae09e088abc1e3175cb94cc  libstd
*** 97882,97901 ****
  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
! 2388a381a3fca44bacf99a523f6e2bba  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
  6d380acac52eb8c888a54068e44b16ac  libstdc++-v3/doc/html/manual/ext_preface.html
  5632eb8ef681cd35b41be7eb7a3d7a98  libstdc++-v3/doc/html/manual/ext_sgi.html
  9b34310c7cb7faa4373ee6683678c457  libstdc++-v3/doc/html/manual/ext_utilities.html
! 5c3d4b1da33055adb0a5fc9742fdbe19  libstdc++-v3/doc/html/manual/extensions.html
  909760c7437c6622b56dcc4fb9ba89e8  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
! e39219ab2b0d00f3de0b1cbf5c06eeba  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
! 29e0671531d99a27944e6d073ec62182  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
--- 98207,98226 ----
  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
  6d380acac52eb8c888a54068e44b16ac  libstdc++-v3/doc/html/manual/ext_preface.html
  5632eb8ef681cd35b41be7eb7a3d7a98  libstdc++-v3/doc/html/manual/ext_sgi.html
  9b34310c7cb7faa4373ee6683678c457  libstdc++-v3/doc/html/manual/ext_utilities.html
! 9e255046a8ef2903114374ed06403045  libstdc++-v3/doc/html/manual/extensions.html
  909760c7437c6622b56dcc4fb9ba89e8  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
! 9cb98475bfe2ee8ee8805949feb804d1  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
! 6201c72ac50b989374f36bd1c9bd65ba  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
*** 97928,97938 ****
  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
! 30dc2d04c79d520f048c2759bf437b5b  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
! 3b1206d3071580d56c6149d5ddf385a9  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
--- 98253,98263 ----
  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
! 747f526a267b126b1c01e9f4dcdc461f  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
*************** b9abf80a75c223a9423b212d20240602  libstd
*** 97952,97958 ****
  ccc3b1a320ccc49a977c80546610195b  libstdc++-v3/doc/html/manual/using_namespaces.html
  d881fcffb799c09a28d8174ccb1326a2  libstdc++-v3/doc/html/manual/utilities.html
  ccbc0492a648982f2dc225595bdbc567  libstdc++-v3/doc/xml/api.xml
! 61748d51ede56b338ef61ce9232c23e0  libstdc++-v3/doc/xml/authors.xml
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
--- 98277,98283 ----
  ccc3b1a320ccc49a977c80546610195b  libstdc++-v3/doc/html/manual/using_namespaces.html
  d881fcffb799c09a28d8174ccb1326a2  libstdc++-v3/doc/html/manual/utilities.html
  ccbc0492a648982f2dc225595bdbc567  libstdc++-v3/doc/xml/api.xml
! e1775a73c7dd9e58d002cffb39192faa  libstdc++-v3/doc/xml/authors.xml
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
*************** e3215d958bafd6fd02249dc5bab42f58  libstd
*** 98158,98166 ****
  f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
  561ce4bba87e35c92c47d95599ca9d9b  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  a3b670e11d8db732a9352e2fbe236347  libstdc++-v3/doc/xml/manual/evolution.xml
! 14742e66a2ac01343ef60e87d06d05ff  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! 3bb41abfa95c0595af0cde92765188a9  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
--- 98483,98491 ----
  f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
  561ce4bba87e35c92c47d95599ca9d9b  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  a3b670e11d8db732a9352e2fbe236347  libstdc++-v3/doc/xml/manual/evolution.xml
! 137276d6eb0bbaf6563b8319770dc747  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! 5f4d26ae4a278b447450c82258dc4229  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
*************** b00f98f125f6186c369ce588d795f978  libstd
*** 98171,98184 ****
  7edd591e15a0bbc76d58e9edcb7c28d1  libstdc++-v3/doc/xml/manual/parallel_mode.xml
  b4f22a512ad29af70c76d4e459bdf2a8  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
  d766137e6e226eaf2c354f95fd9c7274  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
! 2f4a4ec5c3f1beecb2e7e72f3b0d2958  libstdc++-v3/doc/xml/manual/prerequisites.xml
  cec5c5415c371a664adb0490e2571c3c  libstdc++-v3/doc/xml/manual/shared_ptr.xml
! 9a8f1a85034e6fe72b02302051aa7af9  libstdc++-v3/doc/xml/manual/spine.xml
  0bba6071dae55602cf351932ae6931d8  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
  7760eae3d9ab7cabae519904b3a5759e  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
  d7679667c783a269bb7718eb5d95f435  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
  5bb9fe8fa9f85b6d25e0d01355973428  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! 0d8d3e572d69acd09396d06e8249808b  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
  3c72998c4574690fac280c058a0db757  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  a3c830bf7580b2f5b61bb7806aa3f498  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  716b0440e3bfb860e5ee262a17e4f11a  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
--- 98496,98510 ----
  7edd591e15a0bbc76d58e9edcb7c28d1  libstdc++-v3/doc/xml/manual/parallel_mode.xml
  b4f22a512ad29af70c76d4e459bdf2a8  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
  d766137e6e226eaf2c354f95fd9c7274  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
! f25986e96331b9ee671b4fe62ab33a1c  libstdc++-v3/doc/xml/manual/prerequisites.xml
  cec5c5415c371a664adb0490e2571c3c  libstdc++-v3/doc/xml/manual/shared_ptr.xml
! d7f222c42325cd44eadad2c59eef7e6f  libstdc++-v3/doc/xml/manual/spine.xml
  0bba6071dae55602cf351932ae6931d8  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
  7760eae3d9ab7cabae519904b3a5759e  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
  d7679667c783a269bb7718eb5d95f435  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
  5bb9fe8fa9f85b6d25e0d01355973428  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! d0e5411965f73ec23af63f5d5368623b  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! 9d049d3b44a1dd0ce226b835023c5749  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  3c72998c4574690fac280c058a0db757  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  a3c830bf7580b2f5b61bb7806aa3f498  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  716b0440e3bfb860e5ee262a17e4f11a  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
*************** e2e099be3dd6a4b7a940a7232635ee2c  libstd
*** 98192,98199 ****
  05d0e18187995e8ce64185beb05cd6ed  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 908772cdec680f1cf3d09ef32b451662  libstdc++-v3/include/Makefile.am
! 8460c7fbbd13ff4153eed9b078a3e453  libstdc++-v3/include/Makefile.in
  83813d3bf45dd53bdc13d769af501845  libstdc++-v3/include/backward/auto_ptr.h
  93f8180370b2b5df7b580ce625762260  libstdc++-v3/include/backward/backward_warning.h
  3ba6b626499f6c5a1cf871734a77df07  libstdc++-v3/include/backward/binders.h
--- 98518,98525 ----
  05d0e18187995e8ce64185beb05cd6ed  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 390947ded0aca3859c15dc207c021817  libstdc++-v3/include/Makefile.am
! f35e76d44f04c3f95d97b41633e52b63  libstdc++-v3/include/Makefile.in
  83813d3bf45dd53bdc13d769af501845  libstdc++-v3/include/backward/auto_ptr.h
  93f8180370b2b5df7b580ce625762260  libstdc++-v3/include/backward/backward_warning.h
  3ba6b626499f6c5a1cf871734a77df07  libstdc++-v3/include/backward/binders.h
*************** f6791325ac8042a3d1825c0f1ae0765b  libstd
*** 98207,98216 ****
  937e9d7f00d3ed7cff7ec8fafeb8a8bc  libstdc++-v3/include/bits/alloc_traits.h
  58ff381dfbb0c52b9ff69747242a3a8f  libstdc++-v3/include/bits/allocated_ptr.h
  52abf05a7426983321ecef80fe4251be  libstdc++-v3/include/bits/allocator.h
! e3f9f74fba67d8b5e1538ec2829d6ccd  libstdc++-v3/include/bits/atomic_base.h
  adb82b0133e664d7a6d703cde2ee9b90  libstdc++-v3/include/bits/atomic_futex.h
  56bd6a5d218c8ecad595a4d829f9b5b8  libstdc++-v3/include/bits/atomic_timed_wait.h
! eeec5baac9e782444495e4ff1d7010c4  libstdc++-v3/include/bits/atomic_wait.h
  3a2158164dc155855b2c0175c5f3c80b  libstdc++-v3/include/bits/basic_ios.h
  bd6a297c732d4d1fc2db79f61e854e8c  libstdc++-v3/include/bits/basic_ios.tcc
  7e5346b1ac8ec4f2b0e876ce53e4b6e1  libstdc++-v3/include/bits/basic_string.h
--- 98533,98542 ----
  937e9d7f00d3ed7cff7ec8fafeb8a8bc  libstdc++-v3/include/bits/alloc_traits.h
  58ff381dfbb0c52b9ff69747242a3a8f  libstdc++-v3/include/bits/allocated_ptr.h
  52abf05a7426983321ecef80fe4251be  libstdc++-v3/include/bits/allocator.h
! 339a86ad6564a9bda3ab406d4e92d790  libstdc++-v3/include/bits/atomic_base.h
  adb82b0133e664d7a6d703cde2ee9b90  libstdc++-v3/include/bits/atomic_futex.h
  56bd6a5d218c8ecad595a4d829f9b5b8  libstdc++-v3/include/bits/atomic_timed_wait.h
! 7be82262897ffdbc9f9aafae04ec8055  libstdc++-v3/include/bits/atomic_wait.h
  3a2158164dc155855b2c0175c5f3c80b  libstdc++-v3/include/bits/basic_ios.h
  bd6a297c732d4d1fc2db79f61e854e8c  libstdc++-v3/include/bits/basic_ios.tcc
  7e5346b1ac8ec4f2b0e876ce53e4b6e1  libstdc++-v3/include/bits/basic_string.h
*************** a143652aea71c3de835d07a5ca715a81  libstd
*** 98227,98260 ****
  fe864b2a299875de978dcc610a835eb6  libstdc++-v3/include/bits/enable_special_members.h
  00ebb6049dacf8ab023b15caf7b3a690  libstdc++-v3/include/bits/erase_if.h
  a7d5bb28720ccf51fe638410018fc593  libstdc++-v3/include/bits/forward_list.h
! 7ce3876e2c3546f4e3f7fb947e3479a7  libstdc++-v3/include/bits/forward_list.tcc
  42e0fac7ef6d3d3217e48ce36672e534  libstdc++-v3/include/bits/fs_dir.h
  70ce7389ec86c32b97e433d940247f4b  libstdc++-v3/include/bits/fs_fwd.h
! d486ec76d1eac079f1e5ed61ee50cc50  libstdc++-v3/include/bits/fs_ops.h
! 8877eb003169ec54e3ef21d88efdadbc  libstdc++-v3/include/bits/fs_path.h
  1e083c1a36d484e25c40b96ad6699e4e  libstdc++-v3/include/bits/fstream.tcc
  dd8a128f529a9f6f73237a176e7299bc  libstdc++-v3/include/bits/functexcept.h
  3854e123c62afb06ce8eff3213da177e  libstdc++-v3/include/bits/functional_hash.h
  7e28c413fb2ff8f896ab6f4b81296589  libstdc++-v3/include/bits/gslice.h
! 6d64fcf711e66e1774782608ff3b5159  libstdc++-v3/include/bits/gslice_array.h
  1b162c169c5c035be9f65e875ba43048  libstdc++-v3/include/bits/hashtable.h
  985a1e281b3b291fa13c4044bfc48b31  libstdc++-v3/include/bits/hashtable_policy.h
! 94b514a53ce7d1816738c38c1e0655a8  libstdc++-v3/include/bits/indirect_array.h
  70c7a436935136a62065871cf31e4943  libstdc++-v3/include/bits/invoke.h
  b81521437ef0ce936cef3eaef2df90db  libstdc++-v3/include/bits/ios_base.h
  6605273dbd3b4a796727eff37aa712ed  libstdc++-v3/include/bits/istream.tcc
  66ebf5810a684c1af0a71a8d8819b3eb  libstdc++-v3/include/bits/iterator_concepts.h
! 9c607b8172976c0554f82e593ebab6e7  libstdc++-v3/include/bits/list.tcc
  9033c9a135c14cc8c1b25fb5774e57e7  libstdc++-v3/include/bits/locale_classes.h
  d9209b1a8387c8074c0b4dfa10383f2d  libstdc++-v3/include/bits/locale_classes.tcc
  b93ec8fb60ddfb747f6a4956d056226e  libstdc++-v3/include/bits/locale_conv.h
  60086948f806696451f55032cdff69dc  libstdc++-v3/include/bits/locale_facets.h
  20df9195fafbed780aca7f7a838399e3  libstdc++-v3/include/bits/locale_facets.tcc
  40d368932a34a5a714551d5411431aed  libstdc++-v3/include/bits/locale_facets_nonio.h
! 05f284aca697735aea072159826db863  libstdc++-v3/include/bits/locale_facets_nonio.tcc
  bded7dc13b4cfa5d81cf5165cc84122a  libstdc++-v3/include/bits/localefwd.h
! 3f32eafc5a86b24ba1ddea1f2c791f2f  libstdc++-v3/include/bits/mask_array.h
! 3b99ebe899129f76e71b6a400b7ae599  libstdc++-v3/include/bits/max_size_type.h
  3f6b104467902cda411d015a32d97cf1  libstdc++-v3/include/bits/memoryfwd.h
  156ce13c58f77c44098165fa0e6b5efc  libstdc++-v3/include/bits/move.h
  434b2342bf495fd191265b752a71fc44  libstdc++-v3/include/bits/node_handle.h
--- 98553,98586 ----
  fe864b2a299875de978dcc610a835eb6  libstdc++-v3/include/bits/enable_special_members.h
  00ebb6049dacf8ab023b15caf7b3a690  libstdc++-v3/include/bits/erase_if.h
  a7d5bb28720ccf51fe638410018fc593  libstdc++-v3/include/bits/forward_list.h
! 2f0cf51176b50d64270bb5e7ba78708b  libstdc++-v3/include/bits/forward_list.tcc
  42e0fac7ef6d3d3217e48ce36672e534  libstdc++-v3/include/bits/fs_dir.h
  70ce7389ec86c32b97e433d940247f4b  libstdc++-v3/include/bits/fs_fwd.h
! 0b0e4fe70f7a52ec967bc4d0e526470f  libstdc++-v3/include/bits/fs_ops.h
! 047582c6013e3d323020f4adc7a65203  libstdc++-v3/include/bits/fs_path.h
  1e083c1a36d484e25c40b96ad6699e4e  libstdc++-v3/include/bits/fstream.tcc
  dd8a128f529a9f6f73237a176e7299bc  libstdc++-v3/include/bits/functexcept.h
  3854e123c62afb06ce8eff3213da177e  libstdc++-v3/include/bits/functional_hash.h
  7e28c413fb2ff8f896ab6f4b81296589  libstdc++-v3/include/bits/gslice.h
! e456cf0f51e466e78775ed5c4895339c  libstdc++-v3/include/bits/gslice_array.h
  1b162c169c5c035be9f65e875ba43048  libstdc++-v3/include/bits/hashtable.h
  985a1e281b3b291fa13c4044bfc48b31  libstdc++-v3/include/bits/hashtable_policy.h
! 0c0a3a285147405c46b1222a8f53b9da  libstdc++-v3/include/bits/indirect_array.h
  70c7a436935136a62065871cf31e4943  libstdc++-v3/include/bits/invoke.h
  b81521437ef0ce936cef3eaef2df90db  libstdc++-v3/include/bits/ios_base.h
  6605273dbd3b4a796727eff37aa712ed  libstdc++-v3/include/bits/istream.tcc
  66ebf5810a684c1af0a71a8d8819b3eb  libstdc++-v3/include/bits/iterator_concepts.h
! f9e14195e3b39126d58f67842330de06  libstdc++-v3/include/bits/list.tcc
  9033c9a135c14cc8c1b25fb5774e57e7  libstdc++-v3/include/bits/locale_classes.h
  d9209b1a8387c8074c0b4dfa10383f2d  libstdc++-v3/include/bits/locale_classes.tcc
  b93ec8fb60ddfb747f6a4956d056226e  libstdc++-v3/include/bits/locale_conv.h
  60086948f806696451f55032cdff69dc  libstdc++-v3/include/bits/locale_facets.h
  20df9195fafbed780aca7f7a838399e3  libstdc++-v3/include/bits/locale_facets.tcc
  40d368932a34a5a714551d5411431aed  libstdc++-v3/include/bits/locale_facets_nonio.h
! 8875e3fc634ade502ae8d5c70b7bc407  libstdc++-v3/include/bits/locale_facets_nonio.tcc
  bded7dc13b4cfa5d81cf5165cc84122a  libstdc++-v3/include/bits/localefwd.h
! ce159ba2bb3c8fced8b24b10ca50c912  libstdc++-v3/include/bits/mask_array.h
! e3279d92169ee9dafabefe79d86b0114  libstdc++-v3/include/bits/max_size_type.h
  3f6b104467902cda411d015a32d97cf1  libstdc++-v3/include/bits/memoryfwd.h
  156ce13c58f77c44098165fa0e6b5efc  libstdc++-v3/include/bits/move.h
  434b2342bf495fd191265b752a71fc44  libstdc++-v3/include/bits/node_handle.h
*************** e270c86004665d7c88cb0daea0668abd  libstd
*** 98266,98314 ****
  e6a5e9764ebd755e32e991292611e659  libstdc++-v3/include/bits/ptr_traits.h
  bf73b2a247be8d104de523be716f61f4  libstdc++-v3/include/bits/quoted_string.h
  470011eef0ce4aa0582e38f577095a5c  libstdc++-v3/include/bits/random.h
! 5f69bfbde6bf41c8001a80d38abd542a  libstdc++-v3/include/bits/random.tcc
  8dad5e77e5e4bab2b7000771d297ea9a  libstdc++-v3/include/bits/range_access.h
  0cfaa408ff48de2b121439f9f325d90c  libstdc++-v3/include/bits/ranges_algo.h
! e2df1ee55df6addd8c7b5d3bde579658  libstdc++-v3/include/bits/ranges_algobase.h
! e0904214b08e51aa4604c6df133c3bbb  libstdc++-v3/include/bits/ranges_base.h
  52dfeae5cd28cdecf71c6362cd101927  libstdc++-v3/include/bits/ranges_cmp.h
  920cfa2cb58c94bed4db10b0a892ca19  libstdc++-v3/include/bits/ranges_uninitialized.h
  a22ca821dd328be54106bfb299193706  libstdc++-v3/include/bits/ranges_util.h
  bafb49c6b1a65444216c071f25b43760  libstdc++-v3/include/bits/refwrap.h
! 843befce3c9575f43a5893d8dad4dc61  libstdc++-v3/include/bits/regex.h
! 98d3d51046b708d9220ef857b955650f  libstdc++-v3/include/bits/regex.tcc
! b8b0cf85c115bbd16b3256e7f86315c5  libstdc++-v3/include/bits/regex_automaton.h
  1a0c43de6ed4d56e298516e81208096a  libstdc++-v3/include/bits/regex_automaton.tcc
! 9b98eca9adb64a3789d65233db362bf5  libstdc++-v3/include/bits/regex_compiler.h
! 04718138ae92de2ca5211b1127e6bdfb  libstdc++-v3/include/bits/regex_compiler.tcc
! 528eeb9a41f8fa2f75c7da93f3a87e51  libstdc++-v3/include/bits/regex_constants.h
! fa9fbe5b4b6b38cebc35d0a4f86d2aa2  libstdc++-v3/include/bits/regex_error.h
! bf2631da804338ebd183a2ab97e8fe71  libstdc++-v3/include/bits/regex_executor.h
! f419d75dd099ff83043ecee608bcbd0b  libstdc++-v3/include/bits/regex_executor.tcc
! 716607b7d27d47a176e82ac8130fdf31  libstdc++-v3/include/bits/regex_scanner.h
! 785e8171663dd2f0db22813a93c65ed9  libstdc++-v3/include/bits/regex_scanner.tcc
  d761f7d17cd87d90c96bcaa692fffffc  libstdc++-v3/include/bits/semaphore_base.h
  bae24842408b2172fbea488e17b09021  libstdc++-v3/include/bits/shared_ptr.h
  007e220395413941831ec80cc4e916b7  libstdc++-v3/include/bits/shared_ptr_atomic.h
! 903a445df4ef3034a2163ac5a9adc8da  libstdc++-v3/include/bits/shared_ptr_base.h
! 76a4a29ee68e815ad238f784a66392d3  libstdc++-v3/include/bits/slice_array.h
  82bbae243b362815baa11a73f83d2188  libstdc++-v3/include/bits/specfun.h
  13dd655f9d33eef94922ec1a670c462c  libstdc++-v3/include/bits/sstream.tcc
  0ca803a7f09755f05290802f0dd2b38c  libstdc++-v3/include/bits/std_abs.h
  0c73b43d052808013e7562d398c72d7e  libstdc++-v3/include/bits/std_function.h
  c65174fff50fe5647fc68ed6f3ae1695  libstdc++-v3/include/bits/std_mutex.h
! f2a5652c1fba7b750bcb17f96dcc1a75  libstdc++-v3/include/bits/std_thread.h
  c661d981a881e8628863fac1295c261c  libstdc++-v3/include/bits/stl_algo.h
  c0e5fec159b35d2e970802869ef11db5  libstdc++-v3/include/bits/stl_algobase.h
  98118948adc1b932091fb4e357a8762c  libstdc++-v3/include/bits/stl_bvector.h
! 6847fc10df4d7118742d961154d17bb9  libstdc++-v3/include/bits/stl_construct.h
! 030b82de595162b8288defee8ca51bc1  libstdc++-v3/include/bits/stl_deque.h
  42c8c895e947368df44a306d292f341c  libstdc++-v3/include/bits/stl_function.h
  9b5d138d0bfe5519552ee1fd50135555  libstdc++-v3/include/bits/stl_heap.h
! 42972cf6f6ba275d7ce1bc489a712015  libstdc++-v3/include/bits/stl_iterator.h
  76a3280d9bb3ee6191804428721c4059  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
  4c794f35830ab1d4f96e6d5dacb8ecc7  libstdc++-v3/include/bits/stl_iterator_base_types.h
! 98c11423a3f4c54610e2c3580faffbd7  libstdc++-v3/include/bits/stl_list.h
  aee57a8661ec66bcbd3d049a16df390e  libstdc++-v3/include/bits/stl_map.h
  b8cb58fbb28fca627fd75d308c3b79fa  libstdc++-v3/include/bits/stl_multimap.h
  f6c4537c41eed49ed99d69f857341edf  libstdc++-v3/include/bits/stl_multiset.h
--- 98592,98640 ----
  e6a5e9764ebd755e32e991292611e659  libstdc++-v3/include/bits/ptr_traits.h
  bf73b2a247be8d104de523be716f61f4  libstdc++-v3/include/bits/quoted_string.h
  470011eef0ce4aa0582e38f577095a5c  libstdc++-v3/include/bits/random.h
! 8cf7e40729429a0463cd5053621cd6d9  libstdc++-v3/include/bits/random.tcc
  8dad5e77e5e4bab2b7000771d297ea9a  libstdc++-v3/include/bits/range_access.h
  0cfaa408ff48de2b121439f9f325d90c  libstdc++-v3/include/bits/ranges_algo.h
! 4719959228ef3f1d6d0cf6d9f298e12d  libstdc++-v3/include/bits/ranges_algobase.h
! 66d60ff1263299ae568fa036c0ca5d30  libstdc++-v3/include/bits/ranges_base.h
  52dfeae5cd28cdecf71c6362cd101927  libstdc++-v3/include/bits/ranges_cmp.h
  920cfa2cb58c94bed4db10b0a892ca19  libstdc++-v3/include/bits/ranges_uninitialized.h
  a22ca821dd328be54106bfb299193706  libstdc++-v3/include/bits/ranges_util.h
  bafb49c6b1a65444216c071f25b43760  libstdc++-v3/include/bits/refwrap.h
! 1ebbdc6dc36c8eef044a3ec47c3146be  libstdc++-v3/include/bits/regex.h
! c7e2fa5548b6f93e2a1914080eb0103b  libstdc++-v3/include/bits/regex.tcc
! 5327068d8775945e521cfa9fd18c5e42  libstdc++-v3/include/bits/regex_automaton.h
  1a0c43de6ed4d56e298516e81208096a  libstdc++-v3/include/bits/regex_automaton.tcc
! a3e674de2d1e3d15fe3d7689b9dea90f  libstdc++-v3/include/bits/regex_compiler.h
! cb9abc6dd1a4d7a09e538f506967b105  libstdc++-v3/include/bits/regex_compiler.tcc
! 21d8747400b4b178c32c2ab82a119b24  libstdc++-v3/include/bits/regex_constants.h
! b3dbf12cf3c53f692fd7087d543bae9a  libstdc++-v3/include/bits/regex_error.h
! 81aba84bbe8ffab6fe7eba666b6ab341  libstdc++-v3/include/bits/regex_executor.h
! 7245f80b6f3dc184283379c7f59e591a  libstdc++-v3/include/bits/regex_executor.tcc
! 9cf8e92427973b264f4cecfad5f32a97  libstdc++-v3/include/bits/regex_scanner.h
! 9e7e74e5a0ad4b722eee3b8a3b333cda  libstdc++-v3/include/bits/regex_scanner.tcc
  d761f7d17cd87d90c96bcaa692fffffc  libstdc++-v3/include/bits/semaphore_base.h
  bae24842408b2172fbea488e17b09021  libstdc++-v3/include/bits/shared_ptr.h
  007e220395413941831ec80cc4e916b7  libstdc++-v3/include/bits/shared_ptr_atomic.h
! 8d23d9a03c9ca5773e092d05679e2362  libstdc++-v3/include/bits/shared_ptr_base.h
! 335127ffb0db171d2fa4c680b2ceb381  libstdc++-v3/include/bits/slice_array.h
  82bbae243b362815baa11a73f83d2188  libstdc++-v3/include/bits/specfun.h
  13dd655f9d33eef94922ec1a670c462c  libstdc++-v3/include/bits/sstream.tcc
  0ca803a7f09755f05290802f0dd2b38c  libstdc++-v3/include/bits/std_abs.h
  0c73b43d052808013e7562d398c72d7e  libstdc++-v3/include/bits/std_function.h
  c65174fff50fe5647fc68ed6f3ae1695  libstdc++-v3/include/bits/std_mutex.h
! 97ef8c43fe11d08801719f27fae030d6  libstdc++-v3/include/bits/std_thread.h
  c661d981a881e8628863fac1295c261c  libstdc++-v3/include/bits/stl_algo.h
  c0e5fec159b35d2e970802869ef11db5  libstdc++-v3/include/bits/stl_algobase.h
  98118948adc1b932091fb4e357a8762c  libstdc++-v3/include/bits/stl_bvector.h
! d13395651729d9a26632373217b7daf3  libstdc++-v3/include/bits/stl_construct.h
! 680f1c65504734f73467529986f3369b  libstdc++-v3/include/bits/stl_deque.h
  42c8c895e947368df44a306d292f341c  libstdc++-v3/include/bits/stl_function.h
  9b5d138d0bfe5519552ee1fd50135555  libstdc++-v3/include/bits/stl_heap.h
! adfbaa72dad2c93f2f61417c54c47efb  libstdc++-v3/include/bits/stl_iterator.h
  76a3280d9bb3ee6191804428721c4059  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
  4c794f35830ab1d4f96e6d5dacb8ecc7  libstdc++-v3/include/bits/stl_iterator_base_types.h
! 10807eb51dc43c99a91c93e176ba24b1  libstdc++-v3/include/bits/stl_list.h
  aee57a8661ec66bcbd3d049a16df390e  libstdc++-v3/include/bits/stl_map.h
  b8cb58fbb28fca627fd75d308c3b79fa  libstdc++-v3/include/bits/stl_multimap.h
  f6c4537c41eed49ed99d69f857341edf  libstdc++-v3/include/bits/stl_multiset.h
*************** e1046f3460e6b41c7e73808ecb83be4d  libstd
*** 98328,98341 ****
  68cf363b8a59975fef89e4a35f305aac  libstdc++-v3/include/bits/streambuf_iterator.h
  edfcae2473cc1997408a2778fd824b00  libstdc++-v3/include/bits/string_view.tcc
  dce486b4bf1d6d2797c477681a012b6b  libstdc++-v3/include/bits/stringfwd.h
! 36a5335258d3016e02f890395595a676  libstdc++-v3/include/bits/this_thread_sleep.h
  13b7236ca3b4f48a897996d806dfcd78  libstdc++-v3/include/bits/uniform_int_dist.h
  f121bb0af76bb2def80cd57ec47a7a93  libstdc++-v3/include/bits/unique_lock.h
  4b5ae66ad1eb2fe06e6955f59533f596  libstdc++-v3/include/bits/unique_ptr.h
  b23caecd2ad3808e9572b2051285a5ef  libstdc++-v3/include/bits/unordered_map.h
  2b37ceccf2a7d7b2510b97d737feb425  libstdc++-v3/include/bits/unordered_set.h
  3232586c3c5b827a38bfdd0f1cb692d3  libstdc++-v3/include/bits/uses_allocator.h
! 3ce8e46172f802fe63611201ceff37c3  libstdc++-v3/include/bits/uses_allocator_args.h
  92ac9967aa8b4e7ebb4019d9e5fc2cf6  libstdc++-v3/include/bits/valarray_after.h
  68516738753362c2db0a29a86a8e6264  libstdc++-v3/include/bits/valarray_array.h
  164619db6e4fbc8072543c783e3b533e  libstdc++-v3/include/bits/valarray_array.tcc
--- 98654,98667 ----
  68cf363b8a59975fef89e4a35f305aac  libstdc++-v3/include/bits/streambuf_iterator.h
  edfcae2473cc1997408a2778fd824b00  libstdc++-v3/include/bits/string_view.tcc
  dce486b4bf1d6d2797c477681a012b6b  libstdc++-v3/include/bits/stringfwd.h
! dbb7d35501a7cc0d81b824c8f19a4970  libstdc++-v3/include/bits/this_thread_sleep.h
  13b7236ca3b4f48a897996d806dfcd78  libstdc++-v3/include/bits/uniform_int_dist.h
  f121bb0af76bb2def80cd57ec47a7a93  libstdc++-v3/include/bits/unique_lock.h
  4b5ae66ad1eb2fe06e6955f59533f596  libstdc++-v3/include/bits/unique_ptr.h
  b23caecd2ad3808e9572b2051285a5ef  libstdc++-v3/include/bits/unordered_map.h
  2b37ceccf2a7d7b2510b97d737feb425  libstdc++-v3/include/bits/unordered_set.h
  3232586c3c5b827a38bfdd0f1cb692d3  libstdc++-v3/include/bits/uses_allocator.h
! 3c4c1862bc686ce6c2d097b32a3cb5f7  libstdc++-v3/include/bits/uses_allocator_args.h
  92ac9967aa8b4e7ebb4019d9e5fc2cf6  libstdc++-v3/include/bits/valarray_after.h
  68516738753362c2db0a29a86a8e6264  libstdc++-v3/include/bits/valarray_array.h
  164619db6e4fbc8072543c783e3b533e  libstdc++-v3/include/bits/valarray_array.tcc
*************** ffaf8d3718dd333ea27a4a80ef91f2ca  libstd
*** 98401,98407 ****
  46a63be570cb38caa5e9a9dbbb602cc7  libstdc++-v3/include/c_global/cstdalign
  74c8c88b10906374a040dbdbdff64367  libstdc++-v3/include/c_global/cstdarg
  50d2074e121e5079532c038fbffec30e  libstdc++-v3/include/c_global/cstdbool
! 6265732c237dbce60877696f72fb210b  libstdc++-v3/include/c_global/cstddef
  3495a000699aeacc73362a939388c5d3  libstdc++-v3/include/c_global/cstdint
  a7ce4ac37bb51deeb3861d4cb6c8f260  libstdc++-v3/include/c_global/cstdio
  5c22b21848d5ef9504ded4ba9ac0f5b0  libstdc++-v3/include/c_global/cstdlib
--- 98727,98733 ----
  46a63be570cb38caa5e9a9dbbb602cc7  libstdc++-v3/include/c_global/cstdalign
  74c8c88b10906374a040dbdbdff64367  libstdc++-v3/include/c_global/cstdarg
  50d2074e121e5079532c038fbffec30e  libstdc++-v3/include/c_global/cstdbool
! 0fa40ad26372c117a0b028cc33f68d50  libstdc++-v3/include/c_global/cstddef
  3495a000699aeacc73362a939388c5d3  libstdc++-v3/include/c_global/cstdint
  a7ce4ac37bb51deeb3861d4cb6c8f260  libstdc++-v3/include/c_global/cstdio
  5c22b21848d5ef9504ded4ba9ac0f5b0  libstdc++-v3/include/c_global/cstdlib
*************** fee23cd92a92d6bf2f6fdd3850d1ec1a  libstd
*** 98470,98491 ****
  51feabb5a9aff9c2650be847f563769d  libstdc++-v3/include/experimental/array
  363feb942b9ed4fdcb8f065231501c85  libstdc++-v3/include/experimental/bits/fs_dir.h
  f5e02eb1311a467ce3d8138ce931f3eb  libstdc++-v3/include/experimental/bits/fs_fwd.h
! 52737c1e85c36fe263ef86630cece5a7  libstdc++-v3/include/experimental/bits/fs_ops.h
! 39c79598ce86e66f13b60c1891b17e80  libstdc++-v3/include/experimental/bits/fs_path.h
  f35b43a0d32627601d4bfe3ac24e84ff  libstdc++-v3/include/experimental/bits/lfts_config.h
  6c96027917a74ba73627fb559e8bbeb7  libstdc++-v3/include/experimental/bits/net.h
  19f9985a717ce911687aa7087349693d  libstdc++-v3/include/experimental/bits/numeric_traits.h
  526bcbcdfb0acc96580ff835ceb38948  libstdc++-v3/include/experimental/bits/shared_ptr.h
! 2e2d3bbaa3bfc8f5b2865938517b4aa7  libstdc++-v3/include/experimental/bits/simd.h
! 77017778ba2d0d32457cec429d6d6977  libstdc++-v3/include/experimental/bits/simd_builtin.h
! 24126236d714fbf83db8ddc38457b246  libstdc++-v3/include/experimental/bits/simd_converter.h
! c7387f3f41d4df9d699e9b1336d67344  libstdc++-v3/include/experimental/bits/simd_detail.h
! eec02f44fcb5eba6ba668e810c146d8d  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! 847194b3fe1db090040fca784135ea40  libstdc++-v3/include/experimental/bits/simd_math.h
! 0bcac8d453d8e154e6ccb741b4519051  libstdc++-v3/include/experimental/bits/simd_neon.h
! 7b753c6c4038aa02447cf0318cdeb6ec  libstdc++-v3/include/experimental/bits/simd_ppc.h
! 5c1c0064d9b5bbd62fff9f3d0f78f5b6  libstdc++-v3/include/experimental/bits/simd_scalar.h
! b4b13543518a05fcce27741e6abddd5b  libstdc++-v3/include/experimental/bits/simd_x86.h
  a7070d3b5675c71011b2b53a091f1276  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
  3a18bdda008c9ee7d00a7fe3df2978f7  libstdc++-v3/include/experimental/bits/string_view.tcc
  854d9b5964314dea05a89721173b4da0  libstdc++-v3/include/experimental/buffer
--- 98796,98817 ----
  51feabb5a9aff9c2650be847f563769d  libstdc++-v3/include/experimental/array
  363feb942b9ed4fdcb8f065231501c85  libstdc++-v3/include/experimental/bits/fs_dir.h
  f5e02eb1311a467ce3d8138ce931f3eb  libstdc++-v3/include/experimental/bits/fs_fwd.h
! ec486b11aba3d3daa70d9ffaa56ae032  libstdc++-v3/include/experimental/bits/fs_ops.h
! eb27e9e05d97a3299e71d2dbd817eb49  libstdc++-v3/include/experimental/bits/fs_path.h
  f35b43a0d32627601d4bfe3ac24e84ff  libstdc++-v3/include/experimental/bits/lfts_config.h
  6c96027917a74ba73627fb559e8bbeb7  libstdc++-v3/include/experimental/bits/net.h
  19f9985a717ce911687aa7087349693d  libstdc++-v3/include/experimental/bits/numeric_traits.h
  526bcbcdfb0acc96580ff835ceb38948  libstdc++-v3/include/experimental/bits/shared_ptr.h
! 146a65a53d67a17837f80c6b72583c2a  libstdc++-v3/include/experimental/bits/simd.h
! bd8bb2775a56beef8d5e7035f29313b3  libstdc++-v3/include/experimental/bits/simd_builtin.h
! cc64fe357953ec34875f1b32641b45db  libstdc++-v3/include/experimental/bits/simd_converter.h
! 2ea5647aa5c4573ab52b119e9e93e0d5  libstdc++-v3/include/experimental/bits/simd_detail.h
! acafc82b1c2b3da5288baa6534636825  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! a757b9f3a68db3ae2f36e012ea2215b9  libstdc++-v3/include/experimental/bits/simd_math.h
! a6758085744d5817f8a1186ee2015ea4  libstdc++-v3/include/experimental/bits/simd_neon.h
! 54fcaa202fda15079cb885020f6bf1e5  libstdc++-v3/include/experimental/bits/simd_ppc.h
! 807f9675127d0f7a2fb50eb6d56c5816  libstdc++-v3/include/experimental/bits/simd_scalar.h
! 9fef4ad443d852ede506049316aaecfb  libstdc++-v3/include/experimental/bits/simd_x86.h
  a7070d3b5675c71011b2b53a091f1276  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
  3a18bdda008c9ee7d00a7fe3df2978f7  libstdc++-v3/include/experimental/bits/string_view.tcc
  854d9b5964314dea05a89721173b4da0  libstdc++-v3/include/experimental/buffer
*************** baeaf7b9b85bb476117d286653f6d6dd  libstd
*** 98495,98501 ****
  7b2663037e13929b806bf614936012cd  libstdc++-v3/include/experimental/filesystem
  de12aef18178267fe21aaf85aa6b5d98  libstdc++-v3/include/experimental/forward_list
  5dcfda8a1ea0023fdf730226a958f492  libstdc++-v3/include/experimental/functional
! 3123308f1adec058d0f6137b80537c97  libstdc++-v3/include/experimental/internet
  91becacad368d2748dbba54d79e1d1d4  libstdc++-v3/include/experimental/io_context
  4691bb9a4cbb032dd0b0bd7a07fa1867  libstdc++-v3/include/experimental/iterator
  760aa8f9adda752006a29223129fb0e3  libstdc++-v3/include/experimental/list
--- 98821,98827 ----
  7b2663037e13929b806bf614936012cd  libstdc++-v3/include/experimental/filesystem
  de12aef18178267fe21aaf85aa6b5d98  libstdc++-v3/include/experimental/forward_list
  5dcfda8a1ea0023fdf730226a958f492  libstdc++-v3/include/experimental/functional
! 2bac1861f620f34b47b9363a9802588b  libstdc++-v3/include/experimental/internet
  91becacad368d2748dbba54d79e1d1d4  libstdc++-v3/include/experimental/io_context
  4691bb9a4cbb032dd0b0bd7a07fa1867  libstdc++-v3/include/experimental/iterator
  760aa8f9adda752006a29223129fb0e3  libstdc++-v3/include/experimental/list
*************** de12aef18178267fe21aaf85aa6b5d98  libstd
*** 98504,98511 ****
  8d496ecdcd31004e5178103976818db7  libstdc++-v3/include/experimental/memory_resource
  00e11abd45c1991e940e3cc0ce0ebe37  libstdc++-v3/include/experimental/net
  c37c4ab64b91d429eb61d78fdc4ae75e  libstdc++-v3/include/experimental/netfwd
! e9319e5893708aa04f34ad9d9a5782d8  libstdc++-v3/include/experimental/numeric
! 254db9903f2d7fb0c771809d3d79d4c9  libstdc++-v3/include/experimental/optional
  88381df08a09b23c6f601a2631339c94  libstdc++-v3/include/experimental/propagate_const
  b9a97a912d958096564644bd8f9c49e6  libstdc++-v3/include/experimental/random
  bcc2870c86a9e3a62d9cc64e34919516  libstdc++-v3/include/experimental/ratio
--- 98830,98837 ----
  8d496ecdcd31004e5178103976818db7  libstdc++-v3/include/experimental/memory_resource
  00e11abd45c1991e940e3cc0ce0ebe37  libstdc++-v3/include/experimental/net
  c37c4ab64b91d429eb61d78fdc4ae75e  libstdc++-v3/include/experimental/netfwd
! ada4b171b7ac317029dc5b4134f19eb6  libstdc++-v3/include/experimental/numeric
! 92b7e24d8b53000153f9a9f69dfe4b12  libstdc++-v3/include/experimental/optional
  88381df08a09b23c6f601a2631339c94  libstdc++-v3/include/experimental/propagate_const
  b9a97a912d958096564644bd8f9c49e6  libstdc++-v3/include/experimental/random
  bcc2870c86a9e3a62d9cc64e34919516  libstdc++-v3/include/experimental/ratio
*************** b156f0d597a2edae1a06e54aba071e41  libstd
*** 98880,98891 ****
  6f7d40cef8f663c474dbafbd94db6d41  libstdc++-v3/include/std/algorithm
  463aea90e2091f752c8b3d12848f07af  libstdc++-v3/include/std/any
  1c0c57ef53ca4293de32b58ded42452f  libstdc++-v3/include/std/array
! 570573a00e531ffdecd17c4b451394a3  libstdc++-v3/include/std/atomic
! 113c8eb3a8d8b67c8404665c3eb0af4b  libstdc++-v3/include/std/barrier
  0c9f83580f47735e5a15465796ce574b  libstdc++-v3/include/std/bit
  92df508c8bd5ee1e5201893372265093  libstdc++-v3/include/std/bitset
! 22f4855f519d0c64e0fd08dd60af4544  libstdc++-v3/include/std/charconv
! 84f035b368ef2b37d7074a834881f74c  libstdc++-v3/include/std/chrono
  9fc8010f8954d7f9d9b7b73480068af4  libstdc++-v3/include/std/codecvt
  34ecc2d19af4343e2194a05671920bcf  libstdc++-v3/include/std/complex
  b27a8ffddfc035eda249b54de11167b3  libstdc++-v3/include/std/concepts
--- 99206,99217 ----
  6f7d40cef8f663c474dbafbd94db6d41  libstdc++-v3/include/std/algorithm
  463aea90e2091f752c8b3d12848f07af  libstdc++-v3/include/std/any
  1c0c57ef53ca4293de32b58ded42452f  libstdc++-v3/include/std/array
! d842f1d8213f596f991e9ec192107bd5  libstdc++-v3/include/std/atomic
! f41d2b238bdba11f9f434620788dc4f8  libstdc++-v3/include/std/barrier
  0c9f83580f47735e5a15465796ce574b  libstdc++-v3/include/std/bit
  92df508c8bd5ee1e5201893372265093  libstdc++-v3/include/std/bitset
! b1df1e999fa804759ad24974f4c88720  libstdc++-v3/include/std/charconv
! a3c948e3df2b6be15b9120cd88c5d7ea  libstdc++-v3/include/std/chrono
  9fc8010f8954d7f9d9b7b73480068af4  libstdc++-v3/include/std/codecvt
  34ecc2d19af4343e2194a05671920bcf  libstdc++-v3/include/std/complex
  b27a8ffddfc035eda249b54de11167b3  libstdc++-v3/include/std/concepts
*************** a237fb5e78eed942187e2c31d09781cd  libstd
*** 98897,98908 ****
  f5cdaa349c402ad3dc30fafc021795ed  libstdc++-v3/include/std/forward_list
  bb00f2ca62b1de81f535a88e31c1f5de  libstdc++-v3/include/std/fstream
  58a2fdd72fd79ee358a1e9503125bf81  libstdc++-v3/include/std/functional
! d477bf4402a3b2bf03b9630bd82c16f4  libstdc++-v3/include/std/future
  845b6c7d80f2571b48679fa2d1782e3c  libstdc++-v3/include/std/iomanip
  7f2ddbbe088dd66d76a348a256dba943  libstdc++-v3/include/std/ios
! 3c26a7aac28e06bf5c15f34547dccfe2  libstdc++-v3/include/std/iosfwd
  cc9ef3d2217fc8c34ac467dc84040a1a  libstdc++-v3/include/std/iostream
! 0c8c5d6467ac30bab3d781a7a81604b8  libstdc++-v3/include/std/istream
  18a3b1062d8afaac67497cf9e22a5001  libstdc++-v3/include/std/iterator
  02e04305d111ee17f9c47d5be14bfde0  libstdc++-v3/include/std/latch
  5db2105ed53cebe7e72b5aeade698f93  libstdc++-v3/include/std/limits
--- 99223,99234 ----
  f5cdaa349c402ad3dc30fafc021795ed  libstdc++-v3/include/std/forward_list
  bb00f2ca62b1de81f535a88e31c1f5de  libstdc++-v3/include/std/fstream
  58a2fdd72fd79ee358a1e9503125bf81  libstdc++-v3/include/std/functional
! aeccc26fd2923b40ab6ab541a599d4d0  libstdc++-v3/include/std/future
  845b6c7d80f2571b48679fa2d1782e3c  libstdc++-v3/include/std/iomanip
  7f2ddbbe088dd66d76a348a256dba943  libstdc++-v3/include/std/ios
! d6816b5794f77db9b59059fe08c3e584  libstdc++-v3/include/std/iosfwd
  cc9ef3d2217fc8c34ac467dc84040a1a  libstdc++-v3/include/std/iostream
! f95692de5da00857033814f24e527e8a  libstdc++-v3/include/std/istream
  18a3b1062d8afaac67497cf9e22a5001  libstdc++-v3/include/std/iterator
  02e04305d111ee17f9c47d5be14bfde0  libstdc++-v3/include/std/latch
  5db2105ed53cebe7e72b5aeade698f93  libstdc++-v3/include/std/limits
*************** f36de15c1f3b7e03051daa3f7c7472c5  libstd
*** 98913,98952 ****
  09387c343cf665a54b81117127a6a648  libstdc++-v3/include/std/memory_resource
  44c7dab7177844460c0d95f3b2c6d2dd  libstdc++-v3/include/std/mutex
  0f98490a23012b0d475a6438918e05e8  libstdc++-v3/include/std/numbers
! c5ef47ada66192553fd8a6a03625d70e  libstdc++-v3/include/std/numeric
  c26f8f7af799f7f3a2830f1689b12757  libstdc++-v3/include/std/optional
  efcc2fdc15a99e21f2c4a97ee2924fce  libstdc++-v3/include/std/ostream
  61b007baae14c52b13732aad82286815  libstdc++-v3/include/std/queue
  aad0b8c05c77db48c9ae1eddb9e0380d  libstdc++-v3/include/std/random
! 3064407113806c9e18b6e82819e298e2  libstdc++-v3/include/std/ranges
  338a84095148e5196b391a7fdf949691  libstdc++-v3/include/std/ratio
  52827264570402b0bccc80a3adb4bf59  libstdc++-v3/include/std/regex
  7aa445d626fba3c86cea701c7db4db7c  libstdc++-v3/include/std/scoped_allocator
  7ea9ab55b16bf212329fa852a89c8167  libstdc++-v3/include/std/semaphore
  742567ce5079b72e691794c61cfb2af3  libstdc++-v3/include/std/set
  91a9a4fa6c63c846408b4454d2c8f4b2  libstdc++-v3/include/std/shared_mutex
! e0c9f8627e498a77f31adb76a452b0b1  libstdc++-v3/include/std/source_location
! 357a7b4c1da8f56bcf0a40d239d6ecf5  libstdc++-v3/include/std/span
! 906b5423836b8b95366b23366f24b8c5  libstdc++-v3/include/std/sstream
  ed0009b64dfff30999a2182d0189ee7f  libstdc++-v3/include/std/stack
  9d66312aa64c804c24a1e83155f4a200  libstdc++-v3/include/std/stdexcept
  34c6da09a169cc099e8108f6af279a65  libstdc++-v3/include/std/stop_token
  05c6cffed4833f117e386206af8f878e  libstdc++-v3/include/std/streambuf
  8eccd3adbdc9f406ec98e5483acf9c01  libstdc++-v3/include/std/string
! 0a773ecf42b54e0084752df53c9771e9  libstdc++-v3/include/std/string_view
! 675010f60f0d3d515817ed986722981c  libstdc++-v3/include/std/syncstream
  58f6c2eb152b2f7a05834ac1c4ebb1ed  libstdc++-v3/include/std/system_error
  83a8f781edae2a22c67cf12b96568a03  libstdc++-v3/include/std/thread
! 987d70e3d16382cfa8a07dca96afab5e  libstdc++-v3/include/std/tuple
! c35bd8e7b58e4d200f7129541933ae7b  libstdc++-v3/include/std/type_traits
  330d42fb74c13496f374d6b2cb3cbf7c  libstdc++-v3/include/std/typeindex
  16ace88be8613b378b5fffc1958351a0  libstdc++-v3/include/std/unordered_map
  aeb2a92a3c9a2263f24568c8ece52a4c  libstdc++-v3/include/std/unordered_set
  d9438feb050100a59ccb2bd7e22fb8f6  libstdc++-v3/include/std/utility
! 54baaf5124374152e58dec3ec0861669  libstdc++-v3/include/std/valarray
! 93b603e7d4c481cb8e46ce989dab4dcf  libstdc++-v3/include/std/variant
  b2ab68817368c3805d64bb4978a6129d  libstdc++-v3/include/std/vector
! 6a729ab766e821a330853c5fd48bcca5  libstdc++-v3/include/std/version
  7a3df4ee77f8051d9c8970f892588ef6  libstdc++-v3/include/tr1/array
  79c7b722cf8e5135a96d12e1a660393b  libstdc++-v3/include/tr1/bessel_function.tcc
  814be185cac0443c6e0933c450d9f912  libstdc++-v3/include/tr1/beta_function.tcc
--- 99239,99278 ----
  09387c343cf665a54b81117127a6a648  libstdc++-v3/include/std/memory_resource
  44c7dab7177844460c0d95f3b2c6d2dd  libstdc++-v3/include/std/mutex
  0f98490a23012b0d475a6438918e05e8  libstdc++-v3/include/std/numbers
! 05fc9ec988e9d247d6fa5ac50919e7aa  libstdc++-v3/include/std/numeric
  c26f8f7af799f7f3a2830f1689b12757  libstdc++-v3/include/std/optional
  efcc2fdc15a99e21f2c4a97ee2924fce  libstdc++-v3/include/std/ostream
  61b007baae14c52b13732aad82286815  libstdc++-v3/include/std/queue
  aad0b8c05c77db48c9ae1eddb9e0380d  libstdc++-v3/include/std/random
! 2b61b0677f1059cc909c183a0771844d  libstdc++-v3/include/std/ranges
  338a84095148e5196b391a7fdf949691  libstdc++-v3/include/std/ratio
  52827264570402b0bccc80a3adb4bf59  libstdc++-v3/include/std/regex
  7aa445d626fba3c86cea701c7db4db7c  libstdc++-v3/include/std/scoped_allocator
  7ea9ab55b16bf212329fa852a89c8167  libstdc++-v3/include/std/semaphore
  742567ce5079b72e691794c61cfb2af3  libstdc++-v3/include/std/set
  91a9a4fa6c63c846408b4454d2c8f4b2  libstdc++-v3/include/std/shared_mutex
! fa82172d1e8f851dd0540265a9722f00  libstdc++-v3/include/std/source_location
! d7e096e8706bd2f5ace3097757edca5b  libstdc++-v3/include/std/span
! c390f93b8a3477ea03336ee6336fdd3d  libstdc++-v3/include/std/sstream
  ed0009b64dfff30999a2182d0189ee7f  libstdc++-v3/include/std/stack
  9d66312aa64c804c24a1e83155f4a200  libstdc++-v3/include/std/stdexcept
  34c6da09a169cc099e8108f6af279a65  libstdc++-v3/include/std/stop_token
  05c6cffed4833f117e386206af8f878e  libstdc++-v3/include/std/streambuf
  8eccd3adbdc9f406ec98e5483acf9c01  libstdc++-v3/include/std/string
! 24d0d039f982ec14049a14db0a3e415c  libstdc++-v3/include/std/string_view
! 73e7d99c342a65822fcbfaf4033adf71  libstdc++-v3/include/std/syncstream
  58f6c2eb152b2f7a05834ac1c4ebb1ed  libstdc++-v3/include/std/system_error
  83a8f781edae2a22c67cf12b96568a03  libstdc++-v3/include/std/thread
! 75ec944808fb35b5874a917bfc65812a  libstdc++-v3/include/std/tuple
! 6d1101c58cc358a53860711cff8ba743  libstdc++-v3/include/std/type_traits
  330d42fb74c13496f374d6b2cb3cbf7c  libstdc++-v3/include/std/typeindex
  16ace88be8613b378b5fffc1958351a0  libstdc++-v3/include/std/unordered_map
  aeb2a92a3c9a2263f24568c8ece52a4c  libstdc++-v3/include/std/unordered_set
  d9438feb050100a59ccb2bd7e22fb8f6  libstdc++-v3/include/std/utility
! c850b998f4d1266de1335fea45c46997  libstdc++-v3/include/std/valarray
! aa36fc0f6303b753dfa37dc4df5ea6dd  libstdc++-v3/include/std/variant
  b2ab68817368c3805d64bb4978a6129d  libstdc++-v3/include/std/vector
! 32ddefff83b609d61eb548868fcc1de1  libstdc++-v3/include/std/version
  7a3df4ee77f8051d9c8970f892588ef6  libstdc++-v3/include/tr1/array
  79c7b722cf8e5135a96d12e1a660393b  libstdc++-v3/include/tr1/bessel_function.tcc
  814be185cac0443c6e0933c450d9f912  libstdc++-v3/include/tr1/beta_function.tcc
*************** b21af20d19c1de40ba9cd41e413f6562  libstd
*** 99112,99119 ****
  ef60735f8655321222e620486f219e8d  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  484cb11df73bf42227946114a89d29b5  libstdc++-v3/python/libstdcxx/v6/__init__.py
! 5c88121f75cb36f7f97e43dcedeace5c  libstdc++-v3/python/libstdcxx/v6/printers.py
! 9e215f5fde222b3fe8e836e3183e4404  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
--- 99438,99445 ----
  ef60735f8655321222e620486f219e8d  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  484cb11df73bf42227946114a89d29b5  libstdc++-v3/python/libstdcxx/v6/__init__.py
! 57e2dfeea4206195f4bc1c93dd577c8f  libstdc++-v3/python/libstdcxx/v6/printers.py
! 59c472e7513b52ab1d9d374544b513a1  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
*************** e8e7773bc629a008b2813ee507a0dab6  libstd
*** 99127,99138 ****
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
  f614496940b16d8f5c8685d91a47903e  libstdc++-v3/scripts/run_doxygen
  7579350b0ac0412cb42e9c354485ebd9  libstdc++-v3/scripts/testsuite_flags.in
! 90d9f3e1d4379ef148eff766138db885  libstdc++-v3/src/Makefile.am
! 3d242c79bb2931ab9442d67f04ec5292  libstdc++-v3/src/Makefile.in
  000cfcfbee87b2cd6e095ada940b97be  libstdc++-v3/src/c++11/Makefile.am
  d7fac9138ce1d66a3a3bcb97a36bd4f7  libstdc++-v3/src/c++11/Makefile.in
  fdce91d6f0e0cb276b62993742bb7146  libstdc++-v3/src/c++11/chrono.cc
! 7ec3713834b6a0a9356d439a66579099  libstdc++-v3/src/c++11/codecvt.cc
  2fbc29206c3ec26f5a499d1d8b01ea01  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
  20622ccf2bba591552b35f31986affd8  libstdc++-v3/src/c++11/compatibility-c++0x.cc
  a9122c87521f59de28f5cb332637e5fd  libstdc++-v3/src/c++11/compatibility-chrono.cc
--- 99453,99464 ----
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
  f614496940b16d8f5c8685d91a47903e  libstdc++-v3/scripts/run_doxygen
  7579350b0ac0412cb42e9c354485ebd9  libstdc++-v3/scripts/testsuite_flags.in
! 540aa599307276b9714dfede05c3d9c9  libstdc++-v3/src/Makefile.am
! 31b5fcce9517c88d3dff0af26917a13c  libstdc++-v3/src/Makefile.in
  000cfcfbee87b2cd6e095ada940b97be  libstdc++-v3/src/c++11/Makefile.am
  d7fac9138ce1d66a3a3bcb97a36bd4f7  libstdc++-v3/src/c++11/Makefile.in
  fdce91d6f0e0cb276b62993742bb7146  libstdc++-v3/src/c++11/chrono.cc
! 5d72b8cbe3d629d23e82b0f151d64b0c  libstdc++-v3/src/c++11/codecvt.cc
  2fbc29206c3ec26f5a499d1d8b01ea01  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
  20622ccf2bba591552b35f31986affd8  libstdc++-v3/src/c++11/compatibility-c++0x.cc
  a9122c87521f59de28f5cb332637e5fd  libstdc++-v3/src/c++11/compatibility-chrono.cc
*************** b1e311a760b7fc9f79f4c3e116d870ad  libstd
*** 99153,99159 ****
  9c2da2f0e682809a7efdecfc6fa49934  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
  30ddd0f9c87af440dc416afc40d57f44  libstdc++-v3/src/c++11/ctype.cc
  d63ad10cee99effce602ecfd86f2c6b3  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! 333a9eec225a90ac835319896b494725  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
  3e4964b37cb4e0a7a3dabf39ce83038d  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
  83fbc2f04af1752e626ce5c04fc41021  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
  547060ebce06c57f1d36a3ebb230f6d1  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
--- 99479,99485 ----
  9c2da2f0e682809a7efdecfc6fa49934  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
  30ddd0f9c87af440dc416afc40d57f44  libstdc++-v3/src/c++11/ctype.cc
  d63ad10cee99effce602ecfd86f2c6b3  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! 4f92f1859ce25dfdaeea79ca1d8f5092  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
  3e4964b37cb4e0a7a3dabf39ce83038d  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
  83fbc2f04af1752e626ce5c04fc41021  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
  547060ebce06c57f1d36a3ebb230f6d1  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
*************** b17f6f7ac95e790c63dc4b307011484f  libstd
*** 99164,99170 ****
  a3e4eadf15f208dba5ae3f1a63d51220  libstdc++-v3/src/c++11/functexcept.cc
  9a3c407f47856f2156a033d0c5ed9830  libstdc++-v3/src/c++11/functional.cc
  03c63e35d2bfb3354ac527797632baf0  libstdc++-v3/src/c++11/futex.cc
! a779e1496a831a9e58dbfe0c2393a9e3  libstdc++-v3/src/c++11/future.cc
  a4701f7f549c0b1fd6c50e2e2b9cc9ed  libstdc++-v3/src/c++11/hash_c++0x.cc
  7637f776a1c1ed11f452aa84d3d64491  libstdc++-v3/src/c++11/hashtable_c++0x.cc
  21ef2783c98363b3c7027ae99e9a9471  libstdc++-v3/src/c++11/ios-inst.cc
--- 99490,99496 ----
  a3e4eadf15f208dba5ae3f1a63d51220  libstdc++-v3/src/c++11/functexcept.cc
  9a3c407f47856f2156a033d0c5ed9830  libstdc++-v3/src/c++11/functional.cc
  03c63e35d2bfb3354ac527797632baf0  libstdc++-v3/src/c++11/futex.cc
! 9b4db1b1b8dd7b982447382c10919b06  libstdc++-v3/src/c++11/future.cc
  a4701f7f549c0b1fd6c50e2e2b9cc9ed  libstdc++-v3/src/c++11/hash_c++0x.cc
  7637f776a1c1ed11f452aa84d3d64491  libstdc++-v3/src/c++11/hashtable_c++0x.cc
  21ef2783c98363b3c7027ae99e9a9471  libstdc++-v3/src/c++11/ios-inst.cc
*************** a4ad998b432d02bb72aaf1d87d0acd8b  libstd
*** 99179,99185 ****
  4a9c69794963372e7cfe7a89a3c36fa5  libstdc++-v3/src/c++11/mutex_pool.h
  6949bb94e5a7111191195d7c1509f2a1  libstdc++-v3/src/c++11/ostream-inst.cc
  92279da6a43eb47f7355581a4a2a7631  libstdc++-v3/src/c++11/placeholders.cc
! 22dcc0914aa84993903fc88abdcf0df9  libstdc++-v3/src/c++11/random.cc
  b3f5a0e85916e3062a0f408f5c588e05  libstdc++-v3/src/c++11/regex.cc
  6f5ac010c707f1b6b80de53cf1266a6b  libstdc++-v3/src/c++11/shared_ptr.cc
  a058c0b6cc7d0111a3e534392191bf7d  libstdc++-v3/src/c++11/snprintf_lite.cc
--- 99505,99511 ----
  4a9c69794963372e7cfe7a89a3c36fa5  libstdc++-v3/src/c++11/mutex_pool.h
  6949bb94e5a7111191195d7c1509f2a1  libstdc++-v3/src/c++11/ostream-inst.cc
  92279da6a43eb47f7355581a4a2a7631  libstdc++-v3/src/c++11/placeholders.cc
! f8df61631f623cf4b445c24be77744cb  libstdc++-v3/src/c++11/random.cc
  b3f5a0e85916e3062a0f408f5c588e05  libstdc++-v3/src/c++11/regex.cc
  6f5ac010c707f1b6b80de53cf1266a6b  libstdc++-v3/src/c++11/shared_ptr.cc
  a058c0b6cc7d0111a3e534392191bf7d  libstdc++-v3/src/c++11/snprintf_lite.cc
*************** a058c0b6cc7d0111a3e534392191bf7d  libstd
*** 99188,99194 ****
  f719f4c27c082199cb4cc7bd224b1235  libstdc++-v3/src/c++11/streambuf-inst.cc
  1956880dcf7cf135e21c20c27366d969  libstdc++-v3/src/c++11/string-inst.cc
  918dca1dc0f88fdd6ea72120d506122a  libstdc++-v3/src/c++11/string-io-inst.cc
! 76ebfb5cb77b5f40609034aa4e6346f4  libstdc++-v3/src/c++11/system_error.cc
  9381c68fea89c0b9811704782c8014d3  libstdc++-v3/src/c++11/thread.cc
  d0b105c1c7ce2890dc9ff2748affabbf  libstdc++-v3/src/c++11/wlocale-inst.cc
  dcfd2322c93dd48b11088455fc3beba2  libstdc++-v3/src/c++11/wstring-inst.cc
--- 99514,99520 ----
  f719f4c27c082199cb4cc7bd224b1235  libstdc++-v3/src/c++11/streambuf-inst.cc
  1956880dcf7cf135e21c20c27366d969  libstdc++-v3/src/c++11/string-inst.cc
  918dca1dc0f88fdd6ea72120d506122a  libstdc++-v3/src/c++11/string-io-inst.cc
! 20a9cd0f6a58a6324b62e78dece910c5  libstdc++-v3/src/c++11/system_error.cc
  9381c68fea89c0b9811704782c8014d3  libstdc++-v3/src/c++11/thread.cc
  d0b105c1c7ce2890dc9ff2748affabbf  libstdc++-v3/src/c++11/wlocale-inst.cc
  dcfd2322c93dd48b11088455fc3beba2  libstdc++-v3/src/c++11/wstring-inst.cc
*************** dcfd2322c93dd48b11088455fc3beba2  libstd
*** 99200,99211 ****
  0732bbfdd57bfb7a0d6e33b50a9d479d  libstdc++-v3/src/c++17/cow-fs_path.cc
  fe48c009c5684613dd310097f544a115  libstdc++-v3/src/c++17/cow-string-inst.cc
  21e22ff1ddec6a91c7b379d6f6398649  libstdc++-v3/src/c++17/default_resource.h
! 242d9497f8938d611ecbc446bc541a5c  libstdc++-v3/src/c++17/floating_from_chars.cc
  6c16689b0ed0520761730e22e879f4d8  libstdc++-v3/src/c++17/floating_to_chars.cc
  85f8c336c16b7a6c978470d355cf20f1  libstdc++-v3/src/c++17/fs_dir.cc
! 7381544274fe7860efd69083895166df  libstdc++-v3/src/c++17/fs_ops.cc
! 8e13c63ce5c5f6b76072b2c38173c975  libstdc++-v3/src/c++17/fs_path.cc
! 875017e6a7576d4589b31911090cd940  libstdc++-v3/src/c++17/memory_resource.cc
  6d9c0bef465f18c79af1f9a7af80b525  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  47f52d4af05ab513a6a1ab62c5fdc086  libstdc++-v3/src/c++17/ryu/MERGE
--- 99526,99537 ----
  0732bbfdd57bfb7a0d6e33b50a9d479d  libstdc++-v3/src/c++17/cow-fs_path.cc
  fe48c009c5684613dd310097f544a115  libstdc++-v3/src/c++17/cow-string-inst.cc
  21e22ff1ddec6a91c7b379d6f6398649  libstdc++-v3/src/c++17/default_resource.h
! 347ca979db50958eaba5df3b65909d67  libstdc++-v3/src/c++17/floating_from_chars.cc
  6c16689b0ed0520761730e22e879f4d8  libstdc++-v3/src/c++17/floating_to_chars.cc
  85f8c336c16b7a6c978470d355cf20f1  libstdc++-v3/src/c++17/fs_dir.cc
! 40af88a864bedc0bcaf8ac8dab543dff  libstdc++-v3/src/c++17/fs_ops.cc
! a4c1c272e3c9a294033335a0e5484b1a  libstdc++-v3/src/c++17/fs_path.cc
! 4f8936bcc944c24dd77ef27499d54342  libstdc++-v3/src/c++17/memory_resource.cc
  6d9c0bef465f18c79af1f9a7af80b525  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  47f52d4af05ab513a6a1ab62c5fdc086  libstdc++-v3/src/c++17/ryu/MERGE
*************** fbb127f006c65ae37d591c627cc6235c  libstd
*** 99225,99231 ****
  82231ef77687529627b4a19e5ba192a7  libstdc++-v3/src/c++17/uint128_t.h
  ac15faa3fb83593da9575905b1478902  libstdc++-v3/src/c++20/Makefile.am
  94388664bad26272c36c8b4a277d2214  libstdc++-v3/src/c++20/Makefile.in
! edbcebd86d4459a054bf7300f4eb0860  libstdc++-v3/src/c++20/sstream-inst.cc
  6802c325a00d0f72a28087f0e515b2cd  libstdc++-v3/src/c++98/Makefile.am
  443653488d884dcd6503d401769cf71f  libstdc++-v3/src/c++98/Makefile.in
  8c7f00d8db3289676db19dd406fdf1dd  libstdc++-v3/src/c++98/allocator-inst.cc
--- 99551,99557 ----
  82231ef77687529627b4a19e5ba192a7  libstdc++-v3/src/c++17/uint128_t.h
  ac15faa3fb83593da9575905b1478902  libstdc++-v3/src/c++20/Makefile.am
  94388664bad26272c36c8b4a277d2214  libstdc++-v3/src/c++20/Makefile.in
! 02f2f1f0ff6a21e9145659052f890746  libstdc++-v3/src/c++20/sstream-inst.cc
  6802c325a00d0f72a28087f0e515b2cd  libstdc++-v3/src/c++98/Makefile.am
  443653488d884dcd6503d401769cf71f  libstdc++-v3/src/c++98/Makefile.in
  8c7f00d8db3289676db19dd406fdf1dd  libstdc++-v3/src/c++98/allocator-inst.cc
*************** b673220babee424d2b70a4dbda885118  libstd
*** 99274,99283 ****
  d61e45b9d5e6a114646872dd2109583e  libstdc++-v3/src/filesystem/cow-ops.cc
  1cec190567d6217eca7c91ba30fcac96  libstdc++-v3/src/filesystem/cow-path.cc
  c775a951bdee850a043193645b4b64bf  libstdc++-v3/src/filesystem/dir-common.h
! 637a51cfa86d128b5039c1da9a512c59  libstdc++-v3/src/filesystem/dir.cc
! f8ea984a816f949e86f29a00746cfeaf  libstdc++-v3/src/filesystem/ops-common.h
! 05f797c1c2984089a988357d16a253e9  libstdc++-v3/src/filesystem/ops.cc
! 35978d397a37f9c8652bddaca54e8f22  libstdc++-v3/src/filesystem/path.cc
  4d050a72fe3bf6800e6b61c3d97b09ca  libstdc++-v3/src/shared/hashtable-aux.cc
  269e3bac13e39e68daa7adab30401447  libstdc++-v3/testsuite/17_intro/badnames.cc
  664bdcdc68f1dc65bafa053d9a6ac9f2  libstdc++-v3/testsuite/17_intro/freestanding.cc
--- 99600,99609 ----
  d61e45b9d5e6a114646872dd2109583e  libstdc++-v3/src/filesystem/cow-ops.cc
  1cec190567d6217eca7c91ba30fcac96  libstdc++-v3/src/filesystem/cow-path.cc
  c775a951bdee850a043193645b4b64bf  libstdc++-v3/src/filesystem/dir-common.h
! 8b93f288bccf5e6241cdf17789c69a5f  libstdc++-v3/src/filesystem/dir.cc
! b154291a5f4ccee644a304086f12d462  libstdc++-v3/src/filesystem/ops-common.h
! 1bcc5233f72eadb2b15255585d53acca  libstdc++-v3/src/filesystem/ops.cc
! b321d71970560f8bf4fb6fbc04c30c3b  libstdc++-v3/src/filesystem/path.cc
  4d050a72fe3bf6800e6b61c3d97b09ca  libstdc++-v3/src/shared/hashtable-aux.cc
  269e3bac13e39e68daa7adab30401447  libstdc++-v3/testsuite/17_intro/badnames.cc
  664bdcdc68f1dc65bafa053d9a6ac9f2  libstdc++-v3/testsuite/17_intro/freestanding.cc
*************** b8a53b2b8da32d102d69cbedea3d2216  libstd
*** 99335,99341 ****
  8c11d848a50b34cc41e4f38457340ab0  libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc
  00f02d1595a0b4d76fa4c334f1d290c3  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc
  9a503e9f7a4962b02dcf7af55a6ec225  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc
! b69b7124207f01e2002aa803e816c2a7  libstdc++-v3/testsuite/17_intro/names.cc
  c8b92b0456cec060527cba3fcf483eb7  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
  31f0502096c772d1e15fff55afb87ea4  libstdc++-v3/testsuite/17_intro/static.cc
  fb6074535e87c7e3a68810fb1d497360  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
--- 99661,99667 ----
  8c11d848a50b34cc41e4f38457340ab0  libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc
  00f02d1595a0b4d76fa4c334f1d290c3  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc
  9a503e9f7a4962b02dcf7af55a6ec225  libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc
! 7a3d7369604a204f88765f23ed6ca629  libstdc++-v3/testsuite/17_intro/names.cc
  c8b92b0456cec060527cba3fcf483eb7  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
  31f0502096c772d1e15fff55afb87ea4  libstdc++-v3/testsuite/17_intro/static.cc
  fb6074535e87c7e3a68810fb1d497360  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
*************** b00f036debbe09aaba5288e14cb68a7d  libstd
*** 99593,99599 ****
  f00a16c69147887fb51ac87e69df3e28  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
  e2240bdcf9676c72c7c0c106e3126049  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
  e12608d86c78ef09146d4d23502dbcd1  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! d2847864a51ba5ee6af63d8680746e17  libstdc++-v3/testsuite/20_util/allocator/void.cc
  d8d2792700c4256d6bafe5f823baa7e4  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
  0caa10ed5d647c7934481bf543e1c544  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
  f21d13983b6538238c18e581209d3d0e  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
--- 99919,99925 ----
  f00a16c69147887fb51ac87e69df3e28  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
  e2240bdcf9676c72c7c0c106e3126049  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
  e12608d86c78ef09146d4d23502dbcd1  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! 36b81f6e6644ebbb23d4603005320b9d  libstdc++-v3/testsuite/20_util/allocator/void.cc
  d8d2792700c4256d6bafe5f823baa7e4  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
  0caa10ed5d647c7934481bf543e1c544  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
  f21d13983b6538238c18e581209d3d0e  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
*************** e3ad3ddb332d6e3943018f602b2bb29e  libstd
*** 99777,99786 ****
  40813b675a8962c145ce6313c1044852  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
  a6110c4b49ec7f62741f6522e32a6c6b  libstdc++-v3/testsuite/20_util/from_chars/2.cc
  379a14c4cd58776231fa28677fddc4b6  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! f3ccdf4af13dcd90b2d482870fb5c408  libstdc++-v3/testsuite/20_util/from_chars/4.cc
  7c06b66f04ab4eec4b2c5fddbedb2ef7  libstdc++-v3/testsuite/20_util/from_chars/5.cc
  876e65536f484bd6edb44cae8b8e1073  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  f9142ca7542677ebcdbdfcd2a8c64199  libstdc++-v3/testsuite/20_util/from_chars/compare.cc
  a7e1719aa31ba0787fd23e6109145fbd  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
  e96c312728ed1f0052831242b1e0499c  libstdc++-v3/testsuite/20_util/function/1.cc
  97923bb98b81c72f4e8849de83c22bd6  libstdc++-v3/testsuite/20_util/function/10.cc
--- 100103,100113 ----
  40813b675a8962c145ce6313c1044852  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
  a6110c4b49ec7f62741f6522e32a6c6b  libstdc++-v3/testsuite/20_util/from_chars/2.cc
  379a14c4cd58776231fa28677fddc4b6  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! 81536ab55638eeb18dfce5447e49372c  libstdc++-v3/testsuite/20_util/from_chars/4.cc
  7c06b66f04ab4eec4b2c5fddbedb2ef7  libstdc++-v3/testsuite/20_util/from_chars/5.cc
  876e65536f484bd6edb44cae8b8e1073  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  f9142ca7542677ebcdbdfcd2a8c64199  libstdc++-v3/testsuite/20_util/from_chars/compare.cc
+ 6772f8cd93ed8ce0eff86720c075a1f3  libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
  a7e1719aa31ba0787fd23e6109145fbd  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
  e96c312728ed1f0052831242b1e0499c  libstdc++-v3/testsuite/20_util/function/1.cc
  97923bb98b81c72f4e8849de83c22bd6  libstdc++-v3/testsuite/20_util/function/10.cc
*************** d1d8477a1c8d2c653545136b672d90a1  libstd
*** 100063,100070 ****
  1f0e13e56c2859c6f9d33d950145dd08  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
  ccec019719d047b45fd7d533d6806083  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
  06f14c380966307810d78cfa21154eef  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! 8e8eeaf825cf5c5f267ace68da9e66f1  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
! fe1751d3b300ceb6b2a354ad1ab84ada  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc
  92ff60ce1eaeb43657622a57f19538ca  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
  a5cb728650f87108206e09da15430b55  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
  a2fb959a92554bb25f85214c1e20e7d4  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
--- 100390,100396 ----
  1f0e13e56c2859c6f9d33d950145dd08  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
  ccec019719d047b45fd7d533d6806083  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
  06f14c380966307810d78cfa21154eef  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! 37312b591bf951d0bef1f97b14fd3d28  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
  92ff60ce1eaeb43657622a57f19538ca  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
  a5cb728650f87108206e09da15430b55  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
  a2fb959a92554bb25f85214c1e20e7d4  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
*************** af2b15dc0413fdf9d9d040d6274aeb49  libstd
*** 100078,100083 ****
--- 100404,100410 ----
  909b086f8ab07d0aaccf6a3bbefae04d  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc
  1e59eeb1d22448a627913928912d6957  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
  3be5b8ea44193cd44fbac61f1e3e1226  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc
+ 8abffa6e70c3dd6e801c0527a55bde98  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
  646fe798da0204d769fd7fcf06e2b587  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc
  3361e0b4fb9e8c826cfdeb5a86cc15cb  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc
  0bcbd1e272e4290024ec7bfdeb7eda96  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc
*************** ef0c6e9bae1e6df4b914524a245d22ee  libstd
*** 100220,100226 ****
  e39c1513cb91414e10fa2e58a219f5f4  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
  5d2ae94d53540a249feeefcaf009c6ee  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
  57f1a863ec911ebe90e06f1ad29dc0ba  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! 9b7885adf866441bc83a9da6d2d12602  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
  282463af8ff2a1ba05d9b89cf8d69de4  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
  3b660d19b8a810d3dc6e8528530fd296  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
  1f98394f63b151e05c53d2d8bff5c17a  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
--- 100547,100553 ----
  e39c1513cb91414e10fa2e58a219f5f4  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
  5d2ae94d53540a249feeefcaf009c6ee  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
  57f1a863ec911ebe90e06f1ad29dc0ba  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! b78965699296dd735da1d911adb89232  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
  282463af8ff2a1ba05d9b89cf8d69de4  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
  3b660d19b8a810d3dc6e8528530fd296  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
  1f98394f63b151e05c53d2d8bff5c17a  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
*************** ac5c6e03a642c0de87325f1d1184af62  libstd
*** 100318,100323 ****
--- 100645,100651 ----
  aaa15cfd6f26e0bdfdf36143e47db23a  libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc
  d31c50d42649cc28417caaad7bf7347e  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc
  49ecc83fbbfd3f602ba6befca13cf43a  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc
+ f2f2b91309730f195c55679493733944  libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
  fdd6f03cd47f5235fdefae4cde0e47e1  libstdc++-v3/testsuite/20_util/pair/astuple/get.cc
  5061f9c8e10f9f13a90a6061857a3299  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc
  19a126d1e8148367c5ccbee544b9c89f  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
*************** b55afcc94d1a91a2a689c0587349d422  libstd
*** 100431,100436 ****
--- 100759,100765 ----
  7c4e6d61c93c97f2533c1cb31d44c529  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
  3a68fb53cde5817cb58725200bd4a9b5  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc
  d35d4db73c35b1943c77273ed173d9dc  libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
+ 35133b79da6d1d1682fa724daad0923a  libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
  b270f73ff97fa36792a6b0faf61b0191  libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc
  5b5b197c3784a132cf0b0a6fdf265089  libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
  14237034a0ba21d271477e724c70175e  libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc
*************** d98df0b309eca2ab7730157cd8d7a84a  libstd
*** 100708,100714 ****
  cd6e87cc2bc277c9bd69063e8eea2817  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
  ca9ac6997faa284d081bf6a24d5a3da4  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
  43fedc385c7ce652a2826e88c4c18727  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 1ece695951a9c7644bcbd55d3c803bc1  libstdc++-v3/testsuite/20_util/tuple/swap.cc
  62f03f71592fe0072c08b7b0092c29f1  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
  7233e6e7c83752f9e6c4efba32ed5ceb  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
  c190385542e45d4575995a22902596b6  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
--- 101037,101043 ----
  cd6e87cc2bc277c9bd69063e8eea2817  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
  ca9ac6997faa284d081bf6a24d5a3da4  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
  43fedc385c7ce652a2826e88c4c18727  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 4f5469dfa96036e70e1d8c696ab90e01  libstdc++-v3/testsuite/20_util/tuple/swap.cc
  62f03f71592fe0072c08b7b0092c29f1  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
  7233e6e7c83752f9e6c4efba32ed5ceb  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
  c190385542e45d4575995a22902596b6  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
*************** c366b09cca0254eb576e5d20741489ea  libstd
*** 100784,100790 ****
  4a7cafdbbe65743044943fc950f31e26  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
  f2d15adcff80720680fa72562602c205  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
  c3d3f31ade66cdbabe6b4061faf55eb4  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! 97955951344e8b8bc44a36e0c2088c42  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
  6494d5007d60a9aecfa0336e25e7376b  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
  a902ae49c2c7a151484df76bd06803df  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
  04874e51f91ee5382ce597c953eee878  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
--- 101113,101119 ----
  4a7cafdbbe65743044943fc950f31e26  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
  f2d15adcff80720680fa72562602c205  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
  c3d3f31ade66cdbabe6b4061faf55eb4  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! a2908b358d3ce3e3ca86f8f3e5bbd16e  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
  6494d5007d60a9aecfa0336e25e7376b  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
  a902ae49c2c7a151484df76bd06803df  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
  04874e51f91ee5382ce597c953eee878  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
*************** ad5da87905da76675c011cea122c63d0  libstd
*** 100797,100802 ****
--- 101126,101132 ----
  94da979e26afd2b1ac9050756ced02a7  libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
  66c740424aabea47657522aa536816ba  libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
  2f6d8997cf3698510fbf6c9a880d7a7d  libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc
+ 91b3ce25542d2c354c6bf26e9e2c27e4  libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
  8b23fa82c3cf4eb6bd0073777a8f351f  libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
  aae6d425bfd5346e2bfe0bdb42a12f6b  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
  99b710c9d615ca5cebaebad0a330f6aa  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
*************** bd926109610b524294a31f8b588ecdf3  libstd
*** 100819,100824 ****
--- 101149,101155 ----
  1fae117acfc243666f94908e82433d14  libstdc++-v3/testsuite/20_util/variant/exception_safety.cc
  643721405cfa4061df25e73b8e7c34e1  libstdc++-v3/testsuite/20_util/variant/hash.cc
  db6615334a6f62b43f4d68fe86977cbb  libstdc++-v3/testsuite/20_util/variant/index_type.cc
+ e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
  e10f1ccdf1246cb98e4dab271cb80a36  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
  6e572612abf329377c4cf424b11d2c04  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
  6651742cfc1bb4258874bcc98a9449ec  libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
*************** f7dd4f87adde6cb2df536a32dd286087  libstd
*** 100832,100837 ****
--- 101163,101169 ----
  6f877b48fdad86c664b26edc2cbad29f  libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
  6214eef2cb17dd40487e55e95dad16a4  libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc
  a1c3fc381e8b5cb07d7a81318b43580f  libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
+ 6a9ce5f99e0bc779530a9660ce1210f8  libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
  88209dc54287543e8ca3b154854bd2e0  libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
  4bc5d42bcaa8a672e738a30df3f40de3  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
  fb22e4bd606041e6c06feebce0991bcd  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
*************** f384543feceee16e4c2f3dc67b08d6d3  libstd
*** 100884,100892 ****
  b091419044bc272594d866b19b81a4c9  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
  e55cad3ae1eca79dd5dbabda415b5195  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
  92d998193f9c95718e36fb8e744a98e6  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! 08c69b37f34e9fcc8004657dd22e98b5  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! fdd720fde4d8b7e03f0978aeadcd81c3  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! be02a76b8f313965269535d0bb869e9a  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
  f5903ca34648b8e12d5d121053bbc2d7  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc
  08f71bfd429fdb9ce8b4e68a45021bb7  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
  e2d28362398397903a672439dced1e06  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc
--- 101216,101224 ----
  b091419044bc272594d866b19b81a4c9  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
  e55cad3ae1eca79dd5dbabda415b5195  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
  92d998193f9c95718e36fb8e744a98e6  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! 94738fd9de3a3ffa8a82ddc80c983736  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! 0d911d3bff7a6d77ebbe16fd6bbf03a6  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! 1ad869be1498a6f114edc745920ff2b8  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
  f5903ca34648b8e12d5d121053bbc2d7  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc
  08f71bfd429fdb9ce8b4e68a45021bb7  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
  e2d28362398397903a672439dced1e06  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc
*************** bfe4ab2c78076a6e63350263a3e02c5a  libstd
*** 100902,100910 ****
  70a190f25fff952cb4a3e38e573a84fe  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
  ad777f4a28de75bcc98d79112c231069  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc
  9181213226b0db35785cd11bc02f5784  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! 3a8e67d81072d6e7ddb397a8390b21c6  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! 6666500f25229c00ddddd5e871ccfb4d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! bb81fab73b1288b3375cbe1bdcea490d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
  6fd0a02fa7e53162fe645c435849e895  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
  984584c2e1a06d29e600b9c58c438bb0  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
  94cf20eb5fea5595de99c508bda8999a  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
--- 101234,101242 ----
  70a190f25fff952cb4a3e38e573a84fe  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
  ad777f4a28de75bcc98d79112c231069  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc
  9181213226b0db35785cd11bc02f5784  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! 358a68553f6555d08c6f8837095eaeef  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! a8f3fcf978b3805f63e89d0ba504c988  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! 9b4e92dfe90b0e8a1b4604764efb6121  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
  6fd0a02fa7e53162fe645c435849e895  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
  984584c2e1a06d29e600b9c58c438bb0  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
  94cf20eb5fea5595de99c508bda8999a  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
*************** bf775781f97f27016a1de082b99cb066  libstd
*** 100976,100989 ****
  ac907d18580861af5e60a18f34b3dd0d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
  ee3a5c39dfcf1b03eb6687fdddb7deb0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
  7689d4eb51835bbca85634cb4fc7d7c7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 343fa5f220cddcff36445b1f4cc1a9cd  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
  68016e73a14554996e92bb4751501d4a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
  c4b97c6cc26415c9317d1a7fba5af004  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
  8315b2235343a4a4ccc5e159ba4221d4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
  7511dd8946b7b1402f9dc0e42829779d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
  010289dbc32b7bb4ed2607b561a1aa17  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
  95eb4713eab6d3b2f9ab2c9d04fa1acf  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 02fb1795cd73633cb03926cf32bc9d33  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
  df8371a298515f69ab2ee268102ad750  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
  43720ea349c982885e2a46621ad19ee8  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc
  cdb9ede449fb05842a36d19b3de84d3d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
--- 101308,101321 ----
  ac907d18580861af5e60a18f34b3dd0d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
  ee3a5c39dfcf1b03eb6687fdddb7deb0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
  7689d4eb51835bbca85634cb4fc7d7c7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 4296b7cc1b95610edbef73b3142df99c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
  68016e73a14554996e92bb4751501d4a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
  c4b97c6cc26415c9317d1a7fba5af004  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
  8315b2235343a4a4ccc5e159ba4221d4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
  7511dd8946b7b1402f9dc0e42829779d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
  010289dbc32b7bb4ed2607b561a1aa17  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
  95eb4713eab6d3b2f9ab2c9d04fa1acf  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 36de4fc4929a7443462aa03974e46fce  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
  df8371a298515f69ab2ee268102ad750  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
  43720ea349c982885e2a46621ad19ee8  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc
  cdb9ede449fb05842a36d19b3de84d3d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
*************** d68dab1b04d63dd4e3fceb08007d9e0b  libstd
*** 101111,101122 ****
  024bc13940db67bdbed4bd27adb64b24  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
  5975b3534ce70f6db979af8022d716d1  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
  cde4d3da0ea077f27241896801e8b62e  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! a4f9e3607774ef2331c5cd93f7845be6  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
  027619cd14c68144376f29ed00225b4a  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
  3be7fda5bae7081671a8b56eac758ac1  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
  890564180920737d396dfd75262eec0c  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
  fc0038d9b5b16512e0fa693de683f05e  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! 567dda958cc31c3a8e8b55db8f18cb9d  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
  cc4a598b278b12478ef790a938f450bc  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
  0646c482e37e8424f332900e2d2c26c6  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
  0ed6d62ff4abdeab6a6da39da337b91b  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
--- 101443,101454 ----
  024bc13940db67bdbed4bd27adb64b24  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
  5975b3534ce70f6db979af8022d716d1  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
  cde4d3da0ea077f27241896801e8b62e  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! 1553158a9663bcc081ff74152aa09995  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
  027619cd14c68144376f29ed00225b4a  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
  3be7fda5bae7081671a8b56eac758ac1  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
  890564180920737d396dfd75262eec0c  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
  fc0038d9b5b16512e0fa693de683f05e  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! 00567c2ca9813bf5afa218b94355a60a  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
  cc4a598b278b12478ef790a938f450bc  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
  0646c482e37e8424f332900e2d2c26c6  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
  0ed6d62ff4abdeab6a6da39da337b91b  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
*************** e96c0904be90027e3dd04c4f36f4c148  libstd
*** 101166,101172 ****
  08434190dcd52439abb046b581e9a103  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc
  210115794b6ece22afaff5cd96f17566  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
  058675fee9a617afcd68fcf62464dc83  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! eb02a4fa2890eb65be9983306367c835  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
  0e5f68ccfe3fbf6bcf807dbae4c652ac  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
  ed356778358ec3db608c44a76b8ec21c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
  b92f0a6b615175785f7cd18ebaffcf62  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
--- 101498,101504 ----
  08434190dcd52439abb046b581e9a103  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc
  210115794b6ece22afaff5cd96f17566  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
  058675fee9a617afcd68fcf62464dc83  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! 632a86830f2387201fb7d04fbcb47d69  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
  0e5f68ccfe3fbf6bcf807dbae4c652ac  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
  ed356778358ec3db608c44a76b8ec21c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
  b92f0a6b615175785f7cd18ebaffcf62  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
*************** ea035fd1703043173c556b707d860944  libstd
*** 102153,102158 ****
--- 102485,102491 ----
  4a1d935a5b4ed56e471a36148934047a  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
  c64716f53aebf514c78d3418ea4238f0  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
  3e38365bc364038126ca0bf9ba41e0a9  libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc
+ 7a189e8b9d2375d727e2175b911806df  libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
  ed1c990c0651d29ea22162cfd4492705  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
  82dae48024b8b4efba3e01ab0e22b17d  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
  34cd2f1d3b48d7452c36ff47bc070ca8  libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
*************** beeca7a8e5a68f05c55b5f036dfae41a  libstd
*** 103333,103345 ****
  1f090b3647a98de217dc36823829e05d  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
  54b2766b9fbe73218d8470be531e0926  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
  c79d1f0e10c0a939f0c6401bc65db1e0  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! 64a13a1fb43872055e33902203f05261  libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
! aeb31a80322253f628082c76be6b3455  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
  fbb02ff8ea44647787a1d58b0af33694  libstdc++-v3/testsuite/24_iterators/container_access.cc
  985edba23526581e2811581b195af9aa  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
  d77d56d08a4417d44491163642da79fb  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
  260d0f9649b885323173c667220c0dcc  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
  a768c04fe288f140bd6cd57555e1895b  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
  da76f425f8371ea7d8b7b449a8aa177b  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
  ea8a2e5202d41e63eb3eec79cfc06b0b  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
  da2cbef76db54168f270e4b9335b069a  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
--- 103666,103680 ----
  1f090b3647a98de217dc36823829e05d  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
  54b2766b9fbe73218d8470be531e0926  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
  c79d1f0e10c0a939f0c6401bc65db1e0  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! 53c3cc1bbc012c74e90b69b17cf1ad7d  libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
! fb111ce7bbedeceab984ff4e60e07c4f  libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
! 4a4b0670c8604b859b321b278d33e371  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
  fbb02ff8ea44647787a1d58b0af33694  libstdc++-v3/testsuite/24_iterators/container_access.cc
  985edba23526581e2811581b195af9aa  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
  d77d56d08a4417d44491163642da79fb  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
  260d0f9649b885323173c667220c0dcc  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
  a768c04fe288f140bd6cd57555e1895b  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
+ 564e115ff4a93acb59630b87fa2920f9  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
  da76f425f8371ea7d8b7b449a8aa177b  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
  ea8a2e5202d41e63eb3eec79cfc06b0b  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
  da2cbef76db54168f270e4b9335b069a  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
*************** b83580062979fb7f9ca63ed95de103ca  libstd
*** 103398,103410 ****
  f1b3ed883beb84a0ab6a40680b3b8919  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
  616a547223c3716a41e85ec3fec50874  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
  bb690f467c25f63dba9533e5b3f90c56  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! c4eb82f09dfdab955ee9beaa8c382aa3  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
  1cc84b858963466af88283995dbedba2  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
  f61c9fca6266649673037a304f5087d1  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
  0533536b91d1b8889bc0514c951db02e  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
  677f7e3442a1f49a2317e5d2e84aafbc  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
  c4da277c7c5ed43e70bfcf1d7f0988e8  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
  159970e8940b0bda179e39132e46b6f7  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
  fa15fa33472593185ffd5c4507ebd70a  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
  00713bae4b62792aaac5258e8985b3b4  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
  7197efde86b8ed3ae703ab142f49bcf0  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
--- 103733,103746 ----
  f1b3ed883beb84a0ab6a40680b3b8919  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
  616a547223c3716a41e85ec3fec50874  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
  bb690f467c25f63dba9533e5b3f90c56  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! 12b6e3522d53d9d130c1bb1701dad8d3  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
  1cc84b858963466af88283995dbedba2  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
  f61c9fca6266649673037a304f5087d1  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
  0533536b91d1b8889bc0514c951db02e  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
  677f7e3442a1f49a2317e5d2e84aafbc  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
  c4da277c7c5ed43e70bfcf1d7f0988e8  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
  159970e8940b0bda179e39132e46b6f7  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
+ 73d58e3cbae9543e1eeb43f9d31428f7  libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
  fa15fa33472593185ffd5c4507ebd70a  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
  00713bae4b62792aaac5258e8985b3b4  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
  7197efde86b8ed3ae703ab142f49bcf0  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
*************** eeecef6511dbe7faed8ceedfb45bf6a2  libstd
*** 103441,103446 ****
--- 103777,103783 ----
  00606ba56af13a3b035c586a3d9cf4cd  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
  f106b0e20bbe5d07a7358692912006b9  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
  0801af026902ec25c1d5d62d2deba688  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
+ 5dcff108eb2f62baa60bfa3a74d92304  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
  2f4b9ccddd25fdf144f1acfd7e17410b  libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
  8b27bbddfc1deb1ac2effc7160d22c2f  libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
  0ed9099160635d30a917767db4db3dae  libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
*************** bd0fbcb5db9b9f8cd4dc55a21d39d8eb  libstd
*** 103516,103522 ****
  37092a5d667f0f28b7e935968d25aae8  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
  45915ce0a8f26f04668919afa3a1813b  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
  0c8ee5b6733184cae3f4d172c8c52482  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! 44a89eac99ce0aa39d58b48bed7d32f0  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
  88c4528cea53c54b25e61640d60c4a0f  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
  13b2ddea0038c1efaabdac86c47114a4  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
  760427e630997a8203a7268ee08a95d0  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
--- 103853,103859 ----
  37092a5d667f0f28b7e935968d25aae8  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
  45915ce0a8f26f04668919afa3a1813b  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
  0c8ee5b6733184cae3f4d172c8c52482  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! e51084101676a4a35b29d3170d773828  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
  88c4528cea53c54b25e61640d60c4a0f  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
  13b2ddea0038c1efaabdac86c47114a4  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
  760427e630997a8203a7268ee08a95d0  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
*************** d6d738daa2fb7536d325bbab3bb41381  libstd
*** 104307,104315 ****
  3650d2216818f2ba57822b06cee66094  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
  18d6fd29ad28a49bce4185886e09e6b0  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
  035f097a4cbac827b34920eee0ee8bf6  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
  8f690c236f5d680132daa280eab779da  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
  e1eef8dcd54b6f8f7d0c889513032a89  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! b2c1940a905dcd37f8efd5a51b0e152c  libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
  78a1257e886c15e45707eb67714de1ea  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc
  87fa325024fefcb4e09d2fc2dd6cd0e4  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
  ee5cb68763f5316db942768de7f63885  libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc
--- 104644,104653 ----
  3650d2216818f2ba57822b06cee66094  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
  18d6fd29ad28a49bce4185886e09e6b0  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
  035f097a4cbac827b34920eee0ee8bf6  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
+ f09f29f322df2c041a6b58149c341fbf  libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
  8f690c236f5d680132daa280eab779da  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
  e1eef8dcd54b6f8f7d0c889513032a89  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! c5909bb28c019d213ee8ce34bedb3559  libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
  78a1257e886c15e45707eb67714de1ea  libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc
  87fa325024fefcb4e09d2fc2dd6cd0e4  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
  ee5cb68763f5316db942768de7f63885  libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc
*************** ca515eec6dcf95e4063fb3ab64a94bc5  libstd
*** 104381,104388 ****
  2b30c375f549fcebe2d9133babf8f1d3  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
  5e6025e1f61ad9a25692ba76600ad17e  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
  78bc2f6a8af17b9da892c5cf84774e13  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
  cc14972137ac3671e8a0b1bb4ba78a70  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! d7f23f3da9d988332eb5ecfedb0fbc50  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
  7bed10ce7f1644a8746230d5d1b477e5  libstdc++-v3/testsuite/26_numerics/lerp/1.cc
  f9ae973e3d6f85f4c35471e62402ba98  libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
  198cb21048f5d36f6a9bf84a5b2dd536  libstdc++-v3/testsuite/26_numerics/lerp/version.cc
--- 104719,104727 ----
  2b30c375f549fcebe2d9133babf8f1d3  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
  5e6025e1f61ad9a25692ba76600ad17e  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
  78bc2f6a8af17b9da892c5cf84774e13  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
+ 33dfc662dbc265f12b54bdd4abdd7a90  libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
  cc14972137ac3671e8a0b1bb4ba78a70  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! 3c8cd7acb6cec48c1fe56129865bb8e0  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
  7bed10ce7f1644a8746230d5d1b477e5  libstdc++-v3/testsuite/26_numerics/lerp/1.cc
  f9ae973e3d6f85f4c35471e62402ba98  libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
  198cb21048f5d36f6a9bf84a5b2dd536  libstdc++-v3/testsuite/26_numerics/lerp/version.cc
*************** eaab8da52e90e6bed94b2407b5280e54  libstd
*** 104573,104579 ****
  11ff35cec63419439a1fa833e3e90484  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
  d0b1bdb8a940abd68cee45e678d7a03d  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
  d3822899f315bf452e87e8f0f76b5834  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! 6e4c6a254352409872aea8086bd3dda4  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
  ece58a631cd3234ac4e27f65017c0235  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
  6497a4d7ec2630e9fff27e5267299e74  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
  40b72729a0e17d81cbefa6813ed07d79  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
--- 104912,104918 ----
  11ff35cec63419439a1fa833e3e90484  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
  d0b1bdb8a940abd68cee45e678d7a03d  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
  d3822899f315bf452e87e8f0f76b5834  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! b19351fb19300dd1da723fa8f511c90e  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
  ece58a631cd3234ac4e27f65017c0235  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
  6497a4d7ec2630e9fff27e5267299e74  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
  40b72729a0e17d81cbefa6813ed07d79  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
*************** e64b7ea27aa7d7003509f9a5058d7756  libstd
*** 104704,104710 ****
  96990c8a70908a4cbba33c1b8a0a05f7  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
  06e6013171253921d2e67067ebad37cc  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
  a92871e20e904ca167eba8ec10d164d4  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! 592e61791a81302e3ef7a54946ffdca1  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
  ff59b525a762e0ec0946e89c5e8382ad  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
  517333ece3443a0eaf5f4c848d773918  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
--- 105043,105049 ----
  96990c8a70908a4cbba33c1b8a0a05f7  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
  06e6013171253921d2e67067ebad37cc  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
  a92871e20e904ca167eba8ec10d164d4  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! db49f1442acea70c3f18576f978dc3d7  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
  ff59b525a762e0ec0946e89c5e8382ad  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
  517333ece3443a0eaf5f4c848d773918  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
*************** f4981696c12f409e4c975bb1300014ee  libstd
*** 105045,105050 ****
--- 105384,105390 ----
  12ea92388dbac4a0d7571d73b909bc2e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
  700a3afedeb412c5b26d5d35b37318bc  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
  f281f4ecb3e7ee43b16a03d632881397  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
  35eb903d910dbaef5b68c41b0f7f5af2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc
  dc789e8232354508689ebfde38eed89e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc
  4bb4834804bab4ed5a4b44f94828436a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc
*************** da9ebfbb4bdd82e8fba20813a5f22346  libstd
*** 105056,105061 ****
--- 105396,105402 ----
  9a1fd03041b42849289c07cf948296b8  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
  fe3957370c20a94917b8c08635eda173  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
  a5b39100e3ef5d0b8229cac79538a976  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
  8b2e6695b44603c556ae9a9d546ea3ac  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc
  c1450feb66e172ffea2f025126b9ea42  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
  91395634320ab8fa7fb3a2b24ec13c19  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc
*************** a8f08f12e07d34aced996f0ef16f7486  libstd
*** 105544,105580 ****
  12c64f56a311b7479e97421eb4245118  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
  34a26bc8c96de0f7df3ee9dff5b80443  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
  b74acfd30c0988b4096342e63e84e3ec  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! 304b563b62625027227f0c89f75ae00b  libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
  c2deb7759283eeb6e004fe49aa1cd137  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
  9707dd0737bc1e446ea08a7e91680c32  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
  a8ce9a69761fe4c5e4eabb70aa80928d  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! 5d2ba944a9d67ae8792d4a32c0cb7a26  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! 1aaf48ba68cc2149c685314ed18f6b22  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
! 3030b1e930d491aa14d2246d59419ca4  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! 59018bb9bac4c1cb42ad0546e6c3eca9  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
  cc24c97c2b68dd3bd3a716999460368c  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  caa5518185a6665ae00783e8306f3cfb  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
  6ef2f1971d171af530b49e925ba37121  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
  b8e28a052ae7850018fd3142c6df4392  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
  36128b43b7b5d2b93dcec2ec8c05d5cd  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
  f9236910033867255d2c510f27adf9a3  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! 7d673caf7ebae2eb3dddc940da5ff65d  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
  b2912abacd587768365c0d3110da9812  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
! 530baf288f4ce86573fd862bbd2a88a7  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
  7cb769255b1ae0ffa98623d5df1522e8  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
  a304bce858b100433ff63c9f1ab74199  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
  d472e0aaf3d65d72e01ee7e29c122aa4  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! c5a49bd0a1448743377e8a5874e43972  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
  ead113c96fabb328faec60f304390d6d  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
  0a68e427522322c3ffc6ea5f4207bd15  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
  c069bb2dcb9c020663acc7909e7f5b77  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
  b661ceb4844b789316d89e35b99b2100  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
  7e15f2f4b6af8060c3bd89554d02f5d6  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
  65c6d95957a44daffefdfccc0cc76722  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 90c27031cdbd3b50e1460fa272bc92c3  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! dc6fff43af6f213cf7716f98fcde7623  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! 208783c1814e704b7d946a5fc2a98879  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
  781339e8c95335b74ca33750fbad2e9b  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
  e5d73d0c8090549ef1d89888b19bea00  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
  e6bcd096eac06dd3fd04d064865847de  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
  e11c3c93b534813ee06118cf49897b83  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
--- 105885,105922 ----
  12c64f56a311b7479e97421eb4245118  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
  34a26bc8c96de0f7df3ee9dff5b80443  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
  b74acfd30c0988b4096342e63e84e3ec  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! d75cd276368c0b1c8203756ff611b3d6  libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
  c2deb7759283eeb6e004fe49aa1cd137  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
  9707dd0737bc1e446ea08a7e91680c32  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
  a8ce9a69761fe4c5e4eabb70aa80928d  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! ce6f979d9dd438236c97598cb50cb9df  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! f429189ce8d84ef9ecca2447eed26eca  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
! 799e424f80fdd50fb11c61ce488bfa6c  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! 2463e393a832cf802d727297cd84354c  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
  cc24c97c2b68dd3bd3a716999460368c  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  caa5518185a6665ae00783e8306f3cfb  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
  6ef2f1971d171af530b49e925ba37121  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
  b8e28a052ae7850018fd3142c6df4392  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
  36128b43b7b5d2b93dcec2ec8c05d5cd  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
  f9236910033867255d2c510f27adf9a3  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! 23ceb7e5150665ee1eaf3e1beb8d8a1b  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
  b2912abacd587768365c0d3110da9812  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
! b1b27739fde1426ac5f40f4d6918c043  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
  7cb769255b1ae0ffa98623d5df1522e8  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
  a304bce858b100433ff63c9f1ab74199  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
  d472e0aaf3d65d72e01ee7e29c122aa4  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! b7349bedfec4c4a6814f2c0873123de3  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
  ead113c96fabb328faec60f304390d6d  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
  0a68e427522322c3ffc6ea5f4207bd15  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
  c069bb2dcb9c020663acc7909e7f5b77  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
  b661ceb4844b789316d89e35b99b2100  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
  7e15f2f4b6af8060c3bd89554d02f5d6  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
  65c6d95957a44daffefdfccc0cc76722  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 7d8e116ba27817ecd9ae1a1f2f948c5f  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! 63b994352755f1b221220d53943d8a09  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! abe3f517aaaf59098642f921fb785ea0  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
  781339e8c95335b74ca33750fbad2e9b  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
+ 9897c7912c7b47987d118515b02ab561  libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
  e5d73d0c8090549ef1d89888b19bea00  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
  e6bcd096eac06dd3fd04d064865847de  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
  e11c3c93b534813ee06118cf49897b83  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
*************** eb710086077188afe8c298ef512c841a  libstd
*** 105632,105638 ****
  6371ba5fc358b85f322d4833001e4aa2  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
  2d3db4b0d72aabef3c837ba6f52f0d85  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
  dec8c79a5bc2399d1595c9f061708800  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! 2059565a12e2395f1e85979d4154cca5  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
  7851c3692ca7ff1bb4bff8b71d6f6e53  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
  7bcd60b1f9599198af56241824f50086  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
  3d55fe07cc6ec8b390ae57c19fce6267  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
--- 105974,105980 ----
  6371ba5fc358b85f322d4833001e4aa2  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
  2d3db4b0d72aabef3c837ba6f52f0d85  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
  dec8c79a5bc2399d1595c9f061708800  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! c71bc23e897c84f42f3daa8687b0c160  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
  7851c3692ca7ff1bb4bff8b71d6f6e53  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
  7bcd60b1f9599198af56241824f50086  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
  3d55fe07cc6ec8b390ae57c19fce6267  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
*************** bcd242b983b4c3e24ba8c01215ae68a3  libstd
*** 105672,105677 ****
--- 106014,106021 ----
  2ae48016030e56632af746345c997ef6  libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
  24e616854fa5a99df5617964d8127773  libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
  ee5b755d9b5f1badd148cdc44ae9b40d  libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc
+ d906060c9622cff9e1841dd145e48eb7  libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
+ b1725afef889c7079a28e6871384e686  libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc
  cc423714502cc8b1d27d87b1a4f6f5fd  libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
  c00f679d7af39ec3ab7e04d771edb933  libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
  c24a982bacd7d5216a5236223a64004b  libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
*************** e23926ff3ce8c8e5f63b0b0607735eb8  libstd
*** 105844,105850 ****
  e48290eaf4730b6dfa0549c871907f51  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
  029c52ba7081721d4131a83aedcf864b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
  b48adc8a871e717a601f44ed994ad59b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! 67b4bbc7c57e75164e1ca4630f93e03f  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
  603ffc3ff7281bd8f987155e80327817  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
  ca3caca8ccf3ec184326c1f6110a2267  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
  1fe83c47f1b08aa5b21645b4d2074273  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
--- 106188,106194 ----
  e48290eaf4730b6dfa0549c871907f51  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
  029c52ba7081721d4131a83aedcf864b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
  b48adc8a871e717a601f44ed994ad59b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! 3286f5929b26264ce5d4b68b27849357  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
  603ffc3ff7281bd8f987155e80327817  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
  ca3caca8ccf3ec184326c1f6110a2267  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
  1fe83c47f1b08aa5b21645b4d2074273  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
*************** a36db31d6ed097df55527d05b350dc07  libstd
*** 105870,105875 ****
--- 106214,106221 ----
  47e57eadf06286acd4053960605f2e8b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
  f315439939fc2e753fc01261bb617fae  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
  b9702c5f60fe5a0094493d181372c1d3  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
  b9ddef6aca02b8171eb8e101802d88a1  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
  3aba5539e381fd669c20b5df6fe03c80  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
  ffffa6b84498fb75ac805ea386714767  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc
*************** d46d20e6ee1fbdfa35e83ebade887c8a  libstd
*** 105884,105889 ****
--- 106230,106237 ----
  dceba1f156bfd90a9ac606de1f6f4321  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
  0a5cfaaa97e508d606ffcd131b67256c  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc
  b4e38cc3b5a9fd64d5ffe9b9bdacbe6c  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
  82fbecca0f4aedc8a5a818619bc8bbc9  libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc
  e0db0e1a4e3e3acb57279a005a712a48  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
  1af07bb16557f1660c4e11a52a380664  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
*************** efd2028c9762d2ea264af3600222530c  libstd
*** 105893,105898 ****
--- 106241,106247 ----
  60e0c6d395e9484e3305621573a0cd59  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc
  d44630e1b57c57648d832647baa3e62d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc
  c80a3903527e42fc3636c63e6097124e  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc
+ 195cadd08b447221da1077de685740f9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
  5cbf3e7bd512cb1977969cbafa1ac532  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
  5fa5aa118f92c335e0243b24026b57c9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
  5e4929d573c4209033439995b5dbb44d  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
*************** df74943b49b48855ebc9aafd22769ac7  libstd
*** 105915,105925 ****
--- 106264,106276 ----
  e362b0a0f56c0344de6acc1ea2adf5af  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc
  59951f798a5f068ec5775a849c2963a4  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc
  a5821571f17550b3574573f5458d6bd1  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc
+ 9c80b6a78eb2b9bd9362289c681a9cfb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
  f45d6c2e9d073e50576f4096d2440cea  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc
  6bd64861481a628b37f218551789741a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc
  5c1d7050d71a0b6d741ec5181c84c06c  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc
  0c50313b4bac3a5fc946d7f8f707db30  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc
  cadc60cd5bc0f9efc2dfacbf9a4b6bb4  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
  966067e7fd66c32ecb744b30b39f50d3  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc
  71733dfea7bf6823b4247e68b8f3f6a2  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc
  adf8fed06001b5040fe0ab2f7bc6984c  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc
*************** e781afcc7944ac3bef0bc8812f1b341e  libstd
*** 105952,105958 ****
  0cc80a403cad8e4e52104e8ccbba1576  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
  b57454612a4d974285bb908b705d9083  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
  6f1de6694bab4a2d8b193f1f1368d611  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
! 9e61d1e19fd36f31ae0f5ec6a41b0d6a  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
  406c6e3793a245ef4ac8ce8399728640  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  80db37d9a637c75bf0912e558e1b431e  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
  90fe7d75e0128796f3b434f31fb53cc6  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
--- 106303,106309 ----
  0cc80a403cad8e4e52104e8ccbba1576  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
  b57454612a4d974285bb908b705d9083  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
  6f1de6694bab4a2d8b193f1f1368d611  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
! e50868497a6eac9c6a7e389f3cda11ef  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
  406c6e3793a245ef4ac8ce8399728640  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  80db37d9a637c75bf0912e558e1b431e  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
  90fe7d75e0128796f3b434f31fb53cc6  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
*************** a6895903b2d7913e7b2a7aa4d157f098  libstd
*** 106014,106022 ****
  1ddf69470009336d53bf56da545f26b1  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
  b3b3ee14ae71b79bd86c119de204abde  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
  45c1979f01455edb4abcf95c9ff6c21c  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
! ede3d84def5df840542541759477a876  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  7be4b872919f03f9d67d9ce5b0379374  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
  101e68f53a1b3b636fb1547c3b320daf  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  47ac1850b97210b2ae79f021d61f689f  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
  02e3a139f4e373b95538e5626ecf6ba2  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
  cb4b41e3959401ed6b34f896071925f9  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
--- 106365,106374 ----
  1ddf69470009336d53bf56da545f26b1  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
  b3b3ee14ae71b79bd86c119de204abde  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
  45c1979f01455edb4abcf95c9ff6c21c  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
! e9931e3bebd357f701b04d321c1c9e27  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  7be4b872919f03f9d67d9ce5b0379374  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
  101e68f53a1b3b636fb1547c3b320daf  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
+ 7f98d9343ac2e8c46fbeb04ca3e70000  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
  47ac1850b97210b2ae79f021d61f689f  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
  02e3a139f4e373b95538e5626ecf6ba2  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
  cb4b41e3959401ed6b34f896071925f9  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
*************** ce276607d5f33b3abd3e31a43e6dc24e  libstd
*** 106030,106036 ****
  e0f3d8128b70041b681f19ec11ab37ca  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
  5aa0309b5d914737141c3abbfe367169  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
  a3f60ba9129a461104d66a390c41284d  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
! 1bbd36fc668c5a21a5d73bd02a337603  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
  87c1fa5601addba17bc52f62fa4d7397  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
  6861f8c4291859a3cc0ced46dd171977  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
  169877172155fcd6f623a352404a6e62  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
--- 106382,106388 ----
  e0f3d8128b70041b681f19ec11ab37ca  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
  5aa0309b5d914737141c3abbfe367169  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
  a3f60ba9129a461104d66a390c41284d  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
! 2bdcb62d2982452b9993a032e812baa0  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
  87c1fa5601addba17bc52f62fa4d7397  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
  6861f8c4291859a3cc0ced46dd171977  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
  169877172155fcd6f623a352404a6e62  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
*************** f97c082fdfaea713256eaf09e88cbc5e  libstd
*** 106045,106056 ****
  4c8fb3d10cffcaa9312931748f1e1eb0  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
  f57c8545237b34be34586de3d6bae59d  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
  dc5f67fd77b0f3b9aa2b2b3f80d02e3d  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! edebfae8d52ad3d4f38eccb1edfe8dde  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! 7fe30fbb7f68e1ea4ced380c8b5216e9  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
  fef3c8d588032f89270c5a40aa7a119f  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
  63a4be6ae0476ff336478c9173e1730e  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
  63a4be6ae0476ff336478c9173e1730e  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! a700626b7e5354bdbc2ed57b70402d3d  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
  45fdb3095e393b8e18c76282792a374f  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
  3b8bf408367b67adf4db171ae7239402  libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
  955ca2fe3232f00ac0432b334101f316  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
--- 106397,106408 ----
  4c8fb3d10cffcaa9312931748f1e1eb0  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
  f57c8545237b34be34586de3d6bae59d  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
  dc5f67fd77b0f3b9aa2b2b3f80d02e3d  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! b04623a3bc2f0b28cab2cb4dc68da20a  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! 4f42407be23e9768998aa1f260d108b6  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
  fef3c8d588032f89270c5a40aa7a119f  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
  63a4be6ae0476ff336478c9173e1730e  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
  63a4be6ae0476ff336478c9173e1730e  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! f04f4a38e7f65322302303d4f7038ec6  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
  45fdb3095e393b8e18c76282792a374f  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
  3b8bf408367b67adf4db171ae7239402  libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
  955ca2fe3232f00ac0432b334101f316  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
*************** aa1f06a23500403a7a1ba5db62bc9e1b  libstd
*** 106096,106101 ****
--- 106448,106454 ----
  cc1003e6bf23f4dc3c0b07de7f9de32c  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
  4dd53765013d344ab12c16eb49eeeb2e  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
  0b9554d92746531f6352092073f9eed0  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
+ 5b1af9fe172aee7236f683fc11c916e0  libstdc++-v3/testsuite/30_threads/async/106695.cc
  2d869ecf21ea0185eacacd020b24228f  libstdc++-v3/testsuite/30_threads/async/42819.cc
  3ea51df4c3cfccc42ff6a9b63ced1be6  libstdc++-v3/testsuite/30_threads/async/49668.cc
  66d3331119a31123900cabf8cce73578  libstdc++-v3/testsuite/30_threads/async/54297.cc
*************** e3d5a64c59d8ac294a46db48f478907a  libstd
*** 106216,106221 ****
--- 106569,106575 ----
  c9aede0180240302f0365cdb6f9c3642  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
  cc50eb6d42ef5dc2dea81fa3c8ee8e91  libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
  d5fbdab65ffa2863f03ff37984fb2dfb  libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
+ 922f490a3c9acd1bc20db3ecb9146e9c  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
  28c551b37db017eb02bdf1febc5d4feb  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
  c56981c514cb7ac65fb8b15e6e318b3e  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
  51eda418b9ac64743008bbd3fca9dc57  libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
*************** dfe91faf82812b1de2b8e68122780b56  libstd
*** 106374,106379 ****
--- 106728,106734 ----
  20c5fe5c87220e29d0c83c65537066d5  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc
  8922c40e0f88b50ae642cf610cad5fac  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc
  18d644acadc3b71fa6b3f7fffd26f272  libstdc++-v3/testsuite/30_threads/this_thread/yield.cc
+ 01f0a9872e8d09e04052489193a9e1e9  libstdc++-v3/testsuite/30_threads/thread/106695.cc
  f51fe4810d0958a58eba10dd8751f263  libstdc++-v3/testsuite/30_threads/thread/70503.cc
  343a2e5db5d85100ad7e19722057e55b  libstdc++-v3/testsuite/30_threads/thread/84532.cc
  a3ad5b01386b626105129aa34109ef1d  libstdc++-v3/testsuite/30_threads/thread/adl.cc
*************** f754118861b851f83334813d834cb200  libstd
*** 106646,106675 ****
  0be28e8a597f5f3524b05d382977857a  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
  e38807857185bfa4fa204e43c8d76017  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
  a006bf4896a3ab51a977686eb5af2608  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! 6800b111af867d1c5dc76da92647aa5f  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
  80bbc9f1b2ea6c7f500e8644d05570a3  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
  de6b07ec83a54c05b64ca4d6bff5757a  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
  4bf5a178f6bbfd23a8d1f09e46377566  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! b6c97dcfa5875e35bd817ceef71106dc  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! c979d08bc61ab33d1c6cda360f40c791  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
  fef1c8651e0cbfb01549c5b72aadbc39  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
  1c06749732447770da445a16de413059  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
  317f29c90d1d3057cd6b04a82da018fa  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
  102afdecfff9639d959c908bf8ca4d24  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
  f613a7a13aba7ff97f2dc5f334d5219d  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
  b6f9f83cef2f2ba95a2192bcaf1f4864  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! 3c93d6effedc549f4f047242502657dc  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
  22c3881333e194d83327843ef3822453  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! c360883dd40ebb4911fbc402d5c81e26  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
  2a9b90a7de6f905407da9ed34a374ed6  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
  7ec5c0f902c789196ebec7b7878cf8d1  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! c212f31fe176502dcf5879b849cad120  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
  b2434804edf60c4a00c9d2c1c59a5d45  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
  929f7124480e1d5a90d315e22f7fb288  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
  d032a966b5c68f5f7ee9cc78de2ab201  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
  7f64a5cd007797c662010bef0a36d653  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
  99989ba6e2f0b58f00abcc249759b5f5  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! d47b1af6f5fecaf7d0e2f34635e7faa7  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
  45702a06c1f1ce65575cf3d643ec9778  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
  57259422207ece8ba121629f54f87323  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
  acd11e30150439c609f7b3127f4e669e  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
--- 107001,107030 ----
  0be28e8a597f5f3524b05d382977857a  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
  e38807857185bfa4fa204e43c8d76017  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
  a006bf4896a3ab51a977686eb5af2608  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! 9cad268e6c62c9232d92f99bfcd1b4e1  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
  80bbc9f1b2ea6c7f500e8644d05570a3  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
  de6b07ec83a54c05b64ca4d6bff5757a  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
  4bf5a178f6bbfd23a8d1f09e46377566  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! 698ea2835398d235c98d3e70df7035eb  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! 7509549c9b9a1e13fa1d3ab87ccc5188  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
  fef1c8651e0cbfb01549c5b72aadbc39  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
  1c06749732447770da445a16de413059  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
  317f29c90d1d3057cd6b04a82da018fa  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
  102afdecfff9639d959c908bf8ca4d24  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
  f613a7a13aba7ff97f2dc5f334d5219d  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
  b6f9f83cef2f2ba95a2192bcaf1f4864  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! 240d6485ab5931455c18741acb51b1a4  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
  22c3881333e194d83327843ef3822453  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! a2b6fd5f5e12279e495380b410c7b918  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
  2a9b90a7de6f905407da9ed34a374ed6  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
  7ec5c0f902c789196ebec7b7878cf8d1  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! 3ab357a1a9e57b38ed1660b72883b3bd  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
  b2434804edf60c4a00c9d2c1c59a5d45  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
  929f7124480e1d5a90d315e22f7fb288  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
  d032a966b5c68f5f7ee9cc78de2ab201  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
  7f64a5cd007797c662010bef0a36d653  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
  99989ba6e2f0b58f00abcc249759b5f5  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! 45f219a857e03ed480a23a0bda836ade  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
  45702a06c1f1ce65575cf3d643ec9778  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
  57259422207ece8ba121629f54f87323  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
  acd11e30150439c609f7b3127f4e669e  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
*************** d11b0cf5365cf27c6d9b1d7791b5032a  libstd
*** 106885,106890 ****
--- 107240,107246 ----
  6158ee68c53b1eb6668b2d3c43fb5fec  libstdc++-v3/testsuite/experimental/set/erasure.cc
  95bdc242cfce24b906dbef7ece3f3c80  libstdc++-v3/testsuite/experimental/simd/driver.sh
  81cb6163311a6d96c80beba0c32c1c2b  libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh
+ 56d67c9da176e2529070c1242cc45290  libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc
  c9ff7f42a3440a4c43a3f282f1814dd9  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc
  8456d329f682f25f869aac367480356e  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc
  5a175cd78dfff9373203c96c10e3955c  libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
*************** f3c5c39d1408e1d33dabcdf445e2c782  libstd
*** 106896,106912 ****
  74ad34d6973b64b38024a394a01f1161  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
  8de2d2aeb91e62ba589ada0576abb058  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
  65a6dd497514ee32b17e005140e09fda  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! 2032e011aacfd34f2d6b4783e4fc473d  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
  9399282958998d0c420735d9e8bff5cb  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
  977e5f8160480e0d84e8af0cd0bdf830  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! f4a6d8335e1aa0a66b0c967770d88d8e  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! c5b05eea9fbf7b71c19cfa2a846d0279  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
  81582e24f42794a07f49e599a516681e  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
  adbc631eadb5370098f35704939b6974  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
  7e0b9ff5db5e0afb69c263a26cfa6f4d  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! 44803853cac67bc3e991b95bc4bfa630  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
  81528b3b70b7e95113ebc427718f8cfa  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! 78e03703072fd862da2609d16e285553  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
  1567e8d6e3e1dc9e9d9628193a061cbc  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
  ee32cb3dc270cd9c5b142d8474c6d16b  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
  ba9b7aac3934b84324828d733a449d61  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
--- 107252,107268 ----
  74ad34d6973b64b38024a394a01f1161  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
  8de2d2aeb91e62ba589ada0576abb058  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
  65a6dd497514ee32b17e005140e09fda  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! 06993acd614542b9e420883fe81cbd96  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
  9399282958998d0c420735d9e8bff5cb  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
  977e5f8160480e0d84e8af0cd0bdf830  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! aa99c7456e1a6412989b2f1963298165  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! 5a94ab09164550f82e79f860da351658  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
  81582e24f42794a07f49e599a516681e  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
  adbc631eadb5370098f35704939b6974  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
  7e0b9ff5db5e0afb69c263a26cfa6f4d  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! 220221092b420d0d6934c7e7b2800fdf  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
  81528b3b70b7e95113ebc427718f8cfa  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! 5587036b52742527728c11e9c936a790  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
  1567e8d6e3e1dc9e9d9628193a061cbc  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
  ee32cb3dc270cd9c5b142d8474c6d16b  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
  ba9b7aac3934b84324828d733a449d61  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
*************** a56eeb3150825c9a4db053388474786f  libstd
*** 106917,106931 ****
  05e6aa776ac3dde07f0f2ce945c4a544  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
  f37dc37a1f2deeadb0848d5805880a2a  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
  1ade40b68adc65e1bad2fdf759d3fc1e  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! 11e4094b7fc8e4030355ae2cb1d6b658  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! 1348140447e84634e81a90837eb270d9  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
  0341be10ab6e8b1246b259c04a1afa0c  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
  ba101bb407815a6b8b49859dbaaa00bb  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
  6b6dbb3d4d3b7a56bf3570ed20eb16c8  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
  61a90382bc83c25a753e1480a048aaaa  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
  a6db162d1694878802870f025bf0ec8d  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
  72907251a60264f03456e984af6e7bf7  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! 9695bfa73d592ed767dc526955d838a0  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
  d438fe157e89bb1710a4139d869d3465  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
  86d9256ca573b52ba687b1af3bbce55b  libstdc++-v3/testsuite/experimental/source_location/1.cc
  4088567100341bbbfcb9418037f955d4  libstdc++-v3/testsuite/experimental/string/erasure.cc
--- 107273,107287 ----
  05e6aa776ac3dde07f0f2ce945c4a544  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
  f37dc37a1f2deeadb0848d5805880a2a  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
  1ade40b68adc65e1bad2fdf759d3fc1e  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! 31e1763a8c41e3a545f586c167d8ae4f  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! 160d07bf1ee6da9456801d39c593e684  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
  0341be10ab6e8b1246b259c04a1afa0c  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
  ba101bb407815a6b8b49859dbaaa00bb  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
  6b6dbb3d4d3b7a56bf3570ed20eb16c8  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
  61a90382bc83c25a753e1480a048aaaa  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
  a6db162d1694878802870f025bf0ec8d  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
  72907251a60264f03456e984af6e7bf7  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! 6392d6a8168aef55c57c640c052f9fd6  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
  d438fe157e89bb1710a4139d869d3465  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
  86d9256ca573b52ba687b1af3bbce55b  libstdc++-v3/testsuite/experimental/source_location/1.cc
  4088567100341bbbfcb9418037f955d4  libstdc++-v3/testsuite/experimental/string/erasure.cc
*************** d058f63a57471b1bac13c7472d829dfb  libstd
*** 107272,107278 ****
  efab101dad1dc6fc3744ad9169ad0d87  libstdc++-v3/testsuite/ext/rope/6.cc
  542a3aa925925ee8b4f95674533b93d7  libstdc++-v3/testsuite/ext/rope/61946.cc
  a90a14bfbb1a36e332973061db685f1b  libstdc++-v3/testsuite/ext/rope/7.cc
! 0f434048b4adfa472afa6584c50d9d32  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
  96c8b73b78b6f9b0e8b6a4f3e7861ac4  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
  854c4ad33c0c5b4ab1bd2daf3d63eb21  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
  d08fb1c934171313d8d5caa0a16f501b  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
--- 107628,107634 ----
  efab101dad1dc6fc3744ad9169ad0d87  libstdc++-v3/testsuite/ext/rope/6.cc
  542a3aa925925ee8b4f95674533b93d7  libstdc++-v3/testsuite/ext/rope/61946.cc
  a90a14bfbb1a36e332973061db685f1b  libstdc++-v3/testsuite/ext/rope/7.cc
! 63e6f9233e942be7f9c5efd65a265e93  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
  96c8b73b78b6f9b0e8b6a4f3e7861ac4  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
  854c4ad33c0c5b4ab1bd2daf3d63eb21  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
  d08fb1c934171313d8d5caa0a16f501b  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
*************** d0c11fe8cb799b7e38c3d765c7786345  libstd
*** 107377,107385 ****
  be2c942175f821c48748bb874e440b9b  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
  61687718a5859d72e3d508a3cff4951a  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
  3681a82bbc6871b4ee9416dc9f079e9c  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! ebf226930e3a3280ab96a29d5aadbc4c  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
  575c04012b89f3517818052495fa754b  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! de4863975b6ff3936ee27e239a50c3fc  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
  9db277893db6463f4a286e2e86d3ba23  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
  6ee25bfa5657675a8107bc8df6359203  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
  89bc588d761a075ad9da5943c19c1174  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
--- 107733,107741 ----
  be2c942175f821c48748bb874e440b9b  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
  61687718a5859d72e3d508a3cff4951a  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
  3681a82bbc6871b4ee9416dc9f079e9c  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! 10d4c0ec6e4917ece23ae4daec95cb2f  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
  575c04012b89f3517818052495fa754b  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! 8d423a63a9ee34cdffe3ab631d8d4e17  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
  9db277893db6463f4a286e2e86d3ba23  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
  6ee25bfa5657675a8107bc8df6359203  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
  89bc588d761a075ad9da5943c19c1174  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
*************** cc762851bcdba119feec0f3235e4468c  libstd
*** 107396,107402 ****
  2f1ee0a52144900994e38822ec0e06b5  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
  5727258a9a678c86a4dbb0202c47f702  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
  00c6eeeddd7a873ee1bda17c477bcf4e  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! 7783f7544a07c1bd618c4ea0a6defb19  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
  26407ff2a7db6873b71a3eb2107b6a56  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
  4e56f23a14a974605e4004e744b706d0  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
  98dc8dabc6d5bbb2cb89d6ed0664a043  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
--- 107752,107758 ----
  2f1ee0a52144900994e38822ec0e06b5  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
  5727258a9a678c86a4dbb0202c47f702  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
  00c6eeeddd7a873ee1bda17c477bcf4e  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! 76e82eb8e0ac2670a5572d04cda59df8  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
  26407ff2a7db6873b71a3eb2107b6a56  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
  4e56f23a14a974605e4004e744b706d0  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
  98dc8dabc6d5bbb2cb89d6ed0664a043  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
*************** fb23642a6893aed264528184e8b1e89a  libstd
*** 107630,107642 ****
  56280017abf58c62b9c687eb8bc28689  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
  a6ad3007f5ce9824e90cfe812d1af68f  libstdc++-v3/testsuite/std/ranges/access/crend.cc
  e9101b23fdc293b8cfcd821e07082fff  libstdc++-v3/testsuite/std/ranges/access/data.cc
! f1da35bc31260221876bbf143ed35426  libstdc++-v3/testsuite/std/ranges/access/empty.cc
  e3d33360513687ab0dd3751b8de5a5a1  libstdc++-v3/testsuite/std/ranges/access/end.cc
  135bbc0eb03e557ab88875ace9ee0980  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
  53ebbeefa5ac21f1e668c4e6393441bb  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
  28d776d0c6464cb2f9bdea975133ab66  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
  b3cf9d2edb6c3e710065fa8dad5b03b7  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! 8479881de6f7fe9c937c6d609beed49a  libstdc++-v3/testsuite/std/ranges/access/size.cc
  e4e886ed5e6b5c520951928e09843313  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
  e2ce9743a296b32f07cb1e8c4b8e2662  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
  d6da6812cb88b3c7b35954344aa5d86d  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
--- 107986,107998 ----
  56280017abf58c62b9c687eb8bc28689  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
  a6ad3007f5ce9824e90cfe812d1af68f  libstdc++-v3/testsuite/std/ranges/access/crend.cc
  e9101b23fdc293b8cfcd821e07082fff  libstdc++-v3/testsuite/std/ranges/access/data.cc
! d394de9151b4b398b188cedc52d75e7a  libstdc++-v3/testsuite/std/ranges/access/empty.cc
  e3d33360513687ab0dd3751b8de5a5a1  libstdc++-v3/testsuite/std/ranges/access/end.cc
  135bbc0eb03e557ab88875ace9ee0980  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
  53ebbeefa5ac21f1e668c4e6393441bb  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
  28d776d0c6464cb2f9bdea975133ab66  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
  b3cf9d2edb6c3e710065fa8dad5b03b7  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! 35283b71844a94ee16ee9e42a8be8eed  libstdc++-v3/testsuite/std/ranges/access/size.cc
  e4e886ed5e6b5c520951928e09843313  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
  e2ce9743a296b32f07cb1e8c4b8e2662  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
  d6da6812cb88b3c7b35954344aa5d86d  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
*************** f08026c124e2c6f228702d2ddd1bb3bb  libstd
*** 107653,107659 ****
  93a1ae3dea7b82345420d2bdaa1de02a  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
  e6598408c942e63592533b0a8e862d95  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
  34c74de0566311054836144ea4703423  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! 17aefaa1bae2e9814e2d4ed6d63d3301  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  e3185f7254676a8043d2594eb1e4500f  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
  b6253cd90778666795033228ba19116e  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
  2045ce6f1792467ba47ef569ef1c18e2  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
--- 108009,108015 ----
  93a1ae3dea7b82345420d2bdaa1de02a  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
  e6598408c942e63592533b0a8e862d95  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
  34c74de0566311054836144ea4703423  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! a9dcefdea5e9215117d1860eea6b3b05  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  e3185f7254676a8043d2594eb1e4500f  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
  b6253cd90778666795033228ba19116e  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
  2045ce6f1792467ba47ef569ef1c18e2  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
*************** ccdc4ae1b41638162b9e60936a7f2e0e  libstd
*** 107674,107684 ****
  0819563613d6bc5f307077f94daf19a2  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
  e75edf80cec13e421cd663c039d2ca93  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
  bd95f0058da01ae7c3f9a944b0cb2fba  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! f6414f7f1cce883d75748248ec104110  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
  cfd013ee643ff8cc3c5e2e2b102bd24b  libstdc++-v3/testsuite/std/ranges/iota/size.cc
  a0d27a4084ead9098b776f82295f0a03  libstdc++-v3/testsuite/std/ranges/istream_view.cc
  39a74ff1ef561d51b687d686060239c1  libstdc++-v3/testsuite/std/ranges/p2259.cc
! 1b1e5fd6e20b73c40efa996686a5be0c  libstdc++-v3/testsuite/std/ranges/p2325.cc
  1a4f67e2431ce8671bfe15a68aa14003  libstdc++-v3/testsuite/std/ranges/p2367.cc
  e5d7757712fcb6070d35fb61bb9686ec  libstdc++-v3/testsuite/std/ranges/range.cc
  64b49ff9679c02a817d8b8e1c304a977  libstdc++-v3/testsuite/std/ranges/refinements.cc
--- 108030,108040 ----
  0819563613d6bc5f307077f94daf19a2  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
  e75edf80cec13e421cd663c039d2ca93  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
  bd95f0058da01ae7c3f9a944b0cb2fba  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! 4d153fc833d7814a7137073f61e9a90a  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
  cfd013ee643ff8cc3c5e2e2b102bd24b  libstdc++-v3/testsuite/std/ranges/iota/size.cc
  a0d27a4084ead9098b776f82295f0a03  libstdc++-v3/testsuite/std/ranges/istream_view.cc
  39a74ff1ef561d51b687d686060239c1  libstdc++-v3/testsuite/std/ranges/p2259.cc
! 1841f9d6569460990fc078e2fab471b7  libstdc++-v3/testsuite/std/ranges/p2325.cc
  1a4f67e2431ce8671bfe15a68aa14003  libstdc++-v3/testsuite/std/ranges/p2367.cc
  e5d7757712fcb6070d35fb61bb9686ec  libstdc++-v3/testsuite/std/ranges/range.cc
  64b49ff9679c02a817d8b8e1c304a977  libstdc++-v3/testsuite/std/ranges/refinements.cc
*************** e289d02d97c864fdb013f2ae524cb77e  libstd
*** 107699,107705 ****
  ad173933fa56d91facb69d926ba4ed5b  libstdc++-v3/testsuite/std/time/clock/file/members.cc
  582848e36bfa4eb0511742a823ef559b  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
  226feb67cc460aea99599c9f43c14726  libstdc++-v3/testsuite/std/time/day/1.cc
! 70a8581910f4aec7b4a69838e7e9b1fa  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
  fe183257d7a31933cdc3fb8c8bb5c957  libstdc++-v3/testsuite/std/time/is_am/1.cc
  780a27d714b7130cce61c069e0c89cd4  libstdc++-v3/testsuite/std/time/is_pm/1.cc
  9428d1f5fa2a4b0191dbbfce2d115137  libstdc++-v3/testsuite/std/time/make12/1.cc
--- 108055,108061 ----
  ad173933fa56d91facb69d926ba4ed5b  libstdc++-v3/testsuite/std/time/clock/file/members.cc
  582848e36bfa4eb0511742a823ef559b  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
  226feb67cc460aea99599c9f43c14726  libstdc++-v3/testsuite/std/time/day/1.cc
! 2789b0fc844a761186fc67fec3342dc6  libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
  fe183257d7a31933cdc3fb8c8bb5c957  libstdc++-v3/testsuite/std/time/is_am/1.cc
  780a27d714b7130cce61c069e0c89cd4  libstdc++-v3/testsuite/std/time/is_pm/1.cc
  9428d1f5fa2a4b0191dbbfce2d115137  libstdc++-v3/testsuite/std/time/make12/1.cc
*************** a1640714fc4e3657cefdedd4db899838  libstd
*** 108450,108456 ****
  d7927f85e40de3823114f01b93b3bf21  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
  1936a81f2a04a996ff99c7ebdebc5003  libtool.m4
! c42c43e38ace4356dd51127ac1bcb083  libvtv/ChangeLog
  7ad6a0c753c219e31237f212c5854dd8  libvtv/Makefile.am
  b1170aae9472f26fdc8326737dc22aba  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
--- 108806,108812 ----
  d7927f85e40de3823114f01b93b3bf21  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
  1936a81f2a04a996ff99c7ebdebc5003  libtool.m4
! 663d66880c3bef6ed093f78c6b49bf38  libvtv/ChangeLog
  7ad6a0c753c219e31237f212c5854dd8  libvtv/Makefile.am
  b1170aae9472f26fdc8326737dc22aba  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
*************** fd301005dc07375a9b1b26c1df04e576  libvtv
*** 108533,108539 ****
  4a2d91c71136af55b12e42fa84195778  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  06c2854f9cfe5864b2885e0d0e9c512f  ltmain.sh
! 6629ad5e60bca469141a23bf6213c635  lto-plugin/ChangeLog
  b4172d0962c2ec3a954d98e768b4995e  lto-plugin/Makefile.am
  93fe746c6f1d54ade83e13d65096fe9f  lto-plugin/Makefile.in
  75fc65b35d0a47ac098f7a278d37060b  lto-plugin/aclocal.m4
--- 108889,108895 ----
  4a2d91c71136af55b12e42fa84195778  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  06c2854f9cfe5864b2885e0d0e9c512f  ltmain.sh
! 1ecc1fad87f5dddb20f963f6c973a29b  lto-plugin/ChangeLog
  b4172d0962c2ec3a954d98e768b4995e  lto-plugin/Makefile.am
  93fe746c6f1d54ade83e13d65096fe9f  lto-plugin/Makefile.in
  75fc65b35d0a47ac098f7a278d37060b  lto-plugin/aclocal.m4
*************** dee72a6a60e99528b0d17bf3ff9a1e15  ltopti
*** 108545,108551 ****
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 12c098389400306ad713eee79dfba903  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
--- 108901,108907 ----
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 770a3727060a46b5ae3cd6e3b7add008  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
*************** cf2baa0854f564a7785307e79f155efc  symlin
*** 108566,108572 ****
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! d05ebeb2d657084004f404597a7bcef4  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
--- 108922,108928 ----
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! c96392742d15ae3ed38e49bb25e21b2e  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
diff -Nrcpad gcc-11.3.0/NEWS gcc-11.4.0/NEWS
*** gcc-11.3.0/NEWS	Thu Apr 21 07:59:58 2022
--- gcc-11.4.0/NEWS	Mon May 29 08:50:07 2023
*************** see ONEWS.
*** 6,31 ****
  
  ======================================================================
  http://gcc.gnu.org/gcc-11/index.html
- 
                               GCC 11 Release Series
  
!    April 21, 2022
  
!    The GCC developers are pleased to announce the release of GCC 11.3.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 11.2 relative to previous releases of GCC.
  
  Release History
  
     GCC 11.3
!           April 21, 2022 ([1]changes, [2]documentation)
  
     GCC 11.2
!           July 28, 2021 ([3]changes, [4]documentation)
  
     GCC 11.1
!           April 27, 2021 ([5]changes, [6]documentation)
  
  References and Acknowledgements
  
--- 6,33 ----
  
  ======================================================================
  http://gcc.gnu.org/gcc-11/index.html
                               GCC 11 Release Series
  
!    May 29, 2023
  
!    The GCC developers are pleased to announce the release of GCC 11.4.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 11.3 relative to previous releases of GCC.
  
  Release History
  
+    GCC 11.4
+           May 29, 2023 ([1]changes, [2]documentation)
+ 
     GCC 11.3
!           April 21, 2022 ([3]changes, [4]documentation)
  
     GCC 11.2
!           July 28, 2021 ([5]changes, [6]documentation)
  
     GCC 11.1
!           April 27, 2021 ([7]changes, [8]documentation)
  
  References and Acknowledgements
  
*************** References and Acknowledgements
*** 33,91 ****
     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
!    2022-04-21[19].
  
  References
  
     1. http://gcc.gnu.org/gcc-11/changes.html
!    2. http://gcc.gnu.org/onlinedocs/11.3.0/
     3. http://gcc.gnu.org/gcc-11/changes.html
!    4. http://gcc.gnu.org/onlinedocs/11.2.0/
     5. http://gcc.gnu.org/gcc-11/changes.html
!    6. http://gcc.gnu.org/onlinedocs/11.1.0/
!    7. http://gcc.gnu.org/gcc-11/buildstat.html
!    8. http://gcc.gnu.org/onlinedocs/gcc-11.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
!   19. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-11/changes.html
- 
                               GCC 11 Release Series
                          Changes, New Features, and Fixes
  
--- 35,93 ----
     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
                          Changes, New Features, and Fixes
  
*************** General Improvements
*** 138,147 ****
              and
            + multicolumn characters (requiring more than one column to
              display in a monospace font)
!        For example, the character p ("GREEK SMALL LETTER PI (U+03C0)")
         occupies one column, and its UTF-8 encoding requires two bytes; the
!        character &#x1F642; ("SLIGHTLY SMILING FACE (U+1F642)") occupies
!        two columns, and its UTF-8 encoding requires four bytes.
         In GCC 11 the column numbers default to being column numbers,
         respecting multi-column characters. The old behavior can be
         restored using a new option [7]-fdiagnostics-column-unit=byte.
--- 140,149 ----
              and
            + multicolumn characters (requiring more than one column to
              display in a monospace font)
!        For example, the character π ("GREEK SMALL LETTER PI (U+03C0)")
         occupies one column, and its UTF-8 encoding requires two bytes; the
!        character 🙂 ("SLIGHTLY SMILING FACE (U+1F642)") occupies two
!        columns, and its UTF-8 encoding requires four bytes.
         In GCC 11 the column numbers default to being column numbers,
         respecting multi-column characters. The old behavior can be
         restored using a new option [7]-fdiagnostics-column-unit=byte.
*************** GCC 11.3
*** 784,789 ****
--- 786,798 ----
     not be complete (that is, it is possible that some PRs that have been
     fixed are not listed here).
  
+ GCC 11.4
+ 
+    This is the [70]list of problem reports (PRs) from GCC's bug tracking
+    system that are known to be fixed in the 11.4 release. This list might
+    not be complete (that is, it is possible that some PRs that have been
+    fixed are not listed here).
+ 
    Target Specific Changes
  
      x86-64
*************** GCC 11.3
*** 800,817 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [70]GCC manuals. If that fails, the
!     [71]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 [72]gcc@gcc.gnu.org. All of [73]our lists have public
      archives.
  
!    Copyright (C) [74]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 [75]maintained by the GCC team. Last modified
!    2022-04-21[76].
  
  References
  
--- 809,826 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [71]GCC manuals. If that fails, the
!     [72]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 [73]gcc@gcc.gnu.org. All of [74]our lists have public
      archives.
  
!    Copyright (C) [75]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 [76]maintained by the GCC team. Last modified
!    2023-05-29.
  
  References
  
*************** References
*** 835,841 ****
    18. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fprofile-values
    19. https://www.openmp.org/specifications/
    20. https://www.openacc.org/
!   21. https://gcc.gnu.org/wiki/OpenACC/Implementation%20Status#status-11
    22. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libgomp/Enabling-OpenACC.html
    23. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute
    24. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
--- 844,850 ----
    18. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fprofile-values
    19. https://www.openmp.org/specifications/
    20. https://www.openacc.org/
!   21. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-11
    22. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libgomp/Enabling-OpenACC.html
    23. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute
    24. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
*************** References
*** 867,873 ****
    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
!   53. https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/downloads/straight-line-speculation
    54. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
    55. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
    56. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
--- 876,882 ----
    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
!   53. https://developer.arm.com/documentation/102587/0102/Straight-line-speculation-frequently-asked-questions
    54. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
    55. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html
    56. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
*************** References
*** 884,919 ****
    67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0
    68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2
    69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3
!   70. https://gcc.gnu.org/onlinedocs/
!   71. mailto:gcc-help@gcc.gnu.org
!   72. mailto:gcc@gcc.gnu.org
!   73. https://gcc.gnu.org/lists.html
!   74. https://www.fsf.org/
!   75. https://gcc.gnu.org/about.html
!   76. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-10/index.html
- 
                               GCC 10 Release Series
  
!    April 8, 2021
  
     The [1]GNU project and the GCC developers are pleased to announce the
!    release of GCC 10.3.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 10.2 relative to previous releases of GCC.
  
  Release History
  
     GCC 10.3
!           April 8, 2021 ([2]changes, [3]documentation)
  
     GCC 10.2
!           July 23, 2020 ([4]changes, [5]documentation)
  
     GCC 10.1
!           May 7, 2020 ([6]changes, [7]documentation)
  
  References and Acknowledgements
  
--- 893,930 ----
    67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0
    68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2
    69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3
!   70. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.4
!   71. https://gcc.gnu.org/onlinedocs/
!   72. mailto:gcc-help@gcc.gnu.org
!   73. mailto:gcc@gcc.gnu.org
!   74. https://gcc.gnu.org/lists.html
!   75. https://www.fsf.org/
!   76. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/index.html
                               GCC 10 Release Series
  
!    June 28, 2022
  
     The [1]GNU project and the GCC developers are pleased to announce the
!    release of GCC 10.4.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 10.3 relative to previous releases of GCC.
  
  Release History
  
+    GCC 10.4
+           June 28, 2022 ([2]changes, [3]documentation)
+ 
     GCC 10.3
!           April 8, 2021 ([4]changes, [5]documentation)
  
     GCC 10.2
!           July 23, 2020 ([6]changes, [7]documentation)
  
     GCC 10.1
!           May 7, 2020 ([8]changes, [9]documentation)
  
  References and Acknowledgements
  
*************** References and Acknowledgements
*** 921,980 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
!    A list of [8]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 [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
!    2021-07-28[20].
  
  References
  
     1. http://www.gnu.org/
     2. http://gcc.gnu.org/gcc-10/changes.html
!    3. http://gcc.gnu.org/onlinedocs/10.3.0/
     4. http://gcc.gnu.org/gcc-10/changes.html
!    5. http://gcc.gnu.org/onlinedocs/10.2.0/
     6. http://gcc.gnu.org/gcc-10/changes.html
!    7. http://gcc.gnu.org/onlinedocs/10.1.0/
!    8. http://gcc.gnu.org/gcc-10/buildstat.html
!    9. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html
!   10. http://gcc.gnu.org/index.html
!   11. mailto:gcc@gcc.gnu.org
!   12. http://gcc.gnu.org/mirrors.html
!   13. http://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
!   20. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-10/changes.html
- 
                               GCC 10 Release Series
                          Changes, New Features, and Fixes
  
--- 932,991 ----
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
!    A list of [10]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 [11]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [12]GCC
!    project web site or contact the [13]GCC development mailing list.
  
!    To obtain GCC please use [14]our mirror sites or [15]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [16]GCC manuals. If that fails, the
!     [17]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 [18]gcc@gcc.gnu.org. All of [19]our lists have public
      archives.
  
!    Copyright (C) [20]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 [21]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
     1. http://www.gnu.org/
     2. http://gcc.gnu.org/gcc-10/changes.html
!    3. http://gcc.gnu.org/onlinedocs/10.4.0/
     4. http://gcc.gnu.org/gcc-10/changes.html
!    5. http://gcc.gnu.org/onlinedocs/10.3.0/
     6. http://gcc.gnu.org/gcc-10/changes.html
!    7. http://gcc.gnu.org/onlinedocs/10.2.0/
!    8. http://gcc.gnu.org/gcc-10/changes.html
!    9. http://gcc.gnu.org/onlinedocs/10.1.0/
!   10. http://gcc.gnu.org/gcc-10/buildstat.html
!   11. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/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
!   19. https://gcc.gnu.org/lists.html
!   20. https://www.fsf.org/
!   21. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/changes.html
                               GCC 10 Release Series
                          Changes, New Features, and Fixes
  
*************** General Improvements
*** 1079,1094 ****
  
  New Languages and Language-Specific Improvements
  
!      * Version 2.6 of the [17]OpenACC specification is now supported in
         the C, C++ and Fortran compilers. See the [18]implementation status
         section on the OpenACC wiki page and the [19]run-time library
         documentation for further information.
       * GCC 10 adds a number of newly implemented [20]OpenMP 5.0 features
!        on top of the GCC 9 release such as conditional lastprivate clause,
!        scan and loop directives, order(concurrent) and use_device_addr
!        clauses support, if clause on simd construct or partial support for
!        the declare variant directive, getting closer to full support of
!        the OpenMP 5.0 standard.
       * OpenMP and OpenACC now support [21]offloading to AMD Radeon (GCN)
         GPUs; supported are the third-generation Fiji (fiji) and the
         fifth-generation VEGA 10/VEGA 20 (gfx900 or gfx906).
--- 1090,1105 ----
  
  New Languages and Language-Specific Improvements
  
!      * Version 2.6 of the [17]OpenACC specification is now supported by
         the C, C++ and Fortran compilers. See the [18]implementation status
         section on the OpenACC wiki page and the [19]run-time library
         documentation for further information.
       * GCC 10 adds a number of newly implemented [20]OpenMP 5.0 features
!        such as conditional lastprivate clause, scan and loop directives,
!        order(concurrent) and use_device_addr clauses support, if clause on
!        simd construct, and partial support for the declare variant
!        directive, getting closer to full support of the OpenMP 5.0
!        standard.
       * OpenMP and OpenACC now support [21]offloading to AMD Radeon (GCN)
         GPUs; supported are the third-generation Fiji (fiji) and the
         fifth-generation VEGA 10/VEGA 20 (gfx900 or gfx906).
*************** New Languages and Language-Specific Impr
*** 1142,1150 ****
         the input encoding (UTF-8, by default), in addition to the UCN
         syntax (\uNNNN or \UNNNNNNNN) that is already supported:
  
! static const int p = 3;
! int get_na�ve_pi() {
!   return p;
  }
  
    C
--- 1153,1161 ----
         the input encoding (UTF-8, by default), in addition to the UCN
         syntax (\uNNNN or \UNNNNNNNN) that is already supported:
  
! static const int π = 3;
! int get_naïve_pi() {
!   return π;
  }
  
    C
*************** typedef svbool_t pred512 __attribute__((
*** 1424,1430 ****
              one. Previously it would always use SVE if possible.
            + If a vector loop uses Advanced SIMD rather than SVE, the
              vectorizer now considers using SVE to vectorize the left-over
!             elements (the "scalar tail" or "epilog").
            + Besides these specific points, there have been many general
              improvements to the way that the vectorizer uses SVE.
       * The -mbranch-protection=pac-ret option now accepts the optional
--- 1435,1441 ----
              one. Previously it would always use SVE if possible.
            + If a vector loop uses Advanced SIMD rather than SVE, the
              vectorizer now considers using SVE to vectorize the left-over
!             elements (the “scalar tail” or “epilog”).
            + Besides these specific points, there have been many general
              improvements to the way that the vectorizer uses SVE.
       * The -mbranch-protection=pac-ret option now accepts the optional
*************** typedef svbool_t pred512 __attribute__((
*** 1529,1536 ****
  
    AMD Radeon (GCN)
  
!      * The code generation and in particular the vectorization support has
!        been much improved.
  
    ARC
  
--- 1540,1547 ----
  
    AMD Radeon (GCN)
  
!      * Code generation and in particular vectorization support have been
!        much improved.
  
    ARC
  
*************** GCC 10.3
*** 1699,1704 ****
--- 1710,1720 ----
  
  GCC 10.4
  
+    This is the [60]list of problem reports (PRs) from GCC's bug tracking
+    system that are known to be fixed in the 10.4 release. This list might
+    not be complete (that is, it is possible that some PRs that have been
+    fixed are not listed here).
+ 
    Target Specific Changes
  
      x86-64
*************** GCC 10.4
*** 1710,1727 ****
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [60]GCC manuals. If that fails, the
!     [61]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 [62]gcc@gcc.gnu.org. All of [63]our lists have public
      archives.
  
!    Copyright (C) [64]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 [65]maintained by the GCC team. Last modified
!    2021-11-12[66].
  
  References
  
--- 1726,1743 ----
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [61]GCC manuals. If that fails, the
!     [62]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 [63]gcc@gcc.gnu.org. All of [64]our lists have public
      archives.
  
!    Copyright (C) [65]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 [66]maintained by the GCC team. Last modified
!    2023-03-11.
  
  References
  
*************** References
*** 1742,1748 ****
    15. https://facebook.github.io/zstd/
    16. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values
    17. https://www.openacc.org/
!   18. https://gcc.gnu.org/wiki/OpenACC/Implementation%20Status#status-10
    19. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1
    20. https://www.openmp.org/specifications/
    21. https://gcc.gnu.org/wiki/Offloading
--- 1758,1764 ----
    15. https://facebook.github.io/zstd/
    16. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values
    17. https://www.openacc.org/
!   18. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-10
    19. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1
    20. https://www.openmp.org/specifications/
    21. https://gcc.gnu.org/wiki/Offloading
*************** References
*** 1768,1775 ****
    41. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_patchlevel
    42. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_context_new_bitfield
    43. https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics
!   44. https://developer.arm.com/architectures/cpu-architecture/m-profile
!   45. https://developer.arm.com/architectures/instruction-sets/simd-isas/helium/helium-intrinsics
    46. https://developer.arm.com/documentation/101028/0010/Custom-Datapath-Extension
    47. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/AVR-Options.html#index-nodevicespecs
    48. https://gcc.gnu.org/install/configure.html#avr
--- 1784,1791 ----
    41. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_patchlevel
    42. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_context_new_bitfield
    43. https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics
!   44. https://developer.arm.com/Architectures/M-Profile Architecture
!   45. https://developer.arm.com/architectures/instruction-sets/intrinsics/
    46. https://developer.arm.com/documentation/101028/0010/Custom-Datapath-Extension
    47. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/AVR-Options.html#index-nodevicespecs
    48. https://gcc.gnu.org/install/configure.html#avr
*************** References
*** 1784,1822 ****
    57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0
    58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2
    59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3
!   60. https://gcc.gnu.org/onlinedocs/
!   61. mailto:gcc-help@gcc.gnu.org
!   62. mailto:gcc@gcc.gnu.org
!   63. https://gcc.gnu.org/lists.html
!   64. https://www.fsf.org/
!   65. https://gcc.gnu.org/about.html
!   66. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-9/index.html
- 
                                GCC 9 Release Series
  
!    June 1, 2021
  
     The [1]GNU project and the GCC developers are pleased to announce the
!    release of GCC 9.4.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 9.3 relative to previous releases of GCC.
  
  Release History
  
     GCC 9.4
!           June 1, 2021 ([2]changes, [3]documentation)
  
     GCC 9.3
!           Mar 12, 2020 ([4]changes, [5]documentation)
  
     GCC 9.2
!           Aug 12, 2019 ([6]changes, [7]documentation)
  
     GCC 9.1
!           May 3, 2019 ([8]changes, [9]documentation)
  
  References and Acknowledgements
  
--- 1800,1842 ----
    57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0
    58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2
    59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3
!   60. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.4
!   61. https://gcc.gnu.org/onlinedocs/
!   62. mailto:gcc-help@gcc.gnu.org
!   63. mailto:gcc@gcc.gnu.org
!   64. https://gcc.gnu.org/lists.html
!   65. https://www.fsf.org/
!   66. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/index.html
                                GCC 9 Release Series
  
!    (This release series is no longer supported.)
! 
!    May 27, 2022
  
     The [1]GNU project and the GCC developers are pleased to announce the
!    release of GCC 9.5.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 9.4 relative to previous releases of GCC.
  
  Release History
  
+    GCC 9.5
+           May 27, 2022 ([2]changes, [3]documentation)
+ 
     GCC 9.4
!           June 1, 2021 ([4]changes, [5]documentation)
  
     GCC 9.3
!           Mar 12, 2020 ([6]changes, [7]documentation)
  
     GCC 9.2
!           Aug 12, 2019 ([8]changes, [9]documentation)
  
     GCC 9.1
!           May 3, 2019 ([10]changes, [11]documentation)
  
  References and Acknowledgements
  
*************** References and Acknowledgements
*** 1824,1885 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
!    A list of [10]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 [11]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [12]GCC
!    project web site or contact the [13]GCC development mailing list.
  
!    To obtain GCC please use [14]our mirror sites or [15]our version
     control system.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [16]GCC manuals. If that fails, the
!     [17]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 [18]gcc@gcc.gnu.org. All of [19]our lists have public
      archives.
  
!    Copyright (C) [20]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 [21]maintained by the GCC team. Last modified
!    2021-07-28[22].
  
  References
  
     1. http://www.gnu.org/
     2. http://gcc.gnu.org/gcc-9/changes.html
!    3. http://gcc.gnu.org/onlinedocs/9.4.0/
     4. http://gcc.gnu.org/gcc-9/changes.html
!    5. http://gcc.gnu.org/onlinedocs/9.3.0/
     6. http://gcc.gnu.org/gcc-9/changes.html
!    7. http://gcc.gnu.org/onlinedocs/9.2.0/
     8. http://gcc.gnu.org/gcc-9/changes.html
!    9. http://gcc.gnu.org/onlinedocs/9.1.0/
!   10. http://gcc.gnu.org/gcc-9/buildstat.html
!   11. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/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
!   19. https://gcc.gnu.org/lists.html
!   20. https://www.fsf.org/
!   21. https://gcc.gnu.org/about.html
!   22. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-9/changes.html
- 
                                GCC 9 Release Series
                          Changes, New Features, and Fixes
  
--- 1844,1905 ----
     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
                          Changes, New Features, and Fixes
  
*************** General Improvements
*** 1933,1944 ****
         64-bit integers as well as standard SI and IEC suffixes such as kb
         and KiB, MB and MiB, or GB and GiB denoting the corresponding
         multiples of bytes. See [9]Invoking GCC for more.
!      * A new option,
!        [10]-flive-patching=[inline-only-static|inline-clone], has been
!        introduced to provide a safe compilation for live-patching. At the
!        same time, provides multiple-level control on the enabled IPA
!        optimizations. See the user guide for more details about the
!        option.
       * A new option, --completion, has been added to provide more fine
         option completion in a shell. It is intended to be used by
         Bash-completion.
--- 1953,1962 ----
         64-bit integers as well as standard SI and IEC suffixes such as kb
         and KiB, MB and MiB, or GB and GiB denoting the corresponding
         multiples of bytes. See [9]Invoking GCC for more.
!      * A new option [10]-flive-patching=[inline-only-static|inline-clone]
!        generates code suitable for live patching. At the same time it
!        provides multiple-level control over IPA optimizations. See the
!        user guide for more details.
       * A new option, --completion, has been added to provide more fine
         option completion in a shell. It is intended to be used by
         Bash-completion.
*************** New Targets and Target Specific Improvem
*** 2516,2521 ****
--- 2534,2563 ----
         following ISA extensions: AVX512F, AVX512VL, AVX512CD, AVX512BW,
         AVX512DQ, AVX512VNNI.
  
+   MIPS
+ 
+      * The Loongson loongson-mmi and loongson-ext extensions have been
+        split from loongson3a:
+           + loongson-mmi contains the Loongson MMI (MultiMedia extensions
+             Instructions).
+           + loongson-ext contains the Loongson EXT (EXTensions
+             instructions).
+      * The Loongson EXT2 (EXTensions R2 instructions) are now supported.
+           + loongson-ext2 contains the Loongson EXT2 instructions.
+        Command-line options-m[no-]loongson-mmi, -m[no-]loongson-ext, and
+        -m[no-]loongson-ext2 enable or disable those extensions.
+      * Support has been added for the following processors (GCC
+        identifiers in parentheses):
+           + Loongson 3A1000 (gs464) which enables loongson-mmi,
+             loongson-ext by default.
+           + Loongson 3A2000/3A3000 (gs464e) which enables loongson-mmi,
+             loongson-ext, loongson-ext2 by default.
+           + Loongson 2K1000 (gs264e) which enables loongson-ext,
+             loongson-ext2, msa by default.
+        The GCC identifiers can be used as arguments to the -mcpu and
+        -mtune options (as in -mcpu=gs464 or -mtune=gs464e) or as arguments
+        to the equivalent target attributes and pragmas.
+ 
    OpenRISC
  
       * A new back end targeting OpenRISC processors has been contributed
*************** GCC 9.4
*** 2637,2656 ****
         for all SVE implementations. Adding -msve-vector-bits=512 makes the
         code specific to 512-bit SVE.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [69]GCC manuals. If that fails, the
!     [70]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 [71]gcc@gcc.gnu.org. All of [72]our lists have public
      archives.
  
!    Copyright (C) [73]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 [74]maintained by the GCC team. Last modified
!    2021-07-28[75].
  
  References
  
--- 2679,2705 ----
         for all SVE implementations. Adding -msve-vector-bits=512 makes the
         code specific to 512-bit SVE.
  
+ GCC 9.5
+ 
+    This is the [69]list of problem reports (PRs) from GCC's bug tracking
+    system that are known to be fixed in the 9.5 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 [70]GCC manuals. If that fails, the
!     [71]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 [72]gcc@gcc.gnu.org. All of [73]our lists have public
      archives.
  
!    Copyright (C) [74]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 [75]maintained by the GCC team. Last modified
!    2023-02-22.
  
  References
  
*************** References
*** 2689,2695 ****
    33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution
    34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov
    35. https://www.openacc.org/
!   36. https://gcc.gnu.org/wiki/OpenACC/Implementation%20Status#status-9
    37. https://www.openmp.org/specifications/
    38. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html
    39. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector
--- 2738,2744 ----
    33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution
    34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov
    35. https://www.openacc.org/
!   36. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-9
    37. https://www.openmp.org/specifications/
    38. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html
    39. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector
*************** References
*** 2722,2739 ****
    66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2
    67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3
    68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4
!   69. https://gcc.gnu.org/onlinedocs/
!   70. mailto:gcc-help@gcc.gnu.org
!   71. mailto:gcc@gcc.gnu.org
!   72. https://gcc.gnu.org/lists.html
!   73. https://www.fsf.org/
!   74. https://gcc.gnu.org/about.html
!   75. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-8/index.html
- 
                                GCC 8 Release Series
  
     May 14, 2021
  
     The [1]GNU project and the GCC developers are pleased to announce the
--- 2771,2789 ----
    66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2
    67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3
    68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4
!   69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.5
!   70. https://gcc.gnu.org/onlinedocs/
!   71. mailto:gcc-help@gcc.gnu.org
!   72. mailto:gcc@gcc.gnu.org
!   73. https://gcc.gnu.org/lists.html
!   74. https://www.fsf.org/
!   75. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-8/index.html
                                GCC 8 Release Series
  
+    (This release series is no longer supported.)
+ 
     May 14, 2021
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** References and Acknowledgements
*** 2792,2798 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 2842,2848 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 2819,2828 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-8/changes.html
- 
                                GCC 8 Release Series
                          Changes, New Features, and Fixes
  
--- 2869,2876 ----
*************** void copy (const char *s)
*** 3107,3113 ****
  {
      char buf[80];
      strncpy (buf, s, sizeof buf);
!     ...
  }
  warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca
  tion]
--- 3155,3161 ----
  {
      char buf[80];
      strncpy (buf, s, sizeof buf);
!     …
  }
  warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca
  tion]
*************** void f (void)
*** 3180,3186 ****
  {
      char a[] = "abcd1234";
      strcpy (a, a + 4);
!     ...
  }
  warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset
   4 [-Wrestrict]
--- 3228,3234 ----
  {
      char a[] = "abcd1234";
      strcpy (a, a + 4);
!     …
  }
  warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset
   4 [-Wrestrict]
*************** New Targets and Target Specific Improvem
*** 3603,3615 ****
            + Secure functions via sjli instruction.
       * New exception handling implementation.
       * Revamped trampoline implementation.
!      * Refactored small data feature implementation, controlled via -G
!        command line option.
       * New support for reduced register set ARC architecture
!        configurations, controlled via -mrf16 command line option.
       * Refurbished and improved support for zero overhead loops.
!        Introduced -mlpc-width command line option to control the width of
!        lp_count register.
  
    ARM
  
--- 3651,3663 ----
            + Secure functions via sjli instruction.
       * New exception handling implementation.
       * Revamped trampoline implementation.
!      * Refactored small data feature implementation, controlled via the -G
!        command-line option.
       * New support for reduced register set ARC architecture
!        configurations, controlled via the -mrf16 command-line option.
       * Refurbished and improved support for zero overhead loops.
!        Introduced -mlpc-width command-line option to control the width of
!        the lp_count register.
  
    ARM
  
*************** GCC 8.5
*** 3902,3908 ****
     provided this notice is preserved.
  
     These pages are [44]maintained by the GCC team. Last modified
!    2021-10-01[45].
  
  References
  
--- 3950,3956 ----
     provided this notice is preserved.
  
     These pages are [44]maintained by the GCC team. Last modified
!    2023-01-11.
  
  References
  
*************** References
*** 3950,3961 ****
    42. https://gcc.gnu.org/lists.html
    43. https://www.fsf.org/
    44. https://gcc.gnu.org/about.html
-   45. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-7/index.html
- 
                                GCC 7 Release Series
  
     Nov 14, 2019
  
     The [1]GNU project and the GCC developers are pleased to announce the
--- 3998,4009 ----
    42. https://gcc.gnu.org/lists.html
    43. https://www.fsf.org/
    44. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-7/index.html
                                GCC 7 Release Series
  
+    (This release series is no longer supported.)
+ 
     Nov 14, 2019
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** References and Acknowledgements
*** 4014,4020 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 4062,4068 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 4041,4050 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-7/changes.html
- 
                                GCC 7 Release Series
                          Changes, New Features, and Fixes
  
--- 4089,4096 ----
*************** void f (int n)
*** 4413,4419 ****
      d = alloca (n);
    else
      d = malloc (n);
!   ...
  }
  
  warning: argument to 'alloca may be too large due to conversion from 'int' to 'l
--- 4459,4465 ----
      d = alloca (n);
    else
      d = malloc (n);
!   …
  }
  
  warning: argument to 'alloca may be too large due to conversion from 'int' to 'l
*************** ong unsigned int' [-Walloca-larger-than=
*** 4426,4432 ****
  void f (size_t n)
  {
    char *d = alloca (n);
!   ...
  }
  
  warning: unbounded use of 'alloca' [-Walloca-larger-than=]
--- 4472,4478 ----
  void f (size_t n)
  {
    char *d = alloca (n);
!   …
  }
  
  warning: unbounded use of 'alloca' [-Walloca-larger-than=]
*************** void f (unsigned x)
*** 4474,4480 ****
  {
    char d[4];
    snprintf (d, sizeof d, "%#02x", x & 0xff);
!   ...
  }
  
  warning: 'snprintf' output may be truncated before the last format character [-W
--- 4520,4526 ----
  {
    char d[4];
    snprintf (d, sizeof d, "%#02x", x & 0xff);
!   …
  }
  
  warning: 'snprintf' output may be truncated before the last format character [-W
*************** void f (const char *fname)
*** 4502,4508 ****
    char d[8];
    strncpy (d, "/tmp/", sizeof d);
    strncat (d, fname, sizeof d);
!   ...
  }
  
  warning: specified bound 8 equals the size of the destination [-Wstringop-overfl
--- 4548,4554 ----
    char d[8];
    strncpy (d, "/tmp/", sizeof d);
    strncat (d, fname, sizeof d);
!   …
  }
  
  warning: specified bound 8 equals the size of the destination [-Wstringop-overfl
*************** test.cc:4:11: error: expected ';' after
*** 4640,4649 ****
            + std::as_const, std::not_fn,
              std::has_unique_object_representations, constexpr
              std::addressof.
!        Thanks to Daniel Kr�gler, Tim Shen, Edward Smith-Rowland, and Ville
         Voutilainen for work on the C++17 support.
       * A new power-of-two rehashing policy for use with the _Hashtable
!        internals, thanks to Fran�ois Dumont.
  
    Fortran
  
--- 4686,4695 ----
            + std::as_const, std::not_fn,
              std::has_unique_object_representations, constexpr
              std::addressof.
!        Thanks to Daniel Krügler, Tim Shen, Edward Smith-Rowland, and Ville
         Voutilainen for work on the C++17 support.
       * A new power-of-two rehashing policy for use with the _Hashtable
!        internals, thanks to François Dumont.
  
    Fortran
  
*************** const int* get_address (unsigned idx)
*** 4813,4819 ****
  }
  
       * A new command-line option -Wmisspelled-isr has been added. It turns
!        off -- or turns into errors -- warnings that are reported for
         interrupt service routines (ISRs) which don't follow AVR-LibC's
         naming convention of prefixing ISR names with __vector.
       * __builtin_avr_nops(n) is a new [17]built-in function that inserts n
--- 4859,4865 ----
  }
  
       * A new command-line option -Wmisspelled-isr has been added. It turns
!        off — or turns into errors — warnings that are reported for
         interrupt service routines (ISRs) which don't follow AVR-LibC's
         naming convention of prefixing ISR names with __vector.
       * __builtin_avr_nops(n) is a new [17]built-in function that inserts n
*************** GCC 7.5
*** 5112,5118 ****
     provided this notice is preserved.
  
     These pages are [33]maintained by the GCC team. Last modified
!    2021-10-17[34].
  
  References
  
--- 5158,5164 ----
     provided this notice is preserved.
  
     These pages are [33]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 5149,5158 ****
    31. https://gcc.gnu.org/lists.html
    32. https://www.fsf.org/
    33. https://gcc.gnu.org/about.html
-   34. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-6/index.html
- 
                                GCC 6 Release Series
  
     (This release series is no longer supported.)
--- 5195,5202 ----
*************** References and Acknowledgements
*** 5215,5221 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 5259,5265 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 5242,5251 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-6/changes.html
- 
                                GCC 6 Release Series
                          Changes, New Features, and Fixes
  
--- 5286,5293 ----
*************** New Targets and Target Specific Improvem
*** 5664,5670 ****
         added. This includes new intrinsic and built-in support. It is
         enabled through option -mmwaitx. The instructions monitorx and
         mwaitx implement the same functionality as the old monitor and
!        mwait instructions. In addition mwaitx adds a configurable timer.
         The timer value is received as third argument and stored in
         register %ebx.
       * x86-64 targets now allow stack realignment from a word-aligned
--- 5706,5712 ----
         added. This includes new intrinsic and built-in support. It is
         enabled through option -mmwaitx. The instructions monitorx and
         mwaitx implement the same functionality as the old monitor and
!        mwait instructions. In addition, mwaitx adds a configurable timer.
         The timer value is received as third argument and stored in
         register %ebx.
       * x86-64 targets now allow stack realignment from a word-aligned
*************** Operating Systems
*** 5851,5862 ****
    RTEMS
  
       * The RTEMS thread model implementation changed. Mutexes now use
!        self-contained objects defined in Newlib <sys/lock.h> instead of
         Classic API semaphores. The keys for thread specific data and the
         once function are directly defined via <pthread.h>. Self-contained
!        condition variables are provided via Newlib <sys/lock.h>. The RTEMS
         thread model also supports C++11 threads.
!      * OpenMP support now uses self-contained objects provided by Newlib
         <sys/lock.h> and offers a significantly better performance compared
         to the POSIX configuration of libgomp. It is possible to configure
         thread pools for each scheduler instance via the environment
--- 5893,5904 ----
    RTEMS
  
       * The RTEMS thread model implementation changed. Mutexes now use
!        self-contained objects defined in newlib <sys/lock.h> instead of
         Classic API semaphores. The keys for thread specific data and the
         once function are directly defined via <pthread.h>. Self-contained
!        condition variables are provided via newlib <sys/lock.h>. The RTEMS
         thread model also supports C++11 threads.
!      * OpenMP support now uses self-contained objects provided by newlib
         <sys/lock.h> and offers a significantly better performance compared
         to the POSIX configuration of libgomp. It is possible to configure
         thread pools for each scheduler instance via the environment
*************** Operating Systems
*** 5954,5960 ****
     provided this notice is preserved.
  
     These pages are [32]maintained by the GCC team. Last modified
!    2021-10-31[33].
  
  References
  
--- 5996,6002 ----
     provided this notice is preserved.
  
     These pages are [32]maintained by the GCC team. Last modified
!    2023-02-20.
  
  References
  
*************** References
*** 5968,5974 ****
     8. https://gcc.gnu.org/wiki/Offloading
     9. https://www.openmp.org/specifications/
    10. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1266
!   11. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf
    12. https://gcc.gnu.org/projects/cxx-status.html#cxx1z
    13. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/performance.html
    14. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/functions.html#gcc_jit_block_end_with_switch
--- 6010,6016 ----
     8. https://gcc.gnu.org/wiki/Offloading
     9. https://www.openmp.org/specifications/
    10. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1266
!   11. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf
    12. https://gcc.gnu.org/projects/cxx-status.html#cxx1z
    13. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/performance.html
    14. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/functions.html#gcc_jit_block_end_with_switch
*************** References
*** 5990,5999 ****
    30. https://gcc.gnu.org/lists.html
    31. https://www.fsf.org/
    32. https://gcc.gnu.org/about.html
-   33. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-5/index.html
- 
                                GCC 5 Release Series
  
     (This release series is no longer supported.)
--- 6032,6039 ----
*************** References and Acknowledgements
*** 6056,6062 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 6096,6102 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 6083,6092 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-5/changes.html
- 
                                GCC 5 Release Series
                          Changes, New Features, and Fixes
  
--- 6123,6130 ----
*************** Target Specific Changes
*** 6884,6890 ****
         added. This includes new intrinsic and built-in support. It is
         enabled through option -mmwaitx. The instructions monitorx and
         mwaitx implement the same functionality as the old monitor and
!        mwait instructions. In addition mwaitx adds a configurable timer.
         The timer value is received as third argument and stored in
         register %ebx.
  
--- 6922,6928 ----
         added. This includes new intrinsic and built-in support. It is
         enabled through option -mmwaitx. The instructions monitorx and
         mwaitx implement the same functionality as the old monitor and
!        mwait instructions. In addition, mwaitx adds a configurable timer.
         The timer value is received as third argument and stored in
         register %ebx.
  
*************** Target Specific Changes
*** 6966,6979 ****
     provided this notice is preserved.
  
     These pages are [49]maintained by the GCC team. Last modified
!    2022-03-11[50].
  
  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%20MPX%20support%20in%20the%20GCC%20compiler
     5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf
     6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf
     7. https://gcc.gnu.org/wiki/OpenACC
--- 7004,7017 ----
     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
     5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf
     6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf
     7. https://gcc.gnu.org/wiki/OpenACC
*************** References
*** 6984,6995 ****
    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. http://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
!   20. https://sourceware.org/gdb/current/onlinedocs/gdb/Xmethods-In-Python.html
    21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html
    22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html
    23. https://gcc.gnu.org/install/configure.html
--- 7022,7033 ----
    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
!   20. https://sourceware.org/gdb/current/onlinedocs/gdb#Xmethods-In-Python
    21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html
    22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html
    23. https://gcc.gnu.org/install/configure.html
*************** References
*** 7019,7028 ****
    47. https://gcc.gnu.org/lists.html
    48. https://www.fsf.org/
    49. https://gcc.gnu.org/about.html
-   50. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.9/index.html
- 
                               GCC 4.9 Release Series
  
     (This release series is no longer supported.)
--- 7057,7064 ----
*************** References and Acknowledgements
*** 7085,7091 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 7121,7127 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 7112,7121 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.9/changes.html
- 
                               GCC 4.9 Release Series
                          Changes, New Features, and Fixes
  
--- 7148,7155 ----
*************** New Languages and Language specific impr
*** 7229,7249 ****
         -fdiagnostics-color=never.
         Sample diagnostics output:
      $ g++ -fdiagnostics-color=always -S -Wall test.C
!     test.C: In function `int foo()':
      test.C:1:14: warning: no return statement in function returning non-void [-W
  return-type]
       int foo () { }
                    ^
      test.C:2:46: error: template instantiation depth exceeds maximum of 900 (use
!  -ftemplate-depth= to increase the maximum) instantiating `struct X<100>'
       template <int N> struct X { static const int value = X<N-1>::value; }; temp
  late struct X<1000>;
                                                    ^
!     test.C:2:46:   recursively required from `const int X<999>::value'
!     test.C:2:46:   required from `const int X<1000>::value'
      test.C:2:88:   required from here
  
!     test.C:2:46: error: incomplete type `X<100>' used in nested name specifier
  
       * With the new [7]#pragma GCC ivdep, the user can assert that there
         are no loop-carried dependencies which would prevent concurrent
--- 7263,7283 ----
         -fdiagnostics-color=never.
         Sample diagnostics output:
      $ g++ -fdiagnostics-color=always -S -Wall test.C
!     test.C: In function ‘int foo()’:
      test.C:1:14: warning: no return statement in function returning non-void [-W
  return-type]
       int foo () { }
                    ^
      test.C:2:46: error: template instantiation depth exceeds maximum of 900 (use
!  -ftemplate-depth= to increase the maximum) instantiating ‘struct X<100>’
       template <int N> struct X { static const int value = X<N-1>::value; }; temp
  late struct X<1000>;
                                                    ^
!     test.C:2:46:   recursively required from ‘const int X<999>::value’
!     test.C:2:46:   required from ‘const int X<1000>::value’
      test.C:2:88:   required from here
  
!     test.C:2:46: error: incomplete type ‘X<100>’ used in nested name specifier
  
       * With the new [7]#pragma GCC ivdep, the user can assert that there
         are no loop-carried dependencies which would prevent concurrent
*************** auto incr = [](auto x) { return x++; };
*** 7348,7355 ****
  // a functional object that will add two like-type objects
  auto add = [] <typename T> (T a, T b) { return a + b; };
  
!      * G++ supports unconstrained generic functions as specified by �4.1.2
!        and �5.1.1 of [15]N3889: Concepts Lite Specification. Briefly, auto
         may be used as a type-specifier in a parameter declaration of any
         function declarator in order to introduce an implicit function
         template parameter, akin to generic lambdas.
--- 7382,7389 ----
  // a functional object that will add two like-type objects
  auto add = [] <typename T> (T a, T b) { return a + b; };
  
!      * G++ supports unconstrained generic functions as specified by §4.1.2
!        and §5.1.1 of [15]N3889: Concepts Lite Specification. Briefly, auto
         may be used as a type-specifier in a parameter declaration of any
         function declarator in order to introduce an implicit function
         template parameter, akin to generic lambdas.
*************** auto incr(T x) { return x++; }
*** 7442,7448 ****
         be used as argument to ISO_C_BINDING's C_LOC and as actual argument
         to another NO_ARG_CHECK dummy argument; also the other constraints
         of TYPE(*) apply. The dummy arguments should be declared as scalar
!        or assumed-size variable of type type(*) (recommended) - or of type
         integer, real, complex or logical. With NO_ARG_CHECK, a pointer to
         the data without further type or shape information is passed,
         similar to C's void*. Note that also TS 29113's
--- 7476,7482 ----
         be used as argument to ISO_C_BINDING's C_LOC and as actual argument
         to another NO_ARG_CHECK dummy argument; also the other constraints
         of TYPE(*) apply. The dummy arguments should be declared as scalar
!        or assumed-size variable of type type(*) (recommended) – or of type
         integer, real, complex or logical. With NO_ARG_CHECK, a pointer to
         the data without further type or shape information is passed,
         similar to C's void*. Note that also TS 29113's
*************** GCC 4.9.4
*** 7725,7731 ****
     provided this notice is preserved.
  
     These pages are [33]maintained by the GCC team. Last modified
!    2021-07-28[34].
  
  References
  
--- 7759,7765 ----
     provided this notice is preserved.
  
     These pages are [33]maintained by the GCC team. Last modified
!    2023-01-19.
  
  References
  
*************** References
*** 7737,7749 ****
     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. http://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. http://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
    18. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html
--- 7771,7783 ----
     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
    18. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html
*************** References
*** 7762,7771 ****
    31. https://gcc.gnu.org/lists.html
    32. https://www.fsf.org/
    33. https://gcc.gnu.org/about.html
-   34. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.8/index.html
- 
                               GCC 4.8 Release Series
  
     (This release series is no longer supported.)
--- 7796,7803 ----
*************** References and Acknowledgements
*** 7831,7837 ****
     provided this notice is preserved.
  
     These pages are [25]maintained by the GCC team. Last modified
!    2021-07-28[26].
  
  References
  
--- 7863,7869 ----
     provided this notice is preserved.
  
     These pages are [25]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 7860,7869 ****
    23. https://gcc.gnu.org/lists.html
    24. https://www.fsf.org/
    25. https://gcc.gnu.org/about.html
-   26. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.8/changes.html
- 
                               GCC 4.8 Release Series
                          Changes, New Features, and Fixes
  
--- 7892,7899 ----
*************** New Languages and Language specific impr
*** 7992,7999 ****
         diagnostics. Combined with the caret information, an example
         diagnostic showing these two features is:
  
! t.c:1:94: error: invalid operands to binary < (have `struct mystruct' and `float
! ')
   #define MYMAX(A,B)    __extension__ ({ __typeof__(A) __a = (A); __typeof__(B) _
  _b = (B); __a < __b ? __b : __a; })
  
--- 8022,8029 ----
         diagnostics. Combined with the caret information, an example
         diagnostic showing these two features is:
  
! t.c:1:94: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float
! ’)
   #define MYMAX(A,B)    __extension__ ({ __typeof__(A) __a = (A); __typeof__(B) _
  _b = (B); __a < __b ? __b : __a; })
  
*************** int i = A().f();  // error, f() requires
*** 8117,8124 ****
              older versions except as noted below.
            + ABI: Some internal names (used in the assembler/object file)
              have changed for symbols declared in the specification part of
!             a module. If an affected module - or a file using it via use
!             association - is recompiled, the module and all files which
              directly use such symbols have to be recompiled as well. This
              change only affects the following kind of module symbols:
                 o Procedure pointers. Note: C-interoperable function
--- 8147,8154 ----
              older versions except as noted below.
            + ABI: Some internal names (used in the assembler/object file)
              have changed for symbols declared in the specification part of
!             a module. If an affected module – or a file using it via use
!             association – is recompiled, the module and all files which
              directly use such symbols have to be recompiled as well. This
              change only affects the following kind of module symbols:
                 o Procedure pointers. Note: C-interoperable function
*************** int i = A().f();  // error, f() requires
*** 8145,8151 ****
       * The [21]-Wcompare-reals command-line option has been added. When
         this is set, warnings are issued when comparing REAL or COMPLEX
         types for equality and inequality; consider replacing a == b by
!        abs(a-b) < eps with a suitable eps. -Wcompare-reals is enabled by
         -Wextra.
       * The [22]-Wtarget-lifetime command-line option has been added
         (enabled with -Wall), which warns if the pointer in a pointer
--- 8175,8181 ----
       * The [21]-Wcompare-reals command-line option has been added. When
         this is set, warnings are issued when comparing REAL or COMPLEX
         types for equality and inequality; consider replacing a == b by
!        abs(a−b) < eps with a suitable eps. -Wcompare-reals is enabled by
         -Wextra.
       * The [22]-Wtarget-lifetime command-line option has been added
         (enabled with -Wall), which warns if the pointer in a pointer
*************** int i = A().f();  // error, f() requires
*** 8157,8163 ****
         4.0e0).
         (For Fortran source code, consider replacing the "q" in
         floating-point literals by a kind parameter (e.g. 4.0e0_qp with a
!        suitable qp). Note that - in Fortran source code - replacing "q" by
         a simple "e" is not equivalent.)
       * The GFORTRAN_TMPDIR environment variable for specifying a
         non-default directory for files opened with STATUS="SCRATCH", is
--- 8187,8193 ----
         4.0e0).
         (For Fortran source code, consider replacing the "q" in
         floating-point literals by a kind parameter (e.g. 4.0e0_qp with a
!        suitable qp). Note that – in Fortran source code – replacing "q" by
         a simple "e" is not equivalent.)
       * The GFORTRAN_TMPDIR environment variable for specifying a
         non-default directory for files opened with STATUS="SCRATCH", is
*************** New Targets and Target Specific Improvem
*** 8252,8259 ****
      }
         The inline assembler in this example will generate code like
      mov r24, 8+7
!        provided c is allocated to R24 and val is allocated to R8...R15.
!        This works because the GNU assembler accepts plain register numbers
         without register prefix.
       * Static initializers with 3-byte symbols are supported now:
      extern const __memx char foo;
--- 8282,8289 ----
      }
         The inline assembler in this example will generate code like
      mov r24, 8+7
!        provided c is allocated to R24 and val is allocated to R8…R15. This
!        works because the GNU assembler accepts plain register numbers
         without register prefix.
       * Static initializers with 3-byte symbols are supported now:
      extern const __memx char foo;
*************** GCC 4.8.5
*** 8587,8593 ****
     provided this notice is preserved.
  
     These pages are [43]maintained by the GCC team. Last modified
!    2021-07-28[44].
  
  References
  
--- 8617,8623 ----
     provided this notice is preserved.
  
     These pages are [43]maintained by the GCC team. Last modified
!    2022-11-05.
  
  References
  
*************** References
*** 8602,8610 ****
     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. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
    13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html
!   14. http://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
--- 8632,8640 ----
     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
*************** References
*** 8617,8623 ****
    24. https://gcc.gnu.org/wiki/Fortran2003Status
    25. https://gcc.gnu.org/wiki/TS29113Status
    26. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgfortran/libgfortran.h
!   27. http://chasm-interop.sourceforge.net/
    28. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support
    29. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html
    30. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html
--- 8647,8653 ----
    24. https://gcc.gnu.org/wiki/Fortran2003Status
    25. https://gcc.gnu.org/wiki/TS29113Status
    26. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgfortran/libgfortran.h
!   27. https://chasm-interop.sourceforge.net/
    28. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support
    29. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html
    30. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html
*************** References
*** 8634,8643 ****
    41. https://gcc.gnu.org/lists.html
    42. https://www.fsf.org/
    43. https://gcc.gnu.org/about.html
-   44. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.7/index.html
- 
                               GCC 4.7 Release Series
  
     (This release series is no longer supported.)
--- 8664,8671 ----
*************** References and Acknowledgements
*** 8700,8706 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 8728,8734 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 8727,8736 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.7/changes.html
- 
                               GCC 4.7 Release Series
                          Changes, New Features, and Fixes
  
--- 8755,8762 ----
*************** long double pi = 180.0_degrees;
*** 9061,9067 ****
  template <class T> using Ptr = T*;
  Ptr<int> ip;  // decltype(ip) is int*
  
!      * Thanks to Ville Voutilainen and Pedro Lamar�o, G++ now implements
         [12]C++11 delegating constructors.
  
  struct A {
--- 9087,9093 ----
  template <class T> using Ptr = T*;
  Ptr<int> ip;  // decltype(ip) is int*
  
!      * Thanks to Ville Voutilainen and Pedro Lamarão, G++ now implements
         [12]C++11 delegating constructors.
  
  struct A {
*************** New Targets and Target Specific Improvem
*** 9255,9261 ****
  
       * GCC now supports the XMEGA architecture. This requires GNU binutils
         2.22 or later.
!      * Support for the [35]named address spaces __flash, __flash1, ...,
         __flash5 and __memx has been added. These address spaces locate
         read-only data in flash memory and allow reading from flash memory
         by means of ordinary C code, i.e. without the need of (inline)
--- 9281,9287 ----
  
       * GCC now supports the XMEGA architecture. This requires GNU binutils
         2.22 or later.
!      * Support for the [35]named address spaces __flash, __flash1, …,
         __flash5 and __memx has been added. These address spaces locate
         read-only data in flash memory and allow reading from flash memory
         by means of ordinary C code, i.e. without the need of (inline)
*************** void set_portb (uint8_t value)
*** 9299,9305 ****
         suitable to be used as operand in an I/O command. The address must
         be a constant integer known at compile time.
       * The inline assembler constraint "R" to represent integers in the
!        range -6 ... 5 has been removed without replacement.
       * Many optimizations to:
            + 64-bit integer arithmetic
            + Widening multiplication
--- 9325,9331 ----
         suitable to be used as operand in an I/O command. The address must
         be a constant integer known at compile time.
       * The inline assembler constraint "R" to represent integers in the
!        range −6 … 5 has been removed without replacement.
       * Many optimizations to:
            + 64-bit integer arithmetic
            + Widening multiplication
*************** void set_portb (uint8_t value)
*** 9311,9317 ****
            + If-else decision trees generated by switch instructions
            + Merging of data located in flash memory
            + New libgcc variants for devices with 8-bit wide stack pointer
!           + ...
       * Better documentation:
            + Handling of EIND and indirect jumps on devices with more than
              128 KiB of program memory.
--- 9337,9343 ----
            + If-else decision trees generated by switch instructions
            + Merging of data located in flash memory
            + New libgcc variants for devices with 8-bit wide stack pointer
!           + …
       * Better documentation:
            + Handling of EIND and indirect jumps on devices with more than
              128 KiB of program memory.
*************** GCC 4.7.4
*** 9522,9528 ****
     provided this notice is preserved.
  
     These pages are [54]maintained by the GCC team. Last modified
!    2022-02-10[55].
  
  References
  
--- 9548,9554 ----
     provided this notice is preserved.
  
     These pages are [54]maintained by the GCC team. Last modified
!    2023-03-29.
  
  References
  
*************** References
*** 9550,9556 ****
    22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270
    23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149
    24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html
!   25. https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps
    26. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183
    27. https://gcc.gnu.org/wiki/Fortran2003Status
    28. https://gcc.gnu.org/wiki/OOP
--- 9576,9582 ----
    22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270
    23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149
    24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html
!   25. https://learn.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps
    26. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183
    27. https://gcc.gnu.org/wiki/Fortran2003Status
    28. https://gcc.gnu.org/wiki/OOP
*************** References
*** 9563,9574 ****
    35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
    36. http://www.nongnu.org/avr-libc/
    37. https://gcc.gnu.org/PR54461
!   38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html
    39. https://sites.google.com/site/x32abi/
!   40. https://www.dwarfstd.org/ShowIssue.php?issue=100909.1
!   41. https://www.dwarfstd.org/ShowIssue.php?issue=100909.2
!   42. https://www.dwarfstd.org/ShowIssue.php?issue=140425.1
!   43. https://www.dwarfstd.org/ShowIssue.php?issue=110722.1
    44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
    45. https://go.dev/doc/go1
    46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
--- 9589,9600 ----
    35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
    36. http://www.nongnu.org/avr-libc/
    37. https://gcc.gnu.org/PR54461
!   38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html
    39. https://sites.google.com/site/x32abi/
!   40. https://dwarfstd.org/issues/100909.1.html
!   41. https://dwarfstd.org/issues/100909.2.html
!   42. https://dwarfstd.org/issues/140425.1.html
!   43. https://dwarfstd.org/issues/110722.1.html
    44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
    45. https://go.dev/doc/go1
    46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
*************** References
*** 9580,9589 ****
    52. https://gcc.gnu.org/lists.html
    53. https://www.fsf.org/
    54. https://gcc.gnu.org/about.html
-   55. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/index.html
- 
                               GCC 4.6 Release Series
  
     (This release series is no longer supported.)
--- 9606,9613 ----
*************** References and Acknowledgements
*** 9646,9652 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 9670,9676 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 9673,9682 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/changes.html
- 
                               GCC 4.6 Release Series
                          Changes, New Features, and Fixes
  
--- 9697,9704 ----
*************** New Languages and Language specific impr
*** 10016,10022 ****
  
       * [12]Improved experimental support for the upcoming ISO C++
         standard, C++0x, including using constexpr and nullptr.
!      * Performance improvements to the [13]Debug Mode, thanks to Fran�ois
         Dumont.
       * Atomic operations used for reference-counting are annotated so that
         they can be understood by race detectors such as Helgrind, see
--- 10038,10044 ----
  
       * [12]Improved experimental support for the upcoming ISO C++
         standard, C++0x, including using constexpr and nullptr.
!      * Performance improvements to the [13]Debug Mode, thanks to François
         Dumont.
       * Atomic operations used for reference-counting are annotated so that
         they can be understood by race detectors such as Helgrind, see
*************** New Languages and Language specific impr
*** 10071,10077 ****
              allocated (if unallocated) or reallocated (if the shape or
              type parameter is different). To avoid the small performance
              penalty, you can use a(:) = ... instead of a = ... for arrays
!             and character strings - or disable the feature using -std=f95
              or -fno-realloc-lhs.
            + Deferred type parameter: For scalar allocatable and pointer
              variables the character length can be deferred.
--- 10093,10099 ----
              allocated (if unallocated) or reallocated (if the shape or
              type parameter is different). To avoid the small performance
              penalty, you can use a(:) = ... instead of a = ... for arrays
!             and character strings – or disable the feature using -std=f95
              or -fno-realloc-lhs.
            + Deferred type parameter: For scalar allocatable and pointer
              variables the character length can be deferred.
*************** New Languages and Language specific impr
*** 10126,10132 ****
              be declared in a single PROCEDURE statement; implied-shape
              arrays are supported for named constants (PARAMETER). The
              transformational, three argument versions of BESSEL_JN and
!             BESSEL_YN were added - the elemental, two-argument version had
              been added in GCC 4.4; note that the transformational
              functions use a recurrence algorithm.
  
--- 10148,10154 ----
              be declared in a single PROCEDURE statement; implied-shape
              arrays are supported for named constants (PARAMETER). The
              transformational, three argument versions of BESSEL_JN and
!             BESSEL_YN were added – the elemental, two-argument version had
              been added in GCC 4.4; note that the transformational
              functions use a recurrence algorithm.
  
*************** GCC 4.6.4
*** 10571,10577 ****
     provided this notice is preserved.
  
     These pages are [28]maintained by the GCC team. Last modified
!    2021-12-05[29].
  
  References
  
--- 10593,10599 ----
     provided this notice is preserved.
  
     These pages are [28]maintained by the GCC team. Last modified
!    2023-01-18.
  
  References
  
*************** References
*** 10585,10591 ****
     8. https://gcc.gnu.org/PR43145
     9. https://gcc.gnu.org/PR43680
    10. https://gcc.gnu.org/PR33558
!   11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
    12. https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/status.html#status.iso.200x
    13. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
    14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races
--- 10607,10613 ----
     8. https://gcc.gnu.org/PR43145
     9. https://gcc.gnu.org/PR43680
    10. https://gcc.gnu.org/PR33558
!   11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
    12. https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/status.html#status.iso.200x
    13. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
    14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races
*************** References
*** 10603,10612 ****
    26. https://gcc.gnu.org/lists.html
    27. https://www.fsf.org/
    28. https://gcc.gnu.org/about.html
-   29. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.5/index.html
- 
                               GCC 4.5 Release Series
  
     (This release series is no longer supported.)
--- 10625,10632 ----
*************** References and Acknowledgements
*** 10669,10675 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2021-07-28[19].
  
  References
  
--- 10689,10695 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 10691,10700 ****
    16. https://gcc.gnu.org/lists.html
    17. https://www.fsf.org/
    18. https://gcc.gnu.org/about.html
-   19. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.5/changes.html
- 
                               GCC 4.5 Release Series
                          Changes, New Features, and Fixes
  
--- 10711,10718 ----
*************** New Languages and Language specific impr
*** 10931,10937 ****
         defined ([12]DR 757).
       * Labels may now have attributes, as has been permitted for a while
         in C. This is only permitted when the label definition and the
!        attribute specifier is followed by a semicolon--i.e., the label
         applies to an empty statement. The only useful attribute for a
         label is unused.
       * G++ now implements [13]DR 176. Previously G++ did not support using
--- 10949,10955 ----
         defined ([12]DR 757).
       * Labels may now have attributes, as has been permitted for a while
         in C. This is only permitted when the label definition and the
!        attribute specifier is followed by a semicolon—i.e., the label
         applies to an empty statement. The only useful attribute for a
         label is unused.
       * G++ now implements [13]DR 176. Previously G++ did not support using
*************** vector-size: improvement = 3: call stack
*** 11013,11019 ****
  
    Fortran
  
!      * The COMMON default padding has been changed - instead of adding the
         padding before a variable it is now added afterwards, which
         increases the compatibility with other vendors and helps to obtain
         the correct output in some cases. Cf. also the -falign-commons
--- 11031,11037 ----
  
    Fortran
  
!      * The COMMON default padding has been changed – instead of adding the
         padding before a variable it is now added afterwards, which
         increases the compatibility with other vendors and helps to obtain
         the correct output in some cases. Cf. also the -falign-commons
*************** GCC 4.5.4
*** 11342,11348 ****
     provided this notice is preserved.
  
     These pages are [32]maintained by the GCC team. Last modified
!    2022-02-02[33].
  
  References
  
--- 11360,11366 ----
     provided this notice is preserved.
  
     These pages are [32]maintained by the GCC team. Last modified
!    2023-01-15.
  
  References
  
*************** References
*** 11357,11364 ****
     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. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
!   13. http://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
--- 11375,11382 ----
     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
*************** References
*** 11378,11387 ****
    30. https://gcc.gnu.org/lists.html
    31. https://www.fsf.org/
    32. https://gcc.gnu.org/about.html
-   33. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.4/index.html
- 
                               GCC 4.4 Release Series
  
     This release series is no longer maintained.
--- 11396,11403 ----
*************** References and Acknowledgements
*** 11453,11459 ****
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2021-07-28[22].
  
  References
  
--- 11469,11475 ----
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 11478,11487 ****
    19. https://gcc.gnu.org/lists.html
    20. https://www.fsf.org/
    21. https://gcc.gnu.org/about.html
-   22. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.4/changes.html
- 
                               GCC 4.4 Release Series
                          Changes, New Features, and Fixes
  
--- 11494,11501 ----
*************** GCC 4.4.7
*** 12084,12090 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2021-07-28[24].
  
  References
  
--- 12098,12104 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2022-11-01.
  
  References
  
*************** References
*** 12092,12098 ****
     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. http://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
--- 12106,12112 ----
     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
*************** References
*** 12111,12120 ****
    21. https://gcc.gnu.org/lists.html
    22. https://www.fsf.org/
    23. https://gcc.gnu.org/about.html
-   24. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.3/index.html
- 
                               GCC 4.3 Release Series
  
     (This release series is no longer supported.)
--- 12125,12132 ----
*************** References and Acknowledgements
*** 12183,12189 ****
     provided this notice is preserved.
  
     These pages are [20]maintained by the GCC team. Last modified
!    2021-07-28[21].
  
  References
  
--- 12195,12201 ----
     provided this notice is preserved.
  
     These pages are [20]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 12207,12216 ****
    18. https://gcc.gnu.org/lists.html
    19. https://www.fsf.org/
    20. https://gcc.gnu.org/about.html
-   21. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.3/changes.html
- 
                               GCC 4.3 Release Series
                          Changes, New Features, and Fixes
  
--- 12219,12226 ----
*************** GCC 4.3.6
*** 12989,12995 ****
     provided this notice is preserved.
  
     These pages are [30]maintained by the GCC team. Last modified
!    2021-07-28[31].
  
  References
  
--- 12999,13005 ----
     provided this notice is preserved.
  
     These pages are [30]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 13023,13032 ****
    28. https://gcc.gnu.org/lists.html
    29. https://www.fsf.org/
    30. https://gcc.gnu.org/about.html
-   31. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.2/index.html
- 
                               GCC 4.2 Release Series
  
     (This release series is no longer supported.)
--- 13033,13040 ----
*************** References and Acknowledgements
*** 13089,13095 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2021-07-28[19].
  
  References
  
--- 13097,13103 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 13111,13120 ****
    16. https://gcc.gnu.org/lists.html
    17. https://www.fsf.org/
    18. https://gcc.gnu.org/about.html
-   19. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.2/changes.html
- 
                               GCC 4.2 Release Series
                          Changes, New Features, and Fixes
  
--- 13119,13126 ----
*************** Other significant improvements
*** 13418,13424 ****
     provided this notice is preserved.
  
     These pages are [11]maintained by the GCC team. Last modified
!    2021-07-28[12].
  
  References
  
--- 13424,13430 ----
     provided this notice is preserved.
  
     These pages are [11]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 13433,13442 ****
     9. https://gcc.gnu.org/lists.html
    10. https://www.fsf.org/
    11. https://gcc.gnu.org/about.html
-   12. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.1/index.html
- 
                               GCC 4.1 Release Series
  
     (This release series is no longer supported.)
--- 13439,13446 ----
*************** References and Acknowledgements
*** 13493,13499 ****
     provided this notice is preserved.
  
     These pages are [16]maintained by the GCC team. Last modified
!    2021-07-28[17].
  
  References
  
--- 13497,13503 ----
     provided this notice is preserved.
  
     These pages are [16]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 13513,13522 ****
    14. https://gcc.gnu.org/lists.html
    15. https://www.fsf.org/
    16. https://gcc.gnu.org/about.html
-   17. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.1/changes.html
- 
                               GCC 4.1 Release Series
                          Changes, New Features, and Fixes
  
--- 13517,13524 ----
*************** GCC 4.1.2
*** 14053,14059 ****
     provided this notice is preserved.
  
     These pages are [11]maintained by the GCC team. Last modified
!    2021-10-18[12].
  
  References
  
--- 14055,14061 ----
     provided this notice is preserved.
  
     These pages are [11]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 14068,14077 ****
     9. https://gcc.gnu.org/lists.html
    10. https://www.fsf.org/
    11. https://gcc.gnu.org/about.html
-   12. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.0/index.html
- 
                               GCC 4.0 Release Series
  
     (This release series is no longer supported.)
--- 14070,14077 ----
*************** References and Acknowledgements
*** 14134,14140 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2021-07-28[19].
  
  References
  
--- 14134,14140 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 14156,14165 ****
    16. https://gcc.gnu.org/lists.html
    17. https://www.fsf.org/
    18. https://gcc.gnu.org/about.html
-   19. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.0/changes.html
- 
                               GCC 4.0 Release Series
                          Changes, New Features, and Fixes
  
--- 14156,14163 ----
*************** GCC 4.0.4
*** 14661,14667 ****
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2021-07-28[22].
  
  References
  
--- 14659,14665 ----
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 14686,14695 ****
    19. https://gcc.gnu.org/lists.html
    20. https://www.fsf.org/
    21. https://gcc.gnu.org/about.html
-   22. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.4/index.html
- 
                               GCC 3.4 Release Series
  
     (This release series is no longer supported.)
--- 14684,14691 ----
*************** References and Acknowledgements
*** 14763,14769 ****
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2021-07-28[23].
  
  References
  
--- 14759,14765 ----
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 14789,14798 ****
    20. https://gcc.gnu.org/lists.html
    21. https://www.fsf.org/
    22. https://gcc.gnu.org/about.html
-   23. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.4/changes.html
- 
                               GCC 3.4 Release Series
                          Changes, New Features, and Fixes
  
--- 14785,14792 ----
*************** GCC 3.4.6
*** 16552,16558 ****
     provided this notice is preserved.
  
     These pages are [416]maintained by the GCC team. Last modified
!    2021-07-28[417].
  
  References
  
--- 16546,16552 ----
     provided this notice is preserved.
  
     These pages are [416]maintained by the GCC team. Last modified
!    2023-01-27.
  
  References
  
*************** References
*** 16565,16578 ****
     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%20Builtins
!   11. http://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
    16. http://www.gnu.org/software/classpath/
!   17. http://www.eclipse.org/
    18. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
    19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
    20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
--- 16559,16572 ----
     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
    16. http://www.gnu.org/software/classpath/
!   17. https://www.eclipse.org/
    18. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
    19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
    20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
*************** References
*** 16581,16587 ****
    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=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
    27. https://gcc.gnu.org/PR10129
    28. https://gcc.gnu.org/PR14576
    29. https://gcc.gnu.org/PR14760
--- 16575,16581 ----
    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
    29. https://gcc.gnu.org/PR14760
*************** References
*** 16972,16981 ****
   414. https://gcc.gnu.org/lists.html
   415. https://www.fsf.org/
   416. https://gcc.gnu.org/about.html
-  417. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.3/index.html
- 
                               GCC 3.3 Release Series
  
     (This release series is no longer supported.)
--- 16966,16973 ----
*************** References and Acknowledgements
*** 17049,17055 ****
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2021-07-28[22].
  
  References
  
--- 17041,17047 ----
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 17074,17083 ****
    19. https://gcc.gnu.org/lists.html
    20. https://www.fsf.org/
    21. https://gcc.gnu.org/about.html
-   22. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.3/changes.html
- 
                               GCC 3.3 Release Series
                          Changes, New Features, and Fixes
  
--- 17066,17073 ----
*************** GCC 3.3.6
*** 18425,18431 ****
     provided this notice is preserved.
  
     These pages are [556]maintained by the GCC team. Last modified
!    2021-07-28[557].
  
  References
  
--- 18415,18421 ----
     provided this notice is preserved.
  
     These pages are [556]maintained by the GCC team. Last modified
!    2023-01-19.
  
  References
  
*************** References
*** 18542,18548 ****
   111. https://gcc.gnu.org/PR9439
   112. https://gcc.gnu.org/PR9474
   113. https://gcc.gnu.org/PR9548
!  114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
   115. https://gcc.gnu.org/PR9555
   116. https://gcc.gnu.org/PR9561
   117. https://gcc.gnu.org/PR9563
--- 18532,18538 ----
   111. https://gcc.gnu.org/PR9439
   112. https://gcc.gnu.org/PR9474
   113. https://gcc.gnu.org/PR9548
!  114. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
   115. https://gcc.gnu.org/PR9555
   116. https://gcc.gnu.org/PR9561
   117. https://gcc.gnu.org/PR9563
*************** References
*** 18886,18892 ****
   455. https://gcc.gnu.org/PR9546
   456. https://gcc.gnu.org/PR10081
   457. https://gcc.gnu.org/PR10093
!  458. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
   459. https://gcc.gnu.org/PR10095
   460. https://gcc.gnu.org/PR11554
   461. https://gcc.gnu.org/PR12297
--- 18876,18882 ----
   455. https://gcc.gnu.org/PR9546
   456. https://gcc.gnu.org/PR10081
   457. https://gcc.gnu.org/PR10093
!  458. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
   459. https://gcc.gnu.org/PR10095
   460. https://gcc.gnu.org/PR11554
   461. https://gcc.gnu.org/PR12297
*************** References
*** 18894,18911 ****
   463. https://gcc.gnu.org/PR12438
   464. https://gcc.gnu.org/PR12540
   465. https://gcc.gnu.org/PR12594
!  466. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
!  467. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
   468. https://gcc.gnu.org/PR12657
!  469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
   470. https://gcc.gnu.org/PR12696
   471. https://gcc.gnu.org/PR12815
   472. https://gcc.gnu.org/PR12862
   473. https://gcc.gnu.org/PR12926
   474. https://gcc.gnu.org/PR12967
!  475. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
   476. https://gcc.gnu.org/PR12971
!  477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
   478. https://gcc.gnu.org/PR13007
   479. https://gcc.gnu.org/PR13009
   480. https://gcc.gnu.org/PR13057
--- 18884,18901 ----
   463. https://gcc.gnu.org/PR12438
   464. https://gcc.gnu.org/PR12540
   465. https://gcc.gnu.org/PR12594
!  466. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
!  467. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
   468. https://gcc.gnu.org/PR12657
!  469. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
   470. https://gcc.gnu.org/PR12696
   471. https://gcc.gnu.org/PR12815
   472. https://gcc.gnu.org/PR12862
   473. https://gcc.gnu.org/PR12926
   474. https://gcc.gnu.org/PR12967
!  475. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
   476. https://gcc.gnu.org/PR12971
!  477. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
   478. https://gcc.gnu.org/PR13007
   479. https://gcc.gnu.org/PR13009
   480. https://gcc.gnu.org/PR13057
*************** References
*** 18985,18994 ****
   554. https://gcc.gnu.org/lists.html
   555. https://www.fsf.org/
   556. https://gcc.gnu.org/about.html
-  557. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.2/index.html
- 
                               GCC 3.2 Release Series
  
     (This release series is no longer supported.)
--- 18975,18982 ----
*************** References and Acknowledgements
*** 19056,19062 ****
     provided this notice is preserved.
  
     These pages are [17]maintained by the GCC team. Last modified
!    2021-07-28[18].
  
  References
  
--- 19044,19050 ----
     provided this notice is preserved.
  
     These pages are [17]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 19077,19086 ****
    15. https://gcc.gnu.org/lists.html
    16. https://www.fsf.org/
    17. https://gcc.gnu.org/about.html
-   18. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.2/changes.html
- 
                               GCC 3.2 Release Series
                          Changes, New Features, and Fixes
  
--- 19065,19072 ----
*************** GCC 3.2
*** 19680,19686 ****
     provided this notice is preserved.
  
     These pages are [251]maintained by the GCC team. Last modified
!    2021-07-28[252].
  
  References
  
--- 19666,19672 ----
     provided this notice is preserved.
  
     These pages are [251]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 19935,19944 ****
   249. https://gcc.gnu.org/lists.html
   250. https://www.fsf.org/
   251. https://gcc.gnu.org/about.html
-  252. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.1/index.html
- 
                                      GCC 3.1
  
     (This release series is no longer supported.)
--- 19921,19928 ----
*************** http://gcc.gnu.org/gcc-3.1/index.html
*** 19986,19992 ****
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2021-07-28[15].
  
  References
  
--- 19970,19976 ----
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 20004,20013 ****
    12. https://gcc.gnu.org/lists.html
    13. https://www.fsf.org/
    14. https://gcc.gnu.org/about.html
-   15. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.1/changes.html
- 
                               GCC 3.1 Release Series
                          Changes, New Features, and Fixes
  
--- 19988,19995 ----
*************** New Targets and Target Specific Improvem
*** 20225,20231 ****
            + For those targets that support it, -mfpmath=sse will cause the
              compiler to generate SSE/SSE2 instructions for floating point
              math instead of x87 instructions. Usually, this will lead to
!             quicker code -- especially on the Pentium 4. Note that only
              scalar floating point instructions are used and GCC does not
              exploit SIMD features yet.
            + Prefetch support has been added to the Pentium III, Pentium 4,
--- 20207,20213 ----
            + For those targets that support it, -mfpmath=sse will cause the
              compiler to generate SSE/SSE2 instructions for floating point
              math instead of x87 instructions. Usually, this will lead to
!             quicker code — especially on the Pentium 4. Note that only
              scalar floating point instructions are used and GCC does not
              exploit SIMD features yet.
            + Prefetch support has been added to the Pentium III, Pentium 4,
*************** Documentation improvements
*** 20341,20347 ****
     provided this notice is preserved.
  
     These pages are [13]maintained by the GCC team. Last modified
!    2021-07-28[14].
  
  References
  
--- 20323,20329 ----
     provided this notice is preserved.
  
     These pages are [13]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 20358,20367 ****
    11. https://gcc.gnu.org/lists.html
    12. https://www.fsf.org/
    13. https://gcc.gnu.org/about.html
-   14. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/index.html
- 
                                     GCC 3.0.4
  
     (This release series is no longer supported.)
--- 20340,20347 ----
*************** Previous 3.0.x Releases
*** 20416,20422 ****
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2021-07-28[15].
  
  References
  
--- 20396,20402 ----
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 20434,20443 ****
    12. https://gcc.gnu.org/lists.html
    13. https://www.fsf.org/
    14. https://gcc.gnu.org/about.html
-   15. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/features.html
- 
                                GCC 3.0 New Features
  
  Additional changes in GCC 3.0.4
--- 20414,20421 ----
*************** Other significant improvements
*** 20608,20614 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2021-07-28[19].
  
  References
  
--- 20586,20592 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 20630,20639 ****
    16. https://gcc.gnu.org/lists.html
    17. https://www.fsf.org/
    18. https://gcc.gnu.org/about.html
-   19. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/caveats.html
- 
                                  GCC 3.0 Caveats
  
       * -fstrict-aliasing is now part of -O2 and higher optimization
--- 20608,20615 ----
*************** http://gcc.gnu.org/gcc-3.0/caveats.html
*** 20680,20686 ****
     provided this notice is preserved.
  
     These pages are [7]maintained by the GCC team. Last modified
!    2021-07-28[8].
  
  References
  
--- 20656,20662 ----
     provided this notice is preserved.
  
     These pages are [7]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 20691,20700 ****
     5. https://gcc.gnu.org/lists.html
     6. https://www.fsf.org/
     7. https://gcc.gnu.org/about.html
-    8. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-2.95/index.html
- 
                                      GCC 2.95
  
     (This release series is no longer supported.)
--- 20667,20674 ----
*************** References and Acknowledgements
*** 20763,20769 ****
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2021-07-28[16].
  
  References
  
--- 20737,20743 ----
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 20782,20791 ****
    13. https://gcc.gnu.org/lists.html
    14. https://www.fsf.org/
    15. https://gcc.gnu.org/about.html
-   16. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-2.95/features.html
- 
                               GCC 2.95 New Features
  
       * General Optimizer Improvements:
--- 20756,20763 ----
*************** Additional Changes in GCC 2.95.3
*** 21029,21035 ****
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2021-07-28[23].
  
  References
  
--- 21001,21007 ----
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 21055,21064 ****
    20. https://gcc.gnu.org/lists.html
    21. https://www.fsf.org/
    22. https://gcc.gnu.org/about.html
-   23. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-2.95/caveats.html
- 
                                  GCC 2.95 Caveats
  
       * GCC 2.95 will issue an error for invalid asm statements that had
--- 21027,21034 ----
*************** http://gcc.gnu.org/gcc-2.95/caveats.html
*** 21113,21119 ****
     provided this notice is preserved.
  
     These pages are [7]maintained by the GCC team. Last modified
!    2021-07-28[8].
  
  References
  
--- 21083,21089 ----
     provided this notice is preserved.
  
     These pages are [7]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 21124,21133 ****
     5. https://gcc.gnu.org/lists.html
     6. https://www.fsf.org/
     7. https://gcc.gnu.org/about.html
-    8. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/egcs-1.1/index.html
- 
                                      EGCS 1.1
  
     September 3, 1998: We are pleased to announce the release of EGCS 1.1.
--- 21094,21101 ----
*************** http://gcc.gnu.org/egcs-1.1/index.html
*** 21335,21341 ****
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2021-07-28[16].
  
  References
  
--- 21303,21309 ----
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2023-01-21.
  
  References
  
*************** References
*** 21354,21363 ****
    13. https://gcc.gnu.org/lists.html
    14. https://www.fsf.org/
    15. https://gcc.gnu.org/about.html
-   16. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/egcs-1.1/features.html
- 
                               EGCS 1.1 new features
  
       * Integrated GNU Fortran (g77) compiler and runtime library with
--- 21322,21329 ----
*************** http://gcc.gnu.org/egcs-1.1/features.htm
*** 21435,21441 ****
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2021-07-28[11].
  
  References
  
--- 21401,21407 ----
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 21449,21458 ****
     8. https://gcc.gnu.org/lists.html
     9. https://www.fsf.org/
    10. https://gcc.gnu.org/about.html
-   11. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/egcs-1.1/caveats.html
- 
                                  EGCS 1.1 Caveats
  
       * EGCS has an integrated libstdc++, but does not have an integrated
--- 21415,21422 ----
*************** http://gcc.gnu.org/egcs-1.1/caveats.html
*** 21490,21496 ****
     provided this notice is preserved.
  
     These pages are [6]maintained by the GCC team. Last modified
!    2021-07-28[7].
  
  References
  
--- 21454,21460 ----
     provided this notice is preserved.
  
     These pages are [6]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 21500,21509 ****
     4. https://gcc.gnu.org/lists.html
     5. https://www.fsf.org/
     6. https://gcc.gnu.org/about.html
-    7. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/egcs-1.0/index.html
- 
                                      EGCS 1.0
  
     December 3, 1997: We are pleased to announce the release of EGCS 1.0.
--- 21464,21471 ----
*************** http://gcc.gnu.org/egcs-1.0/index.html
*** 21687,21693 ****
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2021-07-28[11].
  
  References
  
--- 21649,21655 ----
     provided this notice is preserved.
  
     These pages are [10]maintained by the GCC team. Last modified
!    2023-01-21.
  
  References
  
*************** References
*** 21701,21710 ****
     8. https://gcc.gnu.org/lists.html
     9. https://www.fsf.org/
    10. https://gcc.gnu.org/about.html
-   11. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/egcs-1.0/features.html
- 
                                 EGCS 1.0 features
  
       * Core compiler is based on the gcc2 development tree from Aug 2,
--- 21663,21670 ----
*************** http://gcc.gnu.org/egcs-1.0/features.htm
*** 21754,21760 ****
     provided this notice is preserved.
  
     These pages are [8]maintained by the GCC team. Last modified
!    2021-07-28[9].
  
  References
  
--- 21714,21720 ----
     provided this notice is preserved.
  
     These pages are [8]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 21766,21775 ****
     6. https://gcc.gnu.org/lists.html
     7. https://www.fsf.org/
     8. https://gcc.gnu.org/about.html
-    9. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/egcs-1.0/caveats.html
- 
                                  EGCS 1.0 Caveats
  
       * EGCS has an integrated libstdc++, but does not have an integrated
--- 21726,21733 ----
*************** http://gcc.gnu.org/egcs-1.0/caveats.html
*** 21808,21814 ****
     provided this notice is preserved.
  
     These pages are [6]maintained by the GCC team. Last modified
!    2021-07-28[7].
  
  References
  
--- 21766,21772 ----
     provided this notice is preserved.
  
     These pages are [6]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
*************** References
*** 21818,21822 ****
     4. https://gcc.gnu.org/lists.html
     5. https://www.fsf.org/
     6. https://gcc.gnu.org/about.html
-    7. http://validator.w3.org/check/referer
  ======================================================================
--- 21776,21779 ----
diff -Nrcpad gcc-11.3.0/c++tools/ChangeLog gcc-11.4.0/c++tools/ChangeLog
*** gcc-11.3.0/c++tools/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/c++tools/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,24 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2021-07-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/98821
+ 	* config.h.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Configure using C++.  Pull logic to
+ 	detect enabled checking modes; default to release
+ 	checking.
+ 	* server.cc (AI_NUMERICSERV): Define a fallback value.
+ 	(gcc_assert): New.
+ 	(gcc_unreachable): New.
+ 	(fancy_abort): Only build when checking is enabled.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/c++tools/config.h.in gcc-11.4.0/c++tools/config.h.in
*** gcc-11.3.0/c++tools/config.h.in	Thu Apr 21 07:59:35 2022
--- gcc-11.4.0/c++tools/config.h.in	Mon May 29 08:49:47 2023
***************
*** 1,5 ****
--- 1,8 ----
  /* config.h.in.  Generated from configure.ac by autoheader.  */
  
+ /* Define if you want assertions enabled. This is a cheap check. */
+ #undef ENABLE_ASSERT_CHECKING
+ 
  /* Define if accept4 provided. */
  #undef HAVE_ACCEPT4
  
diff -Nrcpad gcc-11.3.0/c++tools/configure gcc-11.4.0/c++tools/configure
*** gcc-11.3.0/c++tools/configure	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/c++tools/configure	Mon May 29 08:46:28 2023
*************** NETLIBS
*** 626,635 ****
  get_gcc_base_ver
  EGREP
  GREP
! CPP
! ac_ct_CC
! CFLAGS
! CC
  PIEFLAG
  MAINTAINER
  CXX_AUX_TOOLS
--- 626,632 ----
  get_gcc_base_ver
  EGREP
  GREP
! CXXCPP
  PIEFLAG
  MAINTAINER
  CXX_AUX_TOOLS
*************** ac_user_opts='
*** 701,706 ****
--- 698,704 ----
  enable_option_checking
  enable_c___tools
  enable_maintainer_mode
+ enable_checking
  enable_default_pie
  with_gcc_major_version_only
  '
*************** LDFLAGS
*** 713,721 ****
  LIBS
  CPPFLAGS
  CCC
! CC
! CFLAGS
! CPP'
  
  
  # Initialize some variables set by options.
--- 711,717 ----
  LIBS
  CPPFLAGS
  CCC
! CXXCPP'
  
  
  # Initialize some variables set by options.
*************** Optional Features:
*** 1332,1337 ****
--- 1328,1337 ----
    --enable-maintainer-mode
                            enable maintainer mode. Add rules to rebuild
                            configurey bits
+   --enable-checking[=LIST]
+                           enable expensive run-time checks. With LIST, enable
+                           only specific categories of checks. Categories are:
+                           yes,no,all,none,release.
    --enable-default-pie    enable Position Independent Executable as default
  
  Optional Packages:
*************** Some influential environment variables:
*** 1348,1356 ****
    LIBS        libraries to pass to the linker, e.g. -l<library>
    CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
                you have headers in a nonstandard directory <include dir>
!   CC          C compiler command
!   CFLAGS      C compiler flags
!   CPP         C preprocessor
  
  Use these variables to override the choices made by `configure' or to help
  it to find libraries and programs with nonstandard names/locations.
--- 1348,1354 ----
    LIBS        libraries to pass to the linker, e.g. -l<library>
    CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
                you have headers in a nonstandard directory <include dir>
!   CXXCPP      C++ preprocessor
  
  Use these variables to override the choices made by `configure' or to help
  it to find libraries and programs with nonstandard names/locations.
*************** fi
*** 1470,1517 ****
  
  } # ac_fn_cxx_try_compile
  
! # ac_fn_c_try_compile LINENO
! # --------------------------
! # Try to compile conftest.$ac_ext, and return whether this succeeded.
! ac_fn_c_try_compile ()
! {
!   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
!   rm -f conftest.$ac_objext
!   if { { ac_try="$ac_compile"
! case "(($ac_try" in
!   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
!   *) ac_try_echo=$ac_try;;
! esac
! eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
! $as_echo "$ac_try_echo"; } >&5
!   (eval "$ac_compile") 2>conftest.err
!   ac_status=$?
!   if test -s conftest.err; then
!     grep -v '^ *+' conftest.err >conftest.er1
!     cat conftest.er1 >&5
!     mv -f conftest.er1 conftest.err
!   fi
!   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
!   test $ac_status = 0; } && {
! 	 test -z "$ac_c_werror_flag" ||
! 	 test ! -s conftest.err
!        } && test -s conftest.$ac_objext; then :
!   ac_retval=0
! else
!   $as_echo "$as_me: failed program was:" >&5
! sed 's/^/| /' conftest.$ac_ext >&5
! 
! 	ac_retval=1
! fi
!   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
!   as_fn_set_status $ac_retval
! 
! } # ac_fn_c_try_compile
! 
! # ac_fn_c_try_cpp LINENO
! # ----------------------
  # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
! ac_fn_c_try_cpp ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    if { { ac_try="$ac_cpp conftest.$ac_ext"
--- 1468,1477 ----
  
  } # ac_fn_cxx_try_compile
  
! # ac_fn_cxx_try_cpp LINENO
! # ------------------------
  # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
! ac_fn_cxx_try_cpp ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    if { { ac_try="$ac_cpp conftest.$ac_ext"
*************** $as_echo "$ac_try_echo"; } >&5
*** 1530,1536 ****
    fi
    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
    test $ac_status = 0; } > conftest.i && {
! 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
  	 test ! -s conftest.err
         }; then :
    ac_retval=0
--- 1490,1496 ----
    fi
    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
    test $ac_status = 0; } > conftest.i && {
! 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
  	 test ! -s conftest.err
         }; then :
    ac_retval=0
*************** fi
*** 1543,1556 ****
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
! } # ac_fn_c_try_cpp
  
! # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
! # -------------------------------------------------------
  # Tests whether HEADER exists, giving a warning if it cannot be compiled using
  # the include files in INCLUDES and setting the cache variable VAR
  # accordingly.
! ac_fn_c_check_header_mongrel ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    if eval \${$3+:} false; then :
--- 1503,1516 ----
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
! } # ac_fn_cxx_try_cpp
  
! # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
! # ---------------------------------------------------------
  # Tests whether HEADER exists, giving a warning if it cannot be compiled using
  # the include files in INCLUDES and setting the cache variable VAR
  # accordingly.
! ac_fn_cxx_check_header_mongrel ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    if eval \${$3+:} false; then :
*************** cat confdefs.h - <<_ACEOF >conftest.$ac_
*** 1571,1577 ****
  $4
  #include <$2>
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_header_compiler=yes
  else
    ac_header_compiler=no
--- 1531,1537 ----
  $4
  #include <$2>
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_header_compiler=yes
  else
    ac_header_compiler=no
*************** cat confdefs.h - <<_ACEOF >conftest.$ac_
*** 1587,1593 ****
  /* end confdefs.h.  */
  #include <$2>
  _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
    ac_header_preproc=yes
  else
    ac_header_preproc=no
--- 1547,1553 ----
  /* end confdefs.h.  */
  #include <$2>
  _ACEOF
! if ac_fn_cxx_try_cpp "$LINENO"; then :
    ac_header_preproc=yes
  else
    ac_header_preproc=no
*************** rm -f conftest.err conftest.i conftest.$
*** 1597,1603 ****
  $as_echo "$ac_header_preproc" >&6; }
  
  # So?  What about this header?
! case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
    yes:no: )
      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
  $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
--- 1557,1563 ----
  $as_echo "$ac_header_preproc" >&6; }
  
  # So?  What about this header?
! case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
    yes:no: )
      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
  $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
*************** $as_echo "$ac_res" >&6; }
*** 1630,1642 ****
  fi
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
! } # ac_fn_c_check_header_mongrel
  
! # ac_fn_c_try_run LINENO
! # ----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
  # that executables *can* be run.
! ac_fn_c_try_run ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    if { { ac_try="$ac_link"
--- 1590,1602 ----
  fi
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
! } # ac_fn_cxx_check_header_mongrel
  
! # ac_fn_cxx_try_run LINENO
! # ------------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
  # that executables *can* be run.
! ac_fn_cxx_try_run ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    if { { ac_try="$ac_link"
*************** fi
*** 1672,1684 ****
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
! } # ac_fn_c_try_run
  
! # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
! # -------------------------------------------------------
  # Tests whether HEADER exists and can be compiled using the include files in
  # INCLUDES, setting the cache variable VAR accordingly.
! ac_fn_c_check_header_compile ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
--- 1632,1644 ----
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
! } # ac_fn_cxx_try_run
  
! # ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES
! # ---------------------------------------------------------
  # Tests whether HEADER exists and can be compiled using the include files in
  # INCLUDES, setting the cache variable VAR accordingly.
! ac_fn_cxx_check_header_compile ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
*************** else
*** 1691,1697 ****
  $4
  #include <$2>
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    eval "$3=yes"
  else
    eval "$3=no"
--- 1651,1657 ----
  $4
  #include <$2>
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    eval "$3=yes"
  else
    eval "$3=no"
*************** eval ac_res=\$$3
*** 1703,1714 ****
  $as_echo "$ac_res" >&6; }
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
! } # ac_fn_c_check_header_compile
  
! # ac_fn_c_try_link LINENO
! # -----------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
! ac_fn_c_try_link ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    rm -f conftest.$ac_objext conftest$ac_exeext
--- 1663,1674 ----
  $as_echo "$ac_res" >&6; }
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
! } # ac_fn_cxx_check_header_compile
  
! # ac_fn_cxx_try_link LINENO
! # -------------------------
  # Try to link conftest.$ac_ext, and return whether this succeeded.
! ac_fn_cxx_try_link ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    rm -f conftest.$ac_objext conftest$ac_exeext
*************** $as_echo "$ac_try_echo"; } >&5
*** 1728,1734 ****
    fi
    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
    test $ac_status = 0; } && {
! 	 test -z "$ac_c_werror_flag" ||
  	 test ! -s conftest.err
         } && test -s conftest$ac_exeext && {
  	 test "$cross_compiling" = yes ||
--- 1688,1694 ----
    fi
    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
    test $ac_status = 0; } && {
! 	 test -z "$ac_cxx_werror_flag" ||
  	 test ! -s conftest.err
         } && test -s conftest$ac_exeext && {
  	 test "$cross_compiling" = yes ||
*************** fi
*** 1749,1755 ****
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
! } # ac_fn_c_try_link
  cat >config.log <<_ACEOF
  This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
--- 1709,1715 ----
    eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
! } # ac_fn_cxx_try_link
  cat >config.log <<_ACEOF
  This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
*************** done
*** 2955,2960 ****
--- 2915,2927 ----
  test -n "$AUTOHEADER" || AUTOHEADER="$MISSING autoheader"
  
  
+ ac_ext=cpp
+ ac_cpp='$CXXCPP $CPPFLAGS'
+ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ 
+ 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build C++ tools" >&5
  $as_echo_n "checking whether to build C++ tools... " >&6; }
    # Check whether --enable-c++-tools was given.
*************** $as_echo "$maintainer_mode" >&6; }
*** 2989,3544 ****
  test "$maintainer_mode" = yes && MAINTAINER=yes
  
  
! # 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
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
! set dummy ${ac_tool_prefix}gcc; 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_CC+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$CC"; then
!   ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc"
!     $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
! CC=$ac_cv_prog_CC
! if test -n "$CC"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
! $as_echo "$CC" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_CC"; then
!   ac_ct_CC=$CC
!   # Extract the first word of "gcc", so it can be a program name with args.
! set dummy gcc; 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_CC+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_CC"; then
!   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="gcc"
!     $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_CC=$ac_cv_prog_ac_ct_CC
! if test -n "$ac_ct_CC"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
! $as_echo "$ac_ct_CC" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_CC" = x; then
!     CC=""
!   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
!     CC=$ac_ct_CC
!   fi
! else
!   CC="$ac_cv_prog_CC"
! fi
! 
! if test -z "$CC"; then
!           if test -n "$ac_tool_prefix"; then
!     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
! set dummy ${ac_tool_prefix}cc; 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_CC+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$CC"; then
!   ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc"
!     $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
! CC=$ac_cv_prog_CC
! if test -n "$CC"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
! $as_echo "$CC" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
!   fi
! fi
! if test -z "$CC"; then
!   # Extract the first word of "cc", so it can be a program name with args.
! set dummy cc; 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_CC+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$CC"; then
!   ac_cv_prog_CC="$CC" # Let the user override the test.
! else
!   ac_prog_rejected=no
! 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
!     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
!        ac_prog_rejected=yes
!        continue
!      fi
!     ac_cv_prog_CC="cc"
!     $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
  
! if test $ac_prog_rejected = yes; then
!   # We found a bogon in the path, so make sure we never use it.
!   set dummy $ac_cv_prog_CC
!   shift
!   if test $# != 0; then
!     # We chose a different compiler from the bogus one.
!     # However, it has the same basename, so the bogon will be chosen
!     # first if we set CC to just the basename; use the full file name.
!     shift
!     ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
!   fi
! fi
! fi
! fi
! CC=$ac_cv_prog_CC
! if test -n "$CC"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
! $as_echo "$CC" >&6; }
  else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
- 
  
! fi
! if test -z "$CC"; then
!   if test -n "$ac_tool_prefix"; then
!   for ac_prog in cl.exe
!   do
!     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
! set dummy $ac_tool_prefix$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_CC+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$CC"; then
!   ac_cv_prog_CC="$CC" # 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_CC="$ac_tool_prefix$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
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
- $as_echo "$CC" >&6; }
- else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
- fi
  
! 
!     test -n "$CC" && break
!   done
! fi
! if test -z "$CC"; then
!   ac_ct_CC=$CC
!   for ac_prog in cl.exe
! 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_ac_ct_CC+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_CC"; then
!   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="$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
! ac_ct_CC=$ac_cv_prog_ac_ct_CC
! if test -n "$ac_ct_CC"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
! $as_echo "$ac_ct_CC" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
!   test -n "$ac_ct_CC" && break
! done
! 
!   if test "x$ac_ct_CC" = x; then
!     CC=""
!   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
!     CC=$ac_ct_CC
!   fi
! fi
! 
! fi
! 
! 
! test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "no acceptable C compiler found in \$PATH
! See \`config.log' for more details" "$LINENO" 5; }
! 
! # Provide some information about the compiler.
! $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
! set X $ac_compile
! ac_compiler=$2
! for ac_option in --version -v -V -qversion; do
!   { { ac_try="$ac_compiler $ac_option >&5"
! case "(($ac_try" in
!   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
!   *) ac_try_echo=$ac_try;;
! esac
! eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
! $as_echo "$ac_try_echo"; } >&5
!   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
!   ac_status=$?
!   if test -s conftest.err; then
!     sed '10a\
! ... rest of stderr output deleted ...
!          10q' conftest.err >conftest.er1
!     cat conftest.er1 >&5
!   fi
!   rm -f conftest.er1 conftest.err
!   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
!   test $ac_status = 0; }
  done
  
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
! $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
! if ${ac_cv_c_compiler_gnu+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! int
! main ()
! {
! #ifndef __GNUC__
!        choke me
! #endif
  
!   ;
!   return 0;
! }
! _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
!   ac_compiler_gnu=yes
! else
!   ac_compiler_gnu=no
! fi
! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
! ac_cv_c_compiler_gnu=$ac_compiler_gnu
  
  fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
- $as_echo "$ac_cv_c_compiler_gnu" >&6; }
- if test $ac_compiler_gnu = yes; then
-   GCC=yes
- else
-   GCC=
- fi
- ac_test_CFLAGS=${CFLAGS+set}
- ac_save_CFLAGS=$CFLAGS
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
- $as_echo_n "checking whether $CC accepts -g... " >&6; }
- if ${ac_cv_prog_cc_g+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_save_c_werror_flag=$ac_c_werror_flag
-    ac_c_werror_flag=yes
-    ac_cv_prog_cc_g=no
-    CFLAGS="-g"
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
- int
- main ()
- {
  
!   ;
!   return 0;
! }
! _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
!   ac_cv_prog_cc_g=yes
! else
!   CFLAGS=""
!       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! int
! main ()
! {
! 
!   ;
!   return 0;
! }
! _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
! 
! else
!   ac_c_werror_flag=$ac_save_c_werror_flag
! 	 CFLAGS="-g"
! 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! int
! main ()
! {
! 
!   ;
!   return 0;
! }
! _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
!   ac_cv_prog_cc_g=yes
! fi
! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
! fi
! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
! fi
! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
!    ac_c_werror_flag=$ac_save_c_werror_flag
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
! $as_echo "$ac_cv_prog_cc_g" >&6; }
! if test "$ac_test_CFLAGS" = set; then
!   CFLAGS=$ac_save_CFLAGS
! elif test $ac_cv_prog_cc_g = yes; then
!   if test "$GCC" = yes; then
!     CFLAGS="-g -O2"
!   else
!     CFLAGS="-g"
!   fi
! else
!   if test "$GCC" = yes; then
!     CFLAGS="-O2"
!   else
!     CFLAGS=
!   fi
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
! $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
! if ${ac_cv_prog_cc_c89+:} false; then :
!   $as_echo_n "(cached) " >&6
  else
!   ac_cv_prog_cc_c89=no
! ac_save_CC=$CC
! cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <stdarg.h>
! #include <stdio.h>
! struct stat;
! /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
! struct buf { int x; };
! FILE * (*rcsopen) (struct buf *, struct stat *, int);
! static char *e (p, i)
!      char **p;
!      int i;
! {
!   return p[i];
! }
! static char *f (char * (*g) (char **, int), char **p, ...)
! {
!   char *s;
!   va_list v;
!   va_start (v,p);
!   s = g (p, va_arg (v,int));
!   va_end (v);
!   return s;
! }
! 
! /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
!    function prototypes and stuff, but not '\xHH' hex character constants.
!    These don't provoke an error unfortunately, instead are silently treated
!    as 'x'.  The following induces an error, until -std is added to get
!    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
!    array size at least.  It's necessary to write '\x00'==0 to get something
!    that's true only with -std.  */
! int osf4_cc_array ['\x00' == 0 ? 1 : -1];
! 
! /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
!    inside strings and character constants.  */
! #define FOO(x) 'x'
! int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
! 
! int test (int i, double x);
! struct s1 {int (*f) (int a);};
! struct s2 {int (*f) (double a);};
! int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
! int argc;
! char **argv;
! int
! main ()
! {
! return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
!   ;
!   return 0;
! }
! _ACEOF
! for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
! 	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
! do
!   CC="$ac_save_CC $ac_arg"
!   if ac_fn_c_try_compile "$LINENO"; then :
!   ac_cv_prog_cc_c89=$ac_arg
! fi
! rm -f core conftest.err conftest.$ac_objext
!   test "x$ac_cv_prog_cc_c89" != "xno" && break
! done
! rm -f conftest.$ac_ext
! CC=$ac_save_CC
! 
  fi
- # AC_CACHE_VAL
- case "x$ac_cv_prog_cc_c89" in
-   x)
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
- $as_echo "none needed" >&6; } ;;
-   xno)
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
- $as_echo "unsupported" >&6; } ;;
-   *)
-     CC="$CC $ac_cv_prog_cc_c89"
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
- $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
- esac
- if test "x$ac_cv_prog_cc_c89" != xno; then :
  
- fi
  
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5
  $as_echo_n "checking for O_CLOEXEC... " >&6; }
--- 2956,3003 ----
  test "$maintainer_mode" = yes && MAINTAINER=yes
  
  
! # Handle configuration of checking; for the tools in this directory we
! # default to release checking and stricter checks do not change this.
  
! # Check whether --enable-checking was given.
! if test "${enable_checking+set}" = set; then :
!   enableval=$enable_checking; ac_checking_flags="${enableval}"
  else
  
! # Default to checking.
! ac_checking_flags=yes
  
  fi
  
! IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="$IFS,"
! for check in release $ac_checking_flags
  do
! 	case $check in
! 	# these set all the flags to specific states
! 	yes|all|release|assert) ac_assert_checking=1 ; ;;
! 	no|none) ac_assert_checking= ; ;;
! 	*) ;;
! 	esac
  done
+ IFS="$ac_save_IFS"
  
! if test x$ac_assert_checking != x ; then
  
! $as_echo "#define ENABLE_ASSERT_CHECKING 1" >>confdefs.h
  
  fi
  
! # 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
  $as_echo_n "checking for O_CLOEXEC... " >&6; }
*************** return open ("/dev/null", O_RDONLY | O_C
*** 3559,3565 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_o_cloexec=yes
  else
    ac_cv_o_cloexec=no
--- 3018,3024 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_o_cloexec=yes
  else
    ac_cv_o_cloexec=no
*************** $as_echo "#define HOST_HAS_O_CLOEXEC 1"
*** 3574,3599 ****
  
  fi
  
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
    $as_echo_n "(cached) " >&6
  else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
      do
        ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
  do
    # Use a header file that comes with gcc, so configuring glibc
    # with a fresh cross-compiler works.
--- 3033,3054 ----
  
  fi
  
! ac_ext=cpp
! ac_cpp='$CXXCPP $CPPFLAGS'
! ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
! $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
! if test -z "$CXXCPP"; then
!   if ${ac_cv_prog_CXXCPP+:} false; then :
    $as_echo_n "(cached) " >&6
  else
!       # Double quotes because CXXCPP needs to be expanded
!     for CXXCPP in "$CXX -E" "/lib/cpp"
      do
        ac_preproc_ok=false
! for ac_cxx_preproc_warn_flag in '' yes
  do
    # Use a header file that comes with gcc, so configuring glibc
    # with a fresh cross-compiler works.
*************** do
*** 3610,3616 ****
  #endif
  		     Syntax error
  _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
  
  else
    # Broken: fails on valid input.
--- 3065,3071 ----
  #endif
  		     Syntax error
  _ACEOF
! if ac_fn_cxx_try_cpp "$LINENO"; then :
  
  else
    # Broken: fails on valid input.
*************** rm -f conftest.err conftest.i conftest.$
*** 3624,3630 ****
  /* end confdefs.h.  */
  #include <ac_nonexistent.h>
  _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
    # Broken: success on invalid input.
  continue
  else
--- 3079,3085 ----
  /* end confdefs.h.  */
  #include <ac_nonexistent.h>
  _ACEOF
! if ac_fn_cxx_try_cpp "$LINENO"; then :
    # Broken: success on invalid input.
  continue
  else
*************** if $ac_preproc_ok; then :
*** 3642,3658 ****
  fi
  
      done
!     ac_cv_prog_CPP=$CPP
  
  fi
!   CPP=$ac_cv_prog_CPP
  else
!   ac_cv_prog_CPP=$CPP
  fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
  ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
  do
    # Use a header file that comes with gcc, so configuring glibc
    # with a fresh cross-compiler works.
--- 3097,3113 ----
  fi
  
      done
!     ac_cv_prog_CXXCPP=$CXXCPP
  
  fi
!   CXXCPP=$ac_cv_prog_CXXCPP
  else
!   ac_cv_prog_CXXCPP=$CXXCPP
  fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
! $as_echo "$CXXCPP" >&6; }
  ac_preproc_ok=false
! for ac_cxx_preproc_warn_flag in '' yes
  do
    # Use a header file that comes with gcc, so configuring glibc
    # with a fresh cross-compiler works.
*************** do
*** 3669,3675 ****
  #endif
  		     Syntax error
  _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
  
  else
    # Broken: fails on valid input.
--- 3124,3130 ----
  #endif
  		     Syntax error
  _ACEOF
! if ac_fn_cxx_try_cpp "$LINENO"; then :
  
  else
    # Broken: fails on valid input.
*************** rm -f conftest.err conftest.i conftest.$
*** 3683,3689 ****
  /* end confdefs.h.  */
  #include <ac_nonexistent.h>
  _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
    # Broken: success on invalid input.
  continue
  else
--- 3138,3144 ----
  /* end confdefs.h.  */
  #include <ac_nonexistent.h>
  _ACEOF
! if ac_fn_cxx_try_cpp "$LINENO"; then :
    # Broken: success on invalid input.
  continue
  else
*************** if $ac_preproc_ok; then :
*** 3701,3715 ****
  else
    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
  See \`config.log' for more details" "$LINENO" 5; }
  fi
  
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
--- 3156,3170 ----
  else
    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
  See \`config.log' for more details" "$LINENO" 5; }
  fi
  
! ac_ext=cpp
! ac_cpp='$CXXCPP $CPPFLAGS'
! ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
  
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
*************** main ()
*** 3862,3868 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_header_stdc=yes
  else
    ac_cv_header_stdc=no
--- 3317,3323 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_header_stdc=yes
  else
    ac_cv_header_stdc=no
*************** main ()
*** 3935,3941 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_run "$LINENO"; then :
  
  else
    ac_cv_header_stdc=no
--- 3390,3396 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_run "$LINENO"; then :
  
  else
    ac_cv_header_stdc=no
*************** for ac_header in sys/types.h sys/stat.h
*** 3959,3965 ****
  		  inttypes.h stdint.h unistd.h
  do :
    as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
! ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
  "
  if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
    cat >>confdefs.h <<_ACEOF
--- 3414,3420 ----
  		  inttypes.h stdint.h unistd.h
  do :
    as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
! ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
  "
  if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
    cat >>confdefs.h <<_ACEOF
*************** done
*** 3973,3979 ****
  
  for ac_header in sys/mman.h
  do :
!   ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
  if test "x$ac_cv_header_sys_mman_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_SYS_MMAN_H 1
--- 3428,3434 ----
  
  for ac_header in sys/mman.h
  do :
!   ac_fn_cxx_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
  if test "x$ac_cv_header_sys_mman_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_SYS_MMAN_H 1
*************** connect (fd, (sockaddr *)&un, sizeof (un
*** 4016,4022 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_af_unix=yes
  else
    ac_cv_af_unix=no
--- 3471,3477 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_af_unix=yes
  else
    ac_cv_af_unix=no
*************** connect (fd, (sockaddr *)&in6, sizeof (i
*** 4070,4076 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_af_inet6=yes
  else
    ac_cv_af_inet6=no
--- 3525,3531 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_af_inet6=yes
  else
    ac_cv_af_inet6=no
*************** epoll_pwait (fd, 0, 0, -1, 0);
*** 4111,4117 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_epoll=yes
  else
    ac_cv_epoll=no
--- 3566,3572 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_epoll=yes
  else
    ac_cv_epoll=no
*************** pselect (0, 0, 0, 0, 0, 0);
*** 4147,4153 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_pselect=yes
  else
    ac_cv_pselect=no
--- 3602,3608 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_pselect=yes
  else
    ac_cv_pselect=no
*************** select (0, 0, 0, 0, 0);
*** 4184,4190 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_select=yes
  else
    ac_cv_select=no
--- 3639,3645 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_select=yes
  else
    ac_cv_select=no
*************** int err = accept4 (1, 0, 0, SOCK_NONBLOC
*** 4220,4226 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_accept4=yes
  else
    ac_cv_accept4=no
--- 3675,3681 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_accept4=yes
  else
    ac_cv_accept4=no
*************** const char *str = inet_ntop (AF_INET6, &
*** 4259,4265 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_compile "$LINENO"; then :
    ac_cv_inet_ntop=yes
  else
    ac_cv_inet_ntop=no
--- 3714,3720 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_compile "$LINENO"; then :
    ac_cv_inet_ntop=yes
  else
    ac_cv_inet_ntop=no
*************** for ac_lib in '' nsl; do
*** 4325,4331 ****
      ac_res=-l$ac_lib
      LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
    fi
!   if ac_fn_c_try_link "$LINENO"; then :
    ac_cv_search_gethostbyname=$ac_res
  fi
  rm -f core conftest.err conftest.$ac_objext \
--- 3780,3786 ----
      ac_res=-l$ac_lib
      LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
    fi
!   if ac_fn_cxx_try_link "$LINENO"; then :
    ac_cv_search_gethostbyname=$ac_res
  fi
  rm -f core conftest.err conftest.$ac_objext \
*************** for ac_lib in '' socket; do
*** 4381,4387 ****
      ac_res=-l$ac_lib
      LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
    fi
!   if ac_fn_c_try_link "$LINENO"; then :
    ac_cv_search_socket=$ac_res
  fi
  rm -f core conftest.err conftest.$ac_objext \
--- 3836,3842 ----
      ac_res=-l$ac_lib
      LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
    fi
!   if ac_fn_cxx_try_link "$LINENO"; then :
    ac_cv_search_socket=$ac_res
  fi
  rm -f core conftest.err conftest.$ac_objext \
*************** return socket ();
*** 4431,4437 ****
    return 0;
  }
  _ACEOF
! if ac_fn_c_try_link "$LINENO"; then :
    ac_cv_lib_socket_socket=yes
  else
    ac_cv_lib_socket_socket=no
--- 3886,3892 ----
    return 0;
  }
  _ACEOF
! if ac_fn_cxx_try_link "$LINENO"; then :
    ac_cv_lib_socket_socket=yes
  else
    ac_cv_lib_socket_socket=no
diff -Nrcpad gcc-11.3.0/c++tools/configure.ac gcc-11.4.0/c++tools/configure.ac
*** gcc-11.3.0/c++tools/configure.ac	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/c++tools/configure.ac	Mon May 29 08:46:28 2023
*************** MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}
*** 41,46 ****
--- 41,48 ----
  AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf])
  AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader])
  
+ AC_LANG(C++)
+ 
  dnl Enabled by default
  AC_MSG_CHECKING([whether to build C++ tools])
    AC_ARG_ENABLE(c++-tools, 
*************** AC_MSG_RESULT([$maintainer_mode])
*** 67,72 ****
--- 69,103 ----
  test "$maintainer_mode" = yes && MAINTAINER=yes
  AC_SUBST(MAINTAINER)
  
+ # Handle configuration of checking; for the tools in this directory we
+ # default to release checking and stricter checks do not change this.
+ 
+ AC_ARG_ENABLE(checking,
+ [AS_HELP_STRING([[--enable-checking[=LIST]]],
+ 		[enable expensive run-time checks.  With LIST,
+ 		 enable only specific categories of checks.
+ 		 Categories are: yes,no,all,none,release.])],
+ [ac_checking_flags="${enableval}"],[
+ # Default to checking.
+ ac_checking_flags=yes
+ ])
+ IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="$IFS,"
+ for check in release $ac_checking_flags
+ do
+ 	case $check in
+ 	# these set all the flags to specific states
+ 	yes|all|release|assert) ac_assert_checking=1 ; ;;
+ 	no|none) ac_assert_checking= ; ;;
+ 	*) ;;
+ 	esac
+ done
+ IFS="$ac_save_IFS"
+ 
+ if test x$ac_assert_checking != x ; then
+   AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
+ [Define if you want assertions enabled.  This is a cheap check.])
+ fi
+ 
  # Check whether --enable-default-pie was given.
  AC_ARG_ENABLE(default-pie,
  [AS_HELP_STRING([--enable-default-pie],
diff -Nrcpad gcc-11.3.0/c++tools/server.cc gcc-11.4.0/c++tools/server.cc
*** gcc-11.3.0/c++tools/server.cc	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/c++tools/server.cc	Mon May 29 08:46:28 2023
*************** along with GCC; see the file COPYING3.
*** 61,66 ****
--- 61,70 ----
  # define gai_strerror(X) ""
  #endif
  
+ #ifndef AI_NUMERICSERV
+ #define AI_NUMERICSERV 0
+ #endif
+ 
  #include <getopt.h>
  
  // Select or epoll
*************** along with GCC; see the file COPYING3.
*** 92,97 ****
--- 96,123 ----
  #define DIR_SEPARATOR '/'
  #endif
  
+ /* Imported from libcpp/system.h
+    Use gcc_assert(EXPR) to test invariants.  */
+ #if ENABLE_ASSERT_CHECKING
+ #define gcc_assert(EXPR)                                                \
+    ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0))
+ #elif (GCC_VERSION >= 4005)
+ #define gcc_assert(EXPR)                                                \
+   ((void)(__builtin_expect (!(EXPR), 0) ? __builtin_unreachable (), 0 : 0))
+ #else
+ /* Include EXPR, so that unused variable warnings do not occur.  */
+ #define gcc_assert(EXPR) ((void)(0 && (EXPR)))
+ #endif
+ 
+ /* Use gcc_unreachable() to mark unreachable locations (like an
+    unreachable default case of a switch.  Do not use gcc_assert(0).  */
+ #if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING
+ #define gcc_unreachable() __builtin_unreachable ()
+ #else
+ #define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__))
+ #endif
+ 
+ 
  #if NETWORKING
  struct netmask {
    in6_addr addr;
*************** internal_error (const char *fmt, ...)
*** 202,212 ****
--- 228,240 ----
  
  /* Hooked to from gcc_assert & gcc_unreachable.  */
  
+ #if ENABLE_ASSERT_CHECKING
  void ATTRIBUTE_NORETURN ATTRIBUTE_COLD
  fancy_abort (const char *file, int line, const char *func)
  {
    internal_error ("in %s, at %s:%d", func, trim_src_file (file), line);
  }
+ #endif
  
  /* Exploded on a signal.  */
  
diff -Nrcpad gcc-11.3.0/config/ChangeLog gcc-11.4.0/config/ChangeLog
*** gcc-11.3.0/config/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/config/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/configure gcc-11.4.0/configure
*** gcc-11.3.0/configure	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/configure	Mon May 29 08:49:47 2023
*************** fi
*** 8277,8283 ****
  # Check whether --enable-host-shared was given.
  if test "${enable_host_shared+set}" = set; then :
    enableval=$enable_host_shared; host_shared=$enableval
!  case $target in
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
--- 8277,8283 ----
  # Check whether --enable-host-shared was given.
  if test "${enable_host_shared+set}" = set; then :
    enableval=$enable_host_shared; host_shared=$enableval
!  case $host in
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
*************** if test "${enable_host_shared+set}" = se
*** 8287,8293 ****
    *) ;;
   esac
  else
!   case $target in
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
    *) host_shared=no ;;
   esac
--- 8287,8293 ----
    *) ;;
   esac
  else
!   case $host in
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
    *) host_shared=no ;;
   esac
diff -Nrcpad gcc-11.3.0/configure.ac gcc-11.4.0/configure.ac
*** gcc-11.3.0/configure.ac	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/configure.ac	Mon May 29 08:46:28 2023
*************** AC_ARG_ENABLE(host-shared,
*** 1872,1878 ****
  [AS_HELP_STRING([--enable-host-shared],
  		[build host code as shared libraries])],
  [host_shared=$enableval
!  case $target in
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
--- 1872,1878 ----
  [AS_HELP_STRING([--enable-host-shared],
  		[build host code as shared libraries])],
  [host_shared=$enableval
!  case $host in
     x86_64-*-darwin* | aarch64-*-darwin*)
       if test x$host_shared != xyes ; then
         # PIC is the default, and actually cannot be switched off.
*************** AC_ARG_ENABLE(host-shared,
*** 1881,1887 ****
       fi ;;
    *) ;;
   esac],
! [case $target in
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
    *) host_shared=no ;;
   esac])
--- 1881,1887 ----
       fi ;;
    *) ;;
   esac],
! [case $host in
    x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
    *) host_shared=no ;;
   esac])
diff -Nrcpad gcc-11.3.0/contrib/ChangeLog gcc-11.4.0/contrib/ChangeLog
*** gcc-11.3.0/contrib/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/contrib/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/contrib/header-tools/ChangeLog gcc-11.4.0/contrib/header-tools/ChangeLog
*** gcc-11.3.0/contrib/header-tools/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/contrib/header-tools/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/contrib/reghunt/ChangeLog gcc-11.4.0/contrib/reghunt/ChangeLog
*** gcc-11.3.0/contrib/reghunt/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/contrib/reghunt/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/contrib/regression/ChangeLog gcc-11.4.0/contrib/regression/ChangeLog
*** gcc-11.3.0/contrib/regression/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/contrib/regression/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/fixincludes/ChangeLog gcc-11.4.0/fixincludes/ChangeLog
*** gcc-11.3.0/fixincludes/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/fixincludes/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,27 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2023-01-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* fixincl.x: Regenerate.
+ 	* inclhack.def (darwin_objc_runtime_1): New hack.
+ 	* tests/base/objc/runtime.h: New file.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2023-01-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/107568
+ 	* fixincl.x: Regenerate.
+ 	* inclhack.def: Add a fix for MacOS13 SDK function deprecations
+ 	in stdio.h.
+ 	* tests/base/stdio.h (__deprecated_msg): New test.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/fixincludes/fixincl.x gcc-11.4.0/fixincludes/fixincl.x
*** gcc-11.3.0/fixincludes/fixincl.x	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/fixincludes/fixincl.x	Mon May 29 08:46:28 2023
***************
*** 2,12 ****
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  July  1, 2021 at 03:44:46 PM by AutoGen 5.18.7
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Thu Jul  1 15:44:46 CEST 2021
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
--- 2,12 ----
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  May 15, 2023 at 11:55:05 PM by AutoGen 5.18.7
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Mon May 15 23:55:05 BST 2023
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
***************
*** 15,21 ****
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 260 fixup descriptions.
   *
   * See README for more information.
   *
--- 15,21 ----
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 262 fixup descriptions.
   *
   * See README for more information.
   *
*************** int vfscanf(FILE *, const char *, __buil
*** 2610,2615 ****
--- 2610,2655 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Apple_Local_Stdio_Fn_Deprecation fix
+  */
+ tSCC zApple_Local_Stdio_Fn_DeprecationName[] =
+      "apple_local_stdio_fn_deprecation";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zApple_Local_Stdio_Fn_DeprecationList[] =
+   "stdio.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzApple_Local_Stdio_Fn_DeprecationMachs[] = {
+         "*-*-*darwin2*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zApple_Local_Stdio_Fn_DeprecationSelect0[] =
+        "__deprecated_msg([^\n\
+ ]*)$";
+ 
+ #define    APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT  1
+ static tTestDesc aApple_Local_Stdio_Fn_DeprecationTests[] = {
+   { TT_EGREP,    zApple_Local_Stdio_Fn_DeprecationSelect0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Apple_Local_Stdio_Fn_Deprecation
+  */
+ static const char* apzApple_Local_Stdio_Fn_DeprecationPatch[] = {
+     "format",
+     "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n\
+ %0\n\
+ #endif",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Ctrl_Quotes_Def fix
   */
  tSCC zCtrl_Quotes_DefName[] =
*************** static const char* apzDarwin_Os_Trace_2P
*** 3046,3051 ****
--- 3086,3138 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Darwin_Objc_Runtime_1 fix
+  */
+ tSCC zDarwin_Objc_Runtime_1Name[] =
+      "darwin_objc_runtime_1";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zDarwin_Objc_Runtime_1List[] =
+   "objc/runtime.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzDarwin_Objc_Runtime_1Machs[] = {
+         "*-*-darwin2*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zDarwin_Objc_Runtime_1Select0[] =
+        "OBJC_EXPORT void.*\n\
+ objc_enumerateClasses.*\n\
+ .*\n\
+ .*\n\
+ .*\n\
+ .*void \\(\\^ _Nonnull block.*\n\
+ .*\n\
+ .*\n\
+ .*OBJC_REFINED_FOR_SWIFT.*";
+ 
+ #define    DARWIN_OBJC_RUNTIME_1_TEST_CT  1
+ static tTestDesc aDarwin_Objc_Runtime_1Tests[] = {
+   { TT_EGREP,    zDarwin_Objc_Runtime_1Select0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Darwin_Objc_Runtime_1
+  */
+ static const char* apzDarwin_Objc_Runtime_1Patch[] = {
+     "format",
+     "#if __BLOCKS__\n\
+ %0\n\
+ #endif",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Darwin_Os_Trace_3 fix
   */
  tSCC zDarwin_Os_Trace_3Name[] =
*************** static const char* apzX11_SprintfPatch[]
*** 10560,10568 ****
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          298
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            260
  
  /*
   *  Enumerate the fixes
--- 10647,10655 ----
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          300
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            262
  
  /*
   *  Enumerate the fixes
*************** typedef enum {
*** 10629,10634 ****
--- 10716,10722 ----
      BROKEN_CABS_FIXIDX,
      BROKEN_NAN_FIXIDX,
      BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
+     APPLE_LOCAL_STDIO_FN_DEPRECATION_FIXIDX,
      CTRL_QUOTES_DEF_FIXIDX,
      CTRL_QUOTES_USE_FIXIDX,
      CXX_UNREADY_FIXIDX,
*************** typedef enum {
*** 10640,10645 ****
--- 10728,10734 ----
      DARWIN_LONGJMP_NORETURN_FIXIDX,
      DARWIN_OS_TRACE_1_FIXIDX,
      DARWIN_OS_TRACE_2_FIXIDX,
+     DARWIN_OBJC_RUNTIME_1_FIXIDX,
      DARWIN_OS_TRACE_3_FIXIDX,
      DARWIN_OS_BASE_1_FIXIDX,
      DARWIN_DISPATCH_OBJECT_1_FIXIDX,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 11136,11141 ****
--- 11225,11235 ----
       BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aBsd_Stdio_Attrs_ConflictTests,   apzBsd_Stdio_Attrs_ConflictPatch, 0 },
  
+   {  zApple_Local_Stdio_Fn_DeprecationName,    zApple_Local_Stdio_Fn_DeprecationList,
+      apzApple_Local_Stdio_Fn_DeprecationMachs,
+      APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aApple_Local_Stdio_Fn_DeprecationTests,   apzApple_Local_Stdio_Fn_DeprecationPatch, 0 },
+ 
    {  zCtrl_Quotes_DefName,    zCtrl_Quotes_DefList,
       apzCtrl_Quotes_DefMachs,
       CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 11191,11196 ****
--- 11285,11295 ----
       DARWIN_OS_TRACE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aDarwin_Os_Trace_2Tests,   apzDarwin_Os_Trace_2Patch, 0 },
  
+   {  zDarwin_Objc_Runtime_1Name,    zDarwin_Objc_Runtime_1List,
+      apzDarwin_Objc_Runtime_1Machs,
+      DARWIN_OBJC_RUNTIME_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aDarwin_Objc_Runtime_1Tests,   apzDarwin_Objc_Runtime_1Patch, 0 },
+ 
    {  zDarwin_Os_Trace_3Name,    zDarwin_Os_Trace_3List,
       apzDarwin_Os_Trace_3Machs,
       DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
diff -Nrcpad gcc-11.3.0/fixincludes/inclhack.def gcc-11.4.0/fixincludes/inclhack.def
*** gcc-11.3.0/fixincludes/inclhack.def	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/fixincludes/inclhack.def	Mon May 29 08:46:28 2023
*************** fix = {
*** 1269,1274 ****
--- 1269,1286 ----
      test_text = '#define  vfscanf	__svfscanf';
  };
  
+ fix = {
+     hackname  = apple_local_stdio_fn_deprecation;
+     mach      = "*-*-*darwin2*";
+     files     = stdio.h;
+     select    = "__deprecated_msg([^\n]*)$";
+     c_fix     = format;
+     c_fix_arg = "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n"
+                 "%0\n"
+                 "#endif";
+     test_text = '__deprecated_msg("This function is provided for compat...")';
+ };
+ 
  /*
   *  Fix various macros used to define ioctl numbers.
   *  The traditional syntax was:
*************** fix = {
*** 1480,1485 ****
--- 1492,1532 ----
  };
  
  /*
+  *  macOSX 13.0 SDK objc/runtime.h uses Apple Blocks extension without a guard.
+  */
+ 
+ fix = {
+   hackname  = darwin_objc_runtime_1;
+   mach      = "*-*-darwin2*";
+   files     = objc/runtime.h;
+   select    =   <<- _EOSelect_
+ 	OBJC_EXPORT void.*
+ 	objc_enumerateClasses.*
+ 	.*
+ 	.*
+ 	.*
+ 	.*void \(\^ _Nonnull block.*
+ 	.*
+ 	.*
+ 	.*OBJC_REFINED_FOR_SWIFT.*
+ 	_EOSelect_;
+   c_fix     = format;
+   c_fix_arg = "#if __BLOCKS__\n%0\n#endif";
+   test_text = <<- _OBJC_RUNTIME_1
+ OBJC_EXPORT void
+ objc_enumerateClasses(const void * _Nullable image,
+                       const char * _Nullable namePrefix,
+                       Protocol * _Nullable conformingTo,
+                       Class _Nullable subclassing,
+                       void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop)
+                       OBJC_NOESCAPE)
+ OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0)
+ OBJC_REFINED_FOR_SWIFT;
+ _OBJC_RUNTIME_1;
+ };
+ 
+ 
+ /*
   *  In Mac OS X 10.1[012] <os/trace.h>, need to guard users of
   *  os_trace_payload_t typedef, too.
   */
diff -Nrcpad gcc-11.3.0/fixincludes/tests/base/objc/runtime.h gcc-11.4.0/fixincludes/tests/base/objc/runtime.h
*** gcc-11.3.0/fixincludes/tests/base/objc/runtime.h	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/fixincludes/tests/base/objc/runtime.h	Mon May 29 08:46:28 2023
***************
*** 0 ****
--- 1,24 ----
+ /*  DO NOT EDIT THIS FILE.
+ 
+     It has been auto-edited by fixincludes from:
+ 
+ 	"fixinc/tests/inc/objc/runtime.h"
+ 
+     This had to be done to correct non-standard usages in the
+     original, manufacturer supplied header file.  */
+ 
+ 
+ 
+ #if defined( DARWIN_OBJC_RUNTIME_1_CHECK )
+ #if __BLOCKS__
+ OBJC_EXPORT void
+ objc_enumerateClasses(const void * _Nullable image,
+                       const char * _Nullable namePrefix,
+                       Protocol * _Nullable conformingTo,
+                       Class _Nullable subclassing,
+                       void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop)
+                       OBJC_NOESCAPE)
+ OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0)
+ OBJC_REFINED_FOR_SWIFT;
+ #endif
+ #endif  /* DARWIN_OBJC_RUNTIME_1_CHECK */
diff -Nrcpad gcc-11.3.0/fixincludes/tests/base/stdio.h gcc-11.4.0/fixincludes/tests/base/stdio.h
*** gcc-11.3.0/fixincludes/tests/base/stdio.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/fixincludes/tests/base/stdio.h	Mon May 29 08:46:28 2023
*************** int vfscanf(FILE *, const char *, __buil
*** 41,46 ****
--- 41,53 ----
  #endif  /* BSD_STDIO_ATTRS_CONFLICT_CHECK */
  
  
+ #if defined( APPLE_LOCAL_STDIO_FN_DEPRECATION_CHECK )
+ #if defined(__APPLE_LOCAL_DEPRECATIONS)
+ __deprecated_msg("This function is provided for compat...")
+ #endif
+ #endif  /* APPLE_LOCAL_STDIO_FN_DEPRECATION_CHECK */
+ 
+ 
  #if defined( HPUX10_STDIO_DECLARATIONS_CHECK )
  #  define _iob __iob
  
diff -Nrcpad gcc-11.3.0/gcc/BASE-VER gcc-11.4.0/gcc/BASE-VER
*** gcc-11.3.0/gcc/BASE-VER	Thu Apr 21 07:59:17 2022
--- gcc-11.4.0/gcc/BASE-VER	Mon May 29 08:46:50 2023
***************
*** 1 ****
! 11.3.0
--- 1 ----
! 11.4.0
diff -Nrcpad gcc-11.3.0/gcc/ChangeLog gcc-11.4.0/gcc/ChangeLog
*** gcc-11.3.0/gcc/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,2032 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-22   Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/70243
+ 	* config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.  Back
+ 	port from master 04/10/2023.
+ 	(vsx_nfmsv4sf4): Do not generate vnmsubfp.
+ 
+ 2023-05-16  Simon Wright  <simon@pushface.org>
+ 
+ 	Backported from master:
+ 	2022-06-12  Simon Wright  <simon@pushface.org>
+ 
+ 	PR target/104871
+ 	* config/darwin-driver.c (darwin_find_version_from_kernel): If the OS
+ 	version is darwin20 (macOS 11) or greater, truncate the version to the
+ 	major number.
+ 
+ 2023-05-16  Mark Mentovai  <mark@mentovai.com>
+ 
+ 	Backported from master:
+ 	2022-06-12  Mark Mentovai  <mark@mentovai.com>
+ 
+ 	* config/darwin-c.c: Make -mmacosx-version-min more future-proof.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2022-05-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/105599
+ 	* config/darwin.h: Move versions-specific handling of multiply_defined
+ 	from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2021-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable
+ 	values for the host.
+ 	* config/darwin.c (darwin_emit_common): Error for alignment
+ 	values > 32768.
+ 	* config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the
+ 	configured L2_MAX_OFILE_ALIGNMENT.
+ 
+ 2023-05-16  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2021-12-18  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* config/darwin-driver.c: Make version code more future-proof.
+ 	* config.gcc: Homogeneize darwin versions.
+ 	* configure.ac: Homogeneize darwin versions.
+ 	* configure: Regenerate.
+ 
+ 2023-05-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/i386/darwin.h (ENDFILE_SPEC): Fix trailing '\'.
+ 
+ 2023-05-15  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
+ 	whenever -mdaz-ftz is specified. Don't link crtfastmath.o
+ 	when -mno-daz-ftz is specified.
+ 	* config/i386/darwin.h (ENDFILE_SPEC): Ditto.
+ 	* config/i386/gnu-user-common.h
+ 	(GNU_USER_TARGET_MATHFILE_SPEC): Ditto.
+ 	* config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
+ 	* config/i386/i386.opt (mdaz-ftz): New option.
+ 	* doc/invoke.texi (x86 options): Document mftz-daz.
+ 
+ 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.c (bit_value_binop): Call wi::ext on the results
+ 	of wi::lrotate or wi::rrotate.
+ 
+ 2023-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-03-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108950
+ 	* tree-vect-patterns.c (vect_recog_widen_sum_pattern):
+ 	Check oprnd0 is defined in the loop.
+ 	* tree-vect-loop.c (vectorizable_reduction): Record all
+ 	operands vector types, compute that of invariants and
+ 	properly update their SLP nodes.
+ 
+ 2023-05-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-11-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107898
+ 	* gimple-ssa-warn-alloca.c (alloca_call_type): Check
+ 	the type of the alloca argument is compatible with size_t
+ 	before querying ranges.
+ 
+ 2023-05-03  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/extend.texi: Replace @itemx not being preceded by @item.
+ 
+ 2023-05-03  Anthony Sharp  <anthonysharp15@gmail.com>
+ 
+ 	Backported from master:
+ 	2021-08-27  Anthony Sharp  <anthonysharp15@gmail.com>
+ 
+ 	* symbol-summary.h: Added missing template keyword.
+ 
+ 2023-05-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109473
+ 	* tree-vect-loop.c (get_initial_def_for_reduction):
+ 	Convert the scalar values to the vector component type
+ 	before using it to build the vector for the initial value.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109410
+ 	* tree-ssa-reassoc.c (build_and_add_sum): Split edge from entry
+ 	block if first statement of the function is a call to returns_twice
+ 	function.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106190
+ 	* sanopt.c (pass_sanopt::execute): Return TODO_cleanup_cfg if any
+ 	of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109276
+ 	* config/i386/i386.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/105685
+ 	* predict.c (compute_function_frequency): Don't call
+ 	warn_function_cold if function already has cold attribute.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109176
+ 	* tree-vect-generic.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105554
+ 	* function.h (push_struct_function): Add ABSTRACT_P argument defaulted
+ 	to false.
+ 	* function.c (push_struct_function): Add ABSTRACT_P argument, pass it
+ 	to allocate_struct_function instead of false.
+ 	* tree-inline.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108685
+ 	* omp-expand.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR testsuite/108973
+ 	* selftest-diagnostic.c
+ 	(test_diagnostic_context::test_diagnostic_context): Set
+ 	caret_max_width to 80.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108967
+ 	* cfgexpand.c (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
+ 	and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108854
+ 	* cgraphclones.c (duplicate_thunk_for_node): If no parameter
+ 	changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
+ 	nodes and adjust their DECL_CONTEXT.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108881
+ 	* config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16hi,
+ 	__builtin_ia32_cvtne2ps2bf16_v16hi_mask,
+ 	__builtin_ia32_cvtne2ps2bf16_v16hi_maskz,
+ 	__builtin_ia32_cvtne2ps2bf16_v8hi,
+ 	__builtin_ia32_cvtne2ps2bf16_v8hi_mask,
+ 	__builtin_ia32_cvtne2ps2bf16_v8hi_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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/100758
+ 	* common/config/i386/cpuinfo.h (cpu_indicator_init): Call
+ 	get_available_features for all CPUs with max_level >= 1, rather
+ 	than just Intel or AMD.
+ 
+ 2023-05-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	Backported from master:
+ 	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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108692
+ 	* tree-vect-patterns.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108435
+ 	* tree-nested.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108573
+ 	* ree.c (combine_reaching_defs): Don't return false for paradoxical
+ 	subregs in DEBUG_INSNs.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/108596
+ 	* bb-reorder.c (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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108498
+ 	* gimple-ssa-store-merging.c (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-05-02  Eric Biggers  <ebiggers@google.com>
+ 
+ 	Backported from master:
+ 	2023-01-24  Eric Biggers  <ebiggers@google.com>
+ 
+ 	PR bootstrap/90543
+ 	* optc-save-gen.awk: Fix copy-and-paste error.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108459
+ 	* omp-expand.c (expand_omp_for_init_counts): Use fold_build1 rather
+ 	than fold_unary for NEGATE_EXPR.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108237
+ 	* generic-match-head.c: 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-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108264
+ 	* expr.c (store_expr): For stores into SUBREG_PROMOTED_* targets
+ 	from source which doesn't have scalar integral mode first convert
+ 	it to outer_mode.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108068
+ 	* tree.h (real_maybe_zerop): Declare.
+ 	* tree.c (real_maybe_zerop): Define.
+ 	* tree-ssa-dom.c (record_edge_info): Use it instead of
+ 	real_zerop or TREE_CODE (op1) == SSA_NAME || real_zerop.  Always set
+ 	can_infer_simple_equiv to false for decimal floating point types.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/108193
+ 	* cse.c (compute_const_anchors): Change n type to
+ 	unsigned HOST_WIDE_INT, adjust comparison against it to avoid
+ 	warnings.  Formatting fix.
+ 	(insert_const_anchor): Use gen_int_mode instead of GEN_INT.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/106751
+ 	* loop-invariant.c (move_invariant_reg): If preheader bb ends
+ 	with a JUMP_INSN, split the preheader edge and emit invariants
+ 	into the new preheader basic block.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108095
+ 	* tree-into-ssa.c (maybe_register_def): Insert debug stmt
+ 	on all non-EH edges from asm goto if they have a single
+ 	predecessor rather than asserting there is at most one such edge.
+ 	Test whether there are no PHI nodes next to the single predecessor
+ 	test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/107997
+ 	* tree-ssa-loop-ivopts.c: Include cfganal.h.
+ 	(create_new_iv) <case IP_END>: If ip_end_pos bb is non-empty and ends
+ 	with a stmt which ends bb, instead of adding iv update after it split
+ 	the latch edge and insert iterator into the new latch bb.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/106719
+ 	* cfgbuild.c (find_bb_boundaries): If there are NOTEs in between
+ 	debug_insn (seen after flow_transfer_insn) and insn, move NOTEs
+ 	before all the DEBUG_INSNs and split after NOTEs.  If there are
+ 	other insns like jump table data, clear debug_insn.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/106875
+ 	* config/i386/i386.opt (x_ix86_abi): Remove TargetSave.
+ 	(ix86_abi): Replace it with TargetVariable.
+ 	* config/i386/i386-options.c (ix86_function_specific_save,
+ 	ix86_function_specific_restore): Don't save and restore x_ix86_abi.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/107317
+ 	* asan.c: Include diagnostic-core.h.
+ 	(asan_emit_stack_protection): Return NULL early if seen_error ().
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108821
+ 	* tree-ssa-loop-im.c (sm_seq_valid_bb): We can also not
+ 	move volatile accesses.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/109263
+ 	* lto-wrapper.c (run_gcc): Parse alternate debug options
+ 	as well, they always enable debug.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109573
+ 	* tree-vect-loop.c (vectorizable_live_operation): Allow
+ 	unhandled SSA copy as well.  Demote assert to checking only.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109585
+ 	* tree-ssa-alias.c (aliasing_component_refs_p): Fix typo.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109502
+ 	* tree-vect-stmts.c (vectorizable_assignment): Fix
+ 	check for conversion between mask and non-mask types.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109473
+ 	* tree-vect-loop.c (vect_create_epilog_for_reduction):
+ 	Convert scalar result to the computation type before performing
+ 	the reduction adjustment.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-02-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108625
+ 	* genmatch.c (expr::gen_transform): Also disallow resimplification
+ 	from pushing to lseq with force_leaf.
+ 	(dt_simplify::gen_1): Likewise.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-12-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108076
+ 	* tree-if-conv.c (if_convertible_loop_p_1): Reject blocks
+ 	with non-local or forced labels that we later remove
+ 	labels from.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-12-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107451
+ 	* tree-vect-stmts.c (vectorizable_load): Avoid loading
+ 	SLP group members from group numbers in excess of the
+ 	vectorization factor.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-03-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/106124
+ 	* dwarf2out.c (lookup_type_die): Reset TREE_ASM_WRITTEN
+ 	so we can re-create the DIE for the type if required.
+ 
+ 2023-04-24  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-builtin.def (__builtin_altivec_vsignextsb2d):
+ 	Set ICODE to vsx_sign_extend_v16qi_v2di.
+ 	(__builtin_altivec_vsignextsb2w): Set ICODE to
+ 	vsx_sign_extend_v16qi_v4si.
+ 	(__builtin_altivec_visgnextsh2d): Set ICODE to
+ 	vsx_sign_extend_v8hi_v2di.
+ 	(__builtin_altivec_vsignextsh2w): Set ICODE to
+ 	vsx_sign_extend_v8hi_v4si.
+ 	(__builtin_altivec_vsignextsw2d): Set ICDE to
+ 	vsx_sign_extend_si_v2di.
+ 	(__builtin_altivec_vsignext): Set ICODE to vsx_sign_extend_v2di_v1ti.
+ 
+ 2023-04-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2023-01-31  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	PR target/108589
+ 	* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
+ 	REG_P on SET_DEST.
+ 
+ 2023-04-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	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.c (aarch64_operands_ok_for_ldpstp):
+ 	Check for the above tuning option when processing loads.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105484
+ 	* gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
+ 	whether the CFG changed.
+ 	(gimple_expand_vec_exprs): When the CFG changed, clean it up.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/104464
+ 	* gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
+ 	throwing check to after unproblematic replacement.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/104450
+ 	* gimple-isel.cc: Pass cfun around.
+ 	(+gimple_expand_vec_cond_expr): Do not combine a throwing
+ 	comparison with the select.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109491
+ 	* tree-ssa-sccvn.c (expressions_equal_p): Restore the
+ 	NULL operands test.
+ 
+ 2023-04-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	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-builtin.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-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-04-04  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108807
+ 	* config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): Fix gen
+ 	function for permutation control vector by considering big endianness.
+ 
+ 2023-04-13  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2023-03-27  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 		    Jiangning Liu  <jiangning.liu@amperecomputing.com>
+ 		    Manolis Tsamis  <manolis.tsamis@vrull.eu>
+ 
+ 	* config/aarch64/aarch64.c: Update vector costs for ampere1.
+ 
+ 2023-04-11  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/109067
+ 	* config/rs6000/rs6000.c (create_complex_muldiv): Delete.
+ 	(init_float128_ieee): Delete code to switch complex multiply and divide
+ 	for long double.  Backport from master, 3/20/2023.
+ 	(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-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/109140
+ 	* config/sparc/sparc.c (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-09  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	Backported from master:
+ 	2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/108546
+ 	* omp-low.c (lower_omp_target): Remove optional handling
+ 	on the receiver side, i.e. inside target (data), for
+ 	use_device_ptr.
+ 
+ 2023-02-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	Backported from master:
+ 	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-20  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	Backported from master:
+ 	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-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/90458
+ 	* config/i386/i386.c (ix86_compute_frame_layout): Disable the
+ 	effects of -fstack-clash-protection for TARGET_STACK_PROBE.
+ 	(ix86_expand_prologue): Likewise.
+ 
+ 2023-02-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108348
+ 	* config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): Add the
+ 	support for invalid uses of MMA opaque type in function arguments.
+ 
+ 2023-02-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-01-16  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108272
+ 	* config/rs6000/rs6000.c (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-02-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106809
+ 	* tree-ssa-sccvn.c (dominaged_by_p_w_unex): Check we have
+ 	more than one successor before doing extra work.
+ 
+ 2023-02-02  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2023-01-18  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/107944
+ 	* cgraph.c (cgraph_node::remove): Check whether nodes up the
+ 	lcone_of chain also do not need the body.
+ 
+ 2023-01-26  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	Backported from master:
+ 	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-25  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2023-01-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 		    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.c (aarch64_function_arg_alignment): Fix
+ 	comment.
+ 	(aarch64_layout_arg): Factorize warning conditions.
+ 	(aarch64_function_arg_boundary): Fix typo.
+ 	* function.c (currently_expanding_function_start): New variable.
+ 	(expand_function_start): Handle
+ 	currently_expanding_function_start.
+ 	* function.h (currently_expanding_function_start): Declare.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-11-11  Richard Biener  <rguenther@suse.de>
+ 		    Nikita Voronov  <nik_1357@mail.ru>
+ 
+ 	PR tree-optimization/107554
+ 	* tree-ssa-strlen.c (strlen_pass::count_nonzero_bytes):
+ 	Use unsigned HOST_WIDE_INT type for the strlen.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107323
+ 	* tree-loop-distribution.c (pg_unmark_merged_alias_ddrs):
+ 	New function.
+ 	(loop_distribution::break_alias_scc_partitions): Revert
+ 	postorder save/restore from the PR94125 fix.  Instead
+ 	make sure to not ignore edges from SCCs we are going to
+ 	merge.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107254
+ 	* tree-vect-slp.c (vect_slp_analyze_node_operations_1):
+ 	For permutes also analyze live lanes.
+ 	(vect_schedule_slp_node): For permutes also code generate
+ 	live lane extracts.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107212
+ 	* tree-vect-loop.c (vectorizable_reduction): Make sure to
+ 	set STMT_VINFO_REDUC_DEF for all live lanes in a SLP
+ 	reduction.
+ 	(vectorizable_live_operation): Do not pun to the SLP
+ 	node representative for reduction epilogue generation.
+ 
+ 2023-01-24  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	Backported from master:
+ 	2022-08-16  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	PR driver/106624
+ 	* gcc.c (driver::detect_jobserver): Allocate storage xputenv()
+ 	argument using xstrdup().
+ 
+ 2023-01-16  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	Backported from master:
+ 	2022-12-01  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* varasm.c (assemble_variable): Fix type confusion bug when
+ 	checking for ".vtable_map_vars" section.
+ 
+ 2023-01-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR tree-optimization/108199
+ 	* tree-sra.c (sra_modify_expr): Deal with reverse storage order
+ 	for bit-field references.
+ 
+ 2023-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	Backported from master:
+ 	2022-12-30  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	PR target/107714
+ 	* config/arm/arm-protos.h (mve_struct_mem_operand): New protoype.
+ 	* config/arm/arm.c (mve_struct_mem_operand): New function.
+ 	* config/arm/constraints.md (Ug): New constraint.
+ 	* config/arm/mve.md (mve_vst4q<mode>): Change constraint.
+ 	(mve_vst2q<mode>): Likewise.
+ 	(mve_vld4q<mode>): Likewise.
+ 	(mve_vld2q<mode>): Likewise.
+ 	* config/arm/predicates.md (mve_struct_operand): New predicate.
+ 
+ 2023-01-05  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/106736
+ 	* config/rs6000/mma.md (define_expand movoo): Call function
+ 	rs6000_opaque_type_invalid_use_p to check and emit error message for
+ 	the invalid use of opaque type.
+ 	(define_expand movxo): Likewise.
+ 	* config/rs6000/rs6000-protos.h
+ 	(rs6000_opaque_type_invalid_use_p): New function declaration.
+ 	(currently_expanding_gimple_stmt): New extern declaration.
+ 	* config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): New
+ 	function.
+ 
+ 2022-12-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-08-10  Martin Liska  <mliska@suse.cz>
+ 
+ 	* opts-jobserver.h: Add one member.
+ 	* opts-common.c (jobserver_info::jobserver_info): Parse FIFO
+ 	format of --jobserver-auth.
+ 
+ 2022-12-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-08-10  Martin Liska  <mliska@suse.cz>
+ 
+ 	* gcc.c (driver::detect_jobserver): Remove and move to
+ 	jobserver.h.
+ 	* lto-wrapper.c (jobserver_active_p): Likewise.
+ 	(run_gcc): Likewise.
+ 	* opts-jobserver.h: New file.
+ 	* opts-common.c (jobserver_info::jobserver_info): New function.
+ 
+ 2022-12-15  Sebastian Pop  <spop@amazon.com>
+ 
+ 	PR target/98776
+ 	* config/aarch64/aarch64-protos.h (aarch64_output_patchable_area):
+ 	Declared.
+ 	* config/aarch64/aarch64.c (aarch64_print_patchable_function_entry):
+ 	Emit an UNSPECV_PATCHABLE_AREA pseudo instruction.
+ 	(aarch64_output_patchable_area): New.
+ 	* config/aarch64/aarch64.md (UNSPECV_PATCHABLE_AREA): New.
+ 	(patchable_area): Define.
+ 
+ 2022-12-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107107
+ 	* tree-ssa-sccvn.c (visit_reference_op_store): Do not
+ 	affect value-numbering when doing the tail merging
+ 	MODIFY_EXPR lookup.
+ 
+ 2022-12-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/107863
+ 	* config/i386/i386-expand.c (ix86_expand_vec_set_builtin):
+ 	Convert op1 to target mode whenever mode mismatch.
+ 
+ 2022-11-30  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.md (addvdi3): Force operand 2 to a register.
+ 	Remove "addi,tsv,*" instruction from unamed pattern.
+ 	(subvdi3): Force operand 1 to a register.
+ 	Remove "subi,tsv" instruction from from unamed pattern.
+ 
+ 2022-11-29  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-11-08  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	PR rtl-optimization/107482
+ 	* ira-color.c (assign_hard_reg): Only call
+ 	update_costs_from_copies when retry_p is false.
+ 
+ 2022-11-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* range-op.cc (operator_bitwise_xor::op1_range): Fix thinko.
+ 
+ 2022-11-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-loop-distribution.c (loop_distribution::classify_builtin_ldst):
+ 	Bail out if source and destination do not have the same storage order.
+ 
+ 2022-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/107748
+ 	* config/i386/smmintrin.h (_mm_extract_ps): Uglify names of local
+ 	variables and union members.
+ 
+ 2022-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/107183
+ 	* reg-stack.c (next_flags_user): Add DEBUG_SEEN argument.
+ 	If >= 0 and a DEBUG_INSN would be otherwise returned, set
+ 	DEBUG_SEEN to 1 and ignore it.
+ 	(swap_rtx_condition): Add DEBUG_SEEN argument.  In >= 0
+ 	mode only set DEBUG_SEEN to 1 if problematic DEBUG_ISNSs
+ 	were seen and revert all changes on success in that case.
+ 	Don't try to recog_memoized DEBUG_INSNs.
+ 	(compare_for_stack_reg): Adjust swap_rtx_condition caller.
+ 	If it returns true and debug_seen is 1, call swap_rtx_condition
+ 	again with debug_seen -1.
+ 
+ 2022-11-19  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	Backported from master:
+ 	2022-11-19  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.h (STARTFILE_SPEC): Fix 'crt0.o' for
+ 	'-mmainkernel'.
+ 
+ 2022-11-16  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2022-11-14  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1a.
+ 	* config/aarch64/aarch64-cost-tables.h: Add ampere1a_extra_costs.
+ 	* config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
+ 	Define a new fusion pair for A+B+1/A-B-1 (i.e., add/subtract two
+ 	registers and then +1/-1).
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Implement
+ 	idiom-matcher for the new fusion pair.
+ 	* doc/invoke.texi: Add ampere1a.
+ 
+ 2022-11-08  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-10-25  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/107304
+ 	* expr.c (get_inner_reference): Always use TYPE_MODE for vector
+ 	field with vector raw mode.
+ 
+ 2022-11-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR c/41041
+ 	* doc/cppopts.texi: Document -fwide-exec-charset defaults
+ 	correctly.
+ 
+ 2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* fold-const.c (operand_compare::operand_equal_p) <COMPONENT_REF>:
+ 	Do not take into account operand 2.
+ 	(operand_compare::hash_operand) <COMPONENT_REF>: Likewise.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107001
+ 	* omp-low.c (lower_omp_taskgroup): Don't add GOMP_RETURN statement
+ 	at the end.
+ 	* omp-expand.c (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA
+ 	is not stand-alone directive.  For GIMPLE_OMP_TASKGROUP, also don't
+ 	update parent.
+ 	(omp_make_gimple_edges) <case GIMPLE_OMP_TASKGROUP>: Reset
+ 	cur_region back after new_omp_region.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/106721
+ 	* config/i386/sse.md
+ 	(avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
+ 	mask_opernad3 -> mask_operand3.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/106261
+ 	* cgraphunit.c (cgraph_node::assemble_thunks_and_aliases): Don't
+ 	output asm thunks for -dx.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106144
+ 	* wide-int.cc (wi::shifted_mask): If end >= prec, return right after
+ 	emitting element for shift or if shift is 0 first element after start.
+ 	(wide_int_cc_tests): Add tests for equivalency of wi::mask and
+ 	wi::shifted_mask with 0 start.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/106032
+ 	* ifcvt.c (noce_try_sign_mask): Punt if !t_unconditional, and
+ 	t may_trap_or_fault_p, even if it is cheap.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106030
+ 	* expr.c (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
+ 	temp to expand_operands if mode has been promoted.
+ 
+ 2022-10-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2022-10-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 		    Yvan ROUX  <yvan.roux@foss.st.com>
+ 
+ 	* ira.c: Resize array after reg number increased.
+ 
+ 2022-10-26  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2022-10-06  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
+ 	Ampere-1 core entry.
+ 
+ 2022-10-26  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2022-10-06  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/driver-aarch64.c (readline): Fix off-by-one.
+ 
+ 2022-10-25  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-10-19  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	PR target/106355
+ 	* config/s390/s390.c (s390_call_saved_register_used): For a
+ 	parameter with BLKmode fix determining number of consecutive
+ 	registers.
+ 
+ 2022-10-25  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-10-25  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/107364
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_vendor):
+ 	Fix pedantic warning.
+ 
+ 2022-10-25  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-10-24  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/107364
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_vendor):
+ 	  Reorder enum values as BUILTIN_VENDOR_MAX should not point
+ 	  in the middle of the valid enum values.
+ 
+ 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*aarch64_brk<brk_op>_cc): Remove
+ 	merging alternative.
+ 	(*aarch64_brk<brk_op>_ptest): Likewise.
+ 
+ 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md (SVE_BRKP): New iterator.
+ 	* config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern.
+ 	(*aarch64_brkn_ptest): Likewise.
+ 	(*aarch64_brk<brk_op>_cc): Restrict to SVE_BRKP.
+ 	(*aarch64_brk<brk_op>_ptest): Likewise.
+ 
+ 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_3): Add
+ 	AARCH64_FL_RCPC.
+ 	(AARCH64_ISA_RCPC): New macro.
+ 	* config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1)
+ 	(neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores.
+ 	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
+ 	__ARM_FEATURE_RCPC when appropriate.
+ 
+ 2022-10-19  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-09-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/96072
+ 	* config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): Update the
+ 	condition for adding REG_CFA_DEF_CFA reg note with
+ 	frame_pointer_needed_indeed.
+ 
+ 2022-10-17  Pat Haugen  <pthaugen@linux.ibm.com>
+ 
+ 	PR target/99685
+ 	* config/rs6000/rs6000-call.c (rs6000_function_arg_advance_1): Bump
+ 	register count when not splitting IEEE 128-bit Complex.
+ 
+ 2022-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106934
+ 	* tree-ssa.c (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
+ 	of bitfields.
+ 	(maybe_rewrite_mem_ref_base): Likewise.
+ 
+ 2022-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-09-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106892
+ 	* tree-predcom.c (ref_at_iteration): Do not associate the
+ 	constant part of the offset into the MEM_REF offset
+ 	operand, across a non-zero offset.
+ 
+ 2022-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-07-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106189
+ 	* gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
+ 	Divide using offset_ints.
+ 
+ 2022-10-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backported from master:
+ 	2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
+ 	(@aarch64_rbit<mode>): ... to this and change it in...
+ 	(ffs<mode>2,ctz<mode>2): ... here.
+ 	(@aarch64_rev16<mode>): New.
+ 	* config/aarch64/aarch64-builtins.c: (aarch64_builtins):
+ 	Define the following enum AARCH64_REV16, AARCH64_REV16L,
+ 	AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
+ 	(aarch64_init_data_intrinsics): New.
+ 	(aarch64_general_init_builtins): Add call to
+ 	aarch64_init_data_intrinsics.
+ 	(aarch64_expand_builtin_data_intrinsic): New.
+ 	(aarch64_general_expand_builtin): Add call to
+ 	aarch64_expand_builtin_data_intrinsic.
+ 	* config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
+ 	__clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
+ 	__rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
+ 
+ 2022-10-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/107248
+ 	* config/sparc/sparc.c (sparc_expand_prologue): Emit a frame
+ 	blockage for leaf functions.
+ 	(sparc_flat_expand_prologue): Emit frame instead of full blockage.
+ 	(sparc_expand_epilogue): Emit a frame blockage for leaf functions.
+ 	(sparc_flat_expand_epilogue): Emit frame instead of full blockage.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-08-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/106540
+ 	PR lto/106334
+ 	* lto-streamer-in.c (lto_read_tree_1): Use lto_input_tree_1
+ 	to input DECL_INITIAL, avoiding to commit drefs.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-08-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106513
+ 	* gimple-ssa-store-merging.c (do_shift_rotate): Use uint64_t
+ 	for head_marker.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-07-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/106331
+ 	* builtins.c (get_memory_rtx): Compute alignment from
+ 	the original address and set MEM_OFFSET to unknown when
+ 	we create a MEM_EXPR from the base object of the address.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106131
+ 	* tree-ssa-sccvn.c (vn_reference_lookup_3): Force alias-set
+ 	zero when offsetting the read looking through an aggregate
+ 	copy.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-06-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106112
+ 	* tree-ssa-sccvn.c (valueized_wider_op): Properly extend
+ 	a constant operand according to its type.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/106027
+ 	* fold-const.c (fold_to_nonsharp_ineq_using_bound): Use the
+ 	type of the prevailing comparison for the new comparison type.
+ 	(fold_binary_loc): Use proper types for the A < X && A + 1 > Y
+ 	to A < X && A >= Y folding.
+ 
+ 2022-10-03  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	Backported from master:
+ 	2022-10-03  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	PR target/107064
+ 	* config/i386/t-i386: Add build-time dependencies against
+ 	i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
+ 	i386-features.o.
+ 
+ 2022-09-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-28  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/107061
+ 	* config/i386/predicates.md (encodekey128_operation): Check
+ 	XMM4-XMM6 as clobbered.
+ 	(encodekey256_operation): Likewise.
+ 	* config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6.
+ 	(encodekey256u32): Likewise.
+ 
+ 2022-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (neoverse-v2): New entry.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi (AArch64 Options): Document neoverse-v2.
+ 
+ 2022-09-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-09-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/106491
+ 	* config/aarch64/aarch64-sve-builtins.cc (scalar_types)
+ 	(acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
+ 	markup to (new) extern declarations instead of to the main
+ 	definition.
+ 
+ 2022-09-14  Tom de Vries  <tdevries@suse.de>
+ 
+ 	Backported from master:
+ 	2022-02-01  Tom de Vries  <tdevries@suse.de>
+ 
+ 	* config/nvptx/nvptx.c (nvptx_single): Use nvptx_uniform_warp_check.
+ 	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
+ 	UNSPECV_UNIFORM_WARP_CHECK.
+ 	(define_insn "nvptx_uniform_warp_check"): New define_insn.
+ 
+ 2022-09-14  Tom de Vries  <tdevries@suse.de>
+ 
+ 	Backported from master:
+ 	2022-02-01  Tom de Vries  <tdevries@suse.de>
+ 
+ 	* config/nvptx/nvptx.c (nvptx_single): Use nvptx_warpsync.
+ 	* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
+ 	UNSPECV_WARPSYNC.
+ 	(define_insn "nvptx_warpsync"): New define_insn.
+ 
+ 2022-09-14  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	* config/nvptx/nvptx.h (TARGET_PTX_6_0): '#define' to 'false'.
+ 
+ 2022-09-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-09-01  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/101322
+ 	* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin):
+ 	Enforce the use of a valid MMA pointer type.
+ 
+ 2022-09-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
+ 	-mvrsave is present.
+ 	* config/rs6000/t-rtems: Add -mvrsave multilib variants for
+ 	-mcpu=e6500.
+ 
+ 2022-09-02  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2022-08-03  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR rtl-optimization/106187
+ 	* alias.h (mems_same_for_tbaa_p): Declare.
+ 	* alias.c (mems_same_for_tbaa_p): New function.
+ 	* dse.c (record_store): Use it instead of open-coding
+ 	alias check.
+ 	* cselib.h (cselib_redundant_set_p): Declare.
+ 	* cselib.c: Include alias.h
+ 	(cselib_redundant_set_p): New function.
+ 	* cfgcleanup.c: (mark_effect): Use cselib_redundant_set_p instead
+ 	of rtx_equal_for_cselib_p.
+ 	* postreload.c (reload_cse_simplify): Use cselib_redundant_set_p.
+ 	(reload_cse_noop_set_p): Delete.
+ 
+ 2022-09-02  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2022-05-13  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/105463
+ 	* config/arm/mve.md (*movmisalign<mode>_mve_store): Use
+ 	mve_memory_operand.
+ 	(*movmisalign<mode>_mve_load): Likewise.
+ 	* config/arm/vec-common.md (movmisalign<mode>): Convert to generator
+ 	form...
+ 	(@movmisalign<mode>): ... thus.  Use generic predicates and then
+ 	rework operands if they are not valid.  For MVE rework to a
+ 	narrower element size if the alignment is not high enough.
+ 
+ 2022-08-30  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-08-28  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/106017
+ 	* config/rs6000/rs6000.c (rs6000_invalid_conversion): Remove handling
+ 	of MMA pointer conversions.
+ 
+ 2022-08-24  Kewen.Lin  <linkw@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-08-16  Kewen.Lin  <linkw@gcc.gnu.org>
+ 
+ 	PR target/103353
+ 	* config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
+ 	check to preparation statements and add handlings for !TARGET_MMA.
+ 	(define_expand movxo): Likewise.
+ 
+ 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	Backported from master:
+ 	2022-08-09  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/106492
+ 	* omp-low.c (lower_rec_input_clauses): Add missing folding
+ 	to data type of linear-clause list item.
+ 
+ 2022-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-04-21  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/103197
+ 	PR target/102146
+ 	* config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
+ 	the "Z" alternatives in {l,st}{f,xs}iwzx.
+ 	(zero_extendhi<mode>2 for EXTHI): Ditto.
+ 	(zero_extendsi<mode>2 for EXTSI): Ditto.
+ 	(*movsi_internal1): Ditto.
+ 	(*mov<mode>_internal1 for QHI): Ditto.
+ 	(movsd_hardfloat): Ditto.
+ 
+ 2022-08-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-07-26  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR c/106016
+ 	* expr.c (count_type_elements): Handle OPAQUE_TYPE.
+ 
+ 2022-08-08   Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove code
+ 	setting -mblock-ops-vector-pair.  Patch back ported from trunk, August
+ 	3rd, 2022.
+ 
+ 2022-08-02  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-07-25  Peter Bergner  <bergner@linux.ibm.com>
+ 		    Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR testsuite/106345
+ 	* config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
+ 	to filter out all -mtune options.
+ 
+ 2022-08-02  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-07-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/106091
+ 	* config/rs6000/rs6000-p8swap.c (replace_swapped_aligned_store): Copy
+ 	REG_EH_REGION when replacing one store insn having it.
+ 	(replace_swapped_aligned_load): Likewise.
+ 
+ 2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	Backported from master:
+ 	2022-07-27  Maciej W. Rozycki  <macro@embecosm.com>
+ 
+ 	* config/riscv/riscv.md (stack_protect_set_<mode>): Remove
+ 	duplicate backslashes.
+ 
+ 2022-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	Backported from master:
+ 	2022-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
+ 
+ 2022-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105618
+ 	* tree-ssa-sink.c (statement_sink_location): For virtual
+ 	PHI uses ignore those defining the used virtual operand.
+ 
+ 2022-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2021-11-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/103193
+ 	* match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0)
+ 	with NaNs and -ftrapping-math.
+ 
+ 2022-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/103116
+ 	* tree-vect-stmts.c (get_group_load_store_type): Handle the
+ 	case we need peeling for gaps even though GROUP_GAP is zero.
+ 
+ 2022-07-21  Surya Kumari Jangala  <jskumari@linux.vnet.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-06-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/105041
+ 	* regrename.c (check_new_reg_p): Use nregs value from du chain.
+ 
+ 2022-07-14   Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.c (rs6000_option_override_internal): Do
+ 	not generate block copies with vector pair instructions if we are
+ 	tuning for power10.  Back port from master branch.
+ 
+ 2022-07-12  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-07-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/105860
+ 	* tree-sra.c (build_reconstructed_reference): Start expr
+ 	traversal only just below the outermost union.
+ 
+ 2022-07-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-03-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/104869
+ 	* rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
+ 	(clobber_group::next_clobber): Likewise.
+ 	(def_lookup::prev_def): Rename to...
+ 	(def_lookup::last_def_of_prev_group): ...this.
+ 	(def_lookup::next_def): Rename to...
+ 	(def_lookup::first_def_of_next_group): ...this.
+ 	(def_lookup::matching_or_prev_def): Rename to...
+ 	(def_lookup::matching_set_or_last_def_of_prev_group): ...this.
+ 	(def_lookup::matching_or_next_def): Rename to...
+ 	(def_lookup::matching_set_or_first_def_of_next_group): ...this.
+ 	(def_lookup::prev_def): New function, taking the lookup insn as
+ 	argument.
+ 	(def_lookup::next_def): Likewise.
+ 	* rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
+ 	(def_lookup::last_def_of_prev_group): ...this.
+ 	(def_lookup::next_def): Rename to...
+ 	(def_lookup::first_def_of_next_group): ...this.
+ 	(def_lookup::matching_or_prev_def): Rename to...
+ 	(def_lookup::matching_set_or_last_def_of_prev_group): ...this.
+ 	(def_lookup::matching_or_next_def): Rename to...
+ 	(def_lookup::matching_set_or_first_def_of_next_group): ...this.
+ 	* rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
+ 	above renaming.
+ 	* rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
+ 	(clobber_group::next_clobber): Likewise.
+ 	(def_lookup::prev_def): Likewise.
+ 	(def_lookup::next_def): Likewise.
+ 	(function_info::make_use_available): Pass the lookup insn to
+ 	def_lookup::prev_def and def_lookup::next_def.
+ 
+ 2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-06-24  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
+ 	condition to avoid overflow.
+ 
+ 2022-06-23  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-06-23  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR ipa/105600
+ 	* ipa-icf.c (sem_item_optimizer::filter_removed_items):
+ 	Skip variables with body_removed.
+ 
+ 2022-06-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/105209
+ 	* config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
+ 	* config/alpha/alpha.c (alpha_store_data_bypass_p): New function.
+ 	(alpha_store_data_bypass_p_1): Ditto.
+ 	* config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
+ 	of generic store_data_bypass_p.
+ 	(ev4_ist_c): Remove insn reservation.
+ 
+ 2022-06-20  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-03-12  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/104829
+ 	* config/rs6000/rs6000.c (rs6000_machine_from_flags): Don't output
+ 	"ppc" and "ppc64" based on rs6000_cpu.
+ 
+ 2022-06-20  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-03-04  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* config/rs6000/rs6000.c (rs6000_machine_from_flags): Restructure a
+ 	bit.  Handle most older CPUs.
+ 
+ 2022-06-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/105970
+ 	* config/i386/i386.c (ix86_function_arg): Assert that
+ 	the mode of pointer argumet is equal to ptr_mode, not Pmode.
+ 
+ 2022-06-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/105998
+ 	* varasm.c (narrowing_initializer_constant_valid_p): Check
+ 	SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
+ 	! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
+ 
+ 2022-06-20  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-06-14  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/105739
+ 	* ipa-prop.c (ipa_load_from_parm_agg): Punt on volatile loads.
+ 
+ 2022-06-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/105729
+ 	* fold-const.c (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
+ 	to (X &) z + w if -fsanitize=null during GENERIC folding.
+ 
+ 2022-06-16  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2022-06-15  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/105981
+ 	* config/arm/arm.c (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
+ 	to first_reg and second_reg respectively.  Initialize them correctly
+ 	when generating big-endian code.
+ 
+ 2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2021-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* common.opt (static-libphobos): Add option.
+ 	* config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a
+ 	when linking statically.
+ 	* gcc.c (driver_handle_option): Set -static-libphobos as always valid.
+ 
+ 2022-06-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105726
+ 	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
+ 	Constrain array-of-flexarray case more.
+ 
+ 2022-06-14  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/104637
+ 	* lra-assigns.c (lra_split_hard_reg_for): Split hard regs as many
+ 	as possible on one subpass.
+ 
+ 2022-06-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-06-13  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_available_features): Require
+ 	AVX for F16C and VAES.
+ 
+ 2022-06-08  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-06-08  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	PR target/105879
+ 	* config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
+ 	to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
+ 	'gen_highpart' bitwise semantics and fix order of highpart and
+ 	lowpart depending on target endianness.
+ 
+ 2022-06-08  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/105854
+ 	* config/i386/sse.md (ssse3_palignrdi): Change alternative 2
+ 	from Yv to Yw.
+ 
+ 2022-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105437
+ 	* tree-vect-slp.c (vect_schedule_slp_node): Handle the
+ 	case where last_stmt alters control flow.
+ 
+ 2022-05-26  Simon Cook  <simon.cook@embecosm.com>
+ 
+ 	Backported from master:
+ 	2022-05-25  Simon Cook  <simon.cook@embecosm.com>
+ 
+ 	* config/riscv/arch-canonicalize: Only add mafd extension if
+ 	base was rv32/rv64g.
+ 
+ 2022-05-26  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	Backported from master:
+ 	2022-05-09  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/arch-canonicalize: Handle g correctly.
+ 
+ 2022-05-24  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	Backported from master:
+ 	2022-05-09  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR target/101891
+ 	* config/i386/i386.c (zero_call_used_regno_mode): use V2SImode
+ 	as a generic MMX mode instead of V4HImode.
+ 	(zero_all_mm_registers): Use SET to zero instead of MOV for
+ 	zeroing scratch registers.
+ 	(ix86_zero_call_used_regs): Likewise.
+ 
+ 2022-05-23  Paul A. Clarke  <pc@us.ibm.com>
+ 
+ 	PR target/104257
+ 	* config/rs6000/bmi2intrin.h: Uglify local variables.
+ 	* config/rs6000/emmintrin.h: Likewise.
+ 	* config/rs6000/mm_malloc.h: Likewise.
+ 	* config/rs6000/mmintrin.h: Likewise.
+ 	* config/rs6000/pmmintrin.h: Likewise.
+ 	* config/rs6000/smmintrin.h: Likewise.
+ 	* config/rs6000/tmmintrin.h: Likewise.
+ 	* config/rs6000/xmmintrin.h: Likewise.
+ 
+ 2022-05-19  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-05-06  Michael Meissner  <meissner@linux.ibm.com>
+ 		    Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/102059
+ 	* config/rs6000/rs6000.c (rs6000_can_inline_p): Ignore -mpower8-fusion
+ 	and -mpower10-fusion options for inlining purposes.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/105559
+ 	* cfgrtl.c (delete_insn_and_edges): Only perform search to BB_END
+ 	for non-debug insns.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105431
+ 	* tree-ssa-math-opts.c (powi_as_mults_1): Make n unsigned.
+ 	(powi_as_mults): Use absu_hwi.
+ 	(gimple_expand_builtin_powi): Remove now pointless n != -n
+ 	check.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105368
+ 	* tree-ssa-math-opts.c (powi_cost): Use absu_hwi.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105312
+ 	* gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
+ 	VCOND and VCONDU for EQ and NE.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105263
+ 	* tree-ssa-reassoc.c (try_special_add_to_ops): Do not consume
+ 	negates in multiplication chains with DFP.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105173
+ 	* tree-ssa-reassoc.c (find_insert_point): Get extra
+ 	insert_before output argument and compute it.
+ 	(insert_stmt_before_use): Adjust.
+ 	(rewrite_expr_tree): Likewise.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105163
+ 	* tree-ssa-reassoc.c (repropagate_negates): Avoid propagating
+ 	negated abnormals.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105148
+ 	* tree-ssa-loop-ivopts.c (idx_record_use): Walk raw operands
+ 	2 and 3 of ARRAY_REFs.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105250
+ 	* fold-const.c (fold_convertible_p): Revert
+ 	r12-7979-geaaf77dd85c333, instead check for size equality
+ 	of the vector types involved.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/105140
+ 	* fold-const.c (fold_convertible_p): Allow a TYPE_P arg.
+ 
+ 2022-05-19  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-04-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/100413
+ 	* cgraph.c (cgraph_node::remove): Release body of the node this
+ 	is clone_of if appropriate.
+ 
+ 2022-05-16  Sebastian Pop  <spop@amazon.com>
+ 
+ 	PR target/105162
+ 	* config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
+ 	of str array.
+ 	* config/aarch64/aarch64.c (aarch64_atomic_ool_func): Call
+ 	memmodel_from_int and handle MEMMODEL_SYNC_*.
+ 	(DEF0): Add __aarch64_*_sync functions.
+ 
+ 2022-05-16  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2021-11-10  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error.
+ 
+ 2022-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/105528
+ 	* gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
+ 	set *gsi to gsi_for_stmt (ass_stmt).  Fix up function comment.
+ 
+ 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/105292
+ 	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Return
+ 	true only for 8-byte vector modes.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105331
+ 	* config/i386/i386.c (ix86_gimplify_va_arg): Mark va_arg_tmp
+ 	temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
+ 	of it.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/105396
+ 	* asan.c (asan_redzone_buffer::emit_redzone_byte): Handle the case
+ 	where offset is bigger than off but smaller than m_prev_offset + 32
+ 	bits by pushing one or more 0 bytes.  Sink the
+ 	m_shadow_bytes.safe_push (value); flush_if_full (); statements from
+ 	all cases to the end of the function.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/105333
+ 	* rtlanal.c (replace_rtx): Use simplify_subreg or
+ 	simplify_unary_operation if CONST_SCALAR_INT_P rather than just
+ 	CONST_INT_P.
+ 
+ 2022-04-27  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2022-04-25  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/105339
+ 	* config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
+ 	Add parentheses for parameters and djust format.
+ 	(_mm512_mask_scalef_round_pd): Ditto.
+ 	(_mm512_maskz_scalef_round_pd): Ditto.
+ 	(_mm512_scalef_round_ps): Ditto.
+ 	(_mm512_mask_scalef_round_ps): Ditto.
+ 	(_mm512_maskz_scalef_round_ps): Ditto.
+ 	(_mm_scalef_round_sd): Use _mm_undefined_pd.
+ 	(_mm_scalef_round_ss): Use _mm_undefined_ps.
+ 	(_mm_mask_scalef_round_sd): New macro.
+ 	(_mm_mask_scalef_round_ss): Ditto.
+ 	(_mm_maskz_scalef_round_sd): Ditto.
+ 	(_mm_maskz_scalef_round_ss): Ditto.
+ 
+ 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105257
+ 	* config/sparc/sparc.c (epilogue_renumber): If ORIGINAL_REGNO,
+ 	use gen_raw_REG instead of gen_rtx_REG and copy over also
+ 	ORIGINAL_REGNO.  Use return 0; instead of /* fallthrough */.
+ 
+ 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/105203
+ 	* emit-rtl.c (emit_copy_of_insn_after): Don't call mark_jump_label
+ 	on DEBUG_INSNs.
+ 
+ 2022-04-21  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	Backported from master:
+ 	2022-04-19  Sergei Trofimovich  <siarheit@google.com>
+ 
+ 	PR gcov-profile/105282
+ 	* value-prof.c (stream_out_histogram_value): Allow negative counts
+ 	on HIST_TYPE_INDIR_CALL.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/DATESTAMP gcc-11.4.0/gcc/DATESTAMP
*** gcc-11.3.0/gcc/DATESTAMP	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/DATESTAMP	Mon May 29 08:46:28 2023
***************
*** 1 ****
! 20220421
--- 1 ----
! 20230528
diff -Nrcpad gcc-11.3.0/gcc/ada/ChangeLog gcc-11.4.0/gcc/ada/ChangeLog
*** gcc-11.3.0/gcc/ada/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/ada/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/alias.c gcc-11.4.0/gcc/alias.c
*** gcc-11.3.0/gcc/alias.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/alias.c	Mon May 29 08:46:29 2023
*************** refs_same_for_tbaa_p (tree earlier, tree
*** 389,394 ****
--- 389,408 ----
  	  || alias_set_subset_of (later_base_set, earlier_base_set));
  }
  
+ /* Similar to refs_same_for_tbaa_p() but for use on MEM rtxs.  */
+ bool
+ mems_same_for_tbaa_p (rtx earlier, rtx later)
+ {
+   gcc_assert (MEM_P (earlier));
+   gcc_assert (MEM_P (later));
+ 
+   return ((MEM_ALIAS_SET (earlier) == MEM_ALIAS_SET (later)
+ 	   || alias_set_subset_of (MEM_ALIAS_SET (later),
+ 				   MEM_ALIAS_SET (earlier)))
+ 	  && (!MEM_EXPR (earlier)
+ 	      || refs_same_for_tbaa_p (MEM_EXPR (earlier), MEM_EXPR (later))));
+ }
+ 
  /* Returns a pointer to the alias set entry for ALIAS_SET, if there is
     such an entry, or NULL otherwise.  */
  
diff -Nrcpad gcc-11.3.0/gcc/alias.h gcc-11.4.0/gcc/alias.h
*** gcc-11.3.0/gcc/alias.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/alias.h	Mon May 29 08:46:29 2023
*************** tree reference_alias_ptr_type_1 (tree *)
*** 40,45 ****
--- 40,46 ----
  bool alias_ptr_types_compatible_p (tree, tree);
  int compare_base_decls (tree, tree);
  bool refs_same_for_tbaa_p (tree, tree);
+ bool mems_same_for_tbaa_p (rtx, rtx);
  
  /* This alias set can be used to force a memory to conflict with all
     other memories, creating a barrier across which no memory reference
diff -Nrcpad gcc-11.3.0/gcc/analyzer/ChangeLog gcc-11.4.0/gcc/analyzer/ChangeLog
*** gcc-11.3.0/gcc/analyzer/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/analyzer/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,24 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105365
+ 	PR analyzer/105366
+ 	* svalue.cc
+ 	(cmp_cst): Rename to...
+ 	(cmp_csts_same_type): ...this.  Convert all recursive calls to
+ 	calls to...
+ 	(cmp_csts_and_types): ....this new function.
+ 	(svalue::cmp_ptr): Update for renaming of cmp_cst
+ 
+ 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105252
+ 	* svalue.cc (cmp_cst): When comparing VECTOR_CSTs, compare the
+ 	types of the encoded elements before calling cmp_cst on them.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/analyzer/svalue.cc gcc-11.4.0/gcc/analyzer/svalue.cc
*** gcc-11.3.0/gcc/analyzer/svalue.cc	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/analyzer/svalue.cc	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 59,64 ****
--- 59,66 ----
  
  namespace ana {
  
+ static int cmp_csts_and_types (const_tree cst1, const_tree cst2);
+ 
  /* class svalue and its various subclasses.  */
  
  /* class svalue.  */
*************** svalue::implicitly_live_p (const svalue_
*** 276,282 ****
     of the same type.  */
  
  static int
! cmp_cst (const_tree cst1, const_tree cst2)
  {
    gcc_assert (TREE_TYPE (cst1) == TREE_TYPE (cst2));
    gcc_assert (TREE_CODE (cst1) == TREE_CODE (cst2));
--- 278,284 ----
     of the same type.  */
  
  static int
! cmp_csts_same_type (const_tree cst1, const_tree cst2)
  {
    gcc_assert (TREE_TYPE (cst1) == TREE_TYPE (cst2));
    gcc_assert (TREE_CODE (cst1) == TREE_CODE (cst2));
*************** cmp_cst (const_tree cst1, const_tree cst
*** 295,303 ****
  		     TREE_REAL_CST_PTR (cst2),
  		     sizeof (real_value));
      case COMPLEX_CST:
!       if (int cmp_real = cmp_cst (TREE_REALPART (cst1), TREE_REALPART (cst2)))
  	return cmp_real;
!       return cmp_cst (TREE_IMAGPART (cst1), TREE_IMAGPART (cst2));
      case VECTOR_CST:
        if (int cmp_log2_npatterns
  	    = ((int)VECTOR_CST_LOG2_NPATTERNS (cst1)
--- 297,306 ----
  		     TREE_REAL_CST_PTR (cst2),
  		     sizeof (real_value));
      case COMPLEX_CST:
!       if (int cmp_real = cmp_csts_and_types (TREE_REALPART (cst1),
! 					     TREE_REALPART (cst2)))
  	return cmp_real;
!       return cmp_csts_and_types (TREE_IMAGPART (cst1), TREE_IMAGPART (cst2));
      case VECTOR_CST:
        if (int cmp_log2_npatterns
  	    = ((int)VECTOR_CST_LOG2_NPATTERNS (cst1)
*************** cmp_cst (const_tree cst1, const_tree cst
*** 309,321 ****
  	return cmp_nelts_per_pattern;
        unsigned encoded_nelts = vector_cst_encoded_nelts (cst1);
        for (unsigned i = 0; i < encoded_nelts; i++)
! 	if (int el_cmp = cmp_cst (VECTOR_CST_ENCODED_ELT (cst1, i),
! 				  VECTOR_CST_ENCODED_ELT (cst2, i)))
! 	  return el_cmp;
        return 0;
      }
  }
  
  /* Comparator for imposing a deterministic order on svalues.  */
  
  int
--- 312,340 ----
  	return cmp_nelts_per_pattern;
        unsigned encoded_nelts = vector_cst_encoded_nelts (cst1);
        for (unsigned i = 0; i < encoded_nelts; i++)
! 	{
! 	  const_tree elt1 = VECTOR_CST_ENCODED_ELT (cst1, i);
! 	  const_tree elt2 = VECTOR_CST_ENCODED_ELT (cst2, i);
! 	  if (int el_cmp = cmp_csts_and_types (elt1, elt2))
! 	    return el_cmp;
! 	}
        return 0;
      }
  }
  
+ /* Comparator for imposing a deterministic order on constants that might
+    not be of the same type.  */
+ 
+ static int
+ cmp_csts_and_types (const_tree cst1, const_tree cst2)
+ {
+   int t1 = TYPE_UID (TREE_TYPE (cst1));
+   int t2 = TYPE_UID (TREE_TYPE (cst2));
+   if (int cmp_type = t1 - t2)
+     return cmp_type;
+   return cmp_csts_same_type (cst1, cst2);
+ }
+ 
  /* Comparator for imposing a deterministic order on svalues.  */
  
  int
*************** svalue::cmp_ptr (const svalue *sval1, co
*** 347,353 ****
  	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_cst (cst1, cst2);
        }
        break;
      case SK_UNKNOWN:
--- 366,372 ----
  	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:
diff -Nrcpad gcc-11.3.0/gcc/asan.c gcc-11.4.0/gcc/asan.c
*** gcc-11.3.0/gcc/asan.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/asan.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 64,69 ****
--- 64,70 ----
  #include "tree-inline.h"
  #include "tree-ssa.h"
  #include "tree-eh.h"
+ #include "diagnostic-core.h"
  
  /* AddressSanitizer finds out-of-bounds and use-after-free bugs
     with <2x slowdown on average.
*************** asan_redzone_buffer::emit_redzone_byte (
*** 1497,1506 ****
    HOST_WIDE_INT off
      = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length ();
    if (off == offset)
      {
!       /* Consecutive shadow memory byte.  */
!       m_shadow_bytes.safe_push (value);
!       flush_if_full ();
      }
    else
      {
--- 1498,1511 ----
    HOST_WIDE_INT off
      = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length ();
    if (off == offset)
+     /* Consecutive shadow memory byte.  */;
+   else if (offset < m_prev_offset + (HOST_WIDE_INT) (ASAN_SHADOW_GRANULARITY
+ 						     * RZ_BUFFER_SIZE)
+ 	   && !m_shadow_bytes.is_empty ())
      {
!       /* Shadow memory byte with a small gap.  */
!       for (; off < offset; off += ASAN_SHADOW_GRANULARITY)
! 	m_shadow_bytes.safe_push (0);
      }
    else
      {
*************** asan_redzone_buffer::emit_redzone_byte (
*** 1521,1529 ****
        m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode,
  				     diff >> ASAN_SHADOW_SHIFT);
        m_prev_offset = offset;
-       m_shadow_bytes.safe_push (value);
-       flush_if_full ();
      }
  }
  
  /* Emit RTX emission of the content of the buffer.  */
--- 1526,1534 ----
        m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode,
  				     diff >> ASAN_SHADOW_SHIFT);
        m_prev_offset = offset;
      }
+   m_shadow_bytes.safe_push (value);
+   flush_if_full ();
  }
  
  /* Emit RTX emission of the content of the buffer.  */
*************** asan_emit_stack_protection (rtx base, rt
*** 1801,1806 ****
--- 1806,1816 ----
    tree str_cst, decl, id;
    int use_after_return_class = -1;
  
+   /* Don't emit anything when doing error recovery, the assertions
+      might fail e.g. if a function had a frame offset overflow.  */
+   if (seen_error ())
+     return NULL;
+ 
    if (shadow_ptr_types[0] == NULL_TREE)
      asan_init_shadow_ptr_types ();
  
diff -Nrcpad gcc-11.3.0/gcc/bb-reorder.c gcc-11.4.0/gcc/bb-reorder.c
*** gcc-11.3.0/gcc/bb-reorder.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/bb-reorder.c	Mon May 29 08:46:29 2023
*************** fix_up_fall_thru_edges (void)
*** 1998,2003 ****
--- 1998,2004 ----
  		     becomes EDGE_CROSSING.  */
  
  		  fall_thru->flags &= ~EDGE_CROSSING;
+ 		  unsigned old_count = EDGE_COUNT (cur_bb->succs);
  		  basic_block new_bb = force_nonfallthru (fall_thru);
  
  		  if (new_bb)
*************** fix_up_fall_thru_edges (void)
*** 2009,2015 ****
  		      gcc_assert (BB_PARTITION (new_bb)
                                    == BB_PARTITION (cur_bb));
  
! 		      single_succ_edge (new_bb)->flags |= EDGE_CROSSING;
  		    }
  		  else
  		    {
--- 2010,2034 ----
  		      gcc_assert (BB_PARTITION (new_bb)
                                    == BB_PARTITION (cur_bb));
  
! 		      edge e = single_succ_edge (new_bb);
! 		      e->flags |= EDGE_CROSSING;
! 		      if (EDGE_COUNT (cur_bb->succs) > old_count)
! 			{
! 			  /* If asm goto has a crossing fallthrough edge
! 			     and at least one of the labels to the same bb,
! 			     force_nonfallthru can result in the fallthrough
! 			     edge being redirected and a new edge added for the
! 			     label or more labels to e->dest.  As we've
! 			     temporarily cleared EDGE_CROSSING flag on the
! 			     fallthrough edge, we need to restore it again.
! 			     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;
! 			}
  		    }
  		  else
  		    {
diff -Nrcpad gcc-11.3.0/gcc/brig/ChangeLog gcc-11.4.0/gcc/brig/ChangeLog
*** gcc-11.3.0/gcc/brig/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/brig/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/builtins.c gcc-11.4.0/gcc/builtins.c
*** gcc-11.3.0/gcc/builtins.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/builtins.c	Mon May 29 08:46:29 2023
*************** expand_builtin_prefetch (tree exp)
*** 2110,2116 ****
  static rtx
  get_memory_rtx (tree exp, tree len)
  {
!   tree orig_exp = exp;
    rtx addr, mem;
  
    /* When EXP is not resolved SAVE_EXPR, MEM_ATTRS can be still derived
--- 2110,2116 ----
  static rtx
  get_memory_rtx (tree exp, tree len)
  {
!   tree orig_exp = exp, base;
    rtx addr, mem;
  
    /* When EXP is not resolved SAVE_EXPR, MEM_ATTRS can be still derived
*************** get_memory_rtx (tree exp, tree len)
*** 2141,2150 ****
    if (is_gimple_mem_ref_addr (TREE_OPERAND (exp, 0)))
      set_mem_attributes (mem, exp, 0);
    else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
! 	   && (exp = get_base_address (TREE_OPERAND (TREE_OPERAND (exp, 0),
! 						     0))))
      {
!       exp = build_fold_addr_expr (exp);
        exp = fold_build2 (MEM_REF,
  			 build_array_type (char_type_node,
  					   build_range_type (sizetype,
--- 2141,2151 ----
    if (is_gimple_mem_ref_addr (TREE_OPERAND (exp, 0)))
      set_mem_attributes (mem, exp, 0);
    else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR
! 	   && (base = get_base_address (TREE_OPERAND (TREE_OPERAND (exp, 0),
! 						      0))))
      {
!       unsigned int align = get_pointer_alignment (TREE_OPERAND (exp, 0));
!       exp = build_fold_addr_expr (base);
        exp = fold_build2 (MEM_REF,
  			 build_array_type (char_type_node,
  					   build_range_type (sizetype,
*************** get_memory_rtx (tree exp, tree len)
*** 2152,2157 ****
--- 2153,2162 ----
  							     NULL)),
  			 exp, build_int_cst (ptr_type_node, 0));
        set_mem_attributes (mem, exp, 0);
+       /* Since we stripped parts make sure the offset is unknown and the
+ 	 alignment is computed from the original address.  */
+       clear_mem_offset (mem);
+       set_mem_align (mem, align);
      }
    set_mem_alias_set (mem, 0);
    return mem;
diff -Nrcpad gcc-11.3.0/gcc/c/ChangeLog gcc-11.4.0/gcc/c/ChangeLog
*** gcc-11.3.0/gcc/c/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/c/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,35 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107358
+ 	* c-typeck.c (build_binary_op): Pass operands before excess precision
+ 	promotions to scalar_to_vector call.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/106981
+ 	* c-typeck.c (c_tree_equal): Only strip NON_LVALUE_EXPRs at the
+ 	start.  For CONSTANT_CLASS_P or CASE_CONVERT: return false if t1 and
+ 	t2 have different types.
+ 
+ 2022-08-02  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-07-10  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR preprocessor/97498
+ 	* c-parser.c (c_parser_pragma): Set input_location to the
+ 	location of the pragma, rather than the start of the line.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/c/c-parser.c gcc-11.4.0/gcc/c/c-parser.c
*** gcc-11.3.0/gcc/c/c-parser.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/c/c-parser.c	Mon May 29 08:46:29 2023
*************** c_parser_pragma (c_parser *parser, enum
*** 12289,12294 ****
--- 12289,12295 ----
    unsigned int id;
    const char *construct = NULL;
  
+   input_location = c_parser_peek_token (parser)->location;
    id = c_parser_peek_token (parser)->pragma_kind;
    gcc_assert (id != PRAGMA_NONE);
  
diff -Nrcpad gcc-11.3.0/gcc/c/c-typeck.c gcc-11.4.0/gcc/c/c-typeck.c
*** gcc-11.3.0/gcc/c/c-typeck.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/c/c-typeck.c	Mon May 29 08:46:29 2023
*************** build_binary_op (location_t location, en
*** 11764,11771 ****
    if ((gnu_vector_type_p (type0) && code1 != VECTOR_TYPE)
        || (gnu_vector_type_p (type1) && code0 != VECTOR_TYPE))
      {
!       enum stv_conv convert_flag = scalar_to_vector (location, code, op0, op1,
! 						     true);
  
        switch (convert_flag)
  	{
--- 11764,11771 ----
    if ((gnu_vector_type_p (type0) && code1 != VECTOR_TYPE)
        || (gnu_vector_type_p (type1) && code0 != VECTOR_TYPE))
      {
!       enum stv_conv convert_flag = scalar_to_vector (location, code, orig_op0,
! 						     orig_op1, true);
  
        switch (convert_flag)
  	{
*************** c_tree_equal (tree t1, tree t2)
*** 15562,15575 ****
    if (!t1 || !t2)
      return false;
  
!   for (code1 = TREE_CODE (t1);
!        CONVERT_EXPR_CODE_P (code1)
! 	 || code1 == NON_LVALUE_EXPR;
         code1 = TREE_CODE (t1))
      t1 = TREE_OPERAND (t1, 0);
!   for (code2 = TREE_CODE (t2);
!        CONVERT_EXPR_CODE_P (code2)
! 	 || code2 == NON_LVALUE_EXPR;
         code2 = TREE_CODE (t2))
      t2 = TREE_OPERAND (t2, 0);
  
--- 15562,15571 ----
    if (!t1 || !t2)
      return false;
  
!   for (code1 = TREE_CODE (t1); code1 == NON_LVALUE_EXPR;
         code1 = TREE_CODE (t1))
      t1 = TREE_OPERAND (t1, 0);
!   for (code2 = TREE_CODE (t2); code2 == NON_LVALUE_EXPR;
         code2 = TREE_CODE (t2))
      t2 = TREE_OPERAND (t2, 0);
  
*************** c_tree_equal (tree t1, tree t2)
*** 15580,15585 ****
--- 15576,15584 ----
    if (code1 != code2)
      return false;
  
+   if (CONSTANT_CLASS_P (t1) && !comptypes (TREE_TYPE (t1), TREE_TYPE (t2)))
+     return false;
+ 
    switch (code1)
      {
      case INTEGER_CST:
*************** c_tree_equal (tree t1, tree t2)
*** 15699,15704 ****
--- 15698,15708 ----
  	return true;
        }
  
+     CASE_CONVERT:
+       if (!comptypes (TREE_TYPE (t1), TREE_TYPE (t2)))
+ 	return false;
+       break;
+ 
      default:
        break;
      }
diff -Nrcpad gcc-11.3.0/gcc/c-family/ChangeLog gcc-11.4.0/gcc/c-family/ChangeLog
*** gcc-11.3.0/gcc/c-family/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/c-family/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,65 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/109151
+ 	* c-ubsan.c (ubsan_instrument_division): Handle all scalar integral
+ 	types rather than just INTEGER_TYPE.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107465
+ 	* c-warn.c (warn_for_sign_compare): Don't warn for unset bits
+ 	above innermost zero extension of BIT_NOT_EXPR result.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107465
+ 	* c-warn.c (warn_for_sign_compare): If c_common_get_narrower
+ 	doesn't return a narrower result, use TYPE_UNSIGNED to set unsignedp0
+ 	and unsignedp1.  For the one BIT_NOT_EXPR case vs. one without,
+ 	only check for constant in the non-BIT_NOT_EXPR operand, use std::swap
+ 	to simplify the code, only warn if BIT_NOT_EXPR operand is extended
+ 	from narrower unsigned, fix up computation of mask for the constant
+ 	cases and for unsigned other operand case handle differently
+ 	BIT_NOT_EXPR result being sign vs. zero extended.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-23  Andrew Pinski  <apinski@marvell.com>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107127
+ 	* c-gimplify.c (c_genericize): Use walk_tree_without_duplicates
+ 	instead of walk_tree for c_genericize_control_r.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107163
+ 	* c-common.c (verify_tree): Don't use sequenced handling
+ 	for COMPONENT_REF.
+ 
+ 2022-04-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/105304
+ 	* c-common.c (verify_tree) [restart]: Move up to before the
+ 	NULL test.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/c-family/c-common.c gcc-11.4.0/gcc/c-family/c-common.c
*** gcc-11.3.0/gcc/c-family/c-common.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/c-family/c-common.c	Mon May 29 08:46:29 2023
*************** verify_tree (tree x, struct tlist **pbef
*** 1854,1865 ****
    enum tree_code code;
    enum tree_code_class cl;
  
    /* X may be NULL if it is the operand of an empty statement expression
       ({ }).  */
    if (x == NULL)
      return;
  
-  restart:
    code = TREE_CODE (x);
    cl = TREE_CODE_CLASS (code);
  
--- 1854,1865 ----
    enum tree_code code;
    enum tree_code_class cl;
  
+  restart:
    /* X may be NULL if it is the operand of an empty statement expression
       ({ }).  */
    if (x == NULL)
      return;
  
    code = TREE_CODE (x);
    cl = TREE_CODE_CLASS (code);
  
*************** verify_tree (tree x, struct tlist **pbef
*** 2023,2034 ****
  
      case LSHIFT_EXPR:
      case RSHIFT_EXPR:
-     case COMPONENT_REF:
      case ARRAY_REF:
        if (cxx_dialect >= cxx17)
  	goto sequenced_binary;
        goto do_default;
  
      default:
      do_default:
        /* For other expressions, simply recurse on their operands.
--- 2023,2039 ----
  
      case LSHIFT_EXPR:
      case RSHIFT_EXPR:
      case ARRAY_REF:
        if (cxx_dialect >= cxx17)
  	goto sequenced_binary;
        goto do_default;
  
+     case COMPONENT_REF:
+       /* Treat as unary, the other operands aren't evaluated.  */
+       x = TREE_OPERAND (x, 0);
+       writer = 0;
+       goto restart;
+ 
      default:
      do_default:
        /* For other expressions, simply recurse on their operands.
diff -Nrcpad gcc-11.3.0/gcc/c-family/c-gimplify.c gcc-11.4.0/gcc/c-family/c-gimplify.c
*** gcc-11.3.0/gcc/c-family/c-gimplify.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/c-family/c-gimplify.c	Mon May 29 08:46:29 2023
*************** c_genericize (tree fndecl)
*** 570,577 ****
        bc_state_t save_state;
        push_cfun (DECL_STRUCT_FUNCTION (fndecl));
        save_bc_state (&save_state);
!       walk_tree (&DECL_SAVED_TREE (fndecl), c_genericize_control_r,
! 		 NULL, NULL);
        restore_bc_state (&save_state);
        pop_cfun ();
      }
--- 570,577 ----
        bc_state_t save_state;
        push_cfun (DECL_STRUCT_FUNCTION (fndecl));
        save_bc_state (&save_state);
!       walk_tree_without_duplicates (&DECL_SAVED_TREE (fndecl),
! 				    c_genericize_control_r, NULL);
        restore_bc_state (&save_state);
        pop_cfun ();
      }
diff -Nrcpad gcc-11.3.0/gcc/c-family/c-ubsan.c gcc-11.4.0/gcc/c-family/c-ubsan.c
*** gcc-11.3.0/gcc/c-family/c-ubsan.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/c-family/c-ubsan.c	Mon May 29 08:46:29 2023
*************** ubsan_instrument_division (location_t lo
*** 53,59 ****
    op0 = unshare_expr (op0);
    op1 = unshare_expr (op1);
  
!   if (TREE_CODE (type) == INTEGER_TYPE
        && sanitize_flags_p (SANITIZE_DIVIDE))
      t = fold_build2 (EQ_EXPR, boolean_type_node,
  		     op1, build_int_cst (type, 0));
--- 53,59 ----
    op0 = unshare_expr (op0);
    op1 = unshare_expr (op1);
  
!   if (INTEGRAL_TYPE_P (type)
        && sanitize_flags_p (SANITIZE_DIVIDE))
      t = fold_build2 (EQ_EXPR, boolean_type_node,
  		     op1, build_int_cst (type, 0));
*************** ubsan_instrument_division (location_t lo
*** 68,74 ****
      return NULL_TREE;
  
    /* We check INT_MIN / -1 only for signed types.  */
!   if (TREE_CODE (type) == INTEGER_TYPE
        && sanitize_flags_p (SANITIZE_DIVIDE)
        && !TYPE_UNSIGNED (type))
      {
--- 68,74 ----
      return NULL_TREE;
  
    /* We check INT_MIN / -1 only for signed types.  */
!   if (INTEGRAL_TYPE_P (type)
        && sanitize_flags_p (SANITIZE_DIVIDE)
        && !TYPE_UNSIGNED (type))
      {
diff -Nrcpad gcc-11.3.0/gcc/c-family/c-warn.c gcc-11.4.0/gcc/c-family/c-warn.c
*** gcc-11.3.0/gcc/c-family/c-warn.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/c-family/c-warn.c	Mon May 29 08:46:29 2023
*************** warn_for_sign_compare (location_t locati
*** 2330,2371 ****
       have all bits set that are set in the ~ operand when it is
       extended.  */
  
!   op0 = c_common_get_narrower (op0, &unsignedp0);
!   op1 = c_common_get_narrower (op1, &unsignedp1);
  
    if ((TREE_CODE (op0) == BIT_NOT_EXPR)
        ^ (TREE_CODE (op1) == BIT_NOT_EXPR))
      {
-       if (TREE_CODE (op0) == BIT_NOT_EXPR)
- 	op0 = c_common_get_narrower (TREE_OPERAND (op0, 0), &unsignedp0);
        if (TREE_CODE (op1) == BIT_NOT_EXPR)
- 	op1 = c_common_get_narrower (TREE_OPERAND (op1, 0), &unsignedp1);
- 
-       if (tree_fits_shwi_p (op0) || tree_fits_shwi_p (op1))
  	{
! 	  tree primop;
! 	  HOST_WIDE_INT constant, mask;
! 	  int unsignedp;
! 	  unsigned int bits;
  
! 	  if (tree_fits_shwi_p (op0))
! 	    {
! 	      primop = op1;
! 	      unsignedp = unsignedp1;
! 	      constant = tree_to_shwi (op0);
! 	    }
! 	  else
! 	    {
! 	      primop = op0;
! 	      unsignedp = unsignedp0;
! 	      constant = tree_to_shwi (op1);
! 	    }
  
! 	  bits = TYPE_PRECISION (TREE_TYPE (primop));
! 	  if (bits < TYPE_PRECISION (result_type)
! 	      && bits < HOST_BITS_PER_LONG && unsignedp)
  	    {
! 	      mask = HOST_WIDE_INT_M1U << bits;
  	      if ((mask & constant) != mask)
  		{
  		  if (constant == 0)
--- 2330,2392 ----
       have all bits set that are set in the ~ operand when it is
       extended.  */
  
!   /* bits0 is the bit index of op0 extended to result_type, which will
!      be always 0 and so all bits above it.  If there is a BIT_NOT_EXPR
!      in that operand possibly sign or zero extended to op0 and then
!      possibly further sign or zero extended to result_type, bits0 will
!      be the precision of result type if all the extensions involved
!      if any are sign extensions, and will be the place of the innermost
!      zero extension otherwise.  We warn only if BIT_NOT_EXPR's operand is
!      zero extended from some even smaller precision, in that case after
!      BIT_NOT_EXPR some bits below bits0 will be guaranteed to be set.
!      Similarly for bits1.  */
!   int bits0 = TYPE_PRECISION (result_type);
!   if (TYPE_UNSIGNED (TREE_TYPE (op0)))
!     bits0 = TYPE_PRECISION (TREE_TYPE (op0));
!   tree arg0 = c_common_get_narrower (op0, &unsignedp0);
!   if (TYPE_PRECISION (TREE_TYPE (arg0)) == TYPE_PRECISION (TREE_TYPE (op0)))
!     unsignedp0 = TYPE_UNSIGNED (TREE_TYPE (op0));
!   else if (unsignedp0)
!     bits0 = TYPE_PRECISION (TREE_TYPE (arg0));
!   op0 = arg0;
!   int bits1 = TYPE_PRECISION (result_type);
!   if (TYPE_UNSIGNED (TREE_TYPE (op1)))
!     bits1 = TYPE_PRECISION (TREE_TYPE (op1));
!   tree arg1 = c_common_get_narrower (op1, &unsignedp1);
!   if (TYPE_PRECISION (TREE_TYPE (arg1)) == TYPE_PRECISION (TREE_TYPE (op1)))
!     unsignedp1 = TYPE_UNSIGNED (TREE_TYPE (op1));
!   else if (unsignedp1)
!     bits1 = TYPE_PRECISION (TREE_TYPE (arg1));
!   op1 = arg1;
  
    if ((TREE_CODE (op0) == BIT_NOT_EXPR)
        ^ (TREE_CODE (op1) == BIT_NOT_EXPR))
      {
        if (TREE_CODE (op1) == BIT_NOT_EXPR)
  	{
! 	  std::swap (op0, op1);
! 	  std::swap (unsignedp0, unsignedp1);
! 	  std::swap (bits0, bits1);
! 	}
  
!       int unsignedp;
!       arg0 = c_common_get_narrower (TREE_OPERAND (op0, 0), &unsignedp);
  
!       /* For these warnings, we need BIT_NOT_EXPR operand to be
! 	 zero extended from narrower type to BIT_NOT_EXPR's type.
! 	 In that case, all those bits above the narrower's type
! 	 are after BIT_NOT_EXPR set to 1.  */
!       if (tree_fits_shwi_p (op1))
! 	{
! 	  HOST_WIDE_INT constant = tree_to_shwi (op1);
! 	  unsigned int bits = TYPE_PRECISION (TREE_TYPE (arg0));
! 	  if (unsignedp
! 	      && bits < TYPE_PRECISION (TREE_TYPE (op0))
! 	      && bits < HOST_BITS_PER_WIDE_INT)
  	    {
! 	      HOST_WIDE_INT mask = HOST_WIDE_INT_M1U << bits;
! 	      if (bits0 < HOST_BITS_PER_WIDE_INT)
! 		mask &= ~(HOST_WIDE_INT_M1U << bits0);
  	      if ((mask & constant) != mask)
  		{
  		  if (constant == 0)
*************** warn_for_sign_compare (location_t locati
*** 2379,2389 ****
  		}
  	    }
  	}
!       else if (unsignedp0 && unsignedp1
! 	       && (TYPE_PRECISION (TREE_TYPE (op0))
! 		   < TYPE_PRECISION (result_type))
! 	       && (TYPE_PRECISION (TREE_TYPE (op1))
! 		   < TYPE_PRECISION (result_type)))
  	warning_at (location, OPT_Wsign_compare,
  		    "comparison of promoted bitwise complement "
  		    "of an unsigned value with unsigned");
--- 2400,2410 ----
  		}
  	    }
  	}
!       else if ((TYPE_PRECISION (TREE_TYPE (arg0))
! 		< TYPE_PRECISION (TREE_TYPE (op0)))
! 	       && unsignedp
! 	       && unsignedp1
! 	       && TYPE_PRECISION (TREE_TYPE (op1)) < bits0)
  	warning_at (location, OPT_Wsign_compare,
  		    "comparison of promoted bitwise complement "
  		    "of an unsigned value with unsigned");
diff -Nrcpad gcc-11.3.0/gcc/cfgbuild.c gcc-11.4.0/gcc/cfgbuild.c
*** gcc-11.3.0/gcc/cfgbuild.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cfgbuild.c	Mon May 29 08:46:29 2023
*************** find_bb_boundaries (basic_block bb)
*** 445,450 ****
--- 445,451 ----
    rtx_insn *debug_insn = NULL;
    edge fallthru = NULL;
    bool skip_purge;
+   bool seen_note_after_debug = false;
  
    if (insn == end)
      return;
*************** find_bb_boundaries (basic_block bb)
*** 492,498 ****
        if (code == DEBUG_INSN)
  	{
  	  if (flow_transfer_insn && !debug_insn)
! 	    debug_insn = insn;
  	}
        /* In case we've previously seen an insn that effects a control
  	 flow transfer, split the block.  */
--- 493,502 ----
        if (code == DEBUG_INSN)
  	{
  	  if (flow_transfer_insn && !debug_insn)
! 	    {
! 	      debug_insn = insn;
! 	      seen_note_after_debug = false;
! 	    }
  	}
        /* In case we've previously seen an insn that effects a control
  	 flow transfer, split the block.  */
*************** find_bb_boundaries (basic_block bb)
*** 506,512 ****
  	     insn instead of before the non-debug insn, so that the debug
  	     insns are not lost.  */
  	  if (debug_insn && code != CODE_LABEL && code != BARRIER)
! 	    prev = PREV_INSN (debug_insn);
  	  fallthru = split_block (bb, prev);
  	  if (flow_transfer_insn)
  	    {
--- 510,549 ----
  	     insn instead of before the non-debug insn, so that the debug
  	     insns are not lost.  */
  	  if (debug_insn && code != CODE_LABEL && code != BARRIER)
! 	    {
! 	      prev = PREV_INSN (debug_insn);
! 	      if (seen_note_after_debug)
! 		{
! 		  /* Though, if there are NOTEs intermixed with DEBUG_INSNs,
! 		     move the NOTEs before the DEBUG_INSNs and split after
! 		     the last NOTE.  */
! 		  rtx_insn *first = NULL, *last = NULL;
! 		  for (x = debug_insn; x != insn; x = NEXT_INSN (x))
! 		    {
! 		      if (NOTE_P (x))
! 			{
! 			  if (first == NULL)
! 			    first = x;
! 			  last = x;
! 			}
! 		      else
! 			{
! 			  gcc_assert (DEBUG_INSN_P (x));
! 			  if (first)
! 			    {
! 			      reorder_insns_nobb (first, last, prev);
! 			      prev = last;
! 			      first = last = NULL;
! 			    }
! 			}
! 		    }
! 		  if (first)
! 		    {
! 		      reorder_insns_nobb (first, last, prev);
! 		      prev = last;
! 		    }
! 		}
! 	    }
  	  fallthru = split_block (bb, prev);
  	  if (flow_transfer_insn)
  	    {
*************** find_bb_boundaries (basic_block bb)
*** 547,552 ****
--- 584,597 ----
  	    flow_transfer_insn = prev_nonnote_nondebug_insn_bb (insn);
  	  debug_insn = NULL;
  	}
+       else if (debug_insn)
+ 	{
+ 	  if (code == NOTE)
+ 	    seen_note_after_debug = true;
+ 	  else
+ 	    /* Jump tables.  */
+ 	    debug_insn = NULL;
+ 	}
  
        if (control_flow_insn_p (insn))
  	flow_transfer_insn = insn;
diff -Nrcpad gcc-11.3.0/gcc/cfgcleanup.c gcc-11.4.0/gcc/cfgcleanup.c
*** gcc-11.3.0/gcc/cfgcleanup.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cfgcleanup.c	Mon May 29 08:46:29 2023
*************** mark_effect (rtx exp, regset nonequal)
*** 208,214 ****
        return false;
  
      case SET:
!       if (rtx_equal_for_cselib_p (SET_DEST (exp), SET_SRC (exp)))
  	return false;
        dest = SET_DEST (exp);
        if (dest == pc_rtx)
--- 208,214 ----
        return false;
  
      case SET:
!       if (cselib_redundant_set_p (exp))
  	return false;
        dest = SET_DEST (exp);
        if (dest == pc_rtx)
diff -Nrcpad gcc-11.3.0/gcc/cfgexpand.c gcc-11.4.0/gcc/cfgexpand.c
*** gcc-11.3.0/gcc/cfgexpand.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cfgexpand.c	Mon May 29 08:46:29 2023
*************** expand_debug_expr (tree exp)
*** 5356,5361 ****
--- 5356,5365 ----
      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:
*************** expand_debug_expr (tree exp)
*** 5392,5397 ****
--- 5396,5403 ----
      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))
  	{
*************** expand_debug_expr (tree exp)
*** 5404,5409 ****
--- 5410,5419 ----
  	    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;
diff -Nrcpad gcc-11.3.0/gcc/cfgrtl.c gcc-11.4.0/gcc/cfgrtl.c
*** gcc-11.3.0/gcc/cfgrtl.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cfgrtl.c	Mon May 29 08:46:29 2023
*************** delete_insn_and_edges (rtx_insn *insn)
*** 233,239 ****
  {
    bool purge = false;
  
!   if (INSN_P (insn) && BLOCK_FOR_INSN (insn))
      {
        basic_block bb = BLOCK_FOR_INSN (insn);
        if (BB_END (bb) == insn)
--- 233,239 ----
  {
    bool purge = false;
  
!   if (NONDEBUG_INSN_P (insn) && BLOCK_FOR_INSN (insn))
      {
        basic_block bb = BLOCK_FOR_INSN (insn);
        if (BB_END (bb) == insn)
diff -Nrcpad gcc-11.3.0/gcc/cgraph.c gcc-11.4.0/gcc/cgraph.c
*** gcc-11.3.0/gcc/cgraph.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cgraph.c	Mon May 29 08:46:29 2023
*************** cgraph_node::remove (void)
*** 1906,1912 ****
    if (prev_sibling_clone)
      prev_sibling_clone->next_sibling_clone = next_sibling_clone;
    else if (clone_of)
!     clone_of->clones = next_sibling_clone;
    if (next_sibling_clone)
      next_sibling_clone->prev_sibling_clone = prev_sibling_clone;
    if (clones)
--- 1906,1926 ----
    if (prev_sibling_clone)
      prev_sibling_clone->next_sibling_clone = next_sibling_clone;
    else if (clone_of)
!     {
!       clone_of->clones = next_sibling_clone;
!       if (!clones)
! 	{
! 	  bool need_body = false;
! 	  for (cgraph_node *n = clone_of; n; n = n->clone_of)
! 	    if (n->analyzed || n->clones)
! 	      {
! 		need_body = true;
! 		break;
! 	      }
! 	  if (!need_body)
! 	    clone_of->release_body ();
! 	}
!     }
    if (next_sibling_clone)
      next_sibling_clone->prev_sibling_clone = prev_sibling_clone;
    if (clones)
diff -Nrcpad gcc-11.3.0/gcc/cgraphclones.c gcc-11.4.0/gcc/cgraphclones.c
*** gcc-11.3.0/gcc/cgraphclones.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cgraphclones.c	Mon May 29 08:46:29 2023
*************** duplicate_thunk_for_node (cgraph_node *t
*** 217,223 ****
        body_adj.modify_formal_parameters ();
      }
    else
!     new_decl = copy_node (thunk->decl);
  
    gcc_checking_assert (!DECL_STRUCT_FUNCTION (new_decl));
    gcc_checking_assert (!DECL_INITIAL (new_decl));
--- 217,233 ----
        body_adj.modify_formal_parameters ();
      }
    else
!     {
!       new_decl = copy_node (thunk->decl);
!       for (tree *arg = &DECL_ARGUMENTS (new_decl);
! 	   *arg; arg = &DECL_CHAIN (*arg))
! 	{
! 	  tree next = DECL_CHAIN (*arg);
! 	  *arg = copy_node (*arg);
! 	  DECL_CONTEXT (*arg) = new_decl;
! 	  DECL_CHAIN (*arg) = next;
! 	}
!     }
  
    gcc_checking_assert (!DECL_STRUCT_FUNCTION (new_decl));
    gcc_checking_assert (!DECL_INITIAL (new_decl));
diff -Nrcpad gcc-11.3.0/gcc/cgraphunit.c gcc-11.4.0/gcc/cgraphunit.c
*** gcc-11.3.0/gcc/cgraphunit.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/cgraphunit.c	Mon May 29 08:46:29 2023
*************** cgraph_node::assemble_thunks_and_aliases
*** 1749,1755 ****
  	cgraph_node *thunk = e->caller;
  
  	e = e->next_caller;
! 	expand_thunk (thunk, true, false);
  	thunk->assemble_thunks_and_aliases ();
        }
      else
--- 1749,1755 ----
  	cgraph_node *thunk = e->caller;
  
  	e = e->next_caller;
! 	expand_thunk (thunk, !rtl_dump_and_exit, false);
  	thunk->assemble_thunks_and_aliases ();
        }
      else
diff -Nrcpad gcc-11.3.0/gcc/common/config/i386/cpuinfo.h gcc-11.4.0/gcc/common/config/i386/cpuinfo.h
*** gcc-11.3.0/gcc/common/config/i386/cpuinfo.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/common/config/i386/cpuinfo.h	Mon May 29 08:46:29 2023
*************** get_available_features (struct __process
*** 606,613 ****
      set_feature (FEATURE_MOVBE);
    if (ecx & bit_AES)
      set_feature (FEATURE_AES);
-   if (ecx & bit_F16C)
-     set_feature (FEATURE_F16C);
    if (ecx & bit_RDRND)
      set_feature (FEATURE_RDRND);
    if (ecx & bit_XSAVE)
--- 606,611 ----
*************** get_available_features (struct __process
*** 618,623 ****
--- 616,623 ----
  	set_feature (FEATURE_AVX);
        if (ecx & bit_FMA)
  	set_feature (FEATURE_FMA);
+       if (ecx & bit_F16C)
+ 	set_feature (FEATURE_F16C);
      }
  
    /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */
*************** get_available_features (struct __process
*** 638,643 ****
--- 638,645 ----
  	    set_feature (FEATURE_AVX2);
  	  if (ecx & bit_VPCLMULQDQ)
  	    set_feature (FEATURE_VPCLMULQDQ);
+ 	  if (ecx & bit_VAES)
+ 	    set_feature (FEATURE_VAES);
  	}
        if (ebx & bit_BMI2)
  	set_feature (FEATURE_BMI2);
*************** get_available_features (struct __process
*** 660,667 ****
  	set_feature (FEATURE_PKU);
        if (ecx & bit_RDPID)
  	set_feature (FEATURE_RDPID);
-       if (ecx & bit_VAES)
- 	set_feature (FEATURE_VAES);
        if (ecx & bit_GFNI)
  	set_feature (FEATURE_GFNI);
        if (ecx & bit_MOVDIRI)
--- 662,667 ----
*************** cpu_indicator_init (struct __processor_m
*** 882,887 ****
--- 882,891 ----
    extended_model = (eax >> 12) & 0xf0;
    extended_family = (eax >> 20) & 0xff;
  
+   /* Find available features. */
+   get_available_features (cpu_model, cpu_model2, cpu_features2,
+ 			  ecx, edx);
+ 
    if (vendor == signature_INTEL_ebx)
      {
        /* Adjust model and family for Intel CPUS. */
*************** cpu_indicator_init (struct __processor_m
*** 896,904 ****
        cpu_model2->__cpu_family = family;
        cpu_model2->__cpu_model = model;
  
-       /* Find available features. */
-       get_available_features (cpu_model, cpu_model2, cpu_features2,
- 			      ecx, edx);
        /* Get CPU type.  */
        get_intel_cpu (cpu_model, cpu_model2, cpu_features2);
        cpu_model->__cpu_vendor = VENDOR_INTEL;
--- 900,905 ----
*************** cpu_indicator_init (struct __processor_m
*** 915,923 ****
        cpu_model2->__cpu_family = family;
        cpu_model2->__cpu_model = model;
  
-       /* Find available features. */
-       get_available_features (cpu_model, cpu_model2, cpu_features2,
- 			      ecx, edx);
        /* Get CPU type.  */
        get_amd_cpu (cpu_model, cpu_model2, cpu_features2);
        cpu_model->__cpu_vendor = VENDOR_AMD;
--- 916,921 ----
diff -Nrcpad gcc-11.3.0/gcc/common/config/i386/i386-cpuinfo.h gcc-11.4.0/gcc/common/config/i386/i386-cpuinfo.h
*** gcc-11.3.0/gcc/common/config/i386/i386-cpuinfo.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/common/config/i386/i386-cpuinfo.h	Mon May 29 08:46:29 2023
*************** enum processor_vendor
*** 33,40 ****
    VENDOR_CENTAUR,
    VENDOR_CYRIX,
    VENDOR_NSC,
!   BUILTIN_VENDOR_MAX = VENDOR_OTHER,
!   VENDOR_MAX
  };
  
  /* Any new types or subtypes have to be inserted at the end. */
--- 33,42 ----
    VENDOR_CENTAUR,
    VENDOR_CYRIX,
    VENDOR_NSC,
! 
!   /* Maximum values must be at the end of this enum.  */
!   VENDOR_MAX,
!   BUILTIN_VENDOR_MAX = VENDOR_OTHER
  };
  
  /* Any new types or subtypes have to be inserted at the end. */
diff -Nrcpad gcc-11.3.0/gcc/common.opt gcc-11.4.0/gcc/common.opt
*** gcc-11.3.0/gcc/common.opt	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/common.opt	Mon May 29 08:46:29 2023
*************** static-libgfortran
*** 3446,3451 ****
--- 3446,3455 ----
  Driver
  ; Documented for Fortran, but always accepted by driver.
  
+ static-libphobos
+ Driver
+ ; Documented for D, but always accepted by driver.
+ 
  static-libstdc++
  Driver
  
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-builtins.c gcc-11.4.0/gcc/config/aarch64/aarch64-builtins.c
*** gcc-11.3.0/gcc/config/aarch64/aarch64-builtins.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-builtins.c	Mon May 29 08:46:29 2023
*************** enum aarch64_builtins
*** 523,528 ****
--- 523,534 ----
    AARCH64_MEMTAG_BUILTIN_SET_TAG,
    AARCH64_MEMTAG_BUILTIN_GET_TAG,
    AARCH64_MEMTAG_BUILTIN_END,
+   AARCH64_REV16,
+   AARCH64_REV16L,
+   AARCH64_REV16LL,
+   AARCH64_RBIT,
+   AARCH64_RBITL,
+   AARCH64_RBITLL,
    AARCH64_BUILTIN_MAX
  };
  
*************** aarch64_init_fpsr_fpcr_builtins (void)
*** 1421,1426 ****
--- 1427,1463 ----
  				   AARCH64_BUILTIN_SET_FPSR64);
  }
  
+ static void
+ aarch64_init_data_intrinsics (void)
+ {
+   tree uint32_fntype = build_function_type_list (uint32_type_node,
+                                                 uint32_type_node, NULL_TREE);
+   tree ulong_fntype = build_function_type_list (long_unsigned_type_node,
+ 						long_unsigned_type_node,
+ 						NULL_TREE);
+   tree uint64_fntype = build_function_type_list (uint64_type_node,
+ 						 uint64_type_node, NULL_TREE);
+   aarch64_builtin_decls[AARCH64_REV16]
+     = aarch64_general_add_builtin ("__builtin_aarch64_rev16", uint32_fntype,
+ 				   AARCH64_REV16);
+   aarch64_builtin_decls[AARCH64_REV16L]
+     = aarch64_general_add_builtin ("__builtin_aarch64_rev16l", ulong_fntype,
+ 				   AARCH64_REV16L);
+   aarch64_builtin_decls[AARCH64_REV16LL]
+     = aarch64_general_add_builtin ("__builtin_aarch64_rev16ll", uint64_fntype,
+ 				   AARCH64_REV16LL);
+   aarch64_builtin_decls[AARCH64_RBIT]
+     = aarch64_general_add_builtin ("__builtin_aarch64_rbit", uint32_fntype,
+ 				   AARCH64_RBIT);
+   aarch64_builtin_decls[AARCH64_RBITL]
+     = aarch64_general_add_builtin ("__builtin_aarch64_rbitl", ulong_fntype,
+ 				   AARCH64_RBITL);
+   aarch64_builtin_decls[AARCH64_RBITLL]
+     = aarch64_general_add_builtin ("__builtin_aarch64_rbitll", uint64_fntype,
+ 				   AARCH64_RBITLL);
+ }
+ 
+ 
  /* Initialize all builtins in the AARCH64_BUILTIN_GENERAL group.  */
  
  void
*************** aarch64_general_init_builtins (void)
*** 1438,1443 ****
--- 1475,1481 ----
    aarch64_init_crc32_builtins ();
    aarch64_init_builtin_rsqrt ();
    aarch64_init_rng_builtins ();
+   aarch64_init_data_intrinsics ();
  
    tree ftype_jcvt
      = build_function_type_list (intSI_type_node, double_type_node, NULL);
*************** aarch64_expand_builtin_memtag (int fcode
*** 2032,2037 ****
--- 2070,2107 ----
    return target;
  }
  
+ /* Function to expand an expression EXP which calls one of the ACLE Data
+    Intrinsic builtins FCODE with the result going to TARGET.  */
+ static rtx
+ aarch64_expand_builtin_data_intrinsic (unsigned int fcode, tree exp, rtx target)
+ {
+   expand_operand ops[2];
+   machine_mode mode = GET_MODE (target);
+   create_output_operand (&ops[0], target, mode);
+   create_input_operand (&ops[1], expand_normal (CALL_EXPR_ARG (exp, 0)), mode);
+   enum insn_code icode;
+ 
+   switch (fcode)
+     {
+     case AARCH64_REV16:
+     case AARCH64_REV16L:
+     case AARCH64_REV16LL:
+       icode = code_for_aarch64_rev16 (mode);
+       break;
+     case AARCH64_RBIT:
+     case AARCH64_RBITL:
+     case AARCH64_RBITLL:
+       icode = code_for_aarch64_rbit (mode);
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   expand_insn (icode, 2, ops);
+   return ops[0].value;
+ }
+ 
+ 
  /* Expand an expression EXP as fpsr or fpcr setter (depending on
     UNSPEC) using MODE.  */
  static void
*************** aarch64_general_expand_builtin (unsigned
*** 2184,2189 ****
--- 2254,2263 ----
        && fcode <= AARCH64_MEMTAG_BUILTIN_END)
      return aarch64_expand_builtin_memtag (fcode, exp, target);
  
+   if (fcode >= AARCH64_REV16
+       && fcode <= AARCH64_RBITLL)
+     return aarch64_expand_builtin_data_intrinsic (fcode, exp, target);
+ 
    gcc_unreachable ();
  }
  
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-c.c gcc-11.4.0/gcc/config/aarch64/aarch64-c.c
*** gcc-11.3.0/gcc/config/aarch64/aarch64-c.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-c.c	Mon May 29 08:46:29 2023
*************** aarch64_update_cpp_builtins (cpp_reader
*** 200,205 ****
--- 200,206 ----
  			"__ARM_FEATURE_BF16_VECTOR_ARITHMETIC", pfile);
    aarch64_def_or_undef (TARGET_BF16_FP,
  			"__ARM_FEATURE_BF16_SCALAR_ARITHMETIC", pfile);
+   aarch64_def_or_undef (AARCH64_ISA_RCPC, "__ARM_FEATURE_RCPC", 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
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-cores.def gcc-11.4.0/gcc/config/aarch64/aarch64-cores.def
*** gcc-11.3.0/gcc/config/aarch64/aarch64-cores.def	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-cores.def	Mon May 29 08:46:29 2023
*************** AARCH64_CORE("thunderxt81",   thunderxt8
*** 69,75 ****
  AARCH64_CORE("thunderxt83",   thunderxt83,   thunderx,  8A,  AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx,  0x43, 0x0a3, -1)
  
  /* Ampere Computing ('\xC0') cores. */
! AARCH64_CORE("ampere1", ampere1, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6, ampere1, 0xC0, 0xac3, -1)
  /* Do not swap around "emag" and "xgene1",
     this order is required to handle variant correctly. */
  AARCH64_CORE("emag",        emag,      xgene1,    8A,  AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, emag, 0x50, 0x000, 3)
--- 69,76 ----
  AARCH64_CORE("thunderxt83",   thunderxt83,   thunderx,  8A,  AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx,  0x43, 0x0a3, -1)
  
  /* Ampere Computing ('\xC0') cores. */
! AARCH64_CORE("ampere1", ampere1, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6 | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_RNG | AARCH64_FL_SHA3, ampere1, 0xC0, 0xac3, -1)
! AARCH64_CORE("ampere1a", ampere1a, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6 | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_RNG | AARCH64_FL_SHA3 | AARCH64_FL_MEMTAG, ampere1a, 0xC0, 0xac4, -1)
  /* Do not swap around "emag" and "xgene1",
     this order is required to handle variant correctly. */
  AARCH64_CORE("emag",        emag,      xgene1,    8A,  AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, emag, 0x50, 0x000, 3)
*************** AARCH64_CORE("tsv110",  tsv110, tsv110,
*** 133,152 ****
  /* ARMv8.3-A Architecture Processors.  */
  
  /* Marvell cores (TX3). */
! AARCH64_CORE("thunderx3t110",  thunderx3t110,  thunderx3t110, 8_3A,  AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC | AARCH64_FL_SM4 | AARCH64_FL_SHA3 | AARCH64_FL_F16FML | AARCH64_FL_RCPC8_4, thunderx3t110, 0x43, 0x0b8, 0x0a)
  
  /* ARMv8.4-A Architecture Processors.  */
  
  /* Arm ('A') cores.  */
! AARCH64_CORE("zeus", zeus, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1)
! AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1)
! AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoverse512tvb, INVALID_IMP, INVALID_CORE, -1)
  
  /* Qualcomm ('Q') cores. */
! AARCH64_CORE("saphira",     saphira,    saphira,    8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC, saphira,   0x51, 0xC01, -1)
  
  /* Armv8.5-A Architecture Processors.  */
  AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_RNG | AARCH64_FL_MEMTAG, neoversen2, 0x41, 0xd49, -1)
  
  /* ARMv8-A big.LITTLE implementations.  */
  
--- 134,154 ----
  /* ARMv8.3-A Architecture Processors.  */
  
  /* Marvell cores (TX3). */
! AARCH64_CORE("thunderx3t110",  thunderx3t110,  thunderx3t110, 8_3A,  AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_CRYPTO | AARCH64_FL_SM4 | AARCH64_FL_SHA3 | AARCH64_FL_F16FML | AARCH64_FL_RCPC8_4, thunderx3t110, 0x43, 0x0b8, 0x0a)
  
  /* ARMv8.4-A Architecture Processors.  */
  
  /* Arm ('A') cores.  */
! AARCH64_CORE("zeus", zeus, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1)
! AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1)
! AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoverse512tvb, INVALID_IMP, INVALID_CORE, -1)
  
  /* Qualcomm ('Q') cores. */
! AARCH64_CORE("saphira",     saphira,    saphira,    8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO, saphira,   0x51, 0xC01, -1)
  
  /* Armv8.5-A Architecture Processors.  */
  AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_RNG | AARCH64_FL_MEMTAG, neoversen2, 0x41, 0xd49, -1)
+ AARCH64_CORE("neoverse-v2", neoversev2, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_RNG | AARCH64_FL_MEMTAG, neoverse512tvb, 0x41, 0xd4f, -1)
  
  /* ARMv8-A big.LITTLE implementations.  */
  
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-cost-tables.h gcc-11.4.0/gcc/config/aarch64/aarch64-cost-tables.h
*** gcc-11.3.0/gcc/config/aarch64/aarch64-cost-tables.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-cost-tables.h	Mon May 29 08:46:29 2023
*************** const struct cpu_cost_table ampere1_extr
*** 754,757 ****
--- 754,861 ----
    }
  };
  
+ const struct cpu_cost_table ampere1a_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 (3),       /* simple.  */
+       COSTS_N_INSNS (3),       /* flag_setting.  */
+       COSTS_N_INSNS (3),       /* extend.  */
+       COSTS_N_INSNS (4),       /* add.  */
+       COSTS_N_INSNS (4),       /* extend_add.  */
+       COSTS_N_INSNS (19)       /* idiv.  */
+     },
+     /* MULT DImode */
+     {
+       COSTS_N_INSNS (3),       /* simple.  */
+       0,                       /* flag_setting (N/A).  */
+       COSTS_N_INSNS (3),       /* extend.  */
+       COSTS_N_INSNS (4),       /* add.  */
+       COSTS_N_INSNS (4),       /* extend_add.  */
+       COSTS_N_INSNS (35)       /* idiv.  */
+     }
+   },
+   /* LD/ST */
+   {
+     COSTS_N_INSNS (4),         /* load.  */
+     COSTS_N_INSNS (4),         /* 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 (5),         /* loadf.  */
+     COSTS_N_INSNS (5),         /* loadd.  */
+     COSTS_N_INSNS (5),         /* load_unaligned.  */
+     0,                         /* store.  */
+     0,                         /* strd.  */
+     0,                         /* stm_1st.  */
+     0,                         /* stm_regs_per_insn_1st.  */
+     0,                         /* stm_regs_per_insn_subsequent.  */
+     COSTS_N_INSNS (2),         /* storef.  */
+     COSTS_N_INSNS (2),         /* stored.  */
+     COSTS_N_INSNS (2),         /* store_unaligned.  */
+     COSTS_N_INSNS (3),         /* loadv.  */
+     COSTS_N_INSNS (3)          /* storev.  */
+   },
+   {
+     /* FP SFmode */
+     {
+       COSTS_N_INSNS (25),      /* div.  */
+       COSTS_N_INSNS (4),       /* mult.  */
+       COSTS_N_INSNS (4),       /* mult_addsub.  */
+       COSTS_N_INSNS (4),       /* fma.  */
+       COSTS_N_INSNS (4),       /* addsub.  */
+       COSTS_N_INSNS (2),       /* fpconst.  */
+       COSTS_N_INSNS (4),       /* neg.  */
+       COSTS_N_INSNS (4),       /* compare.  */
+       COSTS_N_INSNS (4),       /* widen.  */
+       COSTS_N_INSNS (4),       /* narrow.  */
+       COSTS_N_INSNS (4),       /* toint.  */
+       COSTS_N_INSNS (4),       /* fromint.  */
+       COSTS_N_INSNS (4)        /* roundint.  */
+     },
+     /* FP DFmode */
+     {
+       COSTS_N_INSNS (34),      /* div.  */
+       COSTS_N_INSNS (5),       /* mult.  */
+       COSTS_N_INSNS (5),       /* mult_addsub.  */
+       COSTS_N_INSNS (5),       /* fma.  */
+       COSTS_N_INSNS (5),       /* addsub.  */
+       COSTS_N_INSNS (2),       /* fpconst.  */
+       COSTS_N_INSNS (5),       /* neg.  */
+       COSTS_N_INSNS (5),       /* compare.  */
+       COSTS_N_INSNS (5),       /* widen.  */
+       COSTS_N_INSNS (5),       /* narrow.  */
+       COSTS_N_INSNS (6),       /* toint.  */
+       COSTS_N_INSNS (6),       /* fromint.  */
+       COSTS_N_INSNS (5)        /* roundint.  */
+     }
+   },
+   /* Vector */
+   {
+     COSTS_N_INSNS (3),  /* alu.  */
+     COSTS_N_INSNS (3)   /* mult.  */
+   }
+ };
+ 
  #endif
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-fusion-pairs.def gcc-11.4.0/gcc/config/aarch64/aarch64-fusion-pairs.def
*** gcc-11.3.0/gcc/config/aarch64/aarch64-fusion-pairs.def	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-fusion-pairs.def	Mon May 29 08:46:29 2023
*************** AARCH64_FUSION_PAIR ("cmp+branch", CMP_B
*** 36,40 ****
--- 36,41 ----
  AARCH64_FUSION_PAIR ("aes+aesmc", AES_AESMC)
  AARCH64_FUSION_PAIR ("alu+branch", ALU_BRANCH)
  AARCH64_FUSION_PAIR ("alu+cbz", ALU_CBZ)
+ AARCH64_FUSION_PAIR ("addsub_2reg_const1", ADDSUB_2REG_CONST1)
  
  #undef AARCH64_FUSION_PAIR
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-protos.h gcc-11.4.0/gcc/config/aarch64/aarch64-protos.h
*** gcc-11.3.0/gcc/config/aarch64/aarch64-protos.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-protos.h	Mon May 29 08:46:29 2023
*************** bool aarch64_high_bits_all_ones_p (HOST_
*** 1034,1040 ****
  
  struct atomic_ool_names
  {
!     const char *str[5][4];
  };
  
  rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx,
--- 1034,1040 ----
  
  struct atomic_ool_names
  {
!     const char *str[5][5];
  };
  
  rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx,
*************** const char *aarch64_indirect_call_asm (r
*** 1052,1055 ****
--- 1052,1057 ----
  extern bool aarch64_harden_sls_retbr_p (void);
  extern bool aarch64_harden_sls_blr_p (void);
  
+ extern void aarch64_output_patchable_area (unsigned int, bool);
+ 
  #endif /* GCC_AARCH64_PROTOS_H */
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-simd.md gcc-11.4.0/gcc/config/aarch64/aarch64-simd.md
*** gcc-11.3.0/gcc/config/aarch64/aarch64-simd.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-simd.md	Mon May 29 08:46:29 2023
***************
*** 8290,8296 ****
    [(set (match_operand:V4SF 0 "register_operand" "=w")
          (plus: V4SF (match_operand:V4SF 1 "register_operand" "0")
                      (unspec:V4SF [(match_operand:V8BF 2 "register_operand" "w")
!                                   (match_operand:VBF 3 "register_operand" "w")
                                    (match_operand:SI 4 "const_int_operand" "n")]
                       BF_MLA)))]
    "TARGET_BF16_SIMD"
--- 8290,8296 ----
    [(set (match_operand:V4SF 0 "register_operand" "=w")
          (plus: V4SF (match_operand:V4SF 1 "register_operand" "0")
                      (unspec:V4SF [(match_operand:V8BF 2 "register_operand" "w")
!                                   (match_operand:VBF 3 "register_operand" "x")
                                    (match_operand:SI 4 "const_int_operand" "n")]
                       BF_MLA)))]
    "TARGET_BF16_SIMD"
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-sve-builtins.cc gcc-11.4.0/gcc/config/aarch64/aarch64-sve-builtins.cc
*** gcc-11.3.0/gcc/config/aarch64/aarch64-sve-builtins.cc	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-sve-builtins.cc	Mon May 29 08:46:29 2023
*************** static CONSTEXPR const function_group_in
*** 530,536 ****
  };
  
  /* 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
     "__SV..._t" name.  Allow an index of NUM_VECTOR_TYPES, which always
--- 530,537 ----
  };
  
  /* 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
*************** GTY(()) tree scalar_types[NUM_VECTOR_TYP
*** 538,550 ****
  static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1];
  
  /* Same, but with the arm_sve.h "sv..._t" name.  */
! GTY(()) tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1];
  
  /* The svpattern enum type.  */
! GTY(()) tree acle_svpattern;
  
  /* The svprfop enum type.  */
! GTY(()) tree acle_svprfop;
  
  /* The list of all registered function decls, indexed by code.  */
  static GTY(()) vec<registered_function *, va_gc> *registered_functions;
--- 539,554 ----
  static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1];
  
  /* Same, but with the arm_sve.h "sv..._t" name.  */
! 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 svpattern enum type.  */
! extern GTY(()) tree acle_svpattern;
! tree acle_svpattern;
  
  /* The svprfop enum type.  */
! extern GTY(()) tree acle_svprfop;
! tree acle_svprfop;
  
  /* The list of all registered function decls, indexed by code.  */
  static GTY(()) vec<registered_function *, va_gc> *registered_functions;
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-sve.md gcc-11.4.0/gcc/config/aarch64/aarch64-sve.md
*** gcc-11.3.0/gcc/config/aarch64/aarch64-sve.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-sve.md	Mon May 29 08:46:29 2023
***************
*** 9430,9474 ****
  (define_insn "*aarch64_brk<brk_op>_cc"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa, Upa")
  	   (match_dup 1)
  	   (match_operand:SI 4 "aarch64_sve_ptrue_flag")
  	   (unspec:VNx16BI
  	     [(match_dup 1)
! 	      (match_operand:VNx16BI 2 "register_operand" "Upa, Upa")
! 	      (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero" "Dz, 0")]
  	     SVE_BRK_UNARY)]
  	  UNSPEC_PTEST))
!    (set (match_operand:VNx16BI 0 "register_operand" "=Upa, Upa")
  	(unspec:VNx16BI
  	  [(match_dup 1)
  	   (match_dup 2)
  	   (match_dup 3)]
  	  SVE_BRK_UNARY))]
    "TARGET_SVE"
!   "@
!    brk<brk_op>s\t%0.b, %1/z, %2.b
!    brk<brk_op>s\t%0.b, %1/m, %2.b"
  )
  
  ;; Same, but with only the flags result being interesting.
  (define_insn "*aarch64_brk<brk_op>_ptest"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa, Upa")
  	   (match_dup 1)
  	   (match_operand:SI 4 "aarch64_sve_ptrue_flag")
  	   (unspec:VNx16BI
  	     [(match_dup 1)
! 	      (match_operand:VNx16BI 2 "register_operand" "Upa, Upa")
! 	      (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero" "Dz, 0")]
  	     SVE_BRK_UNARY)]
  	  UNSPEC_PTEST))
!    (clobber (match_scratch:VNx16BI 0 "=Upa, Upa"))]
    "TARGET_SVE"
!   "@
!    brk<brk_op>s\t%0.b, %1/z, %2.b
!    brk<brk_op>s\t%0.b, %1/m, %2.b"
  )
  
  ;; -------------------------------------------------------------------------
--- 9430,9470 ----
  (define_insn "*aarch64_brk<brk_op>_cc"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa")
  	   (match_dup 1)
  	   (match_operand:SI 4 "aarch64_sve_ptrue_flag")
  	   (unspec:VNx16BI
  	     [(match_dup 1)
! 	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "aarch64_simd_imm_zero")]
  	     SVE_BRK_UNARY)]
  	  UNSPEC_PTEST))
!    (set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(unspec:VNx16BI
  	  [(match_dup 1)
  	   (match_dup 2)
  	   (match_dup 3)]
  	  SVE_BRK_UNARY))]
    "TARGET_SVE"
!   "brk<brk_op>s\t%0.b, %1/z, %2.b"
  )
  
  ;; Same, but with only the flags result being interesting.
  (define_insn "*aarch64_brk<brk_op>_ptest"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 1 "register_operand" "Upa")
  	   (match_dup 1)
  	   (match_operand:SI 4 "aarch64_sve_ptrue_flag")
  	   (unspec:VNx16BI
  	     [(match_dup 1)
! 	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "aarch64_simd_imm_zero")]
  	     SVE_BRK_UNARY)]
  	  UNSPEC_PTEST))
!    (clobber (match_scratch:VNx16BI 0 "=Upa"))]
    "TARGET_SVE"
!   "brk<brk_op>s\t%0.b, %1/z, %2.b"
  )
  
  ;; -------------------------------------------------------------------------
***************
*** 9495,9501 ****
    "brk<brk_op>\t%0.b, %1/z, %2.b, %<brk_reg_opno>.b"
  )
  
! ;; Same, but also producing a flags result.
  (define_insn "*aarch64_brk<brk_op>_cc"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
--- 9491,9551 ----
    "brk<brk_op>\t%0.b, %1/z, %2.b, %<brk_reg_opno>.b"
  )
  
! ;; BRKN, producing both a predicate and a flags result.  Unlike other
! ;; flag-setting instructions, these flags are always set wrt a ptrue.
! (define_insn_and_rewrite "*aarch64_brkn_cc"
!   [(set (reg:CC_NZC CC_REGNUM)
! 	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 4)
! 	   (match_operand:VNx16BI 5)
! 	   (const_int SVE_KNOWN_PTRUE)
! 	   (unspec:VNx16BI
! 	     [(match_operand:VNx16BI 1 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "register_operand" "0")]
! 	     UNSPEC_BRKN)]
! 	  UNSPEC_PTEST))
!    (set (match_operand:VNx16BI 0 "register_operand" "=Upa")
! 	(unspec:VNx16BI
! 	  [(match_dup 1)
! 	   (match_dup 2)
! 	   (match_dup 3)]
! 	  UNSPEC_BRKN))]
!   "TARGET_SVE"
!   "brkns\t%0.b, %1/z, %2.b, %0.b"
!   "&& (operands[4] != CONST0_RTX (VNx16BImode)
!        || operands[5] != CONST0_RTX (VNx16BImode))"
!   {
!     operands[4] = CONST0_RTX (VNx16BImode);
!     operands[5] = CONST0_RTX (VNx16BImode);
!   }
! )
! 
! ;; Same, but with only the flags result being interesting.
! (define_insn_and_rewrite "*aarch64_brkn_ptest"
!   [(set (reg:CC_NZC CC_REGNUM)
! 	(unspec:CC_NZC
! 	  [(match_operand:VNx16BI 4)
! 	   (match_operand:VNx16BI 5)
! 	   (const_int SVE_KNOWN_PTRUE)
! 	   (unspec:VNx16BI
! 	     [(match_operand:VNx16BI 1 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "register_operand" "0")]
! 	     UNSPEC_BRKN)]
! 	  UNSPEC_PTEST))
!    (clobber (match_scratch:VNx16BI 0 "=Upa"))]
!   "TARGET_SVE"
!   "brkns\t%0.b, %1/z, %2.b, %0.b"
!   "&& (operands[4] != CONST0_RTX (VNx16BImode)
!        || operands[5] != CONST0_RTX (VNx16BImode))"
!   {
!     operands[4] = CONST0_RTX (VNx16BImode);
!     operands[5] = CONST0_RTX (VNx16BImode);
!   }
! )
! 
! ;; BRKPA and BRKPB, producing both a predicate and a flags result.
  (define_insn "*aarch64_brk<brk_op>_cc"
    [(set (reg:CC_NZC CC_REGNUM)
  	(unspec:CC_NZC
***************
*** 9505,9521 ****
  	   (unspec:VNx16BI
  	     [(match_dup 1)
  	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "register_operand" "<brk_reg_con>")]
! 	     SVE_BRK_BINARY)]
  	  UNSPEC_PTEST))
     (set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(unspec:VNx16BI
  	  [(match_dup 1)
  	   (match_dup 2)
  	   (match_dup 3)]
! 	  SVE_BRK_BINARY))]
    "TARGET_SVE"
!   "brk<brk_op>s\t%0.b, %1/z, %2.b, %<brk_reg_opno>.b"
  )
  
  ;; Same, but with only the flags result being interesting.
--- 9555,9571 ----
  	   (unspec:VNx16BI
  	     [(match_dup 1)
  	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "register_operand" "Upa")]
! 	     SVE_BRKP)]
  	  UNSPEC_PTEST))
     (set (match_operand:VNx16BI 0 "register_operand" "=Upa")
  	(unspec:VNx16BI
  	  [(match_dup 1)
  	   (match_dup 2)
  	   (match_dup 3)]
! 	  SVE_BRKP))]
    "TARGET_SVE"
!   "brk<brk_op>s\t%0.b, %1/z, %2.b, %3.b"
  )
  
  ;; Same, but with only the flags result being interesting.
***************
*** 9528,9539 ****
  	   (unspec:VNx16BI
  	     [(match_dup 1)
  	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "register_operand" "<brk_reg_con>")]
! 	     SVE_BRK_BINARY)]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:VNx16BI 0 "=Upa"))]
    "TARGET_SVE"
!   "brk<brk_op>s\t%0.b, %1/z, %2.b, %<brk_reg_opno>.b"
  )
  
  ;; -------------------------------------------------------------------------
--- 9578,9589 ----
  	   (unspec:VNx16BI
  	     [(match_dup 1)
  	      (match_operand:VNx16BI 2 "register_operand" "Upa")
! 	      (match_operand:VNx16BI 3 "register_operand" "Upa")]
! 	     SVE_BRKP)]
  	  UNSPEC_PTEST))
     (clobber (match_scratch:VNx16BI 0 "=Upa"))]
    "TARGET_SVE"
!   "brk<brk_op>s\t%0.b, %1/z, %2.b, %3.b"
  )
  
  ;; -------------------------------------------------------------------------
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-tune.md gcc-11.4.0/gcc/config/aarch64/aarch64-tune.md
*** gcc-11.3.0/gcc/config/aarch64/aarch64-tune.md	Thu Apr 21 07:59:35 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-tune.md	Mon May 29 08:49:47 2023
***************
*** 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,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82"
  	(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,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,neoversev2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-tuning-flags.def gcc-11.4.0/gcc/config/aarch64/aarch64-tuning-flags.def
*** gcc-11.3.0/gcc/config/aarch64/aarch64-tuning-flags.def	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64-tuning-flags.def	Mon May 29 08:46:29 2023
*************** AARCH64_EXTRA_TUNING_OPTION ("cheap_shif
*** 44,49 ****
--- 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)
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64.c gcc-11.4.0/gcc/config/aarch64/aarch64.c
*** gcc-11.3.0/gcc/config/aarch64/aarch64.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64.c	Mon May 29 08:46:29 2023
*************** static const struct cpu_vector_cost thun
*** 1070,1076 ****
  
  static const advsimd_vec_cost ampere1_advsimd_vector_cost =
  {
!   3, /* int_stmt_cost  */
    3, /* fp_stmt_cost  */
    0, /* ld2_st2_permute_cost  */
    0, /* ld3_st3_permute_cost  */
--- 1070,1076 ----
  
  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  */
*************** static const advsimd_vec_cost ampere1_ad
*** 1086,1102 ****
    8, /* store_elt_extra_cost  */
    6, /* vec_to_scalar_cost  */
    7, /* scalar_to_vec_cost  */
!   5, /* align_load_cost  */
!   5, /* unalign_load_cost  */
!   2, /* unalign_store_cost  */
!   2  /* store_cost  */
  };
  
  /* Ampere-1 costs for vector insn classes.  */
  static const struct cpu_vector_cost ampere1_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  */
--- 1086,1102 ----
    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  */
*************** static const struct tune_params ampere1_
*** 1745,1751 ****
    2,	/* min_div_recip_mul_df.  */
    0,	/* max_case_values.  */
    tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
!   (AARCH64_EXTRA_TUNE_NONE),		/* tune_flags.  */
    &ampere1_prefetch_tune
  };
  
--- 1745,1782 ----
    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, /* 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.  */
!   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
  };
  
*************** aarch64_vfp_is_call_candidate (cumulativ
*** 6547,6555 ****
  /* 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 true if the alignment was incorrectly
!    calculated in versions of GCC prior to GCC-9.  This is a helper
!    function for local use only.  */
  
  static unsigned int
  aarch64_function_arg_alignment (machine_mode mode, const_tree type,
--- 6578,6586 ----
  /* 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.  This is
!    a helper function for local use only.  */
  
  static unsigned int
  aarch64_function_arg_alignment (machine_mode mode, const_tree type,
*************** aarch64_layout_arg (cumulative_args_t pc
*** 6625,6635 ****
--- 6656,6679 ----
    if (pcum->aapcs_arg_processed)
      return;
  
+   bool warn_pcs_change
+     = (warn_psabi
+        && !pcum->silent_p
+        && (currently_expanding_function_start
+ 	   || currently_expanding_gimple_stmt));
+ 
+   unsigned int alignment
+     = aarch64_function_arg_alignment (mode, type, &abi_break);
+   gcc_assert (!alignment || abi_break < alignment);
+ 
    pcum->aapcs_arg_processed = true;
  
    pure_scalable_type_info pst_info;
    if (type && pst_info.analyze_registers (type))
      {
+       /* aarch64_function_arg_alignment has never had an effect on
+ 	 this case.  */
+ 
        /* The PCS says that it is invalid to pass an SVE value to an
  	 unprototyped function.  There is no ABI-defined location we
  	 can return in this case, so we have no real choice but to raise
*************** aarch64_layout_arg (cumulative_args_t pc
*** 6700,6705 ****
--- 6744,6751 ----
       and homogenous short-vector aggregates (HVA).  */
    if (allocate_nvrn)
      {
+       /* aarch64_function_arg_alignment has never had an effect on
+ 	 this case.  */
        if (!pcum->silent_p && !TARGET_FLOAT)
  	aarch64_err_no_fpadvsimd (mode);
  
*************** aarch64_layout_arg (cumulative_args_t pc
*** 6758,6764 ****
  	  && (aarch64_function_arg_alignment (mode, type, &abi_break)
  	      == 16 * BITS_PER_UNIT))
  	{
! 	  if (abi_break && warn_psabi && currently_expanding_gimple_stmt)
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 9.1", type);
  	  ++ncrn;
--- 6804,6810 ----
  	  && (aarch64_function_arg_alignment (mode, type, &abi_break)
  	      == 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;
*************** on_stack:
*** 6821,6827 ****
        int new_size = ROUND_UP (pcum->aapcs_stack_size, 16 / UNITS_PER_WORD);
        if (pcum->aapcs_stack_size != new_size)
  	{
! 	  if (abi_break && warn_psabi && currently_expanding_gimple_stmt)
  	    inform (input_location, "parameter passing for argument of type "
  		    "%qT changed in GCC 9.1", type);
  	  pcum->aapcs_stack_size = new_size;
--- 6867,6873 ----
        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;
*************** aarch64_function_arg_boundary (machine_m
*** 6941,6954 ****
    unsigned int alignment = aarch64_function_arg_alignment (mode, type,
  							   &abi_break);
    alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
!   if (abi_break & warn_psabi)
      {
        abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY);
        if (alignment != abi_break)
  	inform (input_location, "parameter passing for argument of type "
  		"%qT changed in GCC 9.1", type);
      }
- 
    return alignment;
  }
  
--- 6987,6999 ----
    unsigned int alignment = aarch64_function_arg_alignment (mode, type,
  							   &abi_break);
    alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
!   if (abi_break && warn_psabi)
      {
        abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY);
        if (alignment != abi_break)
  	inform (input_location, "parameter passing for argument of type "
  		"%qT changed in GCC 9.1", type);
      }
    return alignment;
  }
  
*************** aarch64_declare_function_name (FILE *str
*** 21508,21537 ****
    cfun->machine->label_is_assembled = true;
  }
  
! /* Implement PRINT_PATCHABLE_FUNCTION_ENTRY.  Check if the patch area is after
!    the function label and emit a BTI if necessary.  */
  
  void
  aarch64_print_patchable_function_entry (FILE *file,
  					unsigned HOST_WIDE_INT patch_area_size,
  					bool record_p)
  {
!   if (cfun->machine->label_is_assembled
!       && aarch64_bti_enabled ()
!       && !cgraph_node::get (cfun->decl)->only_called_directly_p ())
      {
!       /* Remove the BTI that follows the patch area and insert a new BTI
! 	 before the patch area right after the function label.  */
!       rtx_insn *insn = next_real_nondebug_insn (get_insns ());
!       if (insn
! 	  && INSN_P (insn)
! 	  && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE
! 	  && XINT (PATTERN (insn), 1) == UNSPECV_BTI_C)
! 	delete_insn (insn);
!       asm_fprintf (file, "\thint\t34 // bti c\n");
      }
  
!   default_print_patchable_function_entry (file, patch_area_size, record_p);
  }
  
  /* Implement ASM_OUTPUT_DEF_FROM_DECLS.  Output .variant_pcs for aliases.  */
--- 21553,21608 ----
    cfun->machine->label_is_assembled = true;
  }
  
! /* Implement PRINT_PATCHABLE_FUNCTION_ENTRY.  */
  
  void
  aarch64_print_patchable_function_entry (FILE *file,
  					unsigned HOST_WIDE_INT patch_area_size,
  					bool record_p)
  {
!   if (!cfun->machine->label_is_assembled)
      {
!       /* Emit the patching area before the entry label, if any.  */
!       default_print_patchable_function_entry (file, patch_area_size,
! 					      record_p);
!       return;
      }
  
!   rtx pa = gen_patchable_area (GEN_INT (patch_area_size),
! 			       GEN_INT (record_p));
!   basic_block bb = ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb;
! 
!   if (!aarch64_bti_enabled ()
!       || cgraph_node::get (cfun->decl)->only_called_directly_p ())
!     {
!       /* Emit the patchable_area at the beginning of the function.  */
!       rtx_insn *insn = emit_insn_before (pa, BB_HEAD (bb));
!       INSN_ADDRESSES_NEW (insn, -1);
!       return;
!     }
! 
!   rtx_insn *insn = next_real_nondebug_insn (get_insns ());
!   if (!insn
!       || !INSN_P (insn)
!       || GET_CODE (PATTERN (insn)) != UNSPEC_VOLATILE
!       || XINT (PATTERN (insn), 1) != UNSPECV_BTI_C)
!     {
!       /* Emit a BTI_C.  */
!       insn = emit_insn_before (gen_bti_c (), BB_HEAD (bb));
!     }
! 
!   /* Emit the patchable_area after BTI_C.  */
!   insn = emit_insn_after (pa, insn);
!   INSN_ADDRESSES_NEW (insn, -1);
! }
! 
! /* Output patchable area.  */
! 
! void
! aarch64_output_patchable_area (unsigned int patch_area_size, bool record_p)
! {
!   default_print_patchable_function_entry (asm_out_file, patch_area_size,
! 					  record_p);
  }
  
  /* Implement ASM_OUTPUT_DEF_FROM_DECLS.  Output .variant_pcs for aliases.  */
*************** aarch64_emit_unlikely_jump (rtx insn)
*** 21627,21640 ****
    add_reg_br_prob_note (jump, profile_probability::very_unlikely ());
  }
  
! /* We store the names of the various atomic helpers in a 5x4 array.
     Return the libcall function given MODE, MODEL and NAMES.  */
  
  rtx
  aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx,
  			const atomic_ool_names *names)
  {
!   memmodel model = memmodel_base (INTVAL (model_rtx));
    int mode_idx, model_idx;
  
    switch (mode)
--- 21698,21711 ----
    add_reg_br_prob_note (jump, profile_probability::very_unlikely ());
  }
  
! /* We store the names of the various atomic helpers in a 5x5 array.
     Return the libcall function given MODE, MODEL and NAMES.  */
  
  rtx
  aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx,
  			const atomic_ool_names *names)
  {
!   memmodel model = memmodel_from_int (INTVAL (model_rtx));
    int mode_idx, model_idx;
  
    switch (mode)
*************** aarch64_atomic_ool_func(machine_mode mod
*** 21674,21679 ****
--- 21745,21755 ----
      case MEMMODEL_SEQ_CST:
        model_idx = 3;
        break;
+     case MEMMODEL_SYNC_ACQUIRE:
+     case MEMMODEL_SYNC_RELEASE:
+     case MEMMODEL_SYNC_SEQ_CST:
+       model_idx = 4;
+       break;
      default:
        gcc_unreachable ();
      }
*************** aarch64_atomic_ool_func(machine_mode mod
*** 21686,21692 ****
    { "__aarch64_" #B #N "_relax", \
      "__aarch64_" #B #N "_acq", \
      "__aarch64_" #B #N "_rel", \
!     "__aarch64_" #B #N "_acq_rel" }
  
  #define DEF4(B)  DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \
  		 { NULL, NULL, NULL, NULL }
--- 21762,21769 ----
    { "__aarch64_" #B #N "_relax", \
      "__aarch64_" #B #N "_acq", \
      "__aarch64_" #B #N "_rel", \
!     "__aarch64_" #B #N "_acq_rel", \
!     "__aarch64_" #B #N "_sync" }
  
  #define DEF4(B)  DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \
  		 { NULL, NULL, NULL, NULL }
*************** aarch_macro_fusion_pair_p (rtx_insn *pre
*** 24282,24287 ****
--- 24359,24392 ----
  	}
      }
  
+   /* Fuse A+B+1 and A-B-1 */
+   if (simple_sets_p
+       && aarch64_fusion_enabled_p (AARCH64_FUSE_ADDSUB_2REG_CONST1))
+     {
+       /* We're trying to match:
+ 	  prev == (set (r0) (plus (r0) (r1)))
+ 	  curr == (set (r0) (plus (r0) (const_int 1)))
+ 	or:
+ 	  prev == (set (r0) (minus (r0) (r1)))
+ 	  curr == (set (r0) (plus (r0) (const_int -1))) */
+ 
+       rtx prev_src = SET_SRC (prev_set);
+       rtx curr_src = SET_SRC (curr_set);
+ 
+       int polarity = 1;
+       if (GET_CODE (prev_src) == MINUS)
+ 	polarity = -1;
+ 
+       if (GET_CODE (curr_src) == PLUS
+ 	  && (GET_CODE (prev_src) == PLUS || GET_CODE (prev_src) == MINUS)
+ 	  && CONST_INT_P (XEXP (curr_src, 1))
+ 	  && INTVAL (XEXP (curr_src, 1)) == polarity
+ 	  && REG_P (XEXP (curr_src, 0))
+ 	  && REG_P (SET_DEST (prev_set))
+ 	  && REGNO (SET_DEST (prev_set)) == REGNO (XEXP (curr_src, 0)))
+ 	return true;
+     }
+ 
    return false;
  }
  
*************** aarch64_operands_ok_for_ldpstp (rtx *ope
*** 24469,24474 ****
--- 24574,24585 ----
    enum reg_class rclass_1, rclass_2;
    rtx mem_1, mem_2, reg_1, reg_2, base_1, base_2, offset_1, offset_2;
  
+   /* Allow the tuning structure to disable LDP instruction formation
+      from combining instructions (e.g., in peephole2).  */
+   if (load && (aarch64_tune_params.extra_tuning_flags
+ 	       & AARCH64_EXTRA_TUNE_NO_LDP_COMBINE))
+     return false;
+ 
    if (load)
      {
        mem_1 = operands[1];
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64.h gcc-11.4.0/gcc/config/aarch64/aarch64.h
*** gcc-11.3.0/gcc/config/aarch64/aarch64.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64.h	Mon May 29 08:46:29 2023
*************** extern unsigned aarch64_architecture_ver
*** 245,251 ****
  #define AARCH64_FL_FOR_ARCH8_2			\
    (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2)
  #define AARCH64_FL_FOR_ARCH8_3			\
!   (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3 | AARCH64_FL_PAUTH)
  #define AARCH64_FL_FOR_ARCH8_4			\
    (AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_V8_4 | AARCH64_FL_F16FML \
     | AARCH64_FL_DOTPROD | AARCH64_FL_RCPC8_4 | AARCH64_FL_FLAGM)
--- 245,252 ----
  #define AARCH64_FL_FOR_ARCH8_2			\
    (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2)
  #define AARCH64_FL_FOR_ARCH8_3			\
!   (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3 | AARCH64_FL_PAUTH \
!    | AARCH64_FL_RCPC)
  #define AARCH64_FL_FOR_ARCH8_4			\
    (AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_V8_4 | AARCH64_FL_F16FML \
     | AARCH64_FL_DOTPROD | AARCH64_FL_RCPC8_4 | AARCH64_FL_FLAGM)
*************** extern unsigned aarch64_architecture_ver
*** 282,287 ****
--- 283,289 ----
  #define AARCH64_ISA_SM4	           (aarch64_isa_flags & AARCH64_FL_SM4)
  #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_RCPC8_4)
  #define AARCH64_ISA_RNG		   (aarch64_isa_flags & AARCH64_FL_RNG)
  #define AARCH64_ISA_V8_5	   (aarch64_isa_flags & AARCH64_FL_V8_5)
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64.md gcc-11.4.0/gcc/config/aarch64/aarch64.md
*** gcc-11.3.0/gcc/config/aarch64/aarch64.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/aarch64.md	Mon May 29 08:46:29 2023
***************
*** 294,299 ****
--- 294,300 ----
      UNSPEC_TAG_SPACE		; Translate address to MTE tag address space.
      UNSPEC_LD1RO
      UNSPEC_SALT_ADDR
+     UNSPECV_PATCHABLE_AREA
  ])
  
  (define_c_enum "unspecv" [
***************
*** 4762,4768 ****
      rtx ccreg = aarch64_gen_compare_reg (EQ, operands[1], const0_rtx);
      rtx x = gen_rtx_NE (VOIDmode, ccreg, const0_rtx);
  
!     emit_insn (gen_rbit<mode>2 (operands[0], operands[1]));
      emit_insn (gen_clz<mode>2 (operands[0], operands[0]));
      emit_insn (gen_csinc3<mode>_insn (operands[0], x, operands[0], const0_rtx));
      DONE;
--- 4763,4769 ----
      rtx ccreg = aarch64_gen_compare_reg (EQ, operands[1], const0_rtx);
      rtx x = gen_rtx_NE (VOIDmode, ccreg, const0_rtx);
  
!     emit_insn (gen_aarch64_rbit (<MODE>mode, operands[0], operands[1]));
      emit_insn (gen_clz<mode>2 (operands[0], operands[0]));
      emit_insn (gen_csinc3<mode>_insn (operands[0], x, operands[0], const0_rtx));
      DONE;
***************
*** 4808,4814 ****
    [(set_attr "type" "clz")]
  )
  
! (define_insn "rbit<mode>2"
    [(set (match_operand:GPI 0 "register_operand" "=r")
  	(unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_RBIT))]
    ""
--- 4809,4815 ----
    [(set_attr "type" "clz")]
  )
  
! (define_insn "@aarch64_rbit<mode>"
    [(set (match_operand:GPI 0 "register_operand" "=r")
  	(unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_RBIT))]
    ""
***************
*** 4829,4835 ****
    "reload_completed"
    [(const_int 0)]
    "
!   emit_insn (gen_rbit<mode>2 (operands[0], operands[1]));
    emit_insn (gen_clz<mode>2 (operands[0], operands[0]));
    DONE;
  ")
--- 4830,4836 ----
    "reload_completed"
    [(const_int 0)]
    "
!   emit_insn (gen_aarch64_rbit (<MODE>mode, operands[0], operands[1]));
    emit_insn (gen_clz<mode>2 (operands[0], operands[0]));
    DONE;
  ")
***************
*** 5819,5824 ****
--- 5820,5832 ----
    [(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")
***************
*** 7515,7520 ****
--- 7523,7541 ----
    [(set_attr "type" "memtag")]
  )
  
+ (define_insn "patchable_area"
+   [(unspec_volatile [(match_operand 0 "const_int_operand")
+ 		     (match_operand 1 "const_int_operand")]
+ 		    UNSPECV_PATCHABLE_AREA)]
+   ""
+ {
+   aarch64_output_patchable_area (INTVAL (operands[0]),
+ 			         INTVAL (operands[1]) != 0);
+   return "";
+ }
+   [(set (attr "length") (symbol_ref "INTVAL (operands[0])"))]
+ )
+ 
  ;; AdvSIMD Stuff
  (include "aarch64-simd.md")
  
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/arm_acle.h gcc-11.4.0/gcc/config/aarch64/arm_acle.h
*** gcc-11.3.0/gcc/config/aarch64/arm_acle.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/arm_acle.h	Mon May 29 08:46:29 2023
***************
*** 28,38 ****
--- 28,91 ----
  #define _GCC_ARM_ACLE_H
  
  #include <stdint.h>
+ #include <stddef.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)					  \
+ {									  \
+   size_t __size = 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, BUILTIN, ITYPE, RTYPE)	    \
+ __extension__ extern __inline RTYPE				    \
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \
+ __##NAME (ITYPE __value)					    \
+ {								    \
+   return __builtin_##BUILTIN (__value);				    \
+ }
+ 
+ _GCC_ARM_ACLE_DATA_FN (clz, clz, uint32_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN (clzl, clzl, unsigned long, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN (clzll, clzll, uint64_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN (cls, clrsb, uint32_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN (clsl, clrsbl, unsigned long, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN (clsll, clrsbll, uint64_t, unsigned int)
+ _GCC_ARM_ACLE_DATA_FN (rev16, aarch64_rev16, uint32_t, uint32_t)
+ _GCC_ARM_ACLE_DATA_FN (rev16l, aarch64_rev16l, unsigned long, unsigned long)
+ _GCC_ARM_ACLE_DATA_FN (rev16ll, aarch64_rev16ll, uint64_t, uint64_t)
+ _GCC_ARM_ACLE_DATA_FN (rbit, aarch64_rbit, uint32_t, uint32_t)
+ _GCC_ARM_ACLE_DATA_FN (rbitl, aarch64_rbitl, unsigned long, unsigned long)
+ _GCC_ARM_ACLE_DATA_FN (rbitll, aarch64_rbitll, uint64_t, uint64_t)
+ _GCC_ARM_ACLE_DATA_FN (revsh, bswap16, int16_t, int16_t)
+ _GCC_ARM_ACLE_DATA_FN (rev, bswap32, uint32_t, uint32_t)
+ _GCC_ARM_ACLE_DATA_FN (revll, bswap64, uint64_t, uint64_t)
+ 
+ #undef _GCC_ARM_ACLE_DATA_FN
+ 
+ __extension__ extern __inline unsigned long
+ __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
+ __revl (unsigned long __value)
+ {
+   if (sizeof (unsigned long) == 8)
+     return __revll (__value);
+   else
+     return __rev (__value);
+ }
+ 
  #pragma GCC push_options
  #pragma GCC target ("arch=armv8.3-a")
  __extension__ static __inline int32_t __attribute__ ((__always_inline__))
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/driver-aarch64.c gcc-11.4.0/gcc/config/aarch64/driver-aarch64.c
*** gcc-11.3.0/gcc/config/aarch64/driver-aarch64.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/driver-aarch64.c	Mon May 29 08:46:29 2023
*************** readline (FILE *f)
*** 200,208 ****
  	return std::string ();
        /* If we're not at the end of the line then override the
  	 \0 added by fgets.  */
!       last = strnlen (buf, size) - 1;
      }
!   while (!feof (f) && buf[last] != '\n');
  
    std::string result (buf);
    free (buf);
--- 200,208 ----
  	return std::string ();
        /* If we're not at the end of the line then override the
  	 \0 added by fgets.  */
!       last = strnlen (buf, size);
      }
!   while (!feof (f) && last > 0 && buf[last - 1] != '\n');
  
    std::string result (buf);
    free (buf);
diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/iterators.md gcc-11.4.0/gcc/config/aarch64/iterators.md
*** gcc-11.3.0/gcc/config/aarch64/iterators.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/aarch64/iterators.md	Mon May 29 08:46:29 2023
***************
*** 2764,2769 ****
--- 2764,2771 ----
  
  (define_int_iterator SVE_BRK_UNARY [UNSPEC_BRKA UNSPEC_BRKB])
  
+ (define_int_iterator SVE_BRKP [UNSPEC_BRKPA UNSPEC_BRKPB])
+ 
  (define_int_iterator SVE_BRK_BINARY [UNSPEC_BRKN UNSPEC_BRKPA UNSPEC_BRKPB])
  
  (define_int_iterator SVE_PITER [UNSPEC_PFIRST UNSPEC_PNEXT])
diff -Nrcpad gcc-11.3.0/gcc/config/alpha/alpha-protos.h gcc-11.4.0/gcc/config/alpha/alpha-protos.h
*** gcc-11.3.0/gcc/config/alpha/alpha-protos.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/alpha/alpha-protos.h	Mon May 29 08:46:29 2023
*************** extern void alpha_end_function (FILE *,
*** 73,78 ****
--- 73,80 ----
  
  extern bool alpha_find_lo_sum_using_gp (rtx);
  
+ extern int alpha_store_data_bypass_p (rtx_insn *, rtx_insn *);
+ 
  #ifdef REAL_VALUE_TYPE
  extern int check_float_value (machine_mode, REAL_VALUE_TYPE *, int);
  #endif
diff -Nrcpad gcc-11.3.0/gcc/config/alpha/alpha.c gcc-11.4.0/gcc/config/alpha/alpha.c
*** gcc-11.3.0/gcc/config/alpha/alpha.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/alpha/alpha.c	Mon May 29 08:46:29 2023
*************** alpha_does_function_need_gp (void)
*** 7564,7569 ****
--- 7564,7638 ----
    return 0;
  }
  
+ /* Helper function for alpha_store_data_bypass_p, handle just a single SET
+    IN_SET.  */
+ 
+ static bool
+ alpha_store_data_bypass_p_1 (rtx_insn *out_insn, rtx in_set)
+ {
+   if (!MEM_P (SET_DEST (in_set)))
+     return false;
+ 
+   rtx out_set = single_set (out_insn);
+   if (out_set)
+     return !reg_mentioned_p (SET_DEST (out_set), SET_DEST (in_set));
+ 
+   rtx out_pat = PATTERN (out_insn);
+   if (GET_CODE (out_pat) != PARALLEL)
+     return false;
+ 
+   for (int i = 0; i < XVECLEN (out_pat, 0); i++)
+     {
+       rtx out_exp = XVECEXP (out_pat, 0, i);
+ 
+       if (GET_CODE (out_exp) == CLOBBER || GET_CODE (out_exp) == USE
+ 	  || GET_CODE (out_exp) == TRAP_IF)
+ 	continue;
+ 
+       gcc_assert (GET_CODE (out_exp) == SET);
+ 
+       if (reg_mentioned_p (SET_DEST (out_exp), SET_DEST (in_set)))
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* True if the dependency between OUT_INSN and IN_INSN is on the store
+    data not the address operand(s) of the store.  IN_INSN and OUT_INSN
+    must be either a single_set or a PARALLEL with SETs inside.
+ 
+    This alpha-specific version of store_data_bypass_p ignores TRAP_IF
+    that would result in assertion failure (and internal compiler error)
+    in the generic store_data_bypass_p function.  */
+ 
+ int
+ alpha_store_data_bypass_p (rtx_insn *out_insn, rtx_insn *in_insn)
+ {
+   rtx in_set = single_set (in_insn);
+   if (in_set)
+     return alpha_store_data_bypass_p_1 (out_insn, in_set);
+ 
+   rtx in_pat = PATTERN (in_insn);
+   if (GET_CODE (in_pat) != PARALLEL)
+     return false;
+ 
+   for (int i = 0; i < XVECLEN (in_pat, 0); i++)
+     {
+       rtx in_exp = XVECEXP (in_pat, 0, i);
+ 
+       if (GET_CODE (in_exp) == CLOBBER || GET_CODE (in_exp) == USE
+ 	  || GET_CODE (in_exp) == TRAP_IF)
+ 	continue;
+ 
+       gcc_assert (GET_CODE (in_exp) == SET);
+ 
+       if (!alpha_store_data_bypass_p_1 (out_insn, in_exp))
+ 	return false;
+     }
+ 
+   return true;
+ }
  
  /* Helper function to set RTX_FRAME_RELATED_P on instructions, including
     sequences.  */
diff -Nrcpad gcc-11.3.0/gcc/config/alpha/ev4.md gcc-11.4.0/gcc/config/alpha/ev4.md
*** gcc-11.3.0/gcc/config/alpha/ev4.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/alpha/ev4.md	Mon May 29 08:46:29 2023
***************
*** 44,57 ****
  ; Stores can issue before the data (but not address) is ready.
  (define_insn_reservation "ev4_ist" 1
    (and (eq_attr "tune" "ev4")
!        (eq_attr "type" "ist"))
!   "ev4_ib1+ev4_abox")
! 
! ; ??? Separate from ev4_ist because store_data_bypass_p can't handle
! ; the patterns with multiple sets, like store-conditional.
! (define_insn_reservation "ev4_ist_c" 1
!   (and (eq_attr "tune" "ev4")
!        (eq_attr "type" "st_c"))
    "ev4_ib1+ev4_abox")
  
  (define_insn_reservation "ev4_fst" 1
--- 44,50 ----
  ; Stores can issue before the data (but not address) is ready.
  (define_insn_reservation "ev4_ist" 1
    (and (eq_attr "tune" "ev4")
!        (eq_attr "type" "ist,st_c"))
    "ev4_ib1+ev4_abox")
  
  (define_insn_reservation "ev4_fst" 1
***************
*** 110,116 ****
  (define_bypass 0
    "ev4_iaddlog,ev4_shiftcm,ev4_icmp"
    "ev4_ist"
!   "store_data_bypass_p")
  
  ; Multiplies use a non-pipelined imul unit.  Also, "no [ebox] insn can
  ; be issued exactly three cycles before an integer multiply completes".
--- 103,109 ----
  (define_bypass 0
    "ev4_iaddlog,ev4_shiftcm,ev4_icmp"
    "ev4_ist"
!   "alpha_store_data_bypass_p")
  
  ; Multiplies use a non-pipelined imul unit.  Also, "no [ebox] insn can
  ; be issued exactly three cycles before an integer multiply completes".
***************
*** 121,127 ****
  	    (eq_attr "opsize" "si")))
    "ev4_ib0+ev4_imul,ev4_imul*18,ev4_ebox")
  
! (define_bypass 20 "ev4_imulsi" "ev4_ist" "store_data_bypass_p")
  
  (define_insn_reservation "ev4_imuldi" 23
    (and (eq_attr "tune" "ev4")
--- 114,120 ----
  	    (eq_attr "opsize" "si")))
    "ev4_ib0+ev4_imul,ev4_imul*18,ev4_ebox")
  
! (define_bypass 20 "ev4_imulsi" "ev4_ist" "alpha_store_data_bypass_p")
  
  (define_insn_reservation "ev4_imuldi" 23
    (and (eq_attr "tune" "ev4")
***************
*** 129,135 ****
  	    (eq_attr "opsize" "!si")))
    "ev4_ib0+ev4_imul,ev4_imul*20,ev4_ebox")
  
! (define_bypass 22 "ev4_imuldi" "ev4_ist" "store_data_bypass_p")
  
  ; Most FP insns have a 6 cycle latency, but with a 4 cycle bypass back in.
  (define_insn_reservation "ev4_fpop" 6
--- 122,128 ----
  	    (eq_attr "opsize" "!si")))
    "ev4_ib0+ev4_imul,ev4_imul*20,ev4_ebox")
  
! (define_bypass 22 "ev4_imuldi" "ev4_ist" "alpha_store_data_bypass_p")
  
  ; Most FP insns have a 6 cycle latency, but with a 4 cycle bypass back in.
  (define_insn_reservation "ev4_fpop" 6
diff -Nrcpad gcc-11.3.0/gcc/config/arm/arm-protos.h gcc-11.4.0/gcc/config/arm/arm-protos.h
*** gcc-11.3.0/gcc/config/arm/arm-protos.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/arm/arm-protos.h	Mon May 29 08:46:29 2023
*************** extern int arm_coproc_mem_operand_wb (rt
*** 122,127 ****
--- 122,128 ----
  extern int neon_vector_mem_operand (rtx, int, bool);
  extern int mve_vector_mem_operand (machine_mode, rtx, bool);
  extern int neon_struct_mem_operand (rtx);
+ extern int mve_struct_mem_operand (rtx);
  
  extern rtx *neon_vcmla_lane_prepare_operands (rtx *);
  
diff -Nrcpad gcc-11.3.0/gcc/config/arm/arm.c gcc-11.4.0/gcc/config/arm/arm.c
*** gcc-11.3.0/gcc/config/arm/arm.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/arm/arm.c	Mon May 29 08:46:29 2023
*************** neon_vector_mem_operand (rtx op, int typ
*** 13532,13537 ****
--- 13532,13555 ----
    return FALSE;
  }
  
+ /* Return TRUE if OP is a mem suitable for loading/storing an MVE struct
+    type.  */
+ int
+ mve_struct_mem_operand (rtx op)
+ {
+   rtx ind = XEXP (op, 0);
+ 
+   /* Match: (mem (reg)).  */
+   if (REG_P (ind))
+     return arm_address_register_rtx_p (ind, 0);
+ 
+   /* Allow only post-increment by the mode size.  */
+   if (GET_CODE (ind) == POST_INC)
+     return arm_address_register_rtx_p (XEXP (ind, 0), 0);
+ 
+   return FALSE;
+ }
+ 
  /* Return TRUE if OP is a mem suitable for loading/storing a Neon struct
     type.  */
  int
*************** gen_cpymem_ldrd_strd (rtx *operands)
*** 15546,15558 ****
      {
        len -= 8;
        reg0 = gen_reg_rtx (DImode);
!       rtx low_reg = NULL_RTX;
!       rtx hi_reg = NULL_RTX;
  
        if (!src_aligned || !dst_aligned)
  	{
! 	  low_reg = gen_lowpart (SImode, reg0);
! 	  hi_reg = gen_highpart_mode (SImode, DImode, reg0);
  	}
        if (MEM_ALIGN (src) >= 2 * BITS_PER_WORD)
  	emit_move_insn (reg0, src);
--- 15564,15584 ----
      {
        len -= 8;
        reg0 = gen_reg_rtx (DImode);
!       rtx first_reg = NULL_RTX;
!       rtx second_reg = NULL_RTX;
  
        if (!src_aligned || !dst_aligned)
  	{
! 	  if (BYTES_BIG_ENDIAN)
! 	    {
! 	      second_reg = gen_lowpart (SImode, reg0);
! 	      first_reg = gen_highpart_mode (SImode, DImode, reg0);
! 	    }
! 	  else
! 	    {
! 	      first_reg = gen_lowpart (SImode, reg0);
! 	      second_reg = gen_highpart_mode (SImode, DImode, reg0);
! 	    }
  	}
        if (MEM_ALIGN (src) >= 2 * BITS_PER_WORD)
  	emit_move_insn (reg0, src);
*************** gen_cpymem_ldrd_strd (rtx *operands)
*** 15560,15568 ****
  	emit_insn (gen_unaligned_loaddi (reg0, src));
        else
  	{
! 	  emit_insn (gen_unaligned_loadsi (low_reg, src));
  	  src = next_consecutive_mem (src);
! 	  emit_insn (gen_unaligned_loadsi (hi_reg, src));
  	}
  
        if (MEM_ALIGN (dst) >= 2 * BITS_PER_WORD)
--- 15586,15594 ----
  	emit_insn (gen_unaligned_loaddi (reg0, src));
        else
  	{
! 	  emit_insn (gen_unaligned_loadsi (first_reg, src));
  	  src = next_consecutive_mem (src);
! 	  emit_insn (gen_unaligned_loadsi (second_reg, src));
  	}
  
        if (MEM_ALIGN (dst) >= 2 * BITS_PER_WORD)
*************** gen_cpymem_ldrd_strd (rtx *operands)
*** 15571,15579 ****
  	emit_insn (gen_unaligned_storedi (dst, reg0));
        else
  	{
! 	  emit_insn (gen_unaligned_storesi (dst, low_reg));
  	  dst = next_consecutive_mem (dst);
! 	  emit_insn (gen_unaligned_storesi (dst, hi_reg));
  	}
  
        src = next_consecutive_mem (src);
--- 15597,15605 ----
  	emit_insn (gen_unaligned_storedi (dst, reg0));
        else
  	{
! 	  emit_insn (gen_unaligned_storesi (dst, first_reg));
  	  dst = next_consecutive_mem (dst);
! 	  emit_insn (gen_unaligned_storesi (dst, second_reg));
  	}
  
        src = next_consecutive_mem (src);
diff -Nrcpad gcc-11.3.0/gcc/config/arm/constraints.md gcc-11.4.0/gcc/config/arm/constraints.md
*** gcc-11.3.0/gcc/config/arm/constraints.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/arm/constraints.md	Mon May 29 08:46:29 2023
***************
*** 460,465 ****
--- 460,470 ----
   (and (match_code "mem")
        (match_test "TARGET_32BIT && arm_coproc_mem_operand (op, FALSE)")))
  
+ (define_memory_constraint "Ug"
+  "@internal
+   In Thumb-2 state a valid MVE struct load/store address."
+  (match_operand 0 "mve_struct_operand"))
+ 
  (define_memory_constraint "Uj"
   "@internal
    In ARM/Thumb-2 state a VFP load/store address that supports writeback
diff -Nrcpad gcc-11.3.0/gcc/config/arm/mve.md gcc-11.4.0/gcc/config/arm/mve.md
*** gcc-11.3.0/gcc/config/arm/mve.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/arm/mve.md	Mon May 29 08:46:29 2023
***************
*** 92,98 ****
  ;; [vst4q])
  ;;
  (define_insn "mve_vst4q<mode>"
!   [(set (match_operand:XI 0 "neon_struct_operand" "=Um")
  	(unspec:XI [(match_operand:XI 1 "s_register_operand" "w")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VST4Q))
--- 92,98 ----
  ;; [vst4q])
  ;;
  (define_insn "mve_vst4q<mode>"
!   [(set (match_operand:XI 0 "mve_struct_operand" "=Ug")
  	(unspec:XI [(match_operand:XI 1 "s_register_operand" "w")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VST4Q))
***************
*** 10312,10318 ****
  ;; [vst2q])
  ;;
  (define_insn "mve_vst2q<mode>"
!   [(set (match_operand:OI 0 "neon_struct_operand" "=Um")
  	(unspec:OI [(match_operand:OI 1 "s_register_operand" "w")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VST2Q))
--- 10312,10318 ----
  ;; [vst2q])
  ;;
  (define_insn "mve_vst2q<mode>"
!   [(set (match_operand:OI 0 "mve_struct_operand" "=Ug")
  	(unspec:OI [(match_operand:OI 1 "s_register_operand" "w")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VST2Q))
***************
*** 10341,10347 ****
  ;;
  (define_insn "mve_vld2q<mode>"
    [(set (match_operand:OI 0 "s_register_operand" "=w")
! 	(unspec:OI [(match_operand:OI 1 "neon_struct_operand" "Um")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VLD2Q))
    ]
--- 10341,10347 ----
  ;;
  (define_insn "mve_vld2q<mode>"
    [(set (match_operand:OI 0 "s_register_operand" "=w")
! 	(unspec:OI [(match_operand:OI 1 "mve_struct_operand" "Ug")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VLD2Q))
    ]
***************
*** 10369,10375 ****
  ;;
  (define_insn "mve_vld4q<mode>"
    [(set (match_operand:XI 0 "s_register_operand" "=w")
! 	(unspec:XI [(match_operand:XI 1 "neon_struct_operand" "Um")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VLD4Q))
    ]
--- 10369,10375 ----
  ;;
  (define_insn "mve_vld4q<mode>"
    [(set (match_operand:XI 0 "s_register_operand" "=w")
! 	(unspec:XI [(match_operand:XI 1 "mve_struct_operand" "Ug")
  		    (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)]
  	 VLD4Q))
    ]
***************
*** 10822,10828 ****
  )
  
  (define_insn "*movmisalign<mode>_mve_store"
!   [(set (match_operand:MVE_VLD_ST 0 "neon_permissive_struct_operand"	     "=Ux")
  	(unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "s_register_operand" " w")]
  	 UNSPEC_MISALIGNED_ACCESS))]
    "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (<MODE>mode))
--- 10822,10828 ----
  )
  
  (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))]
    "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (<MODE>mode))
***************
*** 10835,10841 ****
  
  (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 "neon_permissive_struct_operand" " Ux")]
  	 UNSPEC_MISALIGNED_ACCESS))]
    "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (<MODE>mode))
      || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode)))
--- 10835,10841 ----
  
  (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))]
    "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (<MODE>mode))
      || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (<MODE>mode)))
diff -Nrcpad gcc-11.3.0/gcc/config/arm/predicates.md gcc-11.4.0/gcc/config/arm/predicates.md
*** gcc-11.3.0/gcc/config/arm/predicates.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/arm/predicates.md	Mon May 29 08:46:29 2023
***************
*** 872,877 ****
--- 872,881 ----
    (and (match_code "mem")
         (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2, true)")))
  
+ (define_predicate "mve_struct_operand"
+   (and (match_code "mem")
+        (match_test "TARGET_HAVE_MVE && mve_struct_mem_operand (op)")))
+ 
  (define_predicate "neon_permissive_struct_operand"
    (and (match_code "mem")
         (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2, false)")))
diff -Nrcpad gcc-11.3.0/gcc/config/arm/vec-common.md gcc-11.4.0/gcc/config/arm/vec-common.md
*** gcc-11.3.0/gcc/config/arm/vec-common.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/arm/vec-common.md	Mon May 29 08:46:29 2023
***************
*** 280,308 ****
    DONE;
  })
  
! (define_expand "movmisalign<mode>"
!  [(set (match_operand:VDQX 0 "neon_perm_struct_or_reg_operand")
! 	(unspec:VDQX [(match_operand:VDQX 1 "neon_perm_struct_or_reg_operand")]
  	 UNSPEC_MISALIGNED_ACCESS))]
   "ARM_HAVE_<MODE>_LDST && !BYTES_BIG_ENDIAN
    && unaligned_access && !TARGET_REALLY_IWMMXT"
  {
!  rtx adjust_mem;
!  /* This pattern is not permitted to fail during expansion: if both arguments
!     are non-registers (e.g. memory := constant, which can be created by the
!     auto-vectorizer), force operand 1 into a register.  */
!  if (!s_register_operand (operands[0], <MODE>mode)
!      && !s_register_operand (operands[1], <MODE>mode))
!    operands[1] = force_reg (<MODE>mode, operands[1]);
  
!  if (s_register_operand (operands[0], <MODE>mode))
!    adjust_mem = operands[1];
!  else
!    adjust_mem = operands[0];
  
!  /* Legitimize address.  */
!  if (!neon_vector_mem_operand (adjust_mem, 2, true))
!    XEXP (adjust_mem, 0) = force_reg (Pmode, XEXP (adjust_mem, 0));
  })
  
  (define_insn "mve_vshlq_<supf><mode>"
--- 280,360 ----
    DONE;
  })
  
! (define_expand "@movmisalign<mode>"
!  [(set (match_operand:VDQX 0 "nonimmediate_operand")
! 	(unspec:VDQX [(match_operand:VDQX 1 "general_operand")]
  	 UNSPEC_MISALIGNED_ACCESS))]
   "ARM_HAVE_<MODE>_LDST && !BYTES_BIG_ENDIAN
    && unaligned_access && !TARGET_REALLY_IWMMXT"
  {
!   rtx *memloc;
!   bool for_store = false;
!   /* This pattern is not permitted to fail during expansion: if both arguments
!      are non-registers (e.g. memory := constant, which can be created by the
!      auto-vectorizer), force operand 1 into a register.  */
!   if (!s_register_operand (operands[0], <MODE>mode)
!       && !s_register_operand (operands[1], <MODE>mode))
!     operands[1] = force_reg (<MODE>mode, operands[1]);
  
!   if (s_register_operand (operands[0], <MODE>mode))
!     memloc = &operands[1];
!   else
!     {
!       memloc = &operands[0];
!       for_store = true;
!     }
  
!   /* For MVE, vector loads/stores must be aligned to the element size.  If the
!      alignment is less than that convert the load/store to a suitable mode.  */
!   if (TARGET_HAVE_MVE
!       && (MEM_ALIGN (*memloc)
! 	  < GET_MODE_ALIGNMENT (GET_MODE_INNER (<MODE>mode))))
!     {
!       scalar_mode new_smode;
!       switch (MEM_ALIGN (*memloc))
! 	{
! 	case 64:
! 	case 32:
! 	  new_smode = SImode;
! 	  break;
! 	case 16:
! 	  new_smode = HImode;
! 	  break;
! 	default:
! 	  new_smode = QImode;
! 	  break;
! 	}
!       machine_mode new_mode
! 	= mode_for_vector (new_smode,
! 			   GET_MODE_SIZE (<MODE>mode)
! 			   / GET_MODE_SIZE (new_smode)).require ();
!       rtx new_mem = adjust_address (*memloc, new_mode, 0);
! 
!       if (!for_store)
! 	{
! 	  rtx reg = gen_reg_rtx (new_mode);
! 	  emit_insn (gen_movmisalign (new_mode, reg, new_mem));
! 	  emit_move_insn (operands[0], gen_lowpart (<MODE>mode, reg));
! 	  DONE;
! 	}
!       emit_insn (gen_movmisalign (new_mode, new_mem,
! 				  gen_lowpart (new_mode, operands[1])));
!       DONE;
!     }
! 
!   /* Legitimize address.  */
!   if ((TARGET_HAVE_MVE
!        && !mve_vector_mem_operand (<MODE>mode, XEXP (*memloc, 0), false))
!       || (!TARGET_HAVE_MVE
! 	  && !neon_vector_mem_operand (*memloc, 2, false)))
!     {
!       rtx new_mem
! 	= replace_equiv_address (*memloc,
! 				 force_reg (Pmode, XEXP (*memloc, 0)),
! 				 false);
!       gcc_assert (MEM_ALIGN (new_mem) == MEM_ALIGN (*memloc));
!       *memloc = new_mem;
!     }
  })
  
  (define_insn "mve_vshlq_<supf><mode>"
diff -Nrcpad gcc-11.3.0/gcc/config/darwin-c.c gcc-11.4.0/gcc/config/darwin-c.c
*** gcc-11.3.0/gcc/config/darwin-c.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/darwin-c.c	Mon May 29 08:46:29 2023
*************** macosx_version_as_macro (void)
*** 691,697 ****
    if (!version_array)
      goto fail;
  
!   if (version_array[MAJOR] < 10 || version_array[MAJOR] > 12)
      goto fail;
  
    if (version_array[MAJOR] == 10 && version_array[MINOR] < 10)
--- 691,698 ----
    if (!version_array)
      goto fail;
  
!   /* System tools accept up to 99 as a major version.  */
!   if (version_array[MAJOR] < 10 || version_array[MAJOR] > 99)
      goto fail;
  
    if (version_array[MAJOR] == 10 && version_array[MINOR] < 10)
diff -Nrcpad gcc-11.3.0/gcc/config/darwin-driver.c gcc-11.4.0/gcc/config/darwin-driver.c
*** gcc-11.3.0/gcc/config/darwin-driver.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/darwin-driver.c	Mon May 29 08:46:29 2023
*************** validate_macosx_version_min (const char
*** 64,70 ****
  
    major = strtoul (version_str, &end, 10);
  
!   if (major < 10 || major > 12 ) /* macOS 10, 11, and 12 are known. */
      return NULL;
  
    /* Skip a separating period, if there's one.  */
--- 64,71 ----
  
    major = strtoul (version_str, &end, 10);
  
!   /* macOS 10, 11, and 12 are known. clang accepts up to 99.  */
!   if (major < 10 || major > 99)
      return NULL;
  
    /* Skip a separating period, if there's one.  */
*************** darwin_find_version_from_kernel (void)
*** 159,178 ****
      goto parse_failed;
  
    /* Darwin20 sees a transition to macOS 11.  In this, it seems that the
!      mapping to macOS minor version is now shifted to the kernel minor
!      version - 1 (at least for the initial releases).  At this stage, we
!      don't know what macOS version will correspond to Darwin21.  */
    if (major_vers >= 20)
      {
!       int minor_vers = *version_p++ - '0';
!       if (ISDIGIT (*version_p))
! 	minor_vers = minor_vers * 10 + (*version_p++ - '0');
!       if (*version_p++ != '.')
! 	goto parse_failed;
!       if (minor_vers > 0)
! 	minor_vers -= 1; /* Kernel 20.3 => macOS 11.2.  */
!       /* It's not yet clear whether patch level will be considered.  */
!       asprintf (&new_flag, "%d.%02d.00", major_vers - 9, minor_vers);
      }
    else if (major_vers - 4 <= 4)
      /* On 10.4 and earlier, the old linker is used which does not
--- 160,172 ----
      goto parse_failed;
  
    /* Darwin20 sees a transition to macOS 11.  In this, it seems that the
!      mapping to macOS minor version and patch level is now always 0, 0
!      (at least for macOS 11 and 12).  */
    if (major_vers >= 20)
      {
!       /* Apple clang doesn't include the minor version or the patch level
! 	 in the object file, nor does it pass it to ld  */
!       asprintf (&new_flag, "%d.00.00", major_vers - 9);
      }
    else if (major_vers - 4 <= 4)
      /* On 10.4 and earlier, the old linker is used which does not
diff -Nrcpad gcc-11.3.0/gcc/config/darwin.c gcc-11.4.0/gcc/config/darwin.c
*** gcc-11.3.0/gcc/config/darwin.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/darwin.c	Mon May 29 08:46:29 2023
*************** darwin_emit_common (FILE *fp, const char
*** 2556,2562 ****
      rounded = (size + (align-1)) & ~(align-1);
  
    l2align = floor_log2 (align);
-   gcc_assert (l2align <= L2_MAX_OFILE_ALIGNMENT);
  
    in_section = comm_section;
    /* We mustn't allow multiple public symbols to share an address when using
--- 2556,2561 ----
*************** darwin_asm_output_aligned_decl_common (F
*** 2707,2712 ****
--- 2706,2715 ----
  #ifdef DEBUG_DARWIN_MEM_ALLOCATORS
  fprintf (fp, "# adcom: %s (%d,%d) decl=0x0\n", name, (int)size, (int)align);
  #endif
+      /* Common variables are limited to a maximum alignment of 2^15.  */
+       if (align > 32768)
+ 	error_at (UNKNOWN_LOCATION, "common variables must have an alignment"
+ 		  " of 32678 or less");
        darwin_emit_common (fp, name, size, align);
        return;
      }
*************** fprintf (fp, "# adcom: %s (%lld,%d) ro %
*** 2734,2740 ****
      }
  
    /* We shouldn't be messing with this if the decl has a section name.  */
!   gcc_assert (DECL_SECTION_NAME (decl) == NULL);
  
    /* We would rather not have to check this here - but it seems that we might
       be passed a decl that should be in coalesced space.  */
--- 2737,2743 ----
      }
  
    /* We shouldn't be messing with this if the decl has a section name.  */
!   gcc_checking_assert (DECL_SECTION_NAME (decl) == NULL);
  
    /* We would rather not have to check this here - but it seems that we might
       be passed a decl that should be in coalesced space.  */
*************** fprintf (fp, "# adcom: %s (%lld,%d) ro %
*** 2763,2772 ****
  
    l2align = floor_log2 (align / BITS_PER_UNIT);
    /* Check we aren't asking for more aligment than the platform allows.  */
!   gcc_assert (l2align <= L2_MAX_OFILE_ALIGNMENT);
  
    if (TREE_PUBLIC (decl) != 0)
!     darwin_emit_common (fp, name, size, align);
    else
      darwin_emit_local_bss (fp, decl, name, size, l2align);
  }
--- 2766,2781 ----
  
    l2align = floor_log2 (align / BITS_PER_UNIT);
    /* Check we aren't asking for more aligment than the platform allows.  */
!   gcc_checking_assert (l2align <= L2_MAX_OFILE_ALIGNMENT);
  
    if (TREE_PUBLIC (decl) != 0)
!     {
!       /* Common variables are limited to a maximum alignment of 2^15.  */
!       if (l2align > 15)
! 	error_at (DECL_SOURCE_LOCATION (decl), "common variables must have"
! 		  " an alignment of 32678 or less");
!       darwin_emit_common (fp, name, size, align);
!     }
    else
      darwin_emit_local_bss (fp, decl, name, size, l2align);
  }
diff -Nrcpad gcc-11.3.0/gcc/config/darwin.h gcc-11.4.0/gcc/config/darwin.h
*** gcc-11.3.0/gcc/config/darwin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/darwin.h	Mon May 29 08:46:29 2023
*************** extern GTY(()) int darwin_ms_struct;
*** 141,150 ****
     Right now there's no mechanism to split up the "variable portion" (%*) of
     the matched spec string, so where we have some driver specs that take 2
     or 3 arguments, these cannot be processed here, but are deferred until the
!    LINK_SPEC, where they are copied verbatim.
!    We have a "safe" version of the MacOS version string, that's been sanity-
!    checked and truncated to minor version.  If the 'tiny' (3rd) portion of the
!    value is not significant, it's better to use this in version-compare().  */
  
  #undef SUBTARGET_DRIVER_SELF_SPECS
  #define SUBTARGET_DRIVER_SELF_SPECS					\
--- 141,147 ----
     Right now there's no mechanism to split up the "variable portion" (%*) of
     the matched spec string, so where we have some driver specs that take 2
     or 3 arguments, these cannot be processed here, but are deferred until the
!    LINK_SPEC, where they are copied verbatim.  */
  
  #undef SUBTARGET_DRIVER_SELF_SPECS
  #define SUBTARGET_DRIVER_SELF_SPECS					\
*************** extern GTY(()) int darwin_ms_struct;
*** 218,230 ****
    "%{image_base*:-Xlinker -image_base -Xlinker %*} %<image_base*",	\
    "%{init*:-Xlinker -init -Xlinker %*} %<init*",			\
    "%{multi_module:-Xlinker -multi_module} %<multi_module",		\
!   "%{multiply_defined*:-Xlinker -multiply_defined -Xlinker %*; \
!      :%{shared-libgcc: \
!        %:version-compare(< 10.5 asm_macosx_version_min= -Xlinker) \
!        %:version-compare(< 10.5 asm_macosx_version_min= -multiply_defined) \
!        %:version-compare(< 10.5 asm_macosx_version_min= -Xlinker) \
!        %:version-compare(< 10.5 asm_macosx_version_min= suppress)}} \
!      %<multiply_defined*",						\
    "%{multiplydefinedunused*:\
       -Xlinker -multiply_defined_unused -Xlinker %*} \
       %<multiplydefinedunused* ",					\
--- 215,222 ----
    "%{image_base*:-Xlinker -image_base -Xlinker %*} %<image_base*",	\
    "%{init*:-Xlinker -init -Xlinker %*} %<init*",			\
    "%{multi_module:-Xlinker -multi_module} %<multi_module",		\
!   "%{multiply_defined*:-Xlinker -multiply_defined -Xlinker %*} \
!      %<multiply_defined* ",						\
    "%{multiplydefinedunused*:\
       -Xlinker -multiply_defined_unused -Xlinker %*} \
       %<multiplydefinedunused* ",					\
*************** extern GTY(()) int darwin_ms_struct;
*** 445,456 ****
--- 437,452 ----
                       %:replace-outfile(-lobjc libobjc-gnu.a%s); \
                      :%:replace-outfile(-lobjc -lobjc-gnu )}}\
     %{static|static-libgcc|static-libgfortran:%:replace-outfile(-lgfortran libgfortran.a%s)}\
+    %{static|static-libgcc|static-libphobos:%:replace-outfile(-lgphobos libgphobos.a%s)}\
     %{static|static-libgcc|static-libstdc++|static-libgfortran:%:replace-outfile(-lgomp libgomp.a%s)}\
     %{static|static-libgcc|static-libstdc++:%:replace-outfile(-lstdc++ libstdc++.a%s)}\
     %{force_cpusubtype_ALL:-arch %(darwin_arch)} \
     %{!force_cpusubtype_ALL:-arch %(darwin_subarch)} "\
     LINK_SYSROOT_SPEC \
    "%{mmacosx-version-min=*:-macosx_version_min %*} \
+    %{!multiply_defined*:%{shared-libgcc: \
+      %:version-compare(< 10.5 mmacosx-version-min= -multiply_defined) \
+      %:version-compare(< 10.5 mmacosx-version-min= suppress) }} \
     %{sectalign*} %{sectcreate*} %{sectobjectsymbols*}  %{sectorder*} \
     %{segaddr*} %{segcreate*} %{segprot*} "
  
*************** int darwin_label_is_anonymous_local_objc
*** 867,879 ****
    if ((LOG) != 0)			\
      fprintf (FILE, "\t%s\t%d\n", ALIGN_ASM_OP, (LOG))
  
! /* The maximum alignment which the object file format can support in
!    bits.  For Mach-O, this is 2^15 bytes.  */
  
  #undef	MAX_OFILE_ALIGNMENT
! #define MAX_OFILE_ALIGNMENT (0x8000 * 8)
! 
! #define L2_MAX_OFILE_ALIGNMENT 15
  
  /*  These are the three variants that emit referenced blank space.  */
  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)		\
--- 863,874 ----
    if ((LOG) != 0)			\
      fprintf (FILE, "\t%s\t%d\n", ALIGN_ASM_OP, (LOG))
  
! /* The maximum alignment which the object file format can support in bits
!    which depends on the OS version and whether the object is a common
!    variable.  */
  
  #undef	MAX_OFILE_ALIGNMENT
! #define MAX_OFILE_ALIGNMENT ((1U << L2_MAX_OFILE_ALIGNMENT) * 8U)
  
  /*  These are the three variants that emit referenced blank space.  */
  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)		\
diff -Nrcpad gcc-11.3.0/gcc/config/i386/avx512fintrin.h gcc-11.4.0/gcc/config/i386/avx512fintrin.h
*** gcc-11.3.0/gcc/config/i386/avx512fintrin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/avx512fintrin.h	Mon May 29 08:46:29 2023
*************** _mm_maskz_scalef_round_ss (__mmask8 __U,
*** 3244,3274 ****
  						      (__mmask8) __U, __R);
  }
  #else
! #define _mm512_scalef_round_pd(A, B, C)            \
!     (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
  
! #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
!     (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C)
  
! #define _mm512_maskz_scalef_round_pd(U, A, B, C)   \
!     (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
  
! #define _mm512_scalef_round_ps(A, B, C)            \
!     (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
  
! #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
!     (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C)
  
! #define _mm512_maskz_scalef_round_ps(U, A, B, C)   \
!     (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
  
! #define _mm_scalef_round_sd(A, B, C)            \
!     (__m128d)__builtin_ia32_scalefsd_mask_round (A, B, \
! 	(__v2df)_mm_setzero_pd (), -1, C)
  
! #define _mm_scalef_round_ss(A, B, C)            \
!     (__m128)__builtin_ia32_scalefss_mask_round (A, B, \
! 	(__v4sf)_mm_setzero_ps (), -1, C)
  #endif
  
  #define _mm_mask_scalef_sd(W, U, A, B) \
--- 3244,3310 ----
  						      (__mmask8) __U, __R);
  }
  #else
! #define _mm512_scalef_round_pd(A, B, C)					\
!   ((__m512d)								\
!    __builtin_ia32_scalefpd512_mask((A), (B),				\
! 				   (__v8df) _mm512_undefined_pd(),	\
! 				   -1, (C)))
  
! #define _mm512_mask_scalef_round_pd(W, U, A, B, C)			\
!   ((__m512d) __builtin_ia32_scalefpd512_mask((A), (B), (W), (U), (C)))
  
! #define _mm512_maskz_scalef_round_pd(U, A, B, C)			\
!   ((__m512d)								\
!    __builtin_ia32_scalefpd512_mask((A), (B),				\
! 				   (__v8df) _mm512_setzero_pd(),	\
! 				   (U), (C)))
  
! #define _mm512_scalef_round_ps(A, B, C)					\
!   ((__m512)								\
!    __builtin_ia32_scalefps512_mask((A), (B),				\
! 				   (__v16sf) _mm512_undefined_ps(),	\
! 				   -1, (C)))
  
! #define _mm512_mask_scalef_round_ps(W, U, A, B, C)			\
!   ((__m512) __builtin_ia32_scalefps512_mask((A), (B), (W), (U), (C)))
  
! #define _mm512_maskz_scalef_round_ps(U, A, B, C)			\
!   ((__m512)								\
!    __builtin_ia32_scalefps512_mask((A), (B),				\
! 				   (__v16sf) _mm512_setzero_ps(),	\
! 				   (U), (C)))
  
! #define _mm_scalef_round_sd(A, B, C)					\
!   ((__m128d)								\
!    __builtin_ia32_scalefsd_mask_round ((A), (B),			\
! 				       (__v2df) _mm_undefined_pd (),	\
! 				       -1, (C)))
  
! #define _mm_scalef_round_ss(A, B, C)					\
!   ((__m128)								\
!    __builtin_ia32_scalefss_mask_round ((A), (B),			\
! 				       (__v4sf) _mm_undefined_ps (),	\
! 				       -1, (C)))
! 
! #define _mm_mask_scalef_round_sd(W, U, A, B, C)				\
!   ((__m128d)								\
!    __builtin_ia32_scalefsd_mask_round ((A), (B), (W), (U), (C)))
! 
! #define _mm_mask_scalef_round_ss(W, U, A, B, C)				\
!   ((__m128)								\
!    __builtin_ia32_scalefss_mask_round ((A), (B), (W), (U), (C)))
! 
! #define _mm_maskz_scalef_round_sd(U, A, B, C)				\
!   ((__m128d)								\
!    __builtin_ia32_scalefsd_mask_round ((A), (B),			\
! 				       (__v2df) _mm_setzero_pd (),	\
! 				       (U), (C)))
! 
! #define _mm_maskz_scalef_round_ss(U, A, B, C)				\
!   ((__m128)								\
!    __builtin_ia32_scalefss_mask_round ((A), (B),			\
! 				       (__v4sf) _mm_setzero_ps (),	\
! 				       (U), (C)))
  #endif
  
  #define _mm_mask_scalef_sd(W, U, A, B) \
diff -Nrcpad gcc-11.3.0/gcc/config/i386/cygwin.h gcc-11.4.0/gcc/config/i386/cygwin.h
*** gcc-11.3.0/gcc/config/i386/cygwin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/cygwin.h	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 57,63 ****
  
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
!   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}\
     %{!shared:%:if-exists(default-manifest.o%s)}\
     %{fvtable-verify=none:%s; \
      fvtable-verify=preinit:vtv_end.o%s; \
--- 57,63 ----
  
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
!   "%{mdaz-ftz:crtfastmath.o%s;Ofast|ffast-math|funsafe-math-optimizations:%{!mno-daz-ftz:crtfastmath.o%s}} \
     %{!shared:%:if-exists(default-manifest.o%s)}\
     %{fvtable-verify=none:%s; \
      fvtable-verify=preinit:vtv_end.o%s; \
diff -Nrcpad gcc-11.3.0/gcc/config/i386/darwin.h gcc-11.4.0/gcc/config/i386/darwin.h
*** gcc-11.3.0/gcc/config/i386/darwin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/darwin.h	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 123,129 ****
  
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
!   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
     %{mpc32:crtprec32.o%s} \
     %{mpc64:crtprec64.o%s} \
     %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR
--- 123,129 ----
  
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
!   "%{mdaz-ftz:crtfastmath.o%s;Ofast|ffast-math|funsafe-math-optimizations:%{!mno-daz-ftz:crtfastmath.o%s}} \
     %{mpc32:crtprec32.o%s} \
     %{mpc64:crtprec64.o%s} \
     %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR
diff -Nrcpad gcc-11.3.0/gcc/config/i386/gnu-user-common.h gcc-11.4.0/gcc/config/i386/gnu-user-common.h
*** gcc-11.3.0/gcc/config/i386/gnu-user-common.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/gnu-user-common.h	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 47,53 ****
  
  /* Similar to standard GNU userspace, but adding -ffast-math support.  */
  #define GNU_USER_TARGET_MATHFILE_SPEC \
!   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
     %{mpc32:crtprec32.o%s} \
     %{mpc64:crtprec64.o%s} \
     %{mpc80:crtprec80.o%s}"
--- 47,53 ----
  
  /* Similar to standard GNU userspace, but adding -ffast-math support.  */
  #define GNU_USER_TARGET_MATHFILE_SPEC \
!   "%{mdaz-ftz:crtfastmath.o%s;Ofast|ffast-math|funsafe-math-optimizations:%{!mno-daz-ftz:crtfastmath.o%s}} \
     %{mpc32:crtprec32.o%s} \
     %{mpc64:crtprec64.o%s} \
     %{mpc80:crtprec80.o%s}"
diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386-builtin.def gcc-11.4.0/gcc/config/i386/i386-builtin.def
*** gcc-11.3.0/gcc/config/i386/i386-builtin.def	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/i386-builtin.def	Mon May 29 08:46:29 2023
*************** BDESC (0, OPTION_MASK_ISA2_VAES, CODE_FO
*** 2742,2771 ****
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v32hi, "__builtin_ia32_cvtne2ps2bf16_v32hi", IX86_BUILTIN_CVTNE2PS2HI16_V32HI, UNKNOWN, (int) V32HI_FTYPE_V16SF_V16SF)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v32hi_mask, "__builtin_ia32_cvtne2ps2bf16_v32hi_mask", IX86_BUILTIN_CVTNE2PS2HI16_V32HI_MASK, UNKNOWN, (int) V32HI_FTYPE_V16SF_V16SF_V32HI_USI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v32hi_maskz, "__builtin_ia32_cvtne2ps2bf16_v32hi_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V32HI_MASKZ, UNKNOWN, (int) V32HI_FTYPE_V16SF_V16SF_USI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v16hi, "__builtin_ia32_cvtne2ps2bf16_v16hi", IX86_BUILTIN_CVTNE2PS2HI16_V16HI, UNKNOWN, (int) V16HI_FTYPE_V8SF_V8SF)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v16hi_mask, "__builtin_ia32_cvtne2ps2bf16_v16hi_mask", IX86_BUILTIN_CVTNE2PS2HI16_V16HI_MASK, UNKNOWN, (int) V16HI_FTYPE_V8SF_V8SF_V16HI_UHI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v16hi_maskz, "__builtin_ia32_cvtne2ps2bf16_v16hi_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V16HI_MASKZ, UNKNOWN, (int) V16HI_FTYPE_V8SF_V8SF_UHI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v8hi, "__builtin_ia32_cvtne2ps2bf16_v8hi", IX86_BUILTIN_CVTNE2PS2HI16_V8HI, UNKNOWN, (int) V8HI_FTYPE_V4SF_V4SF)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v8hi_mask, "__builtin_ia32_cvtne2ps2bf16_v8hi_mask", IX86_BUILTIN_CVTNE2PS2HI16_V8HI_MASK, UNKNOWN, (int) V8HI_FTYPE_V4SF_V4SF_V8HI_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v8hi_maskz, "__builtin_ia32_cvtne2ps2bf16_v8hi_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V8HI_MASKZ, UNKNOWN, (int) V8HI_FTYPE_V4SF_V4SF_UQI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v16sf, "__builtin_ia32_cvtneps2bf16_v16sf", IX86_BUILTIN_CVTNEPS2HI16_V16SF, UNKNOWN, (int) V16HI_FTYPE_V16SF)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v16sf_mask, "__builtin_ia32_cvtneps2bf16_v16sf_mask", IX86_BUILTIN_CVTNEPS2HI16_V16SF_MASK, UNKNOWN, (int) V16HI_FTYPE_V16SF_V16HI_UHI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v16sf_maskz, "__builtin_ia32_cvtneps2bf16_v16sf_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V16SF_MASKZ, UNKNOWN, (int) V16HI_FTYPE_V16SF_UHI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v8sf, "__builtin_ia32_cvtneps2bf16_v8sf", IX86_BUILTIN_CVTNEPS2HI16_V8SF, UNKNOWN, (int) V8HI_FTYPE_V8SF)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v8sf_mask, "__builtin_ia32_cvtneps2bf16_v8sf_mask", IX86_BUILTIN_CVTNEPS2HI16_V8SF_MASK, UNKNOWN, (int) V8HI_FTYPE_V8SF_V8HI_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v8sf_maskz, "__builtin_ia32_cvtneps2bf16_v8sf_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V8SF_MASKZ, UNKNOWN, (int) V8HI_FTYPE_V8SF_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v4sf, "__builtin_ia32_cvtneps2bf16_v4sf", IX86_BUILTIN_CVTNEPS2HI16_V4SF, UNKNOWN, (int) V8HI_FTYPE_V4SF)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v4sf_mask, "__builtin_ia32_cvtneps2bf16_v4sf_mask", IX86_BUILTIN_CVTNEPS2HI16_V4SF_MASK, UNKNOWN, (int) V8HI_FTYPE_V4SF_V8HI_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v4sf_maskz, "__builtin_ia32_cvtneps2bf16_v4sf_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V4SF_MASKZ, UNKNOWN, (int) V8HI_FTYPE_V4SF_UQI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v16sf, "__builtin_ia32_dpbf16ps_v16sf", IX86_BUILTIN_DPHI16PS_V16SF, UNKNOWN, (int) V16SF_FTYPE_V16SF_V32HI_V32HI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v16sf_mask, "__builtin_ia32_dpbf16ps_v16sf_mask", IX86_BUILTIN_DPHI16PS_V16SF_MASK, UNKNOWN, (int) V16SF_FTYPE_V16SF_V32HI_V32HI_UHI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v16sf_maskz, "__builtin_ia32_dpbf16ps_v16sf_maskz", IX86_BUILTIN_DPHI16PS_V16SF_MASKZ, UNKNOWN, (int) V16SF_FTYPE_V16SF_V32HI_V32HI_UHI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v8sf, "__builtin_ia32_dpbf16ps_v8sf", IX86_BUILTIN_DPHI16PS_V8SF, UNKNOWN, (int) V8SF_FTYPE_V8SF_V16HI_V16HI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v8sf_mask, "__builtin_ia32_dpbf16ps_v8sf_mask", IX86_BUILTIN_DPHI16PS_V8SF_MASK, UNKNOWN, (int) V8SF_FTYPE_V8SF_V16HI_V16HI_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v8sf_maskz, "__builtin_ia32_dpbf16ps_v8sf_maskz", IX86_BUILTIN_DPHI16PS_V8SF_MASKZ, UNKNOWN, (int) V8SF_FTYPE_V8SF_V16HI_V16HI_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v4sf, "__builtin_ia32_dpbf16ps_v4sf", IX86_BUILTIN_DPHI16PS_V4SF, UNKNOWN, (int) V4SF_FTYPE_V4SF_V8HI_V8HI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v4sf_mask, "__builtin_ia32_dpbf16ps_v4sf_mask", IX86_BUILTIN_DPHI16PS_V4SF_MASK, UNKNOWN, (int) V4SF_FTYPE_V4SF_V8HI_V8HI_UQI)
! BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v4sf_maskz, "__builtin_ia32_dpbf16ps_v4sf_maskz", IX86_BUILTIN_DPHI16PS_V4SF_MASKZ, UNKNOWN, (int) V4SF_FTYPE_V4SF_V8HI_V8HI_UQI)
  
  /* Builtins with rounding support.  */
  BDESC_END (ARGS, ROUND_ARGS)
--- 2742,2771 ----
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v32hi, "__builtin_ia32_cvtne2ps2bf16_v32hi", IX86_BUILTIN_CVTNE2PS2HI16_V32HI, UNKNOWN, (int) V32HI_FTYPE_V16SF_V16SF)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v32hi_mask, "__builtin_ia32_cvtne2ps2bf16_v32hi_mask", IX86_BUILTIN_CVTNE2PS2HI16_V32HI_MASK, UNKNOWN, (int) V32HI_FTYPE_V16SF_V16SF_V32HI_USI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v32hi_maskz, "__builtin_ia32_cvtne2ps2bf16_v32hi_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V32HI_MASKZ, UNKNOWN, (int) V32HI_FTYPE_V16SF_V16SF_USI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v16hi, "__builtin_ia32_cvtne2ps2bf16_v16hi", IX86_BUILTIN_CVTNE2PS2HI16_V16HI, UNKNOWN, (int) V16HI_FTYPE_V8SF_V8SF)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v16hi_mask, "__builtin_ia32_cvtne2ps2bf16_v16hi_mask", IX86_BUILTIN_CVTNE2PS2HI16_V16HI_MASK, UNKNOWN, (int) V16HI_FTYPE_V8SF_V8SF_V16HI_UHI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v16hi_maskz, "__builtin_ia32_cvtne2ps2bf16_v16hi_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V16HI_MASKZ, UNKNOWN, (int) V16HI_FTYPE_V8SF_V8SF_UHI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v8hi, "__builtin_ia32_cvtne2ps2bf16_v8hi", IX86_BUILTIN_CVTNE2PS2HI16_V8HI, UNKNOWN, (int) V8HI_FTYPE_V4SF_V4SF)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v8hi_mask, "__builtin_ia32_cvtne2ps2bf16_v8hi_mask", IX86_BUILTIN_CVTNE2PS2HI16_V8HI_MASK, UNKNOWN, (int) V8HI_FTYPE_V4SF_V4SF_V8HI_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtne2ps2bf16_v8hi_maskz, "__builtin_ia32_cvtne2ps2bf16_v8hi_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V8HI_MASKZ, UNKNOWN, (int) V8HI_FTYPE_V4SF_V4SF_UQI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v16sf, "__builtin_ia32_cvtneps2bf16_v16sf", IX86_BUILTIN_CVTNEPS2HI16_V16SF, UNKNOWN, (int) V16HI_FTYPE_V16SF)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v16sf_mask, "__builtin_ia32_cvtneps2bf16_v16sf_mask", IX86_BUILTIN_CVTNEPS2HI16_V16SF_MASK, UNKNOWN, (int) V16HI_FTYPE_V16SF_V16HI_UHI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v16sf_maskz, "__builtin_ia32_cvtneps2bf16_v16sf_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V16SF_MASKZ, UNKNOWN, (int) V16HI_FTYPE_V16SF_UHI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v8sf, "__builtin_ia32_cvtneps2bf16_v8sf", IX86_BUILTIN_CVTNEPS2HI16_V8SF, UNKNOWN, (int) V8HI_FTYPE_V8SF)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v8sf_mask, "__builtin_ia32_cvtneps2bf16_v8sf_mask", IX86_BUILTIN_CVTNEPS2HI16_V8SF_MASK, UNKNOWN, (int) V8HI_FTYPE_V8SF_V8HI_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v8sf_maskz, "__builtin_ia32_cvtneps2bf16_v8sf_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V8SF_MASKZ, UNKNOWN, (int) V8HI_FTYPE_V8SF_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v4sf, "__builtin_ia32_cvtneps2bf16_v4sf", IX86_BUILTIN_CVTNEPS2HI16_V4SF, UNKNOWN, (int) V8HI_FTYPE_V4SF)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v4sf_mask, "__builtin_ia32_cvtneps2bf16_v4sf_mask", IX86_BUILTIN_CVTNEPS2HI16_V4SF_MASK, UNKNOWN, (int) V8HI_FTYPE_V4SF_V8HI_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_cvtneps2bf16_v4sf_maskz, "__builtin_ia32_cvtneps2bf16_v4sf_maskz", IX86_BUILTIN_CVTNE2PS2HI16_V4SF_MASKZ, UNKNOWN, (int) V8HI_FTYPE_V4SF_UQI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v16sf, "__builtin_ia32_dpbf16ps_v16sf", IX86_BUILTIN_DPHI16PS_V16SF, UNKNOWN, (int) V16SF_FTYPE_V16SF_V32HI_V32HI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v16sf_mask, "__builtin_ia32_dpbf16ps_v16sf_mask", IX86_BUILTIN_DPHI16PS_V16SF_MASK, UNKNOWN, (int) V16SF_FTYPE_V16SF_V32HI_V32HI_UHI)
  BDESC (0, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v16sf_maskz, "__builtin_ia32_dpbf16ps_v16sf_maskz", IX86_BUILTIN_DPHI16PS_V16SF_MASKZ, UNKNOWN, (int) V16SF_FTYPE_V16SF_V32HI_V32HI_UHI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v8sf, "__builtin_ia32_dpbf16ps_v8sf", IX86_BUILTIN_DPHI16PS_V8SF, UNKNOWN, (int) V8SF_FTYPE_V8SF_V16HI_V16HI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v8sf_mask, "__builtin_ia32_dpbf16ps_v8sf_mask", IX86_BUILTIN_DPHI16PS_V8SF_MASK, UNKNOWN, (int) V8SF_FTYPE_V8SF_V16HI_V16HI_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v8sf_maskz, "__builtin_ia32_dpbf16ps_v8sf_maskz", IX86_BUILTIN_DPHI16PS_V8SF_MASKZ, UNKNOWN, (int) V8SF_FTYPE_V8SF_V16HI_V16HI_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v4sf, "__builtin_ia32_dpbf16ps_v4sf", IX86_BUILTIN_DPHI16PS_V4SF, UNKNOWN, (int) V4SF_FTYPE_V4SF_V8HI_V8HI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v4sf_mask, "__builtin_ia32_dpbf16ps_v4sf_mask", IX86_BUILTIN_DPHI16PS_V4SF_MASK, UNKNOWN, (int) V4SF_FTYPE_V4SF_V8HI_V8HI_UQI)
! BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_AVX512BF16, CODE_FOR_avx512f_dpbf16ps_v4sf_maskz, "__builtin_ia32_dpbf16ps_v4sf_maskz", IX86_BUILTIN_DPHI16PS_V4SF_MASKZ, UNKNOWN, (int) V4SF_FTYPE_V4SF_V8HI_V8HI_UQI)
  
  /* Builtins with rounding support.  */
  BDESC_END (ARGS, ROUND_ARGS)
diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386-expand.c gcc-11.4.0/gcc/config/i386/i386-expand.c
*** gcc-11.3.0/gcc/config/i386/i386-expand.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/i386-expand.c	Mon May 29 08:46:29 2023
*************** ix86_expand_vec_set_builtin (tree exp)
*** 11028,11034 ****
    op1 = expand_expr (arg1, NULL_RTX, mode1, EXPAND_NORMAL);
    elt = get_element_number (TREE_TYPE (arg0), arg2);
  
!   if (GET_MODE (op1) != mode1 && GET_MODE (op1) != VOIDmode)
      op1 = convert_modes (mode1, GET_MODE (op1), op1, true);
  
    op0 = force_reg (tmode, op0);
--- 11028,11034 ----
    op1 = expand_expr (arg1, NULL_RTX, mode1, EXPAND_NORMAL);
    elt = get_element_number (TREE_TYPE (arg0), arg2);
  
!   if (GET_MODE (op1) != mode1)
      op1 = convert_modes (mode1, GET_MODE (op1), op1, true);
  
    op0 = force_reg (tmode, op0);
diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386-options.c gcc-11.4.0/gcc/config/i386/i386-options.c
*** gcc-11.3.0/gcc/config/i386/i386-options.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/i386-options.c	Mon May 29 08:46:29 2023
*************** ix86_function_specific_save (struct cl_t
*** 656,662 ****
    ptr->x_recip_mask_explicit = opts->x_recip_mask_explicit;
    ptr->x_ix86_arch_string = opts->x_ix86_arch_string;
    ptr->x_ix86_tune_string = opts->x_ix86_tune_string;
-   ptr->x_ix86_abi = opts->x_ix86_abi;
    ptr->x_ix86_asm_dialect = opts->x_ix86_asm_dialect;
    ptr->x_ix86_branch_cost = opts->x_ix86_branch_cost;
    ptr->x_ix86_dump_tunes = opts->x_ix86_dump_tunes;
--- 656,661 ----
*************** ix86_function_specific_restore (struct g
*** 787,793 ****
    opts->x_recip_mask_explicit = ptr->x_recip_mask_explicit;
    opts->x_ix86_arch_string = ptr->x_ix86_arch_string;
    opts->x_ix86_tune_string = ptr->x_ix86_tune_string;
-   opts->x_ix86_abi = ptr->x_ix86_abi;
    opts->x_ix86_asm_dialect = ptr->x_ix86_asm_dialect;
    opts->x_ix86_branch_cost = ptr->x_ix86_branch_cost;
    opts->x_ix86_dump_tunes = ptr->x_ix86_dump_tunes;
--- 786,791 ----
diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386.c gcc-11.4.0/gcc/config/i386/i386.c
*** gcc-11.3.0/gcc/config/i386/i386.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/i386.c	Mon May 29 08:46:29 2023
*************** ix86_function_arg (cumulative_args_t cum
*** 3249,3255 ****
        if (POINTER_TYPE_P (arg.type))
  	{
  	  /* This is the pointer argument.  */
! 	  gcc_assert (TYPE_MODE (arg.type) == Pmode);
  	  /* It is at -WORD(AP) in the current frame in interrupt and
  	     exception handlers.  */
  	  reg = plus_constant (Pmode, arg_pointer_rtx, -UNITS_PER_WORD);
--- 3249,3255 ----
        if (POINTER_TYPE_P (arg.type))
  	{
  	  /* This is the pointer argument.  */
! 	  gcc_assert (TYPE_MODE (arg.type) == ptr_mode);
  	  /* It is at -WORD(AP) in the current frame in interrupt and
  	     exception handlers.  */
  	  reg = plus_constant (Pmode, arg_pointer_rtx, -UNITS_PER_WORD);
*************** zero_call_used_regno_mode (const unsigne
*** 3607,3613 ****
    else if (MASK_REGNO_P (regno))
      return HImode;
    else if (MMX_REGNO_P (regno))
!     return V4HImode;
    else
      gcc_unreachable ();
  }
--- 3607,3613 ----
    else if (MASK_REGNO_P (regno))
      return HImode;
    else if (MMX_REGNO_P (regno))
!     return V2SImode;
    else
      gcc_unreachable ();
  }
*************** zero_all_mm_registers (HARD_REG_SET need
*** 3726,3744 ****
    if (!need_zero_all_mm)
      return false;
  
!   rtx zero_mmx = NULL_RTX;
!   machine_mode mode = V4HImode;
    for (unsigned int regno = FIRST_MMX_REG; regno <= LAST_MMX_REG; regno++)
      if (regno != ret_mmx_regno)
        {
  	rtx reg = gen_rtx_REG (mode, regno);
! 	if (zero_mmx == NULL_RTX)
! 	  {
! 	    zero_mmx = reg;
! 	    emit_insn (gen_rtx_SET (reg, CONST0_RTX (mode)));
! 	  }
! 	else
! 	  emit_move_insn (reg, zero_mmx);
        }
    return true;
  }
--- 3726,3737 ----
    if (!need_zero_all_mm)
      return false;
  
!   machine_mode mode = V2SImode;
    for (unsigned int regno = FIRST_MMX_REG; regno <= LAST_MMX_REG; regno++)
      if (regno != ret_mmx_regno)
        {
  	rtx reg = gen_rtx_REG (mode, regno);
! 	emit_insn (gen_rtx_SET (reg, CONST0_RTX (mode)));
        }
    return true;
  }
*************** ix86_zero_call_used_regs (HARD_REG_SET n
*** 3800,3810 ****
  
    /* Now, generate instructions to zero all the other registers.  */
  
-   rtx zero_gpr = NULL_RTX;
-   rtx zero_vector = NULL_RTX;
-   rtx zero_mask = NULL_RTX;
-   rtx zero_mmx = NULL_RTX;
- 
    for (unsigned int regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
      {
        if (!TEST_HARD_REG_BIT (need_zeroed_hardregs, regno))
--- 3793,3798 ----
*************** ix86_zero_call_used_regs (HARD_REG_SET n
*** 3815,3873 ****
  
        SET_HARD_REG_BIT (zeroed_hardregs, regno);
  
-       rtx reg, tmp, zero_rtx;
        machine_mode mode = zero_call_used_regno_mode (regno);
  
!       reg = gen_rtx_REG (mode, regno);
!       zero_rtx = CONST0_RTX (mode);
  
!       if (mode == SImode)
! 	if (zero_gpr == NULL_RTX)
! 	  {
! 	    zero_gpr = reg;
! 	    tmp = gen_rtx_SET (reg, zero_rtx);
! 	    if (!TARGET_USE_MOV0 || optimize_insn_for_size_p ())
! 	      {
! 		rtx clob = gen_rtx_CLOBBER (VOIDmode,
! 					    gen_rtx_REG (CCmode,
! 							 FLAGS_REG));
! 		tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2,
! 							     tmp,
! 							     clob));
! 	      }
! 	    emit_insn (tmp);
! 	  }
! 	else
! 	  emit_move_insn (reg, zero_gpr);
!       else if (mode == V4SFmode)
! 	if (zero_vector == NULL_RTX)
! 	  {
! 	    zero_vector = reg;
! 	    tmp = gen_rtx_SET (reg, zero_rtx);
! 	    emit_insn (tmp);
! 	  }
! 	else
! 	  emit_move_insn (reg, zero_vector);
!       else if (mode == HImode)
! 	if (zero_mask == NULL_RTX)
! 	  {
! 	    zero_mask = reg;
! 	    tmp = gen_rtx_SET (reg, zero_rtx);
! 	    emit_insn (tmp);
! 	  }
! 	else
! 	  emit_move_insn (reg, zero_mask);
!       else if (mode == V4HImode)
! 	if (zero_mmx == NULL_RTX)
! 	  {
! 	    zero_mmx = reg;
! 	    tmp = gen_rtx_SET (reg, zero_rtx);
! 	    emit_insn (tmp);
! 	  }
! 	else
! 	  emit_move_insn (reg, zero_mmx);
!       else
! 	gcc_unreachable ();
      }
    return zeroed_hardregs;
  }
--- 3803,3836 ----
  
        SET_HARD_REG_BIT (zeroed_hardregs, regno);
  
        machine_mode mode = zero_call_used_regno_mode (regno);
  
!       rtx reg = gen_rtx_REG (mode, regno);
!       rtx tmp = gen_rtx_SET (reg, CONST0_RTX (mode));
  
!       switch (mode)
! 	{
! 	case E_SImode:
! 	  if (!TARGET_USE_MOV0 || optimize_insn_for_size_p ())
! 	    {
! 	      rtx clob = gen_rtx_CLOBBER (VOIDmode,
! 					  gen_rtx_REG (CCmode,
! 						       FLAGS_REG));
! 	      tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2,
! 							   tmp,
! 							   clob));
! 	    }
! 	  /* FALLTHRU.  */
! 
! 	case E_V4SFmode:
! 	case E_HImode:
! 	case E_V2SImode:
! 	  emit_insn (tmp);
! 	  break;
! 
! 	default:
! 	  gcc_unreachable ();
! 	}
      }
    return zeroed_hardregs;
  }
*************** ix86_gimplify_va_arg (tree valist, tree
*** 4754,4759 ****
--- 4717,4723 ----
  	{
  	  int i, prev_size = 0;
  	  tree temp = create_tmp_var (type, "va_arg_tmp");
+ 	  TREE_ADDRESSABLE (temp) = 1;
  
  	  /* addr = &temp; */
  	  t = build1 (ADDR_EXPR, build_pointer_type (type), temp);
*************** ix86_compute_frame_layout (void)
*** 6653,6659 ****
  	 stack clash protections are enabled and the allocated frame is
  	 larger than the probe interval, then use pushes to save
  	 callee saved registers.  */
!       || (flag_stack_clash_protection && to_allocate > get_probe_interval ()))
      frame->save_regs_using_mov = false;
  
    if (ix86_using_red_zone ()
--- 6617,6625 ----
  	 stack clash protections are enabled and the allocated frame is
  	 larger than the probe interval, then use pushes to save
  	 callee saved registers.  */
!       || (flag_stack_clash_protection
! 	  && !ix86_target_stack_probe ()
! 	  && to_allocate > get_probe_interval ()))
      frame->save_regs_using_mov = false;
  
    if (ix86_using_red_zone ()
*************** ix86_expand_prologue (void)
*** 8528,8535 ****
        sse_registers_saved = true;
      }
  
!   /* If stack clash protection is requested, then probe the stack.  */
!   if (allocate >= 0 && flag_stack_clash_protection)
      {
        ix86_adjust_stack_and_probe (allocate, int_registers_saved, false);
        allocate = 0;
--- 8494,8504 ----
        sse_registers_saved = true;
      }
  
!   /* If stack clash protection is requested, then probe the stack, unless it
!      is already probed on the target.  */
!   if (allocate >= 0
!       && flag_stack_clash_protection
!       && !ix86_target_stack_probe ())
      {
        ix86_adjust_stack_and_probe (allocate, int_registers_saved, false);
        allocate = 0;
*************** assign_386_stack_local (machine_mode mod
*** 16248,16257 ****
      if (s->mode == mode && s->n == n)
        return validize_mem (copy_rtx (s->rtl));
  
    s = ggc_alloc<stack_local_entry> ();
    s->n = n;
    s->mode = mode;
!   s->rtl = assign_stack_local (mode, GET_MODE_SIZE (mode), 0);
  
    s->next = ix86_stack_locals;
    ix86_stack_locals = s;
--- 16217,16234 ----
      if (s->mode == mode && s->n == n)
        return validize_mem (copy_rtx (s->rtl));
  
+   int align = 0;
+   /* For DImode with SLOT_FLOATxFDI_387 use 32-bit
+      alignment with -m32 -mpreferred-stack-boundary=2.  */
+   if (mode == DImode
+       && !TARGET_64BIT
+       && n == SLOT_FLOATxFDI_387
+       && ix86_preferred_stack_boundary < GET_MODE_ALIGNMENT (DImode))
+     align = 32;
    s = ggc_alloc<stack_local_entry> ();
    s->n = n;
    s->mode = mode;
!   s->rtl = assign_stack_local (mode, GET_MODE_SIZE (mode), align);
  
    s->next = ix86_stack_locals;
    ix86_stack_locals = s;
diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386.opt gcc-11.4.0/gcc/config/i386/i386.opt
*** gcc-11.3.0/gcc/config/i386/i386.opt	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/i386.opt	Mon May 29 08:46:29 2023
*************** TargetVariable
*** 109,116 ****
  enum cmodel ix86_cmodel = CM_32
  
  ;; -mabi=
! TargetSave
! enum calling_abi x_ix86_abi
  
  ;; -masm=
  TargetSave
--- 109,116 ----
  enum cmodel ix86_cmodel = CM_32
  
  ;; -mabi=
! TargetVariable
! enum calling_abi ix86_abi = SYSV_ABI
  
  ;; -masm=
  TargetSave
*************** mpc80
*** 416,421 ****
--- 416,425 ----
  Target RejectNegative
  Set 80387 floating-point precision to 80-bit.
  
+ mdaz-ftz
+ Target
+ Set the FTZ and DAZ Flags.
+ 
  mpreferred-stack-boundary=
  Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
  Attempt to keep stack aligned to this power of 2.
diff -Nrcpad gcc-11.3.0/gcc/config/i386/mingw32.h gcc-11.4.0/gcc/config/i386/mingw32.h
*** gcc-11.3.0/gcc/config/i386/mingw32.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/mingw32.h	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 197,203 ****
  
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
!   "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
     %{!shared:%:if-exists(default-manifest.o%s)}\
     %{fvtable-verify=none:%s; \
      fvtable-verify=preinit:vtv_end.o%s; \
--- 197,203 ----
  
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
!   "%{mdaz-ftz:crtfastmath.o%s;Ofast|ffast-math|funsafe-math-optimizations:%{!mno-daz-ftz:crtfastmath.o%s}} \
     %{!shared:%:if-exists(default-manifest.o%s)}\
     %{fvtable-verify=none:%s; \
      fvtable-verify=preinit:vtv_end.o%s; \
diff -Nrcpad gcc-11.3.0/gcc/config/i386/predicates.md gcc-11.4.0/gcc/config/i386/predicates.md
*** gcc-11.3.0/gcc/config/i386/predicates.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/predicates.md	Mon May 29 08:46:29 2023
***************
*** 1851,1861 ****
    for(i = 4; i < 7; i++)
      {
        elt = XVECEXP (op, 0, i);
!       if (GET_CODE (elt) != SET
! 	  || GET_CODE (SET_DEST (elt)) != REG
! 	  || GET_MODE (SET_DEST (elt)) != V2DImode
! 	  || REGNO (SET_DEST (elt)) != GET_SSE_REGNO (i)
! 	  || SET_SRC (elt) != CONST0_RTX (V2DImode))
  	return false;
      }
  
--- 1851,1861 ----
    for(i = 4; i < 7; i++)
      {
        elt = XVECEXP (op, 0, i);
!       if (GET_CODE (elt) != CLOBBER
! 	  || GET_MODE (elt) != VOIDmode
! 	  || GET_CODE (XEXP (elt, 0)) != REG
! 	  || GET_MODE (XEXP (elt, 0)) != V2DImode
! 	  || REGNO (XEXP (elt, 0)) != GET_SSE_REGNO (i))
  	return false;
      }
  
***************
*** 1901,1911 ****
    for(i = 4; i < 7; i++)
      {
        elt = XVECEXP (op, 0, i + 1);
!       if (GET_CODE (elt) != SET
! 	  || GET_CODE (SET_DEST (elt)) != REG
! 	  || GET_MODE (SET_DEST (elt)) != V2DImode
! 	  || REGNO (SET_DEST (elt)) != GET_SSE_REGNO (i)
! 	  || SET_SRC (elt) != CONST0_RTX (V2DImode))
  	return false;
      }
  
--- 1901,1911 ----
    for(i = 4; i < 7; i++)
      {
        elt = XVECEXP (op, 0, i + 1);
!       if (GET_CODE (elt) != CLOBBER
! 	  || GET_MODE (elt) != VOIDmode
! 	  || GET_CODE (XEXP (elt, 0)) != REG
! 	  || GET_MODE (XEXP (elt, 0)) != V2DImode
! 	  || REGNO (XEXP (elt, 0)) != GET_SSE_REGNO (i))
  	return false;
      }
  
diff -Nrcpad gcc-11.3.0/gcc/config/i386/smmintrin.h gcc-11.4.0/gcc/config/i386/smmintrin.h
*** gcc-11.3.0/gcc/config/i386/smmintrin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/smmintrin.h	Mon May 29 08:46:29 2023
*************** _mm_insert_ps (__m128 __D, __m128 __S, c
*** 365,381 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_extract_ps (__m128 __X, const int __N)
  {
!   union { int i; float f; } __tmp;
!   __tmp.f = __builtin_ia32_vec_ext_v4sf ((__v4sf)__X, __N);
!   return __tmp.i;
  }
  #else
  #define _mm_extract_ps(X, N)						\
    (__extension__							\
     ({									\
!      union { int i; float f; } __tmp;					\
!      __tmp.f = __builtin_ia32_vec_ext_v4sf ((__v4sf)(__m128)(X), (int)(N)); \
!      __tmp.i;								\
     }))
  #endif
  
--- 365,382 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_extract_ps (__m128 __X, const int __N)
  {
!   union { int __i; float __f; } __tmp;
!   __tmp.__f = __builtin_ia32_vec_ext_v4sf ((__v4sf)__X, __N);
!   return __tmp.__i;
  }
  #else
  #define _mm_extract_ps(X, N)						\
    (__extension__							\
     ({									\
!      union { int __i; float __f; } __tmp;				\
!      __tmp.__f = __builtin_ia32_vec_ext_v4sf ((__v4sf)(__m128)(X),	\
! 					      (int)(N));		\
!      __tmp.__i;								\
     }))
  #endif
  
diff -Nrcpad gcc-11.3.0/gcc/config/i386/sse.md gcc-11.4.0/gcc/config/i386/sse.md
*** gcc-11.3.0/gcc/config/i386/sse.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/sse.md	Mon May 29 08:46:29 2023
***************
*** 17256,17264 ****
     (set_attr "mode" "<sseinsnmode>")])
  
  (define_insn_and_split "ssse3_palignrdi"
!   [(set (match_operand:DI 0 "register_operand" "=y,x,Yv")
! 	(unspec:DI [(match_operand:DI 1 "register_operand" "0,0,Yv")
! 		    (match_operand:DI 2 "register_mmxmem_operand" "ym,x,Yv")
  		    (match_operand:SI 3 "const_0_to_255_mul_8_operand" "n,n,n")]
  		   UNSPEC_PALIGNR))]
    "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3"
--- 17256,17264 ----
     (set_attr "mode" "<sseinsnmode>")])
  
  (define_insn_and_split "ssse3_palignrdi"
!   [(set (match_operand:DI 0 "register_operand" "=y,x,Yw")
! 	(unspec:DI [(match_operand:DI 1 "register_operand" "0,0,Yw")
! 		    (match_operand:DI 2 "register_mmxmem_operand" "ym,x,Yw")
  		    (match_operand:SI 3 "const_0_to_255_mul_8_operand" "n,n,n")]
  		   UNSPEC_PALIGNR))]
    "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3"
***************
*** 19495,19501 ****
  	  (match_operand:VF_128 2 "register_operand" "v")
  	  (const_int 1)))]
    "TARGET_AVX512ER"
!   "vrcp28<ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%1, %2, %0<mask_operand3>|<mask_opernad3>%0, %2, %<iptr>1<round_saeonly_mask_op3>}"
    [(set_attr "length_immediate" "1")
     (set_attr "prefix" "evex")
     (set_attr "type" "sse")
--- 19495,19501 ----
  	  (match_operand:VF_128 2 "register_operand" "v")
  	  (const_int 1)))]
    "TARGET_AVX512ER"
!   "vrcp28<ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%1, %2, %0<mask_operand3>|<mask_operand3>%0, %2, %<iptr>1<round_saeonly_mask_op3>}"
    [(set_attr "length_immediate" "1")
     (set_attr "prefix" "evex")
     (set_attr "type" "sse")
***************
*** 24127,24133 ****
  
    for (i = 4; i < 7; i++)
      XVECEXP (operands[2], 0, i)
!       = gen_rtx_SET (xmm_regs[i], CONST0_RTX (V2DImode));
  
    XVECEXP (operands[2], 0, 7)
      = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
--- 24127,24133 ----
  
    for (i = 4; i < 7; i++)
      XVECEXP (operands[2], 0, i)
!       = gen_rtx_CLOBBER (VOIDmode, xmm_regs[i]);
  
    XVECEXP (operands[2], 0, 7)
      = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
***************
*** 24184,24190 ****
  
    for (i = 4; i < 7; i++)
      XVECEXP (operands[2], 0, i + 1)
!       = gen_rtx_SET (xmm_regs[i], CONST0_RTX (V2DImode));
  
    XVECEXP (operands[2], 0, 8)
      = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
--- 24184,24190 ----
  
    for (i = 4; i < 7; i++)
      XVECEXP (operands[2], 0, i + 1)
!       = gen_rtx_CLOBBER (VOIDmode, xmm_regs[i]);
  
    XVECEXP (operands[2], 0, 8)
      = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG));
diff -Nrcpad gcc-11.3.0/gcc/config/i386/t-i386 gcc-11.4.0/gcc/config/i386/t-i386
*** gcc-11.3.0/gcc/config/i386/t-i386	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/i386/t-i386	Mon May 29 08:46:29 2023
*************** i386-features.o: $(srcdir)/config/i386/i
*** 61,67 ****
--- 61,72 ----
  	$(COMPILE) $<
  	$(POSTCOMPILE)
  
+ # i386-builtin-types.inc is included into i386-builtins.h.
+ # Below are direct users of i386-builtins.h:
  i386.o: i386-builtin-types.inc
+ i386-builtins.o: i386-builtin-types.inc
+ i386-expand.o: i386-builtin-types.inc
+ i386-features.o: i386-builtin-types.inc
  
  i386-builtin-types.inc: s-i386-bt ; @true
  s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \
diff -Nrcpad gcc-11.3.0/gcc/config/nvptx/nvptx.c gcc-11.4.0/gcc/config/nvptx/nvptx.c
*** gcc-11.3.0/gcc/config/nvptx/nvptx.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/nvptx/nvptx.c	Mon May 29 08:46:29 2023
*************** nvptx_single (unsigned mask, basic_block
*** 4503,4508 ****
--- 4503,4509 ----
    rtx_insn *neuter_start = NULL;
    rtx_insn *worker_label = NULL, *vector_label = NULL;
    rtx_insn *worker_jump = NULL, *vector_jump = NULL;
+   rtx_insn *warp_sync = NULL;
    for (mode = GOMP_DIM_WORKER; mode <= GOMP_DIM_VECTOR; mode++)
      if (GOMP_DIM_MASK (mode) & skip_mask)
        {
*************** nvptx_single (unsigned mask, basic_block
*** 4535,4545 ****
--- 4536,4564 ----
  	if (tail_branch)
  	  {
  	    label_insn = emit_label_before (label, before);
+ 	    if (mode == GOMP_DIM_VECTOR)
+ 	      {
+ 		if (TARGET_PTX_6_0)
+ 		  warp_sync = emit_insn_after (gen_nvptx_warpsync (),
+ 					       label_insn);
+ 		else
+ 		  warp_sync = emit_insn_after (gen_nvptx_uniform_warp_check (),
+ 					       label_insn);
+ 	      }
  	    before = label_insn;
  	  }
  	else
  	  {
  	    label_insn = emit_label_after (label, tail);
+ 	    if (mode == GOMP_DIM_VECTOR)
+ 	      {
+ 		if (TARGET_PTX_6_0)
+ 		  warp_sync = emit_insn_after (gen_nvptx_warpsync (),
+ 					       label_insn);
+ 		else
+ 		  warp_sync = emit_insn_after (gen_nvptx_uniform_warp_check (),
+ 					       label_insn);
+ 	      }
  	    if ((mode == GOMP_DIM_VECTOR || mode == GOMP_DIM_WORKER)
  		&& CALL_P (tail) && find_reg_note (tail, REG_NORETURN, NULL))
  	      emit_insn_after (gen_exit (), label_insn);
*************** nvptx_single (unsigned mask, basic_block
*** 4607,4612 ****
--- 4626,4633 ----
  		 setp.ne.u32 %rcond,%rcondu32,0;
  	  */
  	  rtx_insn *label = PREV_INSN (tail);
+ 	  if (label == warp_sync)
+ 	    label = PREV_INSN (label);
  	  gcc_assert (label && LABEL_P (label));
  	  rtx tmp = gen_reg_rtx (BImode);
  	  emit_insn_before (gen_movbi (tmp, const0_rtx),
diff -Nrcpad gcc-11.3.0/gcc/config/nvptx/nvptx.h gcc-11.4.0/gcc/config/nvptx/nvptx.h
*** gcc-11.3.0/gcc/config/nvptx/nvptx.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/nvptx/nvptx.h	Mon May 29 08:46:29 2023
***************
*** 27,33 ****
  
  /* Run-time Target.  */
  
! #define STARTFILE_SPEC "%{mmainkernel:crt0.o}"
  
  /* Default needs to be in sync with default for misa in nvptx.opt.
     We add a default here to work around a hard-coded sm_30 default in
--- 27,33 ----
  
  /* Run-time Target.  */
  
! #define STARTFILE_SPEC "%{mmainkernel:crt0.o%s}"
  
  /* Default needs to be in sync with default for misa in nvptx.opt.
     We add a default here to work around a hard-coded sm_30 default in
***************
*** 98,103 ****
--- 98,106 ----
  
  #define TARGET_SM35 (ptx_isa_option >= PTX_ISA_SM35)
  
+ /* 'TARGET_PTX_*' not applicable before GCC 12.  */
+ #define TARGET_PTX_6_0 false
+ 
  /* Registers.  Since ptx is a virtual target, we just define a few
     hard registers for special purposes and leave pseudos unallocated.
     We have to have some available hard registers, to keep gcc setup
diff -Nrcpad gcc-11.3.0/gcc/config/nvptx/nvptx.md gcc-11.4.0/gcc/config/nvptx/nvptx.md
*** gcc-11.3.0/gcc/config/nvptx/nvptx.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/nvptx/nvptx.md	Mon May 29 08:46:29 2023
***************
*** 55,60 ****
--- 55,62 ----
     UNSPECV_CAS
     UNSPECV_XCHG
     UNSPECV_BARSYNC
+    UNSPECV_WARPSYNC
+    UNSPECV_UNIFORM_WARP_CHECK
     UNSPECV_MEMBAR
     UNSPECV_MEMBAR_CTA
     UNSPECV_DIM_POS
***************
*** 1718,1723 ****
--- 1720,1748 ----
    }
    [(set_attr "predicable" "false")])
  
+ (define_insn "nvptx_warpsync"
+   [(unspec_volatile [(const_int 0)] UNSPECV_WARPSYNC)]
+   "TARGET_PTX_6_0"
+   "\\tbar.warp.sync\\t0xffffffff;"
+   [(set_attr "predicable" "false")])
+ 
+ (define_insn "nvptx_uniform_warp_check"
+   [(unspec_volatile [(const_int 0)] UNSPECV_UNIFORM_WARP_CHECK)]
+   ""
+   {
+     output_asm_insn ("{", NULL);
+     output_asm_insn ("\\t"	 ".reg.b32"	   "\\t" "act;", NULL);
+     output_asm_insn ("\\t"	 "vote.ballot.b32" "\\t" "act,1;", NULL);
+     output_asm_insn ("\\t"	 ".reg.pred"	   "\\t" "uni;", NULL);
+     output_asm_insn ("\\t"	 "setp.eq.b32"	   "\\t" "uni,act,0xffffffff;",
+ 		     NULL);
+     output_asm_insn ("@ !uni\\t" "trap;", NULL);
+     output_asm_insn ("@ !uni\\t" "exit;", NULL);
+     output_asm_insn ("}", NULL);
+     return "";
+   }
+   [(set_attr "predicable" "false")])
+ 
  (define_expand "memory_barrier"
    [(set (match_dup 0)
  	(unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMBAR))]
diff -Nrcpad gcc-11.3.0/gcc/config/pa/pa.md gcc-11.4.0/gcc/config/pa/pa.md
*** gcc-11.3.0/gcc/config/pa/pa.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/pa/pa.md	Mon May 29 08:46:29 2023
***************
*** 5071,5093 ****
  						    (match_dup 2))))
  		       (const_int 0))])]
    ""
!   "")
  
  (define_insn ""
!   [(set (match_operand:DI 0 "register_operand" "=r,r")
! 	(plus:DI (match_operand:DI 1 "reg_or_0_operand" "%rM,rM")
! 		 (match_operand:DI 2 "arith11_operand" "r,I")))
     (trap_if (ne (plus:TI (sign_extend:TI (match_dup 1))
  			 (sign_extend:TI (match_dup 2)))
  		(sign_extend:TI (plus:DI (match_dup 1)
  					 (match_dup 2))))
  	    (const_int 0))]
    "TARGET_64BIT"
!   "@
!   add,tsv,* %2,%1,%0
!   addi,tsv,* %2,%1,%0"
!   [(set_attr "type" "binary,binary")
!    (set_attr "length" "4,4")])
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=r")
--- 5071,5095 ----
  						    (match_dup 2))))
  		       (const_int 0))])]
    ""
!   "
! {
!   if (TARGET_64BIT)
!     operands[2] = force_reg (DImode, operands[2]);
! }")
  
  (define_insn ""
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(plus:DI (match_operand:DI 1 "reg_or_0_operand" "%rM")
! 		 (match_operand:DI 2 "register_operand" "r")))
     (trap_if (ne (plus:TI (sign_extend:TI (match_dup 1))
  			 (sign_extend:TI (match_dup 2)))
  		(sign_extend:TI (plus:DI (match_dup 1)
  					 (match_dup 2))))
  	    (const_int 0))]
    "TARGET_64BIT"
!   "add,tsv,* %2,%1,%0"
!   [(set_attr "type" "binary")
!    (set_attr "length" "4")])
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=r")
***************
*** 5262,5284 ****
  						     (match_dup 2))))
  		       (const_int 0))])]
    ""
!   "")
  
  (define_insn ""
!   [(set (match_operand:DI 0 "register_operand" "=r,r")
! 	(minus:DI (match_operand:DI 1 "arith11_operand" "r,I")
! 		  (match_operand:DI 2 "reg_or_0_operand" "rM,rM")))
     (trap_if (ne (minus:TI (sign_extend:TI (match_dup 1))
  			  (sign_extend:TI (match_dup 2)))
  		(sign_extend:TI (minus:DI (match_dup 1)
  					  (match_dup 2))))
  	    (const_int 0))]
    "TARGET_64BIT"
!   "@
!   {subo|sub,tsv} %1,%2,%0
!   {subio|subi,tsv} %1,%2,%0"
!   [(set_attr "type" "binary,binary")
!    (set_attr "length" "4,4")])
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=r,&r")
--- 5264,5288 ----
  						     (match_dup 2))))
  		       (const_int 0))])]
    ""
!   "
! {
!   if (TARGET_64BIT)
!     operands[1] = force_reg (DImode, operands[1]);
! }")
  
  (define_insn ""
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(minus:DI (match_operand:DI 1 "register_operand" "r")
! 		  (match_operand:DI 2 "reg_or_0_operand" "rM")))
     (trap_if (ne (minus:TI (sign_extend:TI (match_dup 1))
  			  (sign_extend:TI (match_dup 2)))
  		(sign_extend:TI (minus:DI (match_dup 1)
  					  (match_dup 2))))
  	    (const_int 0))]
    "TARGET_64BIT"
!   "sub,tsv,* %1,%2,%0"
!   [(set_attr "type" "binary")
!    (set_attr "length" "4")])
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=r,&r")
diff -Nrcpad gcc-11.3.0/gcc/config/pru/pru.h gcc-11.4.0/gcc/config/pru/pru.h
*** gcc-11.3.0/gcc/config/pru/pru.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/pru/pru.h	Mon May 29 08:46:29 2023
*************** do {									\
*** 562,569 ****
  
  #define CASE_VECTOR_MODE Pmode
  
! /* See definition of clz pattern for rationale of value -1.  */
! #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = -1, 2)
  
  /* Jumps are cheap on PRU.  */
  #define LOGICAL_OP_NON_SHORT_CIRCUIT		0
--- 562,570 ----
  
  #define CASE_VECTOR_MODE Pmode
  
! /* See definition of clz pattern for rationale of the value.  */
! #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE)	\
! 	((VALUE) = GET_MODE_BITSIZE (MODE) - 1 - 32, 2)
  
  /* Jumps are cheap on PRU.  */
  #define LOGICAL_OP_NON_SHORT_CIRCUIT		0
diff -Nrcpad gcc-11.3.0/gcc/config/pru/pru.md gcc-11.4.0/gcc/config/pru/pru.md
*** gcc-11.3.0/gcc/config/pru/pru.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/pru/pru.md	Mon May 29 08:46:29 2023
***************
*** 1035,1042 ****
    [(set_attr "type" "control")])
  
  ;; Count Leading Zeros implemented using LMBD.
! ;; LMBD returns 32 if bit value is not present, and we subtract 31 to get CLZ.
! ;; Hence we get a defined value -1 for CLZ_DEFINED_VALUE_AT_ZERO.
  (define_expand "clz<mode>2"
    [(set (match_operand:QISI 0 "register_operand")
  	(clz:QISI (match_operand:QISI 1 "register_operand")))]
--- 1035,1050 ----
    [(set_attr "type" "control")])
  
  ;; Count Leading Zeros implemented using LMBD.
! ;;
! ;; LMBD returns 32 if bit value is not present, for any kind of input MODE.
! ;; The LMBD's search result for a "1" bit is subtracted from the
! ;; mode bit size minus one, in order to get CLZ.
! ;;
! ;; Hence for SImode we get a defined value -1 for CLZ_DEFINED_VALUE_AT_ZERO.
! ;;
! ;; The QImode and HImode defined values for zero inputs end up to be
! ;; non-standard (-25 and -17).  But this is considered acceptable in
! ;; order to keep the CLZ expansion to only two instructions.
  (define_expand "clz<mode>2"
    [(set (match_operand:QISI 0 "register_operand")
  	(clz:QISI (match_operand:QISI 1 "register_operand")))]
***************
*** 1047,1053 ****
    rtx tmpval = gen_reg_rtx (<MODE>mode);
  
    emit_insn (gen_pru_lmbd (<MODE>mode, tmpval, src, const1_rtx));
!   emit_insn (gen_sub3_insn (dst, GEN_INT (31), tmpval));
    DONE;
  })
  
--- 1055,1062 ----
    rtx tmpval = gen_reg_rtx (<MODE>mode);
  
    emit_insn (gen_pru_lmbd (<MODE>mode, tmpval, src, const1_rtx));
!   int msb_bitn = GET_MODE_BITSIZE (<MODE>mode) - 1;
!   emit_insn (gen_sub3_insn (dst, GEN_INT (msb_bitn), tmpval));
    DONE;
  })
  
diff -Nrcpad gcc-11.3.0/gcc/config/riscv/arch-canonicalize gcc-11.4.0/gcc/config/riscv/arch-canonicalize
*** gcc-11.3.0/gcc/config/riscv/arch-canonicalize	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/riscv/arch-canonicalize	Mon May 29 08:46:29 2023
*************** def arch_canonicalize(arch, isa_spec):
*** 45,53 ****
    is_isa_spec_2p2 = isa_spec == '2.2'
    new_arch = ""
    extra_long_ext = []
    if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']:
!     new_arch = arch[:5].replace("g", "imafd")
      if arch[:5] in ['rv32g', 'rv64g']:
        if not is_isa_spec_2p2:
          extra_long_ext = ['zicsr', 'zifencei']
    else:
--- 45,55 ----
    is_isa_spec_2p2 = isa_spec == '2.2'
    new_arch = ""
    extra_long_ext = []
+   std_exts = []
    if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']:
!     new_arch = arch[:5].replace("g", "i")
      if arch[:5] in ['rv32g', 'rv64g']:
+       std_exts = ['m', 'a', 'f', 'd']
        if not is_isa_spec_2p2:
          extra_long_ext = ['zicsr', 'zifencei']
    else:
*************** def arch_canonicalize(arch, isa_spec):
*** 61,70 ****
    if long_ext_prefixes_idx:
      first_long_ext_idx = min(long_ext_prefixes_idx)
      long_exts = arch[first_long_ext_idx:].split("_")
!     std_exts = list(arch[5:first_long_ext_idx])
    else:
      long_exts = []
!     std_exts = list(arch[5:])
  
    long_exts += extra_long_ext
  
--- 63,72 ----
    if long_ext_prefixes_idx:
      first_long_ext_idx = min(long_ext_prefixes_idx)
      long_exts = arch[first_long_ext_idx:].split("_")
!     std_exts += list(arch[5:first_long_ext_idx])
    else:
      long_exts = []
!     std_exts += list(arch[5:])
  
    long_exts += extra_long_ext
  
diff -Nrcpad gcc-11.3.0/gcc/config/riscv/riscv.md gcc-11.4.0/gcc/config/riscv/riscv.md
*** gcc-11.3.0/gcc/config/riscv/riscv.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/riscv/riscv.md	Mon May 29 08:46:29 2023
***************
*** 2558,2564 ****
  	 UNSPEC_SSP_SET))
     (set (match_scratch:GPR 2 "=&r") (const_int 0))]
    ""
!   "<load>\\t%2, %1\;<store>\\t%2, %0\;li\t%2, 0"
    [(set_attr "length" "12")])
  
  (define_expand "stack_protect_test"
--- 2558,2564 ----
  	 UNSPEC_SSP_SET))
     (set (match_scratch:GPR 2 "=&r") (const_int 0))]
    ""
!   "<load>\t%2, %1\;<store>\t%2, %0\;li\t%2, 0"
    [(set_attr "length" "12")])
  
  (define_expand "stack_protect_test"
diff -Nrcpad gcc-11.3.0/gcc/config/riscv/t-rtems gcc-11.4.0/gcc/config/riscv/t-rtems
*** gcc-11.3.0/gcc/config/riscv/t-rtems	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/riscv/t-rtems	Mon May 29 08:46:29 2023
***************
*** 1,8 ****
  MULTILIB_OPTIONS	=
  MULTILIB_DIRNAMES	=
  
! MULTILIB_OPTIONS	+= march=rv32i/march=rv32im/march=rv32imafd/march=rv32iac/march=rv32imac/march=rv32imafc/march=rv64imafd/march=rv64imac/march=rv64imafdc
! MULTILIB_DIRNAMES	+= rv32i       rv32im       rv32imafd       rv32iac       rv32imac       rv32imafc       rv64imafd       rv64imac       rv64imafdc
  
  MULTILIB_OPTIONS	+= mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d
  MULTILIB_DIRNAMES	+= ilp32      ilp32f      ilp32d      lp64      lp64d
--- 1,8 ----
  MULTILIB_OPTIONS	=
  MULTILIB_DIRNAMES	=
  
! MULTILIB_OPTIONS	+= march=rv32i/march=rv32iac/march=rv32im/march=rv32ima/march=rv32imac/march=rv32imaf/march=rv32imafc/march=rv32imafd/march=rv32imafdc/march=rv64ima/march=rv64imac/march=rv64imafd/march=rv64imafdc
! MULTILIB_DIRNAMES	+= rv32i       rv32iac       rv32im       rv32ima       rv32imac       rv32imaf       rv32imafc       rv32imafd       rv32imafdc       rv64ima       rv64imac       rv64imafd       rv64imafdc
  
  MULTILIB_OPTIONS	+= mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d
  MULTILIB_DIRNAMES	+= ilp32      ilp32f      ilp32d      lp64      lp64d
*************** MULTILIB_DIRNAMES	+= medany
*** 12,25 ****
  
  MULTILIB_REQUIRED	=
  MULTILIB_REQUIRED	+= march=rv32i/mabi=ilp32
- MULTILIB_REQUIRED	+= march=rv32im/mabi=ilp32
- MULTILIB_REQUIRED	+= march=rv32imafd/mabi=ilp32d
  MULTILIB_REQUIRED	+= march=rv32iac/mabi=ilp32
  MULTILIB_REQUIRED	+= march=rv32imac/mabi=ilp32
  MULTILIB_REQUIRED	+= march=rv32imafc/mabi=ilp32f
! MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d
! MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d/mcmodel=medany
! MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64
  MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64/mcmodel=medany
! MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d
  MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d/mcmodel=medany
--- 12,26 ----
  
  MULTILIB_REQUIRED	=
  MULTILIB_REQUIRED	+= march=rv32i/mabi=ilp32
  MULTILIB_REQUIRED	+= march=rv32iac/mabi=ilp32
+ MULTILIB_REQUIRED	+= march=rv32im/mabi=ilp32
+ MULTILIB_REQUIRED	+= march=rv32ima/mabi=ilp32
  MULTILIB_REQUIRED	+= march=rv32imac/mabi=ilp32
+ MULTILIB_REQUIRED	+= march=rv32imaf/mabi=ilp32f
  MULTILIB_REQUIRED	+= march=rv32imafc/mabi=ilp32f
! MULTILIB_REQUIRED	+= march=rv32imafd/mabi=ilp32d
! MULTILIB_REQUIRED	+= march=rv32imafdc/mabi=ilp32d
! MULTILIB_REQUIRED	+= march=rv64ima/mabi=lp64/mcmodel=medany
  MULTILIB_REQUIRED	+= march=rv64imac/mabi=lp64/mcmodel=medany
! MULTILIB_REQUIRED	+= march=rv64imafd/mabi=lp64d/mcmodel=medany
  MULTILIB_REQUIRED	+= march=rv64imafdc/mabi=lp64d/mcmodel=medany
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/altivec.md gcc-11.4.0/gcc/config/rs6000/altivec.md
*** gcc-11.3.0/gcc/config/rs6000/altivec.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/altivec.md	Mon May 29 08:46:29 2023
***************
*** 4507,4515 ****
    [(set_attr "type" "vecsimple")])
  
  ;; Vector parity
! (define_insn "*p9v_parity<mode>2"
!   [(set (match_operand:VParity 0 "register_operand" "=v")
!         (parity:VParity (match_operand:VParity 1 "register_operand" "v")))]
    "TARGET_P9_VECTOR"
    "vprtyb<wd> %0,%1"
    [(set_attr "type" "vecsimple")])
--- 4507,4517 ----
    [(set_attr "type" "vecsimple")])
  
  ;; Vector parity
! (define_insn "rs6000_vprtyb<mode>2"
!   [(set (match_operand:VEC_IP 0 "register_operand" "=v")
!         (unspec:VEC_IP
!           [(match_operand:VEC_IP 1 "register_operand" "v")]
!           UNSPEC_PARITY))]
    "TARGET_P9_VECTOR"
    "vprtyb<wd> %0,%1"
    [(set_attr "type" "vecsimple")])
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/bmi2intrin.h gcc-11.4.0/gcc/config/rs6000/bmi2intrin.h
*** gcc-11.3.0/gcc/config/rs6000/bmi2intrin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/bmi2intrin.h	Mon May 29 08:46:29 2023
*************** extern __inline unsigned long long
*** 77,115 ****
  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _pdep_u64 (unsigned long long __X, unsigned long long __M)
  {
!   unsigned long result = 0x0UL;
!   const unsigned long mask = 0x8000000000000000UL;
!   unsigned long m = __M;
!   unsigned long c, t;
!   unsigned long p;
  
    /* The pop-count of the mask gives the number of the bits from
     source to process.  This is also needed to shift bits from the
     source into the correct position for the result.  */
!   p = 64 - __builtin_popcountl (__M);
  
    /* The loop is for the number of '1' bits in the mask and clearing
     each mask bit as it is processed.  */
!   while (m != 0)
      {
!       c = __builtin_clzl (m);
!       t = __X << (p - c);
!       m ^= (mask >> c);
!       result |= (t & (mask >> c));
!       p++;
      }
!   return (result);
  }
  
  extern __inline unsigned long long
  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _pext_u64 (unsigned long long __X, unsigned long long __M)
  {
!   unsigned long p = 0x4040404040404040UL; // initial bit permute control
!   const unsigned long mask = 0x8000000000000000UL;
!   unsigned long m = __M;
!   unsigned long c;
!   unsigned long result;
  
    /* if the mask is constant and selects 8 bits or less we can use
     the Power8 Bit permute instruction.  */
--- 77,115 ----
  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _pdep_u64 (unsigned long long __X, unsigned long long __M)
  {
!   unsigned long __result = 0x0UL;
!   const unsigned long __mask = 0x8000000000000000UL;
!   unsigned long __m = __M;
!   unsigned long __c, __t;
!   unsigned long __p;
  
    /* The pop-count of the mask gives the number of the bits from
     source to process.  This is also needed to shift bits from the
     source into the correct position for the result.  */
!   __p = 64 - __builtin_popcountl (__M);
  
    /* The loop is for the number of '1' bits in the mask and clearing
     each mask bit as it is processed.  */
!   while (__m != 0)
      {
!       __c = __builtin_clzl (__m);
!       __t = __X << (__p - __c);
!       __m ^= (__mask >> __c);
!       __result |= (__t & (__mask >> __c));
!       __p++;
      }
!   return __result;
  }
  
  extern __inline unsigned long long
  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _pext_u64 (unsigned long long __X, unsigned long long __M)
  {
!   unsigned long __p = 0x4040404040404040UL; // initial bit permute control
!   const unsigned long __mask = 0x8000000000000000UL;
!   unsigned long __m = __M;
!   unsigned long __c;
!   unsigned long __result;
  
    /* if the mask is constant and selects 8 bits or less we can use
     the Power8 Bit permute instruction.  */
*************** _pext_u64 (unsigned long long __X, unsig
*** 118,151 ****
        /* Also if the pext mask is constant, then the popcount is
         constant, we can evaluate the following loop at compile
         time and use a constant bit permute vector.  */
!       for (long i = 0; i < __builtin_popcountl (__M); i++)
  	{
! 	  c = __builtin_clzl (m);
! 	  p = (p << 8) | c;
! 	  m ^= (mask >> c);
  	}
!       result = __builtin_bpermd (p, __X);
      }
    else
      {
!       p = 64 - __builtin_popcountl (__M);
!       result = 0;
        /* We could a use a for loop here, but that combined with
         -funroll-loops can expand to a lot of code.  The while
         loop avoids unrolling and the compiler commons the xor
!        from clearing the mask bit with the (m != 0) test.  The
         result is a more compact loop setup and body.  */
!       while (m != 0)
  	{
! 	  unsigned long t;
! 	  c = __builtin_clzl (m);
! 	  t = (__X & (mask >> c)) >> (p - c);
! 	  m ^= (mask >> c);
! 	  result |= (t);
! 	  p++;
  	}
      }
!   return (result);
  }
  
  /* these 32-bit implementations depend on 64-bit pdep/pext
--- 118,151 ----
        /* Also if the pext mask is constant, then the popcount is
         constant, we can evaluate the following loop at compile
         time and use a constant bit permute vector.  */
!       for (long __i = 0; __i < __builtin_popcountl (__M); __i++)
  	{
! 	  __c = __builtin_clzl (__m);
! 	  __p = (__p << 8) | __c;
! 	  __m ^= (__mask >> __c);
  	}
!       __result = __builtin_bpermd (__p, __X);
      }
    else
      {
!       __p = 64 - __builtin_popcountl (__M);
!       __result = 0;
        /* We could a use a for loop here, but that combined with
         -funroll-loops can expand to a lot of code.  The while
         loop avoids unrolling and the compiler commons the xor
!        from clearing the mask bit with the (__m != 0) test.  The
         result is a more compact loop setup and body.  */
!       while (__m != 0)
  	{
! 	  unsigned long __t;
! 	  __c = __builtin_clzl (__m);
! 	  __t = (__X & (__mask >> __c)) >> (__p - __c);
! 	  __m ^= (__mask >> __c);
! 	  __result |= (__t);
! 	  __p++;
  	}
      }
!   return __result;
  }
  
  /* these 32-bit implementations depend on 64-bit pdep/pext
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/emmintrin.h gcc-11.4.0/gcc/config/rs6000/emmintrin.h
*** gcc-11.3.0/gcc/config/rs6000/emmintrin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/emmintrin.h	Mon May 29 08:46:29 2023
*************** _mm_setzero_pd (void)
*** 141,149 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_move_sd (__m128d __A, __m128d __B)
  {
!   __v2df result = (__v2df) __A;
!   result [0] = ((__v2df) __B)[0];
!   return (__m128d) result;
  }
  
  /* Load two DPFP values from P.  The address must be 16-byte aligned.  */
--- 141,149 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_move_sd (__m128d __A, __m128d __B)
  {
!   __v2df __result = (__v2df) __A;
!   __result [0] = ((__v2df) __B)[0];
!   return (__m128d) __result;
  }
  
  /* Load two DPFP values from P.  The address must be 16-byte aligned.  */
*************** _mm_sqrt_pd (__m128d __A)
*** 329,337 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sqrt_sd (__m128d __A, __m128d __B)
  {
!   __v2df c;
!   c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0]));
!   return (__m128d) _mm_setr_pd (c[0], __A[1]);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 329,337 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sqrt_sd (__m128d __A, __m128d __B)
  {
!   __v2df __c;
!   __c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0]));
!   return (__m128d) _mm_setr_pd (__c[0], __A[1]);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_min_pd (__m128d __A, __m128d __B)
*** 343,353 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_min_sd (__m128d __A, __m128d __B)
  {
!   __v2df a, b, c;
!   a = vec_splats (__A[0]);
!   b = vec_splats (__B[0]);
!   c = vec_min (a, b);
!   return (__m128d) _mm_setr_pd (c[0], __A[1]);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 343,353 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_min_sd (__m128d __A, __m128d __B)
  {
!   __v2df __a, __b, __c;
!   __a = vec_splats (__A[0]);
!   __b = vec_splats (__B[0]);
!   __c = vec_min (__a, __b);
!   return (__m128d) _mm_setr_pd (__c[0], __A[1]);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_max_pd (__m128d __A, __m128d __B)
*** 359,369 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_max_sd (__m128d __A, __m128d __B)
  {
!   __v2df a, b, c;
!   a = vec_splats (__A[0]);
!   b = vec_splats (__B[0]);
!   c = vec_max (a, b);
!   return (__m128d) _mm_setr_pd (c[0], __A[1]);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 359,369 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_max_sd (__m128d __A, __m128d __B)
  {
!   __v2df __a, __b, __c;
!   __a = vec_splats (__A[0]);
!   __b = vec_splats (__B[0]);
!   __c = vec_max (__a, __b);
!   return (__m128d) _mm_setr_pd (__c[0], __A[1]);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cmpge_pd (__m128d __A, __m128d __B)
*** 399,406 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpneq_pd (__m128d __A, __m128d __B)
  {
!   __v2df temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B);
!   return ((__m128d)vec_nor (temp, temp));
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 399,406 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpneq_pd (__m128d __A, __m128d __B)
  {
!   __v2df __temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B);
!   return ((__m128d)vec_nor (__temp, __temp));
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cmpnge_pd (__m128d __A, __m128d __B)
*** 427,452 ****
    return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B));
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_pd (__m128d __A, __m128d __B)
  {
- #if _ARCH_PWR8
    __v2du c, d;
    /* Compare against self will return false (0's) if NAN.  */
    c = (__v2du)vec_cmpeq (__A, __A);
    d = (__v2du)vec_cmpeq (__B, __B);
- #else
-   __v2du a, b;
-   __v2du c, d;
-   const __v2du double_exp_mask  = {0x7ff0000000000000, 0x7ff0000000000000};
-   a = (__v2du)vec_abs ((__v2df)__A);
-   b = (__v2du)vec_abs ((__v2df)__B);
-   c = (__v2du)vec_cmpgt (double_exp_mask, a);
-   d = (__v2du)vec_cmpgt (double_exp_mask, b);
- #endif
    /* A != NAN and B != NAN.  */
    return ((__m128d)vec_and(c, d));
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_pd (__m128d __A, __m128d __B)
--- 427,444 ----
    return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B));
  }
  
+ #if _ARCH_PWR8
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_pd (__m128d __A, __m128d __B)
  {
    __v2du c, d;
    /* Compare against self will return false (0's) if NAN.  */
    c = (__v2du)vec_cmpeq (__A, __A);
    d = (__v2du)vec_cmpeq (__B, __B);
    /* A != NAN and B != NAN.  */
    return ((__m128d)vec_and(c, d));
  }
+ #endif
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_pd (__m128d __A, __m128d __B)
*************** _mm_cmpnge_sd (__m128d __A, __m128d __B)
*** 583,588 ****
--- 575,581 ----
    return (__m128d) _mm_setr_pd (c[0], __A[1]);
  }
  
+ #if _ARCH_PWR8
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_sd (__m128d __A, __m128d __B)
  {
*************** _mm_cmpord_sd (__m128d __A, __m128d __B)
*** 590,595 ****
--- 583,589 ----
    r = (__v2df)_mm_cmpord_pd (vec_splats (__A[0]), vec_splats (__B[0]));
    return (__m128d) _mm_setr_pd (r[0], ((__v2df)__A)[1]);
  }
+ #endif
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_sd (__m128d __A, __m128d __B)
*************** _mm_setzero_si128 (void)
*** 855,866 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtepi32_pd (__m128i __A)
  {
!   __v2di val;
    /* For LE need to generate Vector Unpack Low Signed Word.
       Which is generated from unpackh.  */
!   val = (__v2di)vec_unpackh ((__v4si)__A);
  
!   return (__m128d)vec_ctf (val, 0);
  }
  #endif
  
--- 849,860 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtepi32_pd (__m128i __A)
  {
!   __v2di __val;
    /* For LE need to generate Vector Unpack Low Signed Word.
       Which is generated from unpackh.  */
!   __val = (__v2di)vec_unpackh ((__v4si)__A);
  
!   return (__m128d)vec_ctf (__val, 0);
  }
  #endif
  
*************** _mm_cvtepi32_ps (__m128i __A)
*** 873,988 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpd_epi32 (__m128d __A)
  {
!   __v2df rounded = vec_rint (__A);
!   __v4si result, temp;
!   const __v4si vzero =
      { 0, 0, 0, 0 };
  
    /* VSX Vector truncate Double-Precision to integer and Convert to
     Signed Integer Word format with Saturate.  */
    __asm__(
        "xvcvdpsxws %x0,%x1"
!       : "=wa" (temp)
!       : "wa" (rounded)
        : );
  
  #ifdef _ARCH_PWR8
  #ifdef __LITTLE_ENDIAN__
!   temp = vec_mergeo (temp, temp);
  #else
!   temp = vec_mergee (temp, temp);
  #endif
!   result = (__v4si) vec_vpkudum ((__vector long long) temp,
! 				 (__vector long long) vzero);
  #else
    {
!     const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
  	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
!     result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm);
    }
  #endif
!   return (__m128i) result;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpd_pi32 (__m128d __A)
  {
!   __m128i result = _mm_cvtpd_epi32(__A);
  
!   return (__m64) result[0];
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpd_ps (__m128d __A)
  {
!   __v4sf result;
!   __v4si temp;
!   const __v4si vzero = { 0, 0, 0, 0 };
  
    __asm__(
        "xvcvdpsp %x0,%x1"
!       : "=wa" (temp)
        : "wa" (__A)
        : );
  
  #ifdef _ARCH_PWR8
  #ifdef __LITTLE_ENDIAN__
!   temp = vec_mergeo (temp, temp);
  #else
!   temp = vec_mergee (temp, temp);
  #endif
!   result = (__v4sf) vec_vpkudum ((__vector long long) temp,
! 				 (__vector long long) vzero);
  #else
    {
!     const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
  	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
!     result = (__v4sf) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm);
    }
  #endif
!   return ((__m128)result);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttpd_epi32 (__m128d __A)
  {
!   __v4si result;
!   __v4si temp;
!   const __v4si vzero = { 0, 0, 0, 0 };
  
    /* VSX Vector truncate Double-Precision to integer and Convert to
     Signed Integer Word format with Saturate.  */
    __asm__(
        "xvcvdpsxws %x0,%x1"
!       : "=wa" (temp)
        : "wa" (__A)
        : );
  
  #ifdef _ARCH_PWR8
  #ifdef __LITTLE_ENDIAN__
!   temp = vec_mergeo (temp, temp);
  #else
!   temp = vec_mergee (temp, temp);
  #endif
!   result = (__v4si) vec_vpkudum ((__vector long long) temp,
! 				 (__vector long long) vzero);
  #else
    {
!     const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
  	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
!     result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm);
    }
  #endif
  
!   return ((__m128i) result);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttpd_pi32 (__m128d __A)
  {
!   __m128i result = _mm_cvttpd_epi32 (__A);
  
!   return (__m64) result[0];
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 867,982 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpd_epi32 (__m128d __A)
  {
!   __v2df __rounded = vec_rint (__A);
!   __v4si __result, __temp;
!   const __v4si __vzero =
      { 0, 0, 0, 0 };
  
    /* VSX Vector truncate Double-Precision to integer and Convert to
     Signed Integer Word format with Saturate.  */
    __asm__(
        "xvcvdpsxws %x0,%x1"
!       : "=wa" (__temp)
!       : "wa" (__rounded)
        : );
  
  #ifdef _ARCH_PWR8
  #ifdef __LITTLE_ENDIAN__
!   __temp = vec_mergeo (__temp, __temp);
  #else
!   __temp = vec_mergee (__temp, __temp);
  #endif
!   __result = (__v4si) vec_vpkudum ((__vector long long) __temp,
! 				 (__vector long long) __vzero);
  #else
    {
!     const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
  	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
!     __result = (__v4si) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm);
    }
  #endif
!   return (__m128i) __result;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpd_pi32 (__m128d __A)
  {
!   __m128i __result = _mm_cvtpd_epi32(__A);
  
!   return (__m64) __result[0];
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpd_ps (__m128d __A)
  {
!   __v4sf __result;
!   __v4si __temp;
!   const __v4si __vzero = { 0, 0, 0, 0 };
  
    __asm__(
        "xvcvdpsp %x0,%x1"
!       : "=wa" (__temp)
        : "wa" (__A)
        : );
  
  #ifdef _ARCH_PWR8
  #ifdef __LITTLE_ENDIAN__
!   __temp = vec_mergeo (__temp, __temp);
  #else
!   __temp = vec_mergee (__temp, __temp);
  #endif
!   __result = (__v4sf) vec_vpkudum ((__vector long long) __temp,
! 				 (__vector long long) __vzero);
  #else
    {
!     const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
  	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
!     __result = (__v4sf) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm);
    }
  #endif
!   return ((__m128)__result);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttpd_epi32 (__m128d __A)
  {
!   __v4si __result;
!   __v4si __temp;
!   const __v4si __vzero = { 0, 0, 0, 0 };
  
    /* VSX Vector truncate Double-Precision to integer and Convert to
     Signed Integer Word format with Saturate.  */
    __asm__(
        "xvcvdpsxws %x0,%x1"
!       : "=wa" (__temp)
        : "wa" (__A)
        : );
  
  #ifdef _ARCH_PWR8
  #ifdef __LITTLE_ENDIAN__
!   __temp = vec_mergeo (__temp, __temp);
  #else
!   __temp = vec_mergee (__temp, __temp);
  #endif
!   __result = (__v4si) vec_vpkudum ((__vector long long) __temp,
! 				 (__vector long long) __vzero);
  #else
    {
!     const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b,
  	0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f };
!     __result = (__v4si) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm);
    }
  #endif
  
!   return ((__m128i) __result);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttpd_pi32 (__m128d __A)
  {
!   __m128i __result = _mm_cvttpd_epi32 (__A);
  
!   return (__m64) __result[0];
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cvtsi128_si32 (__m128i __A)
*** 995,1029 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi32_pd (__m64 __A)
  {
!   __v4si temp;
!   __v2di tmp2;
!   __v2df result;
  
!   temp = (__v4si)vec_splats (__A);
!   tmp2 = (__v2di)vec_unpackl (temp);
!   result = vec_ctf ((__vector signed long long) tmp2, 0);
!   return (__m128d)result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtps_epi32 (__m128 __A)
  {
!   __v4sf rounded;
!   __v4si result;
  
!   rounded = vec_rint((__v4sf) __A);
!   result = vec_cts (rounded, 0);
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttps_epi32 (__m128 __A)
  {
!   __v4si result;
  
!   result = vec_cts ((__v4sf) __A, 0);
!   return (__m128i) result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 989,1023 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi32_pd (__m64 __A)
  {
!   __v4si __temp;
!   __v2di __tmp2;
!   __v2df __result;
  
!   __temp = (__v4si)vec_splats (__A);
!   __tmp2 = (__v2di)vec_unpackl (__temp);
!   __result = vec_ctf ((__vector signed long long) __tmp2, 0);
!   return (__m128d)__result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtps_epi32 (__m128 __A)
  {
!   __v4sf __rounded;
!   __v4si __result;
  
!   __rounded = vec_rint((__v4sf) __A);
!   __result = vec_cts (__rounded, 0);
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttps_epi32 (__m128 __A)
  {
!   __v4si __result;
  
!   __result = vec_cts ((__v4sf) __A, 0);
!   return (__m128i) __result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cvtps_pd (__m128 __A)
*** 1035,1082 ****
  #else
    /* Otherwise the compiler is not current and so need to generate the
       equivalent code.  */
!   __v4sf a = (__v4sf)__A;
!   __v4sf temp;
!   __v2df result;
  #ifdef __LITTLE_ENDIAN__
    /* The input float values are in elements {[0], [1]} but the convert
       instruction needs them in elements {[1], [3]}, So we use two
       shift left double vector word immediates to get the elements
       lined up.  */
!   temp = __builtin_vsx_xxsldwi (a, a, 3);
!   temp = __builtin_vsx_xxsldwi (a, temp, 2);
  #else
    /* The input float values are in elements {[0], [1]} but the convert
       instruction needs them in elements {[0], [2]}, So we use two
       shift left double vector word immediates to get the elements
       lined up.  */
!   temp = vec_vmrghw (a, a);
  #endif
    __asm__(
        " xvcvspdp %x0,%x1"
!       : "=wa" (result)
!       : "wa" (temp)
        : );
!   return (__m128d) result;
  #endif
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsd_si32 (__m128d __A)
  {
!   __v2df rounded = vec_rint((__v2df) __A);
!   int result = ((__v2df)rounded)[0];
  
!   return result;
  }
  /* Intel intrinsic.  */
  extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsd_si64 (__m128d __A)
  {
!   __v2df rounded = vec_rint ((__v2df) __A );
!   long long result = ((__v2df) rounded)[0];
  
!   return result;
  }
  
  /* Microsoft intrinsic.  */
--- 1029,1076 ----
  #else
    /* Otherwise the compiler is not current and so need to generate the
       equivalent code.  */
!   __v4sf __a = (__v4sf)__A;
!   __v4sf __temp;
!   __v2df __result;
  #ifdef __LITTLE_ENDIAN__
    /* The input float values are in elements {[0], [1]} but the convert
       instruction needs them in elements {[1], [3]}, So we use two
       shift left double vector word immediates to get the elements
       lined up.  */
!   __temp = __builtin_vsx_xxsldwi (__a, __a, 3);
!   __temp = __builtin_vsx_xxsldwi (__a, __temp, 2);
  #else
    /* The input float values are in elements {[0], [1]} but the convert
       instruction needs them in elements {[0], [2]}, So we use two
       shift left double vector word immediates to get the elements
       lined up.  */
!   __temp = vec_vmrghw (__a, __a);
  #endif
    __asm__(
        " xvcvspdp %x0,%x1"
!       : "=wa" (__result)
!       : "wa" (__temp)
        : );
!   return (__m128d) __result;
  #endif
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsd_si32 (__m128d __A)
  {
!   __v2df __rounded = vec_rint((__v2df) __A);
!   int __result = ((__v2df)__rounded)[0];
  
!   return __result;
  }
  /* Intel intrinsic.  */
  extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsd_si64 (__m128d __A)
  {
!   __v2df __rounded = vec_rint ((__v2df) __A );
!   long long __result = ((__v2df) __rounded)[0];
  
!   return __result;
  }
  
  /* Microsoft intrinsic.  */
*************** _mm_cvtsd_si64x (__m128d __A)
*** 1089,1106 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttsd_si32 (__m128d __A)
  {
!   int result = ((__v2df)__A)[0];
  
!   return result;
  }
  
  /* Intel intrinsic.  */
  extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttsd_si64 (__m128d __A)
  {
!   long long result = ((__v2df)__A)[0];
  
!   return result;
  }
  
  /* Microsoft intrinsic.  */
--- 1083,1100 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttsd_si32 (__m128d __A)
  {
!   int __result = ((__v2df)__A)[0];
  
!   return __result;
  }
  
  /* Intel intrinsic.  */
  extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttsd_si64 (__m128d __A)
  {
!   long long __result = ((__v2df)__A)[0];
  
!   return __result;
  }
  
  /* Microsoft intrinsic.  */
*************** _mm_cvttsd_si64x (__m128d __A)
*** 1113,1158 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsd_ss (__m128 __A, __m128d __B)
  {
!   __v4sf result = (__v4sf)__A;
  
  #ifdef __LITTLE_ENDIAN__
!   __v4sf temp_s;
    /* Copy double element[0] to element [1] for conversion.  */
!   __v2df temp_b = vec_splat((__v2df)__B, 0);
  
    /* Pre-rotate __A left 3 (logically right 1) elements.  */
!   result = __builtin_vsx_xxsldwi (result, result, 3);
    /* Convert double to single float scalar in a vector.  */
    __asm__(
        "xscvdpsp %x0,%x1"
!       : "=wa" (temp_s)
!       : "wa" (temp_b)
        : );
    /* Shift the resulting scalar into vector element [0].  */
!   result = __builtin_vsx_xxsldwi (result, temp_s, 1);
  #else
!   result [0] = ((__v2df)__B)[0];
  #endif
!   return (__m128) result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi32_sd (__m128d __A, int __B)
  {
!   __v2df result = (__v2df)__A;
!   double db = __B;
!   result [0] = db;
!   return (__m128d)result;
  }
  
  /* Intel intrinsic.  */
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi64_sd (__m128d __A, long long __B)
  {
!   __v2df result = (__v2df)__A;
!   double db = __B;
!   result [0] = db;
!   return (__m128d)result;
  }
  
  /* Microsoft intrinsic.  */
--- 1107,1152 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsd_ss (__m128 __A, __m128d __B)
  {
!   __v4sf __result = (__v4sf)__A;
  
  #ifdef __LITTLE_ENDIAN__
!   __v4sf __temp_s;
    /* Copy double element[0] to element [1] for conversion.  */
!   __v2df __temp_b = vec_splat((__v2df)__B, 0);
  
    /* Pre-rotate __A left 3 (logically right 1) elements.  */
!   __result = __builtin_vsx_xxsldwi (__result, __result, 3);
    /* Convert double to single float scalar in a vector.  */
    __asm__(
        "xscvdpsp %x0,%x1"
!       : "=wa" (__temp_s)
!       : "wa" (__temp_b)
        : );
    /* Shift the resulting scalar into vector element [0].  */
!   __result = __builtin_vsx_xxsldwi (__result, __temp_s, 1);
  #else
!   __result [0] = ((__v2df)__B)[0];
  #endif
!   return (__m128) __result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi32_sd (__m128d __A, int __B)
  {
!   __v2df __result = (__v2df)__A;
!   double __db = __B;
!   __result [0] = __db;
!   return (__m128d)__result;
  }
  
  /* Intel intrinsic.  */
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi64_sd (__m128d __A, long long __B)
  {
!   __v2df __result = (__v2df)__A;
!   double __db = __B;
!   __result [0] = __db;
!   return (__m128d)__result;
  }
  
  /* Microsoft intrinsic.  */
*************** _mm_cvtss_sd (__m128d __A, __m128 __B)
*** 1167,1211 ****
  {
  #ifdef __LITTLE_ENDIAN__
    /* Use splat to move element [0] into position for the convert. */
!   __v4sf temp = vec_splat ((__v4sf)__B, 0);
!   __v2df res;
    /* Convert single float scalar to double in a vector.  */
    __asm__(
        "xscvspdp %x0,%x1"
!       : "=wa" (res)
!       : "wa" (temp)
        : );
!   return (__m128d) vec_mergel (res, (__v2df)__A);
  #else
!   __v2df res = (__v2df)__A;
!   res [0] = ((__v4sf)__B) [0];
!   return (__m128d) res;
  #endif
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask)
  {
!   __vector double result;
!   const int litmsk = __mask & 0x3;
  
!   if (litmsk == 0)
!     result = vec_mergeh (__A, __B);
  #if __GNUC__ < 6
!   else if (litmsk == 1)
!     result = vec_xxpermdi (__B, __A, 2);
!   else if (litmsk == 2)
!     result = vec_xxpermdi (__B, __A, 1);
  #else
!   else if (litmsk == 1)
!     result = vec_xxpermdi (__A, __B, 2);
!   else if (litmsk == 2)
!     result = vec_xxpermdi (__A, __B, 1);
  #endif
    else
!     result = vec_mergel (__A, __B);
  
!   return result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1161,1205 ----
  {
  #ifdef __LITTLE_ENDIAN__
    /* Use splat to move element [0] into position for the convert. */
!   __v4sf __temp = vec_splat ((__v4sf)__B, 0);
!   __v2df __res;
    /* Convert single float scalar to double in a vector.  */
    __asm__(
        "xscvspdp %x0,%x1"
!       : "=wa" (__res)
!       : "wa" (__temp)
        : );
!   return (__m128d) vec_mergel (__res, (__v2df)__A);
  #else
!   __v2df __res = (__v2df)__A;
!   __res [0] = ((__v4sf)__B) [0];
!   return (__m128d) __res;
  #endif
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask)
  {
!   __vector double __result;
!   const int __litmsk = __mask & 0x3;
  
!   if (__litmsk == 0)
!     __result = vec_mergeh (__A, __B);
  #if __GNUC__ < 6
!   else if (__litmsk == 1)
!     __result = vec_xxpermdi (__B, __A, 2);
!   else if (__litmsk == 2)
!     __result = vec_xxpermdi (__B, __A, 1);
  #else
!   else if (__litmsk == 1)
!     __result = vec_xxpermdi (__A, __B, 2);
!   else if (__litmsk == 2)
!     __result = vec_xxpermdi (__A, __B, 1);
  #endif
    else
!     __result = vec_mergel (__A, __B);
  
!   return __result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_unpacklo_pd (__m128d __A, __m128d __
*** 1223,1239 ****
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_loadh_pd (__m128d __A, double const *__B)
  {
!   __v2df result = (__v2df)__A;
!   result [1] = *__B;
!   return (__m128d)result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_loadl_pd (__m128d __A, double const *__B)
  {
!   __v2df result = (__v2df)__A;
!   result [0] = *__B;
!   return (__m128d)result;
  }
  
  #ifdef _ARCH_PWR8
--- 1217,1233 ----
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_loadh_pd (__m128d __A, double const *__B)
  {
!   __v2df __result = (__v2df)__A;
!   __result [1] = *__B;
!   return (__m128d)__result;
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_loadl_pd (__m128d __A, double const *__B)
  {
!   __v2df __result = (__v2df)__A;
!   __result [0] = *__B;
!   return (__m128d)__result;
  }
  
  #ifdef _ARCH_PWR8
*************** _mm_loadl_pd (__m128d __A, double const
*** 1243,1250 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_movemask_pd (__m128d  __A)
  {
!   __vector unsigned long long result;
!   static const __vector unsigned int perm_mask =
      {
  #ifdef __LITTLE_ENDIAN__
  	0x80800040, 0x80808080, 0x80808080, 0x80808080
--- 1237,1244 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_movemask_pd (__m128d  __A)
  {
!   __vector unsigned long long __result;
!   static const __vector unsigned int __perm_mask =
      {
  #ifdef __LITTLE_ENDIAN__
  	0x80800040, 0x80808080, 0x80808080, 0x80808080
*************** _mm_movemask_pd (__m128d  __A)
*** 1253,1266 ****
  #endif
      };
  
!   result = ((__vector unsigned long long)
  	    vec_vbpermq ((__vector unsigned char) __A,
! 			 (__vector unsigned char) perm_mask));
  
  #ifdef __LITTLE_ENDIAN__
!   return result[1];
  #else
!   return result[0];
  #endif
  }
  #endif /* _ARCH_PWR8 */
--- 1247,1260 ----
  #endif
      };
  
!   __result = ((__vector unsigned long long)
  	    vec_vbpermq ((__vector unsigned char) __A,
! 			 (__vector unsigned char) __perm_mask));
  
  #ifdef __LITTLE_ENDIAN__
!   return __result[1];
  #else
!   return __result[0];
  #endif
  }
  #endif /* _ARCH_PWR8 */
*************** _mm_subs_epu16 (__m128i __A, __m128i __B
*** 1432,1448 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_madd_epi16 (__m128i __A, __m128i __B)
  {
!   __vector signed int zero = {0, 0, 0, 0};
  
!   return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, zero);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_epi16 (__m128i __A, __m128i __B)
  {
!   __vector signed int w0, w1;
  
!   __vector unsigned char xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
--- 1426,1442 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_madd_epi16 (__m128i __A, __m128i __B)
  {
!   __vector signed int __zero = {0, 0, 0, 0};
  
!   return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, __zero);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_epi16 (__m128i __A, __m128i __B)
  {
!   __vector signed int __w0, __w1;
  
!   __vector unsigned char __xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
*************** _mm_mulhi_epi16 (__m128i __A, __m128i __
*** 1452,1460 ****
  #endif
      };
  
!   w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B);
!   w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B);
!   return (__m128i) vec_perm (w0, w1, xform1);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1446,1454 ----
  #endif
      };
  
!   __w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B);
!   __w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B);
!   return (__m128i) vec_perm (__w0, __w1, __xform1);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_mullo_epi16 (__m128i __A, __m128i __
*** 1466,1499 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mul_su32 (__m64 __A, __m64 __B)
  {
!   unsigned int a = __A;
!   unsigned int b = __B;
  
!   return ((__m64)a * (__m64)b);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mul_epu32 (__m128i __A, __m128i __B)
  {
! #if __GNUC__ < 8
!   __v2du result;
  
  #ifdef __LITTLE_ENDIAN__
    /* VMX Vector Multiply Odd Unsigned Word.  */
    __asm__(
        "vmulouw %0,%1,%2"
!       : "=v" (result)
        : "v" (__A), "v" (__B)
        : );
  #else
    /* VMX Vector Multiply Even Unsigned Word.  */
    __asm__(
        "vmuleuw %0,%1,%2"
!       : "=v" (result)
        : "v" (__A), "v" (__B)
        : );
  #endif
!   return (__m128i) result;
  #else
    return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B);
  #endif
--- 1460,1493 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mul_su32 (__m64 __A, __m64 __B)
  {
!   unsigned int __a = __A;
!   unsigned int __b = __B;
  
!   return ((__m64)__a * (__m64)__b);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mul_epu32 (__m128i __A, __m128i __B)
  {
! #if __GNUC__ < 8 || !defined (_ARCH_PWR8)
!   __v2du __result;
  
  #ifdef __LITTLE_ENDIAN__
    /* VMX Vector Multiply Odd Unsigned Word.  */
    __asm__(
        "vmulouw %0,%1,%2"
!       : "=v" (__result)
        : "v" (__A), "v" (__B)
        : );
  #else
    /* VMX Vector Multiply Even Unsigned Word.  */
    __asm__(
        "vmuleuw %0,%1,%2"
!       : "=v" (__result)
        : "v" (__A), "v" (__B)
        : );
  #endif
!   return (__m128i) __result;
  #else
    return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B);
  #endif
*************** _mm_mul_epu32 (__m128i __A, __m128i __B)
*** 1502,1623 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_epi16 (__m128i __A, int __B)
  {
!   __v8hu lshift;
!   __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__B >= 0 && __B < 16)
      {
        if (__builtin_constant_p(__B))
! 	lshift = (__v8hu) vec_splat_s16(__B);
        else
! 	lshift = vec_splats ((unsigned short) __B);
  
!       result = vec_sl ((__v8hi) __A, lshift);
      }
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_epi32 (__m128i __A, int __B)
  {
!   __v4su lshift;
!   __v4si result = { 0, 0, 0, 0 };
  
    if (__B >= 0 && __B < 32)
      {
        if (__builtin_constant_p(__B) && __B < 16)
! 	lshift = (__v4su) vec_splat_s32(__B);
        else
! 	lshift = vec_splats ((unsigned int) __B);
  
!       result = vec_sl ((__v4si) __A, lshift);
      }
  
!   return (__m128i) result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_epi64 (__m128i __A, int __B)
  {
!   __v2du lshift;
!   __v2di result = { 0, 0 };
  
    if (__B >= 0 && __B < 64)
      {
        if (__builtin_constant_p(__B) && __B < 16)
! 	lshift = (__v2du) vec_splat_s32(__B);
        else
! 	lshift = (__v2du) vec_splats ((unsigned int) __B);
  
!       result = vec_sl ((__v2di) __A, lshift);
      }
  
!   return (__m128i) result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srai_epi16 (__m128i __A, int __B)
  {
!   __v8hu rshift = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hi result;
  
    if (__B < 16)
      {
        if (__builtin_constant_p(__B))
! 	rshift = (__v8hu) vec_splat_s16(__B);
        else
! 	rshift = vec_splats ((unsigned short) __B);
      }
!   result = vec_sra ((__v8hi) __A, rshift);
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srai_epi32 (__m128i __A, int __B)
  {
!   __v4su rshift = { 31, 31, 31, 31 };
!   __v4si result;
  
    if (__B < 32)
      {
        if (__builtin_constant_p(__B))
  	{
  	  if (__B < 16)
! 	      rshift = (__v4su) vec_splat_s32(__B);
  	    else
! 	      rshift = (__v4su) vec_splats((unsigned int)__B);
  	}
        else
! 	rshift = vec_splats ((unsigned int) __B);
      }
!   result = vec_sra ((__v4si) __A, rshift);
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_bslli_si128 (__m128i __A, const int __N)
  {
!   __v16qu result;
!   const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__N < 16)
!     result = vec_sld ((__v16qu) __A, zeros, __N);
    else
!     result = zeros;
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_bsrli_si128 (__m128i __A, const int __N)
  {
!   __v16qu result;
!   const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__N < 16)
  #ifdef __LITTLE_ENDIAN__
--- 1496,1617 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_epi16 (__m128i __A, int __B)
  {
!   __v8hu __lshift;
!   __v8hi __result = { 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__B >= 0 && __B < 16)
      {
        if (__builtin_constant_p(__B))
! 	__lshift = (__v8hu) vec_splat_s16(__B);
        else
! 	__lshift = vec_splats ((unsigned short) __B);
  
!       __result = vec_sl ((__v8hi) __A, __lshift);
      }
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_epi32 (__m128i __A, int __B)
  {
!   __v4su __lshift;
!   __v4si __result = { 0, 0, 0, 0 };
  
    if (__B >= 0 && __B < 32)
      {
        if (__builtin_constant_p(__B) && __B < 16)
! 	__lshift = (__v4su) vec_splat_s32(__B);
        else
! 	__lshift = vec_splats ((unsigned int) __B);
  
!       __result = vec_sl ((__v4si) __A, __lshift);
      }
  
!   return (__m128i) __result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_epi64 (__m128i __A, int __B)
  {
!   __v2du __lshift;
!   __v2di __result = { 0, 0 };
  
    if (__B >= 0 && __B < 64)
      {
        if (__builtin_constant_p(__B) && __B < 16)
! 	__lshift = (__v2du) vec_splat_s32(__B);
        else
! 	__lshift = (__v2du) vec_splats ((unsigned int) __B);
  
!       __result = vec_sl ((__v2di) __A, __lshift);
      }
  
!   return (__m128i) __result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srai_epi16 (__m128i __A, int __B)
  {
!   __v8hu __rshift = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hi __result;
  
    if (__B < 16)
      {
        if (__builtin_constant_p(__B))
! 	__rshift = (__v8hu) vec_splat_s16(__B);
        else
! 	__rshift = vec_splats ((unsigned short) __B);
      }
!   __result = vec_sra ((__v8hi) __A, __rshift);
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srai_epi32 (__m128i __A, int __B)
  {
!   __v4su __rshift = { 31, 31, 31, 31 };
!   __v4si __result;
  
    if (__B < 32)
      {
        if (__builtin_constant_p(__B))
  	{
  	  if (__B < 16)
! 	      __rshift = (__v4su) vec_splat_s32(__B);
  	    else
! 	      __rshift = (__v4su) vec_splats((unsigned int)__B);
  	}
        else
! 	__rshift = vec_splats ((unsigned int) __B);
      }
!   __result = vec_sra ((__v4si) __A, __rshift);
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_bslli_si128 (__m128i __A, const int __N)
  {
!   __v16qu __result;
!   const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__N < 16)
!     __result = vec_sld ((__v16qu) __A, __zeros, __N);
    else
!     __result = __zeros;
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_bsrli_si128 (__m128i __A, const int __N)
  {
!   __v16qu __result;
!   const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__N < 16)
  #ifdef __LITTLE_ENDIAN__
*************** _mm_bsrli_si128 (__m128i __A, const int
*** 1625,1645 ****
        /* Would like to use Vector Shift Left Double by Octet
  	 Immediate here to use the immediate form and avoid
  	 load of __N * 8 value into a separate VR.  */
!       result = vec_sld (zeros, (__v16qu) __A, (16 - __N));
      else
  #endif
        {
! 	__v16qu shift = vec_splats((unsigned char)(__N*8));
  #ifdef __LITTLE_ENDIAN__
! 	result = vec_sro ((__v16qu)__A, shift);
  #else
! 	result = vec_slo ((__v16qu)__A, shift);
  #endif
        }
    else
!     result = zeros;
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1619,1639 ----
        /* Would like to use Vector Shift Left Double by Octet
  	 Immediate here to use the immediate form and avoid
  	 load of __N * 8 value into a separate VR.  */
!       __result = vec_sld (__zeros, (__v16qu) __A, (16 - __N));
      else
  #endif
        {
! 	__v16qu __shift = vec_splats((unsigned char)(__N*8));
  #ifdef __LITTLE_ENDIAN__
! 	__result = vec_sro ((__v16qu)__A, __shift);
  #else
! 	__result = vec_slo ((__v16qu)__A, __shift);
  #endif
        }
    else
!     __result = __zeros;
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_srli_si128 (__m128i __A, const int _
*** 1651,1889 ****
  extern __inline  __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_si128 (__m128i __A, const int _imm5)
  {
!   __v16qu result;
!   const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (_imm5 < 16)
  #ifdef __LITTLE_ENDIAN__
!     result = vec_sld ((__v16qu) __A, zeros, _imm5);
  #else
!     result = vec_sld (zeros, (__v16qu) __A, (16 - _imm5));
  #endif
    else
!     result = zeros;
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  
  _mm_srli_epi16 (__m128i  __A, int __B)
  {
!   __v8hu rshift;
!   __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__B < 16)
      {
        if (__builtin_constant_p(__B))
! 	rshift = (__v8hu) vec_splat_s16(__B);
        else
! 	rshift = vec_splats ((unsigned short) __B);
  
!       result = vec_sr ((__v8hi) __A, rshift);
      }
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srli_epi32 (__m128i __A, int __B)
  {
!   __v4su rshift;
!   __v4si result = { 0, 0, 0, 0 };
  
    if (__B < 32)
      {
        if (__builtin_constant_p(__B))
  	{
  	  if (__B < 16)
! 	      rshift = (__v4su) vec_splat_s32(__B);
  	    else
! 	      rshift = (__v4su) vec_splats((unsigned int)__B);
  	}
        else
! 	rshift = vec_splats ((unsigned int) __B);
  
!       result = vec_sr ((__v4si) __A, rshift);
      }
  
!   return (__m128i) result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srli_epi64 (__m128i __A, int __B)
  {
!   __v2du rshift;
!   __v2di result = { 0, 0 };
  
    if (__B < 64)
      {
        if (__builtin_constant_p(__B))
  	{
  	  if (__B < 16)
! 	      rshift = (__v2du) vec_splat_s32(__B);
  	    else
! 	      rshift = (__v2du) vec_splats((unsigned long long)__B);
  	}
        else
! 	rshift = (__v2du) vec_splats ((unsigned int) __B);
  
!       result = vec_sr ((__v2di) __A, rshift);
      }
  
!   return (__m128i) result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_epi16 (__m128i __A, __m128i __B)
  {
!   __v8hu lshift;
!   __vector __bool short shmask;
!   const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hu result;
  
  #ifdef __LITTLE_ENDIAN__
!   lshift = vec_splat ((__v8hu) __B, 0);
  #else
!   lshift = vec_splat ((__v8hu) __B, 3);
  #endif
!   shmask = vec_cmple (lshift, shmax);
!   result = vec_sl ((__v8hu) __A, lshift);
!   result = vec_sel ((__v8hu) shmask, result, shmask);
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_epi32 (__m128i __A, __m128i __B)
  {
!   __v4su lshift;
!   __vector __bool int shmask;
!   const __v4su shmax = { 32, 32, 32, 32 };
!   __v4su result;
  #ifdef __LITTLE_ENDIAN__
!   lshift = vec_splat ((__v4su) __B, 0);
  #else
!   lshift = vec_splat ((__v4su) __B, 1);
  #endif
!   shmask = vec_cmplt (lshift, shmax);
!   result = vec_sl ((__v4su) __A, lshift);
!   result = vec_sel ((__v4su) shmask, result, shmask);
  
!   return (__m128i) result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_epi64 (__m128i __A, __m128i __B)
  {
!   __v2du lshift;
!   __vector __bool long long shmask;
!   const __v2du shmax = { 64, 64 };
!   __v2du result;
  
!   lshift = vec_splat ((__v2du) __B, 0);
!   shmask = vec_cmplt (lshift, shmax);
!   result = vec_sl ((__v2du) __A, lshift);
!   result = vec_sel ((__v2du) shmask, result, shmask);
  
!   return (__m128i) result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_epi16 (__m128i __A, __m128i __B)
  {
!   const __v8hu rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hu rshift;
!   __v8hi result;
  
  #ifdef __LITTLE_ENDIAN__
!   rshift = vec_splat ((__v8hu)__B, 0);
  #else
!   rshift = vec_splat ((__v8hu)__B, 3);
  #endif
!   rshift = vec_min (rshift, rshmax);
!   result = vec_sra ((__v8hi) __A, rshift);
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_epi32 (__m128i __A, __m128i __B)
  {
!   const __v4su rshmax = { 31, 31, 31, 31 };
!   __v4su rshift;
!   __v4si result;
  
  #ifdef __LITTLE_ENDIAN__
!   rshift = vec_splat ((__v4su)__B, 0);
  #else
!   rshift = vec_splat ((__v4su)__B, 1);
  #endif
!   rshift = vec_min (rshift, rshmax);
!   result = vec_sra ((__v4si) __A, rshift);
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_epi16 (__m128i __A, __m128i __B)
  {
!   __v8hu rshift;
!   __vector __bool short shmask;
!   const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hu result;
  
  #ifdef __LITTLE_ENDIAN__
!   rshift = vec_splat ((__v8hu) __B, 0);
  #else
!   rshift = vec_splat ((__v8hu) __B, 3);
  #endif
!   shmask = vec_cmple (rshift, shmax);
!   result = vec_sr ((__v8hu) __A, rshift);
!   result = vec_sel ((__v8hu) shmask, result, shmask);
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_epi32 (__m128i __A, __m128i __B)
  {
!   __v4su rshift;
!   __vector __bool int shmask;
!   const __v4su shmax = { 32, 32, 32, 32 };
!   __v4su result;
  
  #ifdef __LITTLE_ENDIAN__
!   rshift = vec_splat ((__v4su) __B, 0);
  #else
!   rshift = vec_splat ((__v4su) __B, 1);
  #endif
!   shmask = vec_cmplt (rshift, shmax);
!   result = vec_sr ((__v4su) __A, rshift);
!   result = vec_sel ((__v4su) shmask, result, shmask);
  
!   return (__m128i) result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_epi64 (__m128i __A, __m128i __B)
  {
!   __v2du rshift;
!   __vector __bool long long shmask;
!   const __v2du shmax = { 64, 64 };
!   __v2du result;
  
!   rshift = vec_splat ((__v2du) __B, 0);
!   shmask = vec_cmplt (rshift, shmax);
!   result = vec_sr ((__v2du) __A, rshift);
!   result = vec_sel ((__v2du) shmask, result, shmask);
  
!   return (__m128i) result;
  }
  #endif
  
--- 1645,1883 ----
  extern __inline  __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_slli_si128 (__m128i __A, const int _imm5)
  {
!   __v16qu __result;
!   const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (_imm5 < 16)
  #ifdef __LITTLE_ENDIAN__
!     __result = vec_sld ((__v16qu) __A, __zeros, _imm5);
  #else
!     __result = vec_sld (__zeros, (__v16qu) __A, (16 - _imm5));
  #endif
    else
!     __result = __zeros;
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  
  _mm_srli_epi16 (__m128i  __A, int __B)
  {
!   __v8hu __rshift;
!   __v8hi __result = { 0, 0, 0, 0, 0, 0, 0, 0 };
  
    if (__B < 16)
      {
        if (__builtin_constant_p(__B))
! 	__rshift = (__v8hu) vec_splat_s16(__B);
        else
! 	__rshift = vec_splats ((unsigned short) __B);
  
!       __result = vec_sr ((__v8hi) __A, __rshift);
      }
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srli_epi32 (__m128i __A, int __B)
  {
!   __v4su __rshift;
!   __v4si __result = { 0, 0, 0, 0 };
  
    if (__B < 32)
      {
        if (__builtin_constant_p(__B))
  	{
  	  if (__B < 16)
! 	      __rshift = (__v4su) vec_splat_s32(__B);
  	    else
! 	      __rshift = (__v4su) vec_splats((unsigned int)__B);
  	}
        else
! 	__rshift = vec_splats ((unsigned int) __B);
  
!       __result = vec_sr ((__v4si) __A, __rshift);
      }
  
!   return (__m128i) __result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srli_epi64 (__m128i __A, int __B)
  {
!   __v2du __rshift;
!   __v2di __result = { 0, 0 };
  
    if (__B < 64)
      {
        if (__builtin_constant_p(__B))
  	{
  	  if (__B < 16)
! 	      __rshift = (__v2du) vec_splat_s32(__B);
  	    else
! 	      __rshift = (__v2du) vec_splats((unsigned long long)__B);
  	}
        else
! 	__rshift = (__v2du) vec_splats ((unsigned int) __B);
  
!       __result = vec_sr ((__v2di) __A, __rshift);
      }
  
!   return (__m128i) __result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_epi16 (__m128i __A, __m128i __B)
  {
!   __v8hu __lshift;
!   __vector __bool short __shmask;
!   const __v8hu __shmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hu __result;
  
  #ifdef __LITTLE_ENDIAN__
!   __lshift = vec_splat ((__v8hu) __B, 0);
  #else
!   __lshift = vec_splat ((__v8hu) __B, 3);
  #endif
!   __shmask = vec_cmple (__lshift, __shmax);
!   __result = vec_sl ((__v8hu) __A, __lshift);
!   __result = vec_sel ((__v8hu) __shmask, __result, __shmask);
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_epi32 (__m128i __A, __m128i __B)
  {
!   __v4su __lshift;
!   __vector __bool int __shmask;
!   const __v4su __shmax = { 32, 32, 32, 32 };
!   __v4su __result;
  #ifdef __LITTLE_ENDIAN__
!   __lshift = vec_splat ((__v4su) __B, 0);
  #else
!   __lshift = vec_splat ((__v4su) __B, 1);
  #endif
!   __shmask = vec_cmplt (__lshift, __shmax);
!   __result = vec_sl ((__v4su) __A, __lshift);
!   __result = vec_sel ((__v4su) __shmask, __result, __shmask);
  
!   return (__m128i) __result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_epi64 (__m128i __A, __m128i __B)
  {
!   __v2du __lshift;
!   __vector __bool long long __shmask;
!   const __v2du __shmax = { 64, 64 };
!   __v2du __result;
  
!   __lshift = vec_splat ((__v2du) __B, 0);
!   __shmask = vec_cmplt (__lshift, __shmax);
!   __result = vec_sl ((__v2du) __A, __lshift);
!   __result = vec_sel ((__v2du) __shmask, __result, __shmask);
  
!   return (__m128i) __result;
  }
  #endif
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_epi16 (__m128i __A, __m128i __B)
  {
!   const __v8hu __rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hu __rshift;
!   __v8hi __result;
  
  #ifdef __LITTLE_ENDIAN__
!   __rshift = vec_splat ((__v8hu)__B, 0);
  #else
!   __rshift = vec_splat ((__v8hu)__B, 3);
  #endif
!   __rshift = vec_min (__rshift, __rshmax);
!   __result = vec_sra ((__v8hi) __A, __rshift);
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_epi32 (__m128i __A, __m128i __B)
  {
!   const __v4su __rshmax = { 31, 31, 31, 31 };
!   __v4su __rshift;
!   __v4si __result;
  
  #ifdef __LITTLE_ENDIAN__
!   __rshift = vec_splat ((__v4su)__B, 0);
  #else
!   __rshift = vec_splat ((__v4su)__B, 1);
  #endif
!   __rshift = vec_min (__rshift, __rshmax);
!   __result = vec_sra ((__v4si) __A, __rshift);
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_epi16 (__m128i __A, __m128i __B)
  {
!   __v8hu __rshift;
!   __vector __bool short __shmask;
!   const __v8hu __shmax = { 15, 15, 15, 15, 15, 15, 15, 15 };
!   __v8hu __result;
  
  #ifdef __LITTLE_ENDIAN__
!   __rshift = vec_splat ((__v8hu) __B, 0);
  #else
!   __rshift = vec_splat ((__v8hu) __B, 3);
  #endif
!   __shmask = vec_cmple (__rshift, __shmax);
!   __result = vec_sr ((__v8hu) __A, __rshift);
!   __result = vec_sel ((__v8hu) __shmask, __result, __shmask);
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_epi32 (__m128i __A, __m128i __B)
  {
!   __v4su __rshift;
!   __vector __bool int __shmask;
!   const __v4su __shmax = { 32, 32, 32, 32 };
!   __v4su __result;
  
  #ifdef __LITTLE_ENDIAN__
!   __rshift = vec_splat ((__v4su) __B, 0);
  #else
!   __rshift = vec_splat ((__v4su) __B, 1);
  #endif
!   __shmask = vec_cmplt (__rshift, __shmax);
!   __result = vec_sr ((__v4su) __A, __rshift);
!   __result = vec_sel ((__v4su) __shmask, __result, __shmask);
  
!   return (__m128i) __result;
  }
  
  #ifdef _ARCH_PWR8
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_epi64 (__m128i __A, __m128i __B)
  {
!   __v2du __rshift;
!   __vector __bool long long __shmask;
!   const __v2du __shmax = { 64, 64 };
!   __v2du __result;
  
!   __rshift = vec_splat ((__v2du) __B, 0);
!   __shmask = vec_cmplt (__rshift, __shmax);
!   __result = vec_sr ((__v2du) __A, __rshift);
!   __result = vec_sel ((__v2du) __shmask, __result, __shmask);
  
!   return (__m128i) __result;
  }
  #endif
  
*************** _mm_extract_epi16 (__m128i const __A, in
*** 1998,2008 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
  {
!   __v8hi result = (__v8hi)__A;
  
!   result [(__N & 7)] = __D;
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1992,2002 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi16 (__m128i const __A, int const __D, int const __N)
  {
!   __v8hi __result = (__v8hi)__A;
  
!   __result [(__N & 7)] = __D;
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_min_epu8 (__m128i __A, __m128i __B)
*** 2038,2058 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_movemask_epi8 (__m128i __A)
  {
!   __vector unsigned long long result;
!   static const __vector unsigned char perm_mask =
      {
  	0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40,
  	0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00
      };
  
!   result = ((__vector unsigned long long)
  	    vec_vbpermq ((__vector unsigned char) __A,
! 			 (__vector unsigned char) perm_mask));
  
  #ifdef __LITTLE_ENDIAN__
!   return result[1];
  #else
!   return result[0];
  #endif
  }
  #endif /* _ARCH_PWR8 */
--- 2032,2052 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_movemask_epi8 (__m128i __A)
  {
!   __vector unsigned long long __result;
!   static const __vector unsigned char __perm_mask =
      {
  	0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40,
  	0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00
      };
  
!   __result = ((__vector unsigned long long)
  	    vec_vbpermq ((__vector unsigned char) __A,
! 			 (__vector unsigned char) __perm_mask));
  
  #ifdef __LITTLE_ENDIAN__
!   return __result[1];
  #else
!   return __result[0];
  #endif
  }
  #endif /* _ARCH_PWR8 */
*************** _mm_movemask_epi8 (__m128i __A)
*** 2060,2067 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_epu16 (__m128i __A, __m128i __B)
  {
!   __v4su w0, w1;
!   __v16qu xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
--- 2054,2061 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_epu16 (__m128i __A, __m128i __B)
  {
!   __v4su __w0, __w1;
!   __v16qu __xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
*************** _mm_mulhi_epu16 (__m128i __A, __m128i __
*** 2071,2089 ****
  #endif
      };
  
!   w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B);
!   w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B);
!   return (__m128i) vec_perm (w0, w1, xform1);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shufflehi_epi16 (__m128i __A, const int __mask)
  {
!   unsigned long element_selector_98 = __mask & 0x03;
!   unsigned long element_selector_BA = (__mask >> 2) & 0x03;
!   unsigned long element_selector_DC = (__mask >> 4) & 0x03;
!   unsigned long element_selector_FE = (__mask >> 6) & 0x03;
!   static const unsigned short permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	      0x0908, 0x0B0A, 0x0D0C, 0x0F0E
--- 2065,2083 ----
  #endif
      };
  
!   __w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B);
!   __w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B);
!   return (__m128i) vec_perm (__w0, __w1, __xform1);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shufflehi_epi16 (__m128i __A, const int __mask)
  {
!   unsigned long __element_selector_98 = __mask & 0x03;
!   unsigned long __element_selector_BA = (__mask >> 2) & 0x03;
!   unsigned long __element_selector_DC = (__mask >> 4) & 0x03;
!   unsigned long __element_selector_FE = (__mask >> 6) & 0x03;
!   static const unsigned short __permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	      0x0908, 0x0B0A, 0x0D0C, 0x0F0E
*************** _mm_shufflehi_epi16 (__m128i __A, const
*** 2091,2123 ****
  	      0x0809, 0x0A0B, 0x0C0D, 0x0E0F
  #endif
      };
!   __v2du pmask =
  #ifdef __LITTLE_ENDIAN__
        { 0x1716151413121110UL,  0UL};
  #else
        { 0x1011121314151617UL,  0UL};
  #endif
!   __m64_union t;
!   __v2du a, r;
  
!   t.as_short[0] = permute_selectors[element_selector_98];
!   t.as_short[1] = permute_selectors[element_selector_BA];
!   t.as_short[2] = permute_selectors[element_selector_DC];
!   t.as_short[3] = permute_selectors[element_selector_FE];
!   pmask[1] = t.as_m64;
!   a = (__v2du)__A;
!   r = vec_perm (a, a, (__vector unsigned char)pmask);
!   return (__m128i) r;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shufflelo_epi16 (__m128i __A, const int __mask)
  {
!   unsigned long element_selector_10 = __mask & 0x03;
!   unsigned long element_selector_32 = (__mask >> 2) & 0x03;
!   unsigned long element_selector_54 = (__mask >> 4) & 0x03;
!   unsigned long element_selector_76 = (__mask >> 6) & 0x03;
!   static const unsigned short permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	      0x0100, 0x0302, 0x0504, 0x0706
--- 2085,2117 ----
  	      0x0809, 0x0A0B, 0x0C0D, 0x0E0F
  #endif
      };
!   __v2du __pmask =
  #ifdef __LITTLE_ENDIAN__
        { 0x1716151413121110UL,  0UL};
  #else
        { 0x1011121314151617UL,  0UL};
  #endif
!   __m64_union __t;
!   __v2du __a, __r;
  
!   __t.as_short[0] = __permute_selectors[__element_selector_98];
!   __t.as_short[1] = __permute_selectors[__element_selector_BA];
!   __t.as_short[2] = __permute_selectors[__element_selector_DC];
!   __t.as_short[3] = __permute_selectors[__element_selector_FE];
!   __pmask[1] = __t.as_m64;
!   __a = (__v2du)__A;
!   __r = vec_perm (__a, __a, (__vector unsigned char)__pmask);
!   return (__m128i) __r;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shufflelo_epi16 (__m128i __A, const int __mask)
  {
!   unsigned long __element_selector_10 = __mask & 0x03;
!   unsigned long __element_selector_32 = (__mask >> 2) & 0x03;
!   unsigned long __element_selector_54 = (__mask >> 4) & 0x03;
!   unsigned long __element_selector_76 = (__mask >> 6) & 0x03;
!   static const unsigned short __permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	      0x0100, 0x0302, 0x0504, 0x0706
*************** _mm_shufflelo_epi16 (__m128i __A, const
*** 2125,2156 ****
  	      0x0001, 0x0203, 0x0405, 0x0607
  #endif
      };
!   __v2du pmask =
  #ifdef __LITTLE_ENDIAN__
                   { 0UL,  0x1f1e1d1c1b1a1918UL};
  #else
                   { 0UL,  0x18191a1b1c1d1e1fUL};
  #endif
!   __m64_union t;
!   __v2du a, r;
!   t.as_short[0] = permute_selectors[element_selector_10];
!   t.as_short[1] = permute_selectors[element_selector_32];
!   t.as_short[2] = permute_selectors[element_selector_54];
!   t.as_short[3] = permute_selectors[element_selector_76];
!   pmask[0] = t.as_m64;
!   a = (__v2du)__A;
!   r = vec_perm (a, a, (__vector unsigned char)pmask);
!   return (__m128i) r;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shuffle_epi32 (__m128i __A, const int __mask)
  {
!   unsigned long element_selector_10 = __mask & 0x03;
!   unsigned long element_selector_32 = (__mask >> 2) & 0x03;
!   unsigned long element_selector_54 = (__mask >> 4) & 0x03;
!   unsigned long element_selector_76 = (__mask >> 6) & 0x03;
!   static const unsigned int permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C
--- 2119,2150 ----
  	      0x0001, 0x0203, 0x0405, 0x0607
  #endif
      };
!   __v2du __pmask =
  #ifdef __LITTLE_ENDIAN__
                   { 0UL,  0x1f1e1d1c1b1a1918UL};
  #else
                   { 0UL,  0x18191a1b1c1d1e1fUL};
  #endif
!   __m64_union __t;
!   __v2du __a, __r;
!   __t.as_short[0] = __permute_selectors[__element_selector_10];
!   __t.as_short[1] = __permute_selectors[__element_selector_32];
!   __t.as_short[2] = __permute_selectors[__element_selector_54];
!   __t.as_short[3] = __permute_selectors[__element_selector_76];
!   __pmask[0] = __t.as_m64;
!   __a = (__v2du)__A;
!   __r = vec_perm (__a, __a, (__vector unsigned char)__pmask);
!   return (__m128i) __r;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shuffle_epi32 (__m128i __A, const int __mask)
  {
!   unsigned long __element_selector_10 = __mask & 0x03;
!   unsigned long __element_selector_32 = (__mask >> 2) & 0x03;
!   unsigned long __element_selector_54 = (__mask >> 4) & 0x03;
!   unsigned long __element_selector_76 = (__mask >> 6) & 0x03;
!   static const unsigned int __permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C
*************** _mm_shuffle_epi32 (__m128i __A, const in
*** 2158,2183 ****
        0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F
  #endif
      };
!   __v4su t;
  
!   t[0] = permute_selectors[element_selector_10];
!   t[1] = permute_selectors[element_selector_32];
!   t[2] = permute_selectors[element_selector_54] + 0x10101010;
!   t[3] = permute_selectors[element_selector_76] + 0x10101010;
!   return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)t);
  }
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
  {
!   __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL};
!   __v16qu mask, tmp;
!   __m128i_u *p = (__m128i_u*)__C;
  
!   tmp = (__v16qu)_mm_loadu_si128(p);
!   mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit);
!   tmp = vec_sel (tmp, (__v16qu)__A, mask);
!   _mm_storeu_si128 (p, (__m128i)tmp);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 2152,2177 ----
        0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F
  #endif
      };
!   __v4su __t;
  
!   __t[0] = __permute_selectors[__element_selector_10];
!   __t[1] = __permute_selectors[__element_selector_32];
!   __t[2] = __permute_selectors[__element_selector_54] + 0x10101010;
!   __t[3] = __permute_selectors[__element_selector_76] + 0x10101010;
!   return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)__t);
  }
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C)
  {
!   __v2du __hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL};
!   __v16qu __mask, __tmp;
!   __m128i_u *__p = (__m128i_u*)__C;
  
!   __tmp = (__v16qu)_mm_loadu_si128(__p);
!   __mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)__hibit);
!   __tmp = vec_sel (__tmp, (__v16qu)__A, __mask);
!   _mm_storeu_si128 (__p, (__m128i)__tmp);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_avg_epu16 (__m128i __A, __m128i __B)
*** 2196,2224 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sad_epu8 (__m128i __A, __m128i __B)
  {
!   __v16qu a, b;
!   __v16qu vmin, vmax, vabsdiff;
!   __v4si vsum;
!   const __v4su zero = { 0, 0, 0, 0 };
!   __v4si result;
  
!   a = (__v16qu) __A;
!   b = (__v16qu) __B;
!   vmin = vec_min (a, b);
!   vmax = vec_max (a, b);
!   vabsdiff = vec_sub (vmax, vmin);
    /* Sum four groups of bytes into integers.  */
!   vsum = (__vector signed int) vec_sum4s (vabsdiff, zero);
    /* Sum across four integers with two integer results.  */
!   result = vec_sum2s (vsum, (__vector signed int) zero);
    /* Rotate the sums into the correct position.  */
  #ifdef __LITTLE_ENDIAN__
!   result = vec_sld (result, result, 4);
  #else
!   result = vec_sld (result, result, 6);
  #endif
    /* Rotate the sums into the correct position.  */
!   return (__m128i) result;
  }
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 2190,2218 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sad_epu8 (__m128i __A, __m128i __B)
  {
!   __v16qu __a, __b;
!   __v16qu __vmin, __vmax, __vabsdiff;
!   __v4si __vsum;
!   const __v4su __zero = { 0, 0, 0, 0 };
!   __v4si __result;
  
!   __a = (__v16qu) __A;
!   __b = (__v16qu) __B;
!   __vmin = vec_min (__a, __b);
!   __vmax = vec_max (__a, __b);
!   __vabsdiff = vec_sub (__vmax, __vmin);
    /* Sum four groups of bytes into integers.  */
!   __vsum = (__vector signed int) vec_sum4s (__vabsdiff, __zero);
    /* Sum across four integers with two integer results.  */
!   __result = vec_sum2s (__vsum, (__vector signed int) __zero);
    /* Rotate the sums into the correct position.  */
  #ifdef __LITTLE_ENDIAN__
!   __result = vec_sld (__result, __result, 4);
  #else
!   __result = vec_sld (__result, __result, 6);
  #endif
    /* Rotate the sums into the correct position.  */
!   return (__m128i) __result;
  }
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/mm_malloc.h gcc-11.4.0/gcc/config/rs6000/mm_malloc.h
*** gcc-11.3.0/gcc/config/rs6000/mm_malloc.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/mm_malloc.h	Mon May 29 08:46:29 2023
*************** extern "C" int posix_memalign (void **,
*** 35,62 ****
  #endif
  
  static __inline void *
! _mm_malloc (size_t size, size_t alignment)
  {
    /* PowerPC64 ELF V2 ABI requires quadword alignment.  */
!   size_t vec_align = sizeof (__vector float);
    /* Linux GLIBC malloc alignment is at least 2 X ptr size.  */
!   size_t malloc_align = (sizeof (void *) + sizeof (void *));
!   void *ptr;
  
!   if (alignment == malloc_align && alignment == vec_align)
!     return malloc (size);
!   if (alignment < vec_align)
!     alignment = vec_align;
!   if (posix_memalign (&ptr, alignment, size) == 0)
!     return ptr;
    else
      return NULL;
  }
  
  static __inline void
! _mm_free (void * ptr)
  {
!   free (ptr);
  }
  
  #endif /* _MM_MALLOC_H_INCLUDED */
--- 35,62 ----
  #endif
  
  static __inline void *
! _mm_malloc (size_t __size, size_t __alignment)
  {
    /* PowerPC64 ELF V2 ABI requires quadword alignment.  */
!   size_t __vec_align = sizeof (__vector float);
    /* Linux GLIBC malloc alignment is at least 2 X ptr size.  */
!   size_t __malloc_align = (sizeof (void *) + sizeof (void *));
!   void *__ptr;
  
!   if (__alignment == __malloc_align && __alignment == __vec_align)
!     return malloc (__size);
!   if (__alignment < __vec_align)
!     __alignment = __vec_align;
!   if (posix_memalign (&__ptr, __alignment, __size) == 0)
!     return __ptr;
    else
      return NULL;
  }
  
  static __inline void
! _mm_free (void * __ptr)
  {
!   free (__ptr);
  }
  
  #endif /* _MM_MALLOC_H_INCLUDED */
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/mma.md gcc-11.4.0/gcc/config/rs6000/mma.md
*** gcc-11.3.0/gcc/config/rs6000/mma.md	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/mma.md	Mon May 29 08:46:29 2023
***************
*** 267,276 ****
  (define_expand "movoo"
    [(set (match_operand:OO 0 "nonimmediate_operand")
  	(match_operand:OO 1 "input_operand"))]
!   "TARGET_MMA"
  {
!   rs6000_emit_move (operands[0], operands[1], OOmode);
!   DONE;
  })
  
  (define_insn_and_split "*movoo"
--- 267,294 ----
  (define_expand "movoo"
    [(set (match_operand:OO 0 "nonimmediate_operand")
  	(match_operand:OO 1 "input_operand"))]
!   ""
  {
!   if (TARGET_MMA)
!     {
!       rs6000_emit_move (operands[0], operands[1], OOmode);
!       DONE;
!     }
!   else if (currently_expanding_to_rtl && seen_error ())
!     {
!       /* PR103353 shows we may want to continue to expand the __builtin_vsx_lxvp
! 	 built-in function, even if we have already emitted error messages about
! 	 some missing required conditions.  As shown in that PR, without one
! 	 explicit mov optab on OOmode provided, it would call emit_move_insn
! 	 recursively.  So we allow this pattern to be generated when we are
! 	 expanding to RTL and have seen errors.  It would not cause further ICEs
! 	 as the compilation would stop soon after expanding.  */
!     }
!   else if (rs6000_opaque_type_invalid_use_p (currently_expanding_gimple_stmt))
!     ;
!   else
!     /* Catch unexpected cases.  */
!     gcc_assert (false);
  })
  
  (define_insn_and_split "*movoo"
***************
*** 299,308 ****
  (define_expand "movxo"
    [(set (match_operand:XO 0 "nonimmediate_operand")
  	(match_operand:XO 1 "input_operand"))]
!   "TARGET_MMA"
  {
!   rs6000_emit_move (operands[0], operands[1], XOmode);
!   DONE;
  })
  
  (define_insn_and_split "*movxo"
--- 317,341 ----
  (define_expand "movxo"
    [(set (match_operand:XO 0 "nonimmediate_operand")
  	(match_operand:XO 1 "input_operand"))]
!   ""
  {
!   if (TARGET_MMA)
!     {
!       rs6000_emit_move (operands[0], operands[1], XOmode);
!       DONE;
!     }
!   else if (currently_expanding_to_rtl && seen_error ())
!     {
!       /* PR103353 shows we may want to continue to expand the __builtin_vsx_lxvp
! 	 built-in function, even if we have already emitted error messages about
! 	 some missing required conditions.  So do the same handlings for XOmode
! 	 as OOmode here.  */
!     }
!   else if (rs6000_opaque_type_invalid_use_p (currently_expanding_gimple_stmt))
!     ;
!   else
!     /* Catch unexpected cases.  */
!     gcc_assert (false);
  })
  
  (define_insn_and_split "*movxo"
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/mmintrin.h gcc-11.4.0/gcc/config/rs6000/mmintrin.h
*** gcc-11.3.0/gcc/config/rs6000/mmintrin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/mmintrin.h	Mon May 29 08:46:29 2023
*************** _mm_cvtsi64_si64x (__m64 __i)
*** 170,186 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_packs_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short vm1;
!   __vector signed char vresult;
  
!   vm1 = (__vector signed short) (__vector unsigned long long)
  #ifdef __LITTLE_ENDIAN__
          { __m1, __m2 };
  #else
          { __m2, __m1 };
  #endif
!   vresult = vec_packs (vm1, vm1);
!   return (__m64) ((__vector long long) vresult)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 170,186 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_packs_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short __vm1;
!   __vector signed char __vresult;
  
!   __vm1 = (__vector signed short) (__vector unsigned long long)
  #ifdef __LITTLE_ENDIAN__
          { __m1, __m2 };
  #else
          { __m2, __m1 };
  #endif
!   __vresult = vec_packs (__vm1, __vm1);
!   return (__m64) ((__vector long long) __vresult)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_packsswb (__m64 __m1, __m64 __m2)
*** 195,211 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_packs_pi32 (__m64 __m1, __m64 __m2)
  {
!   __vector signed int vm1;
!   __vector signed short vresult;
  
!   vm1 = (__vector signed int) (__vector unsigned long long)
  #ifdef __LITTLE_ENDIAN__
          { __m1, __m2 };
  #else
          { __m2, __m1 };
  #endif
!   vresult = vec_packs (vm1, vm1);
!   return (__m64) ((__vector long long) vresult)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 195,211 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_packs_pi32 (__m64 __m1, __m64 __m2)
  {
!   __vector signed int __vm1;
!   __vector signed short __vresult;
  
!   __vm1 = (__vector signed int) (__vector unsigned long long)
  #ifdef __LITTLE_ENDIAN__
          { __m1, __m2 };
  #else
          { __m2, __m1 };
  #endif
!   __vresult = vec_packs (__vm1, __vm1);
!   return (__m64) ((__vector long long) __vresult)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_packssdw (__m64 __m1, __m64 __m2)
*** 220,238 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_packs_pu16 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned char r;
!   __vector signed short vm1 = (__vector signed short) (__vector long long)
  #ifdef __LITTLE_ENDIAN__
          { __m1, __m2 };
  #else
          { __m2, __m1 };
  #endif
    const __vector signed short __zero = { 0 };
!   __vector __bool short __select = vec_cmplt (vm1, __zero);
!   r = vec_packs ((__vector unsigned short) vm1, (__vector unsigned short) vm1);
!   __vector __bool char packsel = vec_pack (__select, __select);
!   r = vec_sel (r, (const __vector unsigned char) __zero, packsel);
!   return (__m64) ((__vector long long) r)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 220,238 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_packs_pu16 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned char __r;
!   __vector signed short __vm1 = (__vector signed short) (__vector long long)
  #ifdef __LITTLE_ENDIAN__
          { __m1, __m2 };
  #else
          { __m2, __m1 };
  #endif
    const __vector signed short __zero = { 0 };
!   __vector __bool short __select = vec_cmplt (__vm1, __zero);
!   __r = vec_packs ((__vector unsigned short) __vm1, (__vector unsigned short) __vm1);
!   __vector __bool char __packsel = vec_pack (__select, __select);
!   __r = vec_sel (__r, (const __vector unsigned char) __zero, __packsel);
!   return (__m64) ((__vector long long) __r)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** extern __inline __m64 __attribute__((__g
*** 248,275 ****
  _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector unsigned char a, b, c;
  
!   a = (__vector unsigned char)vec_splats (__m1);
!   b = (__vector unsigned char)vec_splats (__m2);
!   c = vec_mergel (a, b);
!   return (__m64) ((__vector long long) c)[1];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_char[0] = m1.as_char[4];
!   res.as_char[1] = m2.as_char[4];
!   res.as_char[2] = m1.as_char[5];
!   res.as_char[3] = m2.as_char[5];
!   res.as_char[4] = m1.as_char[6];
!   res.as_char[5] = m2.as_char[6];
!   res.as_char[6] = m1.as_char[7];
!   res.as_char[7] = m2.as_char[7];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 248,275 ----
  _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector unsigned char __a, __b, __c;
  
!   __a = (__vector unsigned char)vec_splats (__m1);
!   __b = (__vector unsigned char)vec_splats (__m2);
!   __c = vec_mergel (__a, __b);
!   return (__m64) ((__vector long long) __c)[1];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_char[0] = __mu1.as_char[4];
!   __res.as_char[1] = __mu2.as_char[4];
!   __res.as_char[2] = __mu1.as_char[5];
!   __res.as_char[3] = __mu2.as_char[5];
!   __res.as_char[4] = __mu1.as_char[6];
!   __res.as_char[5] = __mu2.as_char[6];
!   __res.as_char[6] = __mu1.as_char[7];
!   __res.as_char[7] = __mu2.as_char[7];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** _m_punpckhbw (__m64 __m1, __m64 __m2)
*** 284,300 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
  {
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_short[0] = m1.as_short[2];
!   res.as_short[1] = m2.as_short[2];
!   res.as_short[2] = m1.as_short[3];
!   res.as_short[3] = m2.as_short[3];
  
!   return (__m64) res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 284,300 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2)
  {
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_short[0] = __mu1.as_short[2];
!   __res.as_short[1] = __mu2.as_short[2];
!   __res.as_short[2] = __mu1.as_short[3];
!   __res.as_short[3] = __mu2.as_short[3];
  
!   return (__m64) __res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_punpckhwd (__m64 __m1, __m64 __m2)
*** 307,321 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
  {
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_int[0] = m1.as_int[1];
!   res.as_int[1] = m2.as_int[1];
  
!   return (__m64) res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 307,321 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2)
  {
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_int[0] = __mu1.as_int[1];
!   __res.as_int[1] = __mu2.as_int[1];
  
!   return (__m64) __res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** extern __inline __m64 __attribute__((__g
*** 329,356 ****
  _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector unsigned char a, b, c;
  
!   a = (__vector unsigned char)vec_splats (__m1);
!   b = (__vector unsigned char)vec_splats (__m2);
!   c = vec_mergel (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_char[0] = m1.as_char[0];
!   res.as_char[1] = m2.as_char[0];
!   res.as_char[2] = m1.as_char[1];
!   res.as_char[3] = m2.as_char[1];
!   res.as_char[4] = m1.as_char[2];
!   res.as_char[5] = m2.as_char[2];
!   res.as_char[6] = m1.as_char[3];
!   res.as_char[7] = m2.as_char[3];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 329,356 ----
  _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector unsigned char __a, __b, __c;
  
!   __a = (__vector unsigned char)vec_splats (__m1);
!   __b = (__vector unsigned char)vec_splats (__m2);
!   __c = vec_mergel (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_char[0] = __mu1.as_char[0];
!   __res.as_char[1] = __mu2.as_char[0];
!   __res.as_char[2] = __mu1.as_char[1];
!   __res.as_char[3] = __mu2.as_char[1];
!   __res.as_char[4] = __mu1.as_char[2];
!   __res.as_char[5] = __mu2.as_char[2];
!   __res.as_char[6] = __mu1.as_char[3];
!   __res.as_char[7] = __mu2.as_char[3];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** _m_punpcklbw (__m64 __m1, __m64 __m2)
*** 364,380 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
  {
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_short[0] = m1.as_short[0];
!   res.as_short[1] = m2.as_short[0];
!   res.as_short[2] = m1.as_short[1];
!   res.as_short[3] = m2.as_short[1];
  
!   return (__m64) res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 364,380 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2)
  {
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_short[0] = __mu1.as_short[0];
!   __res.as_short[1] = __mu2.as_short[0];
!   __res.as_short[2] = __mu1.as_short[1];
!   __res.as_short[3] = __mu2.as_short[1];
  
!   return (__m64) __res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_punpcklwd (__m64 __m1, __m64 __m2)
*** 388,402 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
  {
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_int[0] = m1.as_int[0];
!   res.as_int[1] = m2.as_int[0];
  
!   return (__m64) res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 388,402 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2)
  {
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_int[0] = __mu1.as_int[0];
!   __res.as_int[1] = __mu2.as_int[0];
  
!   return (__m64) __res.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** extern __inline __m64 __attribute__((__g
*** 410,437 ****
  _mm_add_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed char a, b, c;
  
!   a = (__vector signed char)vec_splats (__m1);
!   b = (__vector signed char)vec_splats (__m2);
!   c = vec_add (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_char[0] = m1.as_char[0] + m2.as_char[0];
!   res.as_char[1] = m1.as_char[1] + m2.as_char[1];
!   res.as_char[2] = m1.as_char[2] + m2.as_char[2];
!   res.as_char[3] = m1.as_char[3] + m2.as_char[3];
!   res.as_char[4] = m1.as_char[4] + m2.as_char[4];
!   res.as_char[5] = m1.as_char[5] + m2.as_char[5];
!   res.as_char[6] = m1.as_char[6] + m2.as_char[6];
!   res.as_char[7] = m1.as_char[7] + m2.as_char[7];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 410,437 ----
  _mm_add_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed char __a, __b, __c;
  
!   __a = (__vector signed char)vec_splats (__m1);
!   __b = (__vector signed char)vec_splats (__m2);
!   __c = vec_add (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_char[0] = __mu1.as_char[0] + __mu2.as_char[0];
!   __res.as_char[1] = __mu1.as_char[1] + __mu2.as_char[1];
!   __res.as_char[2] = __mu1.as_char[2] + __mu2.as_char[2];
!   __res.as_char[3] = __mu1.as_char[3] + __mu2.as_char[3];
!   __res.as_char[4] = __mu1.as_char[4] + __mu2.as_char[4];
!   __res.as_char[5] = __mu1.as_char[5] + __mu2.as_char[5];
!   __res.as_char[6] = __mu1.as_char[6] + __mu2.as_char[6];
!   __res.as_char[7] = __mu1.as_char[7] + __mu2.as_char[7];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 446,469 ****
  _mm_add_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = vec_add (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_short[0] = m1.as_short[0] + m2.as_short[0];
!   res.as_short[1] = m1.as_short[1] + m2.as_short[1];
!   res.as_short[2] = m1.as_short[2] + m2.as_short[2];
!   res.as_short[3] = m1.as_short[3] + m2.as_short[3];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 446,469 ----
  _mm_add_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = vec_add (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_short[0] = __mu1.as_short[0] + __mu2.as_short[0];
!   __res.as_short[1] = __mu1.as_short[1] + __mu2.as_short[1];
!   __res.as_short[2] = __mu1.as_short[2] + __mu2.as_short[2];
!   __res.as_short[3] = __mu1.as_short[3] + __mu2.as_short[3];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 478,499 ****
  _mm_add_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int a, b, c;
  
!   a = (__vector signed int)vec_splats (__m1);
!   b = (__vector signed int)vec_splats (__m2);
!   c = vec_add (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_int[0] = m1.as_int[0] + m2.as_int[0];
!   res.as_int[1] = m1.as_int[1] + m2.as_int[1];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 478,499 ----
  _mm_add_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int __a, __b, __c;
  
!   __a = (__vector signed int)vec_splats (__m1);
!   __b = (__vector signed int)vec_splats (__m2);
!   __c = vec_add (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_int[0] = __mu1.as_int[0] + __mu2.as_int[0];
!   __res.as_int[1] = __mu1.as_int[1] + __mu2.as_int[1];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 508,535 ****
  _mm_sub_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed char a, b, c;
  
!   a = (__vector signed char)vec_splats (__m1);
!   b = (__vector signed char)vec_splats (__m2);
!   c = vec_sub (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_char[0] = m1.as_char[0] - m2.as_char[0];
!   res.as_char[1] = m1.as_char[1] - m2.as_char[1];
!   res.as_char[2] = m1.as_char[2] - m2.as_char[2];
!   res.as_char[3] = m1.as_char[3] - m2.as_char[3];
!   res.as_char[4] = m1.as_char[4] - m2.as_char[4];
!   res.as_char[5] = m1.as_char[5] - m2.as_char[5];
!   res.as_char[6] = m1.as_char[6] - m2.as_char[6];
!   res.as_char[7] = m1.as_char[7] - m2.as_char[7];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 508,535 ----
  _mm_sub_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed char __a, __b, __c;
  
!   __a = (__vector signed char)vec_splats (__m1);
!   __b = (__vector signed char)vec_splats (__m2);
!   __c = vec_sub (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_char[0] = __mu1.as_char[0] - __mu2.as_char[0];
!   __res.as_char[1] = __mu1.as_char[1] - __mu2.as_char[1];
!   __res.as_char[2] = __mu1.as_char[2] - __mu2.as_char[2];
!   __res.as_char[3] = __mu1.as_char[3] - __mu2.as_char[3];
!   __res.as_char[4] = __mu1.as_char[4] - __mu2.as_char[4];
!   __res.as_char[5] = __mu1.as_char[5] - __mu2.as_char[5];
!   __res.as_char[6] = __mu1.as_char[6] - __mu2.as_char[6];
!   __res.as_char[7] = __mu1.as_char[7] - __mu2.as_char[7];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 544,567 ****
  _mm_sub_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = vec_sub (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_short[0] = m1.as_short[0] - m2.as_short[0];
!   res.as_short[1] = m1.as_short[1] - m2.as_short[1];
!   res.as_short[2] = m1.as_short[2] - m2.as_short[2];
!   res.as_short[3] = m1.as_short[3] - m2.as_short[3];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 544,567 ----
  _mm_sub_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = vec_sub (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_short[0] = __mu1.as_short[0] - __mu2.as_short[0];
!   __res.as_short[1] = __mu1.as_short[1] - __mu2.as_short[1];
!   __res.as_short[2] = __mu1.as_short[2] - __mu2.as_short[2];
!   __res.as_short[3] = __mu1.as_short[3] - __mu2.as_short[3];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 576,597 ****
  _mm_sub_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int a, b, c;
  
!   a = (__vector signed int)vec_splats (__m1);
!   b = (__vector signed int)vec_splats (__m2);
!   c = vec_sub (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_int[0] = m1.as_int[0] - m2.as_int[0];
!   res.as_int[1] = m1.as_int[1] - m2.as_int[1];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 576,597 ----
  _mm_sub_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int __a, __b, __c;
  
!   __a = (__vector signed int)vec_splats (__m1);
!   __b = (__vector signed int)vec_splats (__m2);
!   __c = vec_sub (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_int[0] = __mu1.as_int[0] - __mu2.as_int[0];
!   __res.as_int[1] = __mu1.as_int[1] - __mu2.as_int[1];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 729,758 ****
  _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
  {
  #if defined(_ARCH_PWR6) && defined(__powerpc64__)
!   __m64 res;
    __asm__(
        "cmpb %0,%1,%2;\n"
!       : "=r" (res)
        : "r" (__m1),
  	"r" (__m2)
        : );
!   return (res);
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_char[0] = (m1.as_char[0] == m2.as_char[0])? -1: 0;
!   res.as_char[1] = (m1.as_char[1] == m2.as_char[1])? -1: 0;
!   res.as_char[2] = (m1.as_char[2] == m2.as_char[2])? -1: 0;
!   res.as_char[3] = (m1.as_char[3] == m2.as_char[3])? -1: 0;
!   res.as_char[4] = (m1.as_char[4] == m2.as_char[4])? -1: 0;
!   res.as_char[5] = (m1.as_char[5] == m2.as_char[5])? -1: 0;
!   res.as_char[6] = (m1.as_char[6] == m2.as_char[6])? -1: 0;
!   res.as_char[7] = (m1.as_char[7] == m2.as_char[7])? -1: 0;
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 729,758 ----
  _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2)
  {
  #if defined(_ARCH_PWR6) && defined(__powerpc64__)
!   __m64 __res;
    __asm__(
        "cmpb %0,%1,%2;\n"
!       : "=r" (__res)
        : "r" (__m1),
  	"r" (__m2)
        : );
!   return (__res);
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_char[0] = (__mu1.as_char[0] == __mu2.as_char[0])? -1: 0;
!   __res.as_char[1] = (__mu1.as_char[1] == __mu2.as_char[1])? -1: 0;
!   __res.as_char[2] = (__mu1.as_char[2] == __mu2.as_char[2])? -1: 0;
!   __res.as_char[3] = (__mu1.as_char[3] == __mu2.as_char[3])? -1: 0;
!   __res.as_char[4] = (__mu1.as_char[4] == __mu2.as_char[4])? -1: 0;
!   __res.as_char[5] = (__mu1.as_char[5] == __mu2.as_char[5])? -1: 0;
!   __res.as_char[6] = (__mu1.as_char[6] == __mu2.as_char[6])? -1: 0;
!   __res.as_char[7] = (__mu1.as_char[7] == __mu2.as_char[7])? -1: 0;
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 766,793 ****
  _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed char a, b, c;
  
!   a = (__vector signed char)vec_splats (__m1);
!   b = (__vector signed char)vec_splats (__m2);
!   c = (__vector signed char)vec_cmpgt (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_char[0] = (m1.as_char[0] > m2.as_char[0])? -1: 0;
!   res.as_char[1] = (m1.as_char[1] > m2.as_char[1])? -1: 0;
!   res.as_char[2] = (m1.as_char[2] > m2.as_char[2])? -1: 0;
!   res.as_char[3] = (m1.as_char[3] > m2.as_char[3])? -1: 0;
!   res.as_char[4] = (m1.as_char[4] > m2.as_char[4])? -1: 0;
!   res.as_char[5] = (m1.as_char[5] > m2.as_char[5])? -1: 0;
!   res.as_char[6] = (m1.as_char[6] > m2.as_char[6])? -1: 0;
!   res.as_char[7] = (m1.as_char[7] > m2.as_char[7])? -1: 0;
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 766,793 ----
  _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed char __a, __b, __c;
  
!   __a = (__vector signed char)vec_splats (__m1);
!   __b = (__vector signed char)vec_splats (__m2);
!   __c = (__vector signed char)vec_cmpgt (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_char[0] = (__mu1.as_char[0] > __mu2.as_char[0])? -1: 0;
!   __res.as_char[1] = (__mu1.as_char[1] > __mu2.as_char[1])? -1: 0;
!   __res.as_char[2] = (__mu1.as_char[2] > __mu2.as_char[2])? -1: 0;
!   __res.as_char[3] = (__mu1.as_char[3] > __mu2.as_char[3])? -1: 0;
!   __res.as_char[4] = (__mu1.as_char[4] > __mu2.as_char[4])? -1: 0;
!   __res.as_char[5] = (__mu1.as_char[5] > __mu2.as_char[5])? -1: 0;
!   __res.as_char[6] = (__mu1.as_char[6] > __mu2.as_char[6])? -1: 0;
!   __res.as_char[7] = (__mu1.as_char[7] > __mu2.as_char[7])? -1: 0;
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 803,826 ****
  _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = (__vector signed short)vec_cmpeq (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_short[0] = (m1.as_short[0] == m2.as_short[0])? -1: 0;
!   res.as_short[1] = (m1.as_short[1] == m2.as_short[1])? -1: 0;
!   res.as_short[2] = (m1.as_short[2] == m2.as_short[2])? -1: 0;
!   res.as_short[3] = (m1.as_short[3] == m2.as_short[3])? -1: 0;
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 803,826 ----
  _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = (__vector signed short)vec_cmpeq (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_short[0] = (__mu1.as_short[0] == __mu2.as_short[0])? -1: 0;
!   __res.as_short[1] = (__mu1.as_short[1] == __mu2.as_short[1])? -1: 0;
!   __res.as_short[2] = (__mu1.as_short[2] == __mu2.as_short[2])? -1: 0;
!   __res.as_short[3] = (__mu1.as_short[3] == __mu2.as_short[3])? -1: 0;
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 834,857 ****
  _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = (__vector signed short)vec_cmpgt (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_short[0] = (m1.as_short[0] > m2.as_short[0])? -1: 0;
!   res.as_short[1] = (m1.as_short[1] > m2.as_short[1])? -1: 0;
!   res.as_short[2] = (m1.as_short[2] > m2.as_short[2])? -1: 0;
!   res.as_short[3] = (m1.as_short[3] > m2.as_short[3])? -1: 0;
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 834,857 ----
  _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR8
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = (__vector signed short)vec_cmpgt (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_short[0] = (__mu1.as_short[0] > __mu2.as_short[0])? -1: 0;
!   __res.as_short[1] = (__mu1.as_short[1] > __mu2.as_short[1])? -1: 0;
!   __res.as_short[2] = (__mu1.as_short[2] > __mu2.as_short[2])? -1: 0;
!   __res.as_short[3] = (__mu1.as_short[3] > __mu2.as_short[3])? -1: 0;
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 867,888 ****
  _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int a, b, c;
  
!   a = (__vector signed int)vec_splats (__m1);
!   b = (__vector signed int)vec_splats (__m2);
!   c = (__vector signed int)vec_cmpeq (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_int[0] = (m1.as_int[0] == m2.as_int[0])? -1: 0;
!   res.as_int[1] = (m1.as_int[1] == m2.as_int[1])? -1: 0;
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 867,888 ----
  _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int __a, __b, __c;
  
!   __a = (__vector signed int)vec_splats (__m1);
!   __b = (__vector signed int)vec_splats (__m2);
!   __c = (__vector signed int)vec_cmpeq (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_int[0] = (__mu1.as_int[0] == __mu2.as_int[0])? -1: 0;
!   __res.as_int[1] = (__mu1.as_int[1] == __mu2.as_int[1])? -1: 0;
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 896,917 ****
  _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int a, b, c;
  
!   a = (__vector signed int)vec_splats (__m1);
!   b = (__vector signed int)vec_splats (__m2);
!   c = (__vector signed int)vec_cmpgt (a, b);
!   return (__m64) ((__vector long long) c)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __m1;
!   m2.as_m64 = __m2;
  
!   res.as_int[0] = (m1.as_int[0] > m2.as_int[0])? -1: 0;
!   res.as_int[1] = (m1.as_int[1] > m2.as_int[1])? -1: 0;
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 896,917 ----
  _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2)
  {
  #if _ARCH_PWR9
!   __vector signed int __a, __b, __c;
  
!   __a = (__vector signed int)vec_splats (__m1);
!   __b = (__vector signed int)vec_splats (__m2);
!   __c = (__vector signed int)vec_cmpgt (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  #else
!   __m64_union __mu1, __mu2, __res;
  
!   __mu1.as_m64 = __m1;
!   __mu2.as_m64 = __m2;
  
!   __res.as_int[0] = (__mu1.as_int[0] > __mu2.as_int[0])? -1: 0;
!   __res.as_int[1] = (__mu1.as_int[1] > __mu2.as_int[1])? -1: 0;
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** _m_pcmpgtd (__m64 __m1, __m64 __m2)
*** 927,938 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pi8 (__m64 __m1, __m64 __m2)
  {
!   __vector signed char a, b, c;
  
!   a = (__vector signed char)vec_splats (__m1);
!   b = (__vector signed char)vec_splats (__m2);
!   c = vec_adds (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 927,938 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pi8 (__m64 __m1, __m64 __m2)
  {
!   __vector signed char __a, __b, __c;
  
!   __a = (__vector signed char)vec_splats (__m1);
!   __b = (__vector signed char)vec_splats (__m2);
!   __c = vec_adds (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_paddsb (__m64 __m1, __m64 __m2)
*** 945,956 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = vec_adds (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 945,956 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = vec_adds (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_paddsw (__m64 __m1, __m64 __m2)
*** 963,974 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pu8 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned char a, b, c;
  
!   a = (__vector unsigned char)vec_splats (__m1);
!   b = (__vector unsigned char)vec_splats (__m2);
!   c = vec_adds (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 963,974 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pu8 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned char __a, __b, __c;
  
!   __a = (__vector unsigned char)vec_splats (__m1);
!   __b = (__vector unsigned char)vec_splats (__m2);
!   __c = vec_adds (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_paddusb (__m64 __m1, __m64 __m2)
*** 982,993 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pu16 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned short a, b, c;
  
!   a = (__vector unsigned short)vec_splats (__m1);
!   b = (__vector unsigned short)vec_splats (__m2);
!   c = vec_adds (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 982,993 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_adds_pu16 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned short __a, __b, __c;
  
!   __a = (__vector unsigned short)vec_splats (__m1);
!   __b = (__vector unsigned short)vec_splats (__m2);
!   __c = vec_adds (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_paddusw (__m64 __m1, __m64 __m2)
*** 1001,1012 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pi8 (__m64 __m1, __m64 __m2)
  {
!   __vector signed char a, b, c;
  
!   a = (__vector signed char)vec_splats (__m1);
!   b = (__vector signed char)vec_splats (__m2);
!   c = vec_subs (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1001,1012 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pi8 (__m64 __m1, __m64 __m2)
  {
!   __vector signed char __a, __b, __c;
  
!   __a = (__vector signed char)vec_splats (__m1);
!   __b = (__vector signed char)vec_splats (__m2);
!   __c = vec_subs (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_psubsb (__m64 __m1, __m64 __m2)
*** 1020,1031 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = vec_subs (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1020,1031 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = vec_subs (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_psubsw (__m64 __m1, __m64 __m2)
*** 1039,1050 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pu8 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned char a, b, c;
  
!   a = (__vector unsigned char)vec_splats (__m1);
!   b = (__vector unsigned char)vec_splats (__m2);
!   c = vec_subs (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1039,1050 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pu8 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned char __a, __b, __c;
  
!   __a = (__vector unsigned char)vec_splats (__m1);
!   __b = (__vector unsigned char)vec_splats (__m2);
!   __c = vec_subs (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_psubusb (__m64 __m1, __m64 __m2)
*** 1058,1069 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pu16 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned short a, b, c;
  
!   a = (__vector unsigned short)vec_splats (__m1);
!   b = (__vector unsigned short)vec_splats (__m2);
!   c = vec_subs (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1058,1069 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_subs_pu16 (__m64 __m1, __m64 __m2)
  {
!   __vector unsigned short __a, __b, __c;
  
!   __a = (__vector unsigned short)vec_splats (__m1);
!   __b = (__vector unsigned short)vec_splats (__m2);
!   __c = vec_subs (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_psubusw (__m64 __m1, __m64 __m2)
*** 1078,1091 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_madd_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short a, b;
!   __vector signed int c;
!   __vector signed int zero = {0, 0, 0, 0};
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = vec_vmsumshm (a, b, zero);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1078,1091 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_madd_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short __a, __b;
!   __vector signed int __c;
!   __vector signed int __zero = {0, 0, 0, 0};
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = vec_vmsumshm (__a, __b, __zero);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pmaddwd (__m64 __m1, __m64 __m2)
*** 1098,1107 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short a, b;
!   __vector signed short c;
!   __vector signed int w0, w1;
!   __vector unsigned char xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
--- 1098,1107 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short __a, __b;
!   __vector signed short __c;
!   __vector signed int __w0, __w1;
!   __vector unsigned char __xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
*************** _mm_mulhi_pi16 (__m64 __m1, __m64 __m2)
*** 1111,1124 ****
  #endif
      };
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
  
!   w0 = vec_vmulesh (a, b);
!   w1 = vec_vmulosh (a, b);
!   c = (__vector signed short)vec_perm (w0, w1, xform1);
  
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1111,1124 ----
  #endif
      };
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
  
!   __w0 = vec_vmulesh (__a, __b);
!   __w1 = vec_vmulosh (__a, __b);
!   __c = (__vector signed short)vec_perm (__w0, __w1, __xform1);
  
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pmulhw (__m64 __m1, __m64 __m2)
*** 1132,1143 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mullo_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short a, b, c;
  
!   a = (__vector signed short)vec_splats (__m1);
!   b = (__vector signed short)vec_splats (__m2);
!   c = a * b;
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1132,1143 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mullo_pi16 (__m64 __m1, __m64 __m2)
  {
!   __vector signed short __a, __b, __c;
  
!   __a = (__vector signed short)vec_splats (__m1);
!   __b = (__vector signed short)vec_splats (__m2);
!   __c = __a * __b;
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pmullw (__m64 __m1, __m64 __m2)
*** 1150,1164 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_pi16 (__m64 __m, __m64 __count)
  {
!   __vector signed short m, r;
!   __vector unsigned short c;
  
    if (__count <= 15)
      {
!       m = (__vector signed short)vec_splats (__m);
!       c = (__vector unsigned short)vec_splats ((unsigned short)__count);
!       r = vec_sl (m, (__vector unsigned short)c);
!       return (__m64) ((__vector long long) r)[0];
      }
    else
    return (0);
--- 1150,1164 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_pi16 (__m64 __m, __m64 __count)
  {
!   __vector signed short __r;
!   __vector unsigned short __c;
  
    if (__count <= 15)
      {
!       __r = (__vector signed short)vec_splats (__m);
!       __c = (__vector unsigned short)vec_splats ((unsigned short)__count);
!       __r = vec_sl (__r, (__vector unsigned short)__c);
!       return (__m64) ((__vector long long) __r)[0];
      }
    else
    return (0);
*************** _m_psllwi (__m64 __m, int __count)
*** 1187,1199 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_pi32 (__m64 __m, __m64 __count)
  {
!   __m64_union m, res;
  
!   m.as_m64 = __m;
  
!   res.as_int[0] = m.as_int[0] << __count;
!   res.as_int[1] = m.as_int[1] << __count;
!   return (res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1187,1199 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sll_pi32 (__m64 __m, __m64 __count)
  {
!   __m64_union __res;
  
!   __res.as_m64 = __m;
  
!   __res.as_int[0] = __res.as_int[0] << __count;
!   __res.as_int[1] = __res.as_int[1] << __count;
!   return (__res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pslldi (__m64 __m, int __count)
*** 1219,1233 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_pi16 (__m64 __m, __m64 __count)
  {
!   __vector signed short m, r;
!   __vector unsigned short c;
  
    if (__count <= 15)
      {
! 	m = (__vector signed short)vec_splats (__m);
! 	c = (__vector unsigned short)vec_splats ((unsigned short)__count);
! 	r = vec_sra (m, (__vector unsigned short)c);
!         return (__m64) ((__vector long long) r)[0];
      }
    else
    return (0);
--- 1219,1233 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_pi16 (__m64 __m, __m64 __count)
  {
!   __vector signed short __r;
!   __vector unsigned short __c;
  
    if (__count <= 15)
      {
! 	__r = (__vector signed short)vec_splats (__m);
! 	__c = (__vector unsigned short)vec_splats ((unsigned short)__count);
! 	__r = vec_sra (__r, (__vector unsigned short)__c);
!         return (__m64) ((__vector long long) __r)[0];
      }
    else
    return (0);
*************** _m_psrawi (__m64 __m, int __count)
*** 1256,1268 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_pi32 (__m64 __m, __m64 __count)
  {
!   __m64_union m, res;
  
!   m.as_m64 = __m;
  
!   res.as_int[0] = m.as_int[0] >> __count;
!   res.as_int[1] = m.as_int[1] >> __count;
!   return (res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1256,1268 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sra_pi32 (__m64 __m, __m64 __count)
  {
!   __m64_union __res;
  
!   __res.as_m64 = __m;
  
!   __res.as_int[0] = __res.as_int[0] >> __count;
!   __res.as_int[1] = __res.as_int[1] >> __count;
!   return (__res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_psradi (__m64 __m, int __count)
*** 1288,1302 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_pi16 (__m64 __m, __m64 __count)
  {
!   __vector unsigned short m, r;
!   __vector unsigned short c;
  
    if (__count <= 15)
      {
! 	m = (__vector unsigned short)vec_splats (__m);
! 	c = (__vector unsigned short)vec_splats ((unsigned short)__count);
! 	r = vec_sr (m, (__vector unsigned short)c);
!         return (__m64) ((__vector long long) r)[0];
      }
    else
      return (0);
--- 1288,1302 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_pi16 (__m64 __m, __m64 __count)
  {
!   __vector unsigned short __r;
!   __vector unsigned short __c;
  
    if (__count <= 15)
      {
! 	__r = (__vector unsigned short)vec_splats (__m);
! 	__c = (__vector unsigned short)vec_splats ((unsigned short)__count);
! 	__r = vec_sr (__r, (__vector unsigned short)__c);
!         return (__m64) ((__vector long long) __r)[0];
      }
    else
      return (0);
*************** _m_psrlwi (__m64 __m, int __count)
*** 1325,1337 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_pi32 (__m64 __m, __m64 __count)
  {
!   __m64_union m, res;
  
!   m.as_m64 = __m;
  
!   res.as_int[0] = (unsigned int)m.as_int[0] >> __count;
!   res.as_int[1] = (unsigned int)m.as_int[1] >> __count;
!   return (res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1325,1337 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_srl_pi32 (__m64 __m, __m64 __count)
  {
!   __m64_union __res;
  
!   __res.as_m64 = __m;
  
!   __res.as_int[0] = (unsigned int)__res.as_int[0] >> __count;
!   __res.as_int[1] = (unsigned int)__res.as_int[1] >> __count;
!   return (__res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_psrldi (__m64 __m, int __count)
*** 1358,1381 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_set_pi32 (int __i1, int __i0)
  {
!   __m64_union res;
  
!   res.as_int[0] = __i0;
!   res.as_int[1] = __i1;
!   return (res.as_m64);
  }
  
  /* Creates a vector of four 16-bit values; W0 is least significant.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0)
  {
!   __m64_union res;
  
!   res.as_short[0] = __w0;
!   res.as_short[1] = __w1;
!   res.as_short[2] = __w2;
!   res.as_short[3] = __w3;
!   return (res.as_m64);
  }
  
  /* Creates a vector of eight 8-bit values; B0 is least significant.  */
--- 1358,1381 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_set_pi32 (int __i1, int __i0)
  {
!   __m64_union __res;
  
!   __res.as_int[0] = __i0;
!   __res.as_int[1] = __i1;
!   return (__res.as_m64);
  }
  
  /* Creates a vector of four 16-bit values; W0 is least significant.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0)
  {
!   __m64_union __res;
  
!   __res.as_short[0] = __w0;
!   __res.as_short[1] = __w1;
!   __res.as_short[2] = __w2;
!   __res.as_short[3] = __w3;
!   return (__res.as_m64);
  }
  
  /* Creates a vector of eight 8-bit values; B0 is least significant.  */
*************** extern __inline __m64 __attribute__((__g
*** 1383,1410 ****
  _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4,
  	     char __b3, char __b2, char __b1, char __b0)
  {
!   __m64_union res;
  
!   res.as_char[0] = __b0;
!   res.as_char[1] = __b1;
!   res.as_char[2] = __b2;
!   res.as_char[3] = __b3;
!   res.as_char[4] = __b4;
!   res.as_char[5] = __b5;
!   res.as_char[6] = __b6;
!   res.as_char[7] = __b7;
!   return (res.as_m64);
  }
  
  /* Similar, but with the arguments in reverse order.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_setr_pi32 (int __i0, int __i1)
  {
!   __m64_union res;
  
!   res.as_int[0] = __i0;
!   res.as_int[1] = __i1;
!   return (res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1383,1410 ----
  _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4,
  	     char __b3, char __b2, char __b1, char __b0)
  {
!   __m64_union __res;
  
!   __res.as_char[0] = __b0;
!   __res.as_char[1] = __b1;
!   __res.as_char[2] = __b2;
!   __res.as_char[3] = __b3;
!   __res.as_char[4] = __b4;
!   __res.as_char[5] = __b5;
!   __res.as_char[6] = __b6;
!   __res.as_char[7] = __b7;
!   return (__res.as_m64);
  }
  
  /* Similar, but with the arguments in reverse order.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_setr_pi32 (int __i0, int __i1)
  {
!   __m64_union __res;
  
!   __res.as_int[0] = __i0;
!   __res.as_int[1] = __i1;
!   return (__res.as_m64);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_setr_pi8 (char __b0, char __b1, char
*** 1424,1434 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_set1_pi32 (int __i)
  {
!   __m64_union res;
  
!   res.as_int[0] = __i;
!   res.as_int[1] = __i;
!   return (res.as_m64);
  }
  
  /* Creates a vector of four 16-bit values, all elements containing W.  */
--- 1424,1434 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_set1_pi32 (int __i)
  {
!   __m64_union __res;
  
!   __res.as_int[0] = __i;
!   __res.as_int[1] = __i;
!   return (__res.as_m64);
  }
  
  /* Creates a vector of four 16-bit values, all elements containing W.  */
*************** _mm_set1_pi16 (short __w)
*** 1441,1453 ****
    w = (__vector signed short)vec_splats (__w);
    return (__m64) ((__vector long long) w)[0];
  #else
!   __m64_union res;
  
!   res.as_short[0] = __w;
!   res.as_short[1] = __w;
!   res.as_short[2] = __w;
!   res.as_short[3] = __w;
!   return (res.as_m64);
  #endif
  }
  
--- 1441,1453 ----
    w = (__vector signed short)vec_splats (__w);
    return (__m64) ((__vector long long) w)[0];
  #else
!   __m64_union __res;
  
!   __res.as_short[0] = __w;
!   __res.as_short[1] = __w;
!   __res.as_short[2] = __w;
!   __res.as_short[3] = __w;
!   return (__res.as_m64);
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 1456,1477 ****
  _mm_set1_pi8 (signed char __b)
  {
  #if _ARCH_PWR8
!   __vector signed char b;
  
!   b = (__vector signed char)vec_splats (__b);
!   return (__m64) ((__vector long long) b)[0];
  #else
!   __m64_union res;
  
!   res.as_char[0] = __b;
!   res.as_char[1] = __b;
!   res.as_char[2] = __b;
!   res.as_char[3] = __b;
!   res.as_char[4] = __b;
!   res.as_char[5] = __b;
!   res.as_char[6] = __b;
!   res.as_char[7] = __b;
!   return (res.as_m64);
  #endif
  }
  #endif /* _MMINTRIN_H_INCLUDED */
--- 1456,1477 ----
  _mm_set1_pi8 (signed char __b)
  {
  #if _ARCH_PWR8
!   __vector signed char __res;
  
!   __res = (__vector signed char)vec_splats (__b);
!   return (__m64) ((__vector long long) __res)[0];
  #else
!   __m64_union __res;
  
!   __res.as_char[0] = __b;
!   __res.as_char[1] = __b;
!   __res.as_char[2] = __b;
!   __res.as_char[3] = __b;
!   __res.as_char[4] = __b;
!   __res.as_char[5] = __b;
!   __res.as_char[6] = __b;
!   __res.as_char[7] = __b;
!   return (__res.as_m64);
  #endif
  }
  #endif /* _MMINTRIN_H_INCLUDED */
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/pmmintrin.h gcc-11.4.0/gcc/config/rs6000/pmmintrin.h
*** gcc-11.3.0/gcc/config/rs6000/pmmintrin.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/pmmintrin.h	Mon May 29 08:46:29 2023
***************
*** 58,112 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_addsub_ps (__m128 __X, __m128 __Y)
  {
!   const __v4sf even_n0 = {-0.0, 0.0, -0.0, 0.0};
!   __v4sf even_neg_Y = vec_xor(__Y, even_n0);
!   return (__m128) vec_add (__X, even_neg_Y);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_addsub_pd (__m128d __X, __m128d __Y)
  {
!   const __v2df even_n0 = {-0.0, 0.0};
!   __v2df even_neg_Y = vec_xor(__Y, even_n0);
!   return (__m128d) vec_add (__X, even_neg_Y);
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_hadd_ps (__m128 __X, __m128 __Y)
  {
!   __vector unsigned char xform2 = {
        0x00, 0x01, 0x02, 0x03,
        0x08, 0x09, 0x0A, 0x0B,
        0x10, 0x11, 0x12, 0x13,
        0x18, 0x19, 0x1A, 0x1B
      };
!   __vector unsigned char xform1 = {
        0x04, 0x05, 0x06, 0x07,
        0x0C, 0x0D, 0x0E, 0x0F,
        0x14, 0x15, 0x16, 0x17,
        0x1C, 0x1D, 0x1E, 0x1F
      };
!   return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2),
! 			   vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_hsub_ps (__m128 __X, __m128 __Y)
  {
!   __vector unsigned char xform2 = {
        0x00, 0x01, 0x02, 0x03,
        0x08, 0x09, 0x0A, 0x0B,
        0x10, 0x11, 0x12, 0x13,
        0x18, 0x19, 0x1A, 0x1B
      };
!   __vector unsigned char xform1 = {
        0x04, 0x05, 0x06, 0x07,
        0x0C, 0x0D, 0x0E, 0x0F,
        0x14, 0x15, 0x16, 0x17,
        0x1C, 0x1D, 0x1E, 0x1F
      };
!   return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2),
! 			   vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1));
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 58,112 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_addsub_ps (__m128 __X, __m128 __Y)
  {
!   const __v4sf __even_n0 = {-0.0, 0.0, -0.0, 0.0};
!   __v4sf __even_neg_Y = vec_xor(__Y, __even_n0);
!   return (__m128) vec_add (__X, __even_neg_Y);
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_addsub_pd (__m128d __X, __m128d __Y)
  {
!   const __v2df __even_n0 = {-0.0, 0.0};
!   __v2df __even_neg_Y = vec_xor(__Y, __even_n0);
!   return (__m128d) vec_add (__X, __even_neg_Y);
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_hadd_ps (__m128 __X, __m128 __Y)
  {
!   __vector unsigned char __xform2 = {
        0x00, 0x01, 0x02, 0x03,
        0x08, 0x09, 0x0A, 0x0B,
        0x10, 0x11, 0x12, 0x13,
        0x18, 0x19, 0x1A, 0x1B
      };
!   __vector unsigned char __xform1 = {
        0x04, 0x05, 0x06, 0x07,
        0x0C, 0x0D, 0x0E, 0x0F,
        0x14, 0x15, 0x16, 0x17,
        0x1C, 0x1D, 0x1E, 0x1F
      };
!   return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform2),
! 			   vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform1));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_hsub_ps (__m128 __X, __m128 __Y)
  {
!   __vector unsigned char __xform2 = {
        0x00, 0x01, 0x02, 0x03,
        0x08, 0x09, 0x0A, 0x0B,
        0x10, 0x11, 0x12, 0x13,
        0x18, 0x19, 0x1A, 0x1B
      };
!   __vector unsigned char __xform1 = {
        0x04, 0x05, 0x06, 0x07,
        0x0C, 0x0D, 0x0E, 0x0F,
        0x14, 0x15, 0x16, 0x17,
        0x1C, 0x1D, 0x1E, 0x1F
      };
!   return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform2),
! 			   vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform1));
  }
  
  extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-builtin.def gcc-11.4.0/gcc/config/rs6000/rs6000-builtin.def
*** gcc-11.3.0/gcc/config/rs6000/rs6000-builtin.def	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000-builtin.def	Mon May 29 08:46:29 2023
*************** BU_P9V_AV_1 (VCTZB,		"vctzb",		CONST,  c
*** 2881,2889 ****
  BU_P9V_AV_1 (VCTZH,		"vctzh",		CONST,  ctzv8hi2)
  BU_P9V_AV_1 (VCTZW,		"vctzw",		CONST,  ctzv4si2)
  BU_P9V_AV_1 (VCTZD,		"vctzd",		CONST,  ctzv2di2)
! BU_P9V_AV_1 (VPRTYBD,		"vprtybd",		CONST,  parityv2di2)
! BU_P9V_AV_1 (VPRTYBQ,		"vprtybq",		CONST,  parityv1ti2)
! BU_P9V_AV_1 (VPRTYBW,		"vprtybw",		CONST,  parityv4si2)
  
  /* ISA 3.0 vector overloaded 1 argument functions.  */
  BU_P9V_OVERLOAD_1 (VCTZ,	"vctz")
--- 2881,2889 ----
  BU_P9V_AV_1 (VCTZH,		"vctzh",		CONST,  ctzv8hi2)
  BU_P9V_AV_1 (VCTZW,		"vctzw",		CONST,  ctzv4si2)
  BU_P9V_AV_1 (VCTZD,		"vctzd",		CONST,  ctzv2di2)
! BU_P9V_AV_1 (VPRTYBD,		"vprtybd",		CONST,  rs6000_vprtybv2di2)
! BU_P9V_AV_1 (VPRTYBQ,		"vprtybq",		CONST,  rs6000_vprtybv1ti2)
! BU_P9V_AV_1 (VPRTYBW,		"vprtybw",		CONST,  rs6000_vprtybv4si2)
  
  /* ISA 3.0 vector overloaded 1 argument functions.  */
  BU_P9V_OVERLOAD_1 (VCTZ,	"vctz")
*************** BU_P9_OVERLOAD_2 (CMPRB2,	"byte_in_eithe
*** 2910,2920 ****
  BU_P9_OVERLOAD_2 (CMPEQB,	"byte_in_set")
  
  
! BU_P9V_AV_1 (VSIGNEXTSB2W,	"vsignextsb2w",		CONST,  vsignextend_qi_v4si)
! BU_P9V_AV_1 (VSIGNEXTSH2W,	"vsignextsh2w",		CONST,  vsignextend_hi_v4si)
! BU_P9V_AV_1 (VSIGNEXTSB2D,	"vsignextsb2d",		CONST,  vsignextend_qi_v2di)
! BU_P9V_AV_1 (VSIGNEXTSH2D,	"vsignextsh2d",		CONST,  vsignextend_hi_v2di)
! BU_P9V_AV_1 (VSIGNEXTSW2D,	"vsignextsw2d",		CONST,  vsignextend_si_v2di)
  
  /* Builtins for scalar instructions added in ISA 3.1 (power10).  */
  BU_P10V_AV_P (VCMPEQUT_P,	"vcmpequt_p",	CONST,	vector_eq_v1ti_p)
--- 2910,2920 ----
  BU_P9_OVERLOAD_2 (CMPEQB,	"byte_in_set")
  
  
! BU_P9V_AV_1 (VSIGNEXTSB2W,	"vsignextsb2w",		CONST,  vsx_sign_extend_v16qi_v4si)
! BU_P9V_AV_1 (VSIGNEXTSH2W,	"vsignextsh2w",		CONST,  vsx_sign_extend_v8hi_v4si)
! BU_P9V_AV_1 (VSIGNEXTSB2D,	"vsignextsb2d",		CONST,  vsx_sign_extend_v16qi_v2di)
! BU_P9V_AV_1 (VSIGNEXTSH2D,	"vsignextsh2d",		CONST,  vsx_sign_extend_v8hi_v2di)
! BU_P9V_AV_1 (VSIGNEXTSW2D,	"vsignextsw2d",		CONST,  vsx_sign_extend_v4si_v2di)
  
  /* Builtins for scalar instructions added in ISA 3.1 (power10).  */
  BU_P10V_AV_P (VCMPEQUT_P,	"vcmpequt_p",	CONST,	vector_eq_v1ti_p)
*************** BU_P10V_AV_2 (VNOR_V1TI,	"vnor_v1ti",	CO
*** 2954,2960 ****
  BU_P10V_AV_2 (VCMPNET_P,	"vcmpnet_p",	CONST,	vector_ne_v1ti_p)
  BU_P10V_AV_2 (VCMPAET_P,	"vcmpaet_p",	CONST,	vector_ae_v1ti_p)
  
! BU_P10V_AV_1 (VSIGNEXTSD2Q,	"vsignext",     CONST,  vsignextend_v2di_v1ti)
  
  BU_P10V_AV_2 (VMULEUD,	"vmuleud",	CONST,	vec_widen_umult_even_v2di)
  BU_P10V_AV_2 (VMULESD,	"vmulesd",	CONST,	vec_widen_smult_even_v2di)
--- 2954,2960 ----
  BU_P10V_AV_2 (VCMPNET_P,	"vcmpnet_p",	CONST,	vector_ne_v1ti_p)
  BU_P10V_AV_2 (VCMPAET_P,	"vcmpaet_p",	CONST,	vector_ae_v1ti_p)
  
! BU_P10V_AV_1 (VSIGNEXTSD2Q,	"vsignext",     CONST,  vsx_sign_extend_v2di_v1ti)
  
  BU_P10V_AV_2 (VMULEUD,	"vmuleud",	CONST,	vec_widen_umult_even_v2di)
  BU_P10V_AV_2 (VMULESD,	"vmulesd",	CONST,	vec_widen_smult_even_v2di)
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-call.c gcc-11.4.0/gcc/config/rs6000/rs6000-call.c
*** gcc-11.3.0/gcc/config/rs6000/rs6000-call.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000-call.c	Mon May 29 08:46:29 2023
*************** rs6000_function_arg_advance_1 (CUMULATIV
*** 7190,7195 ****
--- 7190,7201 ----
  	{
  	  cum->vregno += n_elts;
  
+ 	  /* If we are not splitting Complex IEEE128 args then account for the
+ 	     fact that they are passed in 2 VSX regs. */
+ 	  if (!targetm.calls.split_complex_arg && type
+ 	      && TREE_CODE (type) == COMPLEX_TYPE && elt_mode == KCmode)
+ 	    cum->vregno++;
+ 
  	  if (!TARGET_ALTIVEC)
  	    error ("cannot pass argument in vector register because"
  		   " altivec instructions are disabled, use %qs"
*************** rs6000_gimple_fold_mma_builtin (gimple_s
*** 11877,11883 ****
        unsigned nvec = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) ? 4 : 2;
        tree dst_ptr = gimple_call_arg (stmt, 0);
        tree src_ptr = gimple_call_arg (stmt, 1);
!       tree src_type = TREE_TYPE (src_ptr);
        tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type));
        gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq);
  
--- 11883,11894 ----
        unsigned nvec = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) ? 4 : 2;
        tree dst_ptr = gimple_call_arg (stmt, 0);
        tree src_ptr = gimple_call_arg (stmt, 1);
!       tree src_type = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC)
! 		      ? build_pointer_type (vector_quad_type_node)
! 		      : build_pointer_type (vector_pair_type_node);
!       if (TREE_TYPE (src_ptr) != src_type)
! 	src_ptr = build1 (NOP_EXPR, src_type, src_ptr);
! 
        tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type));
        gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq);
  
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-logue.c gcc-11.4.0/gcc/config/rs6000/rs6000-logue.c
*** gcc-11.3.0/gcc/config/rs6000/rs6000-logue.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000-logue.c	Mon May 29 08:46:29 2023
*************** rs6000_emit_epilogue (enum epilogue_type
*** 4924,4930 ****
  	 a REG_CFA_DEF_CFA note, but that's OK;  A duplicate is
  	 discarded by dwarf2cfi.c/dwarf2out.c, and in any case would
  	 be harmless if emitted.  */
!       if (frame_pointer_needed)
  	{
  	  insn = get_last_insn ();
  	  add_reg_note (insn, REG_CFA_DEF_CFA,
--- 4924,4930 ----
  	 a REG_CFA_DEF_CFA note, but that's OK;  A duplicate is
  	 discarded by dwarf2cfi.c/dwarf2out.c, and in any case would
  	 be harmless if emitted.  */
!       if (frame_pointer_needed_indeed)
  	{
  	  insn = get_last_insn ();
  	  add_reg_note (insn, REG_CFA_DEF_CFA,
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-p8swap.c gcc-11.4.0/gcc/config/rs6000/rs6000-p8swap.c
*** gcc-11.3.0/gcc/config/rs6000/rs6000-p8swap.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000-p8swap.c	Mon May 29 08:46:29 2023
*************** replace_swapped_aligned_store (swap_web_
*** 1668,1674 ****
    gcc_assert ((GET_CODE (new_body) == SET)
  	      && MEM_P (SET_DEST (new_body)));
  
!   set_block_for_insn (new_insn, BLOCK_FOR_INSN (store_insn));
    df_insn_rescan (new_insn);
  
    df_insn_delete (store_insn);
--- 1668,1682 ----
    gcc_assert ((GET_CODE (new_body) == SET)
  	      && MEM_P (SET_DEST (new_body)));
  
!   basic_block bb = BLOCK_FOR_INSN (store_insn);
!   set_block_for_insn (new_insn, bb);
!   /* Handle REG_EH_REGION note.  */
!   if (cfun->can_throw_non_call_exceptions && BB_END (bb) == store_insn)
!     {
!       rtx note = find_reg_note (store_insn, REG_EH_REGION, NULL_RTX);
!       if (note)
! 	add_reg_note (new_insn, REG_EH_REGION, XEXP (note, 0));
!     }
    df_insn_rescan (new_insn);
  
    df_insn_delete (store_insn);
*************** replace_swapped_aligned_load (swap_web_e
*** 1761,1767 ****
    gcc_assert ((GET_CODE (new_body) == SET)
  	      && MEM_P (SET_SRC (new_body)));
  
!   set_block_for_insn (new_insn, BLOCK_FOR_INSN (def_insn));
    df_insn_rescan (new_insn);
  
    df_insn_delete (def_insn);
--- 1769,1783 ----
    gcc_assert ((GET_CODE (new_body) == SET)
  	      && MEM_P (SET_SRC (new_body)));
  
!   basic_block bb = BLOCK_FOR_INSN (def_insn);
!   set_block_for_insn (new_insn, bb);
!   /* Handle REG_EH_REGION note.  */
!   if (cfun->can_throw_non_call_exceptions && BB_END (bb) == def_insn)
!     {
!       rtx note = find_reg_note (def_insn, REG_EH_REGION, NULL_RTX);
!       if (note)
! 	add_reg_note (new_insn, REG_EH_REGION, XEXP (note, 0));
!     }
    df_insn_rescan (new_insn);
  
    df_insn_delete (def_insn);
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-protos.h gcc-11.4.0/gcc/config/rs6000/rs6000-protos.h
*** gcc-11.3.0/gcc/config/rs6000/rs6000-protos.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000-protos.h	Mon May 29 08:46:29 2023
*************** extern rtx rs6000_gen_lvx (enum machine_
*** 321,324 ****
--- 321,326 ----
  extern rtx rs6000_gen_stvx (enum machine_mode, rtx, rtx);
  
  extern void rs6000_emit_xxspltidp_v2df (rtx, long value);
+ extern gimple *currently_expanding_gimple_stmt;
+ extern bool rs6000_opaque_type_invalid_use_p (gimple *);
  #endif  /* rs6000-protos.h */
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000.c gcc-11.4.0/gcc/config/rs6000/rs6000.c
*** gcc-11.3.0/gcc/config/rs6000/rs6000.c	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000.c	Mon May 29 08:46:29 2023
*************** rs6000_option_override_internal (bool gl
*** 4147,4160 ****
  	rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_UNALIGNED_VSX;
      }
  
-   if (!(rs6000_isa_flags_explicit & OPTION_MASK_BLOCK_OPS_VECTOR_PAIR))
-     {
-       if (TARGET_MMA && TARGET_EFFICIENT_UNALIGNED_VSX)
- 	rs6000_isa_flags |= OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;
-       else
- 	rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;
-     }
- 
    /* Use long double size to select the appropriate long double.  We use
       TYPE_PRECISION to differentiate the 3 different long double types.  We map
       128 into the precision used for TFmode.  */
--- 4147,4152 ----
*************** const char *rs6000_machine;
*** 5742,5774 ****
  const char *
  rs6000_machine_from_flags (void)
  {
!   /* For some CPUs, the machine cannot be determined by ISA flags.  We have to
!      check them first.  */
!   switch (rs6000_cpu)
!     {
!     case PROCESSOR_PPC8540:
!     case PROCESSOR_PPC8548:
!       return "e500";
  
!     case PROCESSOR_PPCE300C2:
!     case PROCESSOR_PPCE300C3:
!       return "e300";
  
!     case PROCESSOR_PPCE500MC:
!       return "e500mc";
  
!     case PROCESSOR_PPCE500MC64:
!       return "e500mc64";
  
!     case PROCESSOR_PPCE5500:
!       return "e5500";
  
!     case PROCESSOR_PPCE6500:
!       return "e6500";
  
!     default:
!       break;
!     }
  
    HOST_WIDE_INT flags = rs6000_isa_flags;
  
--- 5734,5801 ----
  const char *
  rs6000_machine_from_flags (void)
  {
!   /* e300 and e500 */
!   if (rs6000_cpu == PROCESSOR_PPCE300C2 || rs6000_cpu == PROCESSOR_PPCE300C3)
!     return "e300";
!   if (rs6000_cpu == PROCESSOR_PPC8540 || rs6000_cpu == PROCESSOR_PPC8548)
!     return "e500";
!   if (rs6000_cpu == PROCESSOR_PPCE500MC)
!     return "e500mc";
!   if (rs6000_cpu == PROCESSOR_PPCE500MC64)
!     return "e500mc64";
!   if (rs6000_cpu == PROCESSOR_PPCE5500)
!     return "e5500";
!   if (rs6000_cpu == PROCESSOR_PPCE6500)
!     return "e6500";
  
!   /* 400 series */
!   if (rs6000_cpu == PROCESSOR_PPC403)
!     return "\"403\"";
!   if (rs6000_cpu == PROCESSOR_PPC405)
!     return "\"405\"";
!   if (rs6000_cpu == PROCESSOR_PPC440)
!     return "\"440\"";
!   if (rs6000_cpu == PROCESSOR_PPC476)
!     return "\"476\"";
  
!   /* A2 */
!   if (rs6000_cpu == PROCESSOR_PPCA2)
!     return "a2";
  
!   /* Cell BE */
!   if (rs6000_cpu == PROCESSOR_CELL)
!     return "cell";
  
!   /* Titan */
!   if (rs6000_cpu == PROCESSOR_TITAN)
!     return "titan";
  
!   /* 500 series and 800 series */
!   if (rs6000_cpu == PROCESSOR_MPCCORE)
!     return "\"821\"";
  
! #if 0
!   /* This (and ppc64 below) are disabled here (for now at least) because
!      PROCESSOR_POWERPC, PROCESSOR_POWERPC64, and PROCESSOR_COMMON
!      are #define'd as some of these.  Untangling that is a job for later.  */
! 
!   /* 600 series and 700 series, "classic" */
!   if (rs6000_cpu == PROCESSOR_PPC601 || rs6000_cpu == PROCESSOR_PPC603
!       || rs6000_cpu == PROCESSOR_PPC604 || rs6000_cpu == PROCESSOR_PPC604e
!       || rs6000_cpu == PROCESSOR_PPC750)
!     return "ppc";
! #endif
! 
!   /* Classic with AltiVec, "G4" */
!   if (rs6000_cpu == PROCESSOR_PPC7400 || rs6000_cpu == PROCESSOR_PPC7450)
!     return "\"7450\"";
! 
! #if 0
!   /* The older 64-bit CPUs */
!   if (rs6000_cpu == PROCESSOR_PPC620 || rs6000_cpu == PROCESSOR_PPC630
!       || rs6000_cpu == PROCESSOR_RS64A)
!     return "ppc64";
! #endif
  
    HOST_WIDE_INT flags = rs6000_isa_flags;
  
*************** rs6000_expand_vector_set_var_p9 (rtx tar
*** 7052,7074 ****
    machine_mode idx_mode = GET_MODE (idx);
  
    machine_mode shift_mode;
!   rtx (*gen_ashl)(rtx, rtx, rtx);
!   rtx (*gen_lvsl)(rtx, rtx);
!   rtx (*gen_lvsr)(rtx, rtx);
  
    if (TARGET_POWERPC64)
      {
        shift_mode = DImode;
        gen_ashl = gen_ashldi3;
!       gen_lvsl = gen_altivec_lvsl_reg_di;
!       gen_lvsr = gen_altivec_lvsr_reg_di;
      }
    else
      {
        shift_mode = SImode;
        gen_ashl = gen_ashlsi3;
!       gen_lvsl = gen_altivec_lvsl_reg_si;
!       gen_lvsr = gen_altivec_lvsr_reg_si;
      }
    /* Generate the IDX for permute shift, width is the vector element size.
       idx = idx * width.  */
--- 7079,7107 ----
    machine_mode idx_mode = GET_MODE (idx);
  
    machine_mode shift_mode;
!   /* Gen function pointers for shifting left and generation of permutation
!      control vectors.  */
!   rtx (*gen_ashl) (rtx, rtx, rtx);
!   rtx (*gen_pcvr1) (rtx, rtx);
!   rtx (*gen_pcvr2) (rtx, rtx);
  
    if (TARGET_POWERPC64)
      {
        shift_mode = DImode;
        gen_ashl = gen_ashldi3;
!       gen_pcvr1 = BYTES_BIG_ENDIAN ? gen_altivec_lvsl_reg_di
! 				   : gen_altivec_lvsr_reg_di;
!       gen_pcvr2 = BYTES_BIG_ENDIAN ? gen_altivec_lvsr_reg_di
! 				   : gen_altivec_lvsl_reg_di;
      }
    else
      {
        shift_mode = SImode;
        gen_ashl = gen_ashlsi3;
!       gen_pcvr1 = BYTES_BIG_ENDIAN ? gen_altivec_lvsl_reg_si
! 				   : gen_altivec_lvsr_reg_si;
!       gen_pcvr2 = BYTES_BIG_ENDIAN ? gen_altivec_lvsr_reg_si
! 				   : gen_altivec_lvsl_reg_si;
      }
    /* Generate the IDX for permute shift, width is the vector element size.
       idx = idx * width.  */
*************** rs6000_expand_vector_set_var_p9 (rtx tar
*** 7077,7101 ****
  
    emit_insn (gen_ashl (tmp, idx, GEN_INT (shift)));
  
!   /*  lvsr    v1,0,idx.  */
!   rtx pcvr = gen_reg_rtx (V16QImode);
!   emit_insn (gen_lvsr (pcvr, tmp));
! 
!   /*  lvsl    v2,0,idx.  */
!   rtx pcvl = gen_reg_rtx (V16QImode);
!   emit_insn (gen_lvsl (pcvl, tmp));
  
    rtx sub_target = simplify_gen_subreg (V16QImode, target, mode, 0);
  
!   rtx permr
!     = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target, pcvr);
!   emit_insn (permr);
! 
    rs6000_expand_vector_set (target, val, const0_rtx);
  
!   rtx perml
!     = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target, pcvl);
!   emit_insn (perml);
  }
  
  /* Insert VAL into IDX of TARGET, VAL size is same of the vector element, IDX
--- 7110,7138 ----
  
    emit_insn (gen_ashl (tmp, idx, GEN_INT (shift)));
  
!   /* Generate one permutation control vector used for rotating the element
!      at to-insert position to element zero in target vector.  lvsl is
!      used for big endianness while lvsr is used for little endianness:
!      lvs[lr]    v1,0,idx.  */
!   rtx pcvr1 = gen_reg_rtx (V16QImode);
!   emit_insn (gen_pcvr1 (pcvr1, tmp));
  
    rtx sub_target = simplify_gen_subreg (V16QImode, target, mode, 0);
+   rtx perm1 = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target,
+ 					   pcvr1);
+   emit_insn (perm1);
  
!   /* Insert val into element 0 of target vector.  */
    rs6000_expand_vector_set (target, val, const0_rtx);
  
!   /* Rotate back with a reversed permutation control vector generated from:
!      lvs[rl]   v2,0,idx.  */
!   rtx pcvr2 = gen_reg_rtx (V16QImode);
!   emit_insn (gen_pcvr2 (pcvr2, tmp));
! 
!   rtx perm2 = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target,
! 					   pcvr2);
!   emit_insn (perm2);
  }
  
  /* Insert VAL into IDX of TARGET, VAL size is same of the vector element, IDX
*************** init_float128_ibm (machine_mode mode)
*** 10968,10993 ****
      }
  }
  
- /* Create a decl for either complex long double multiply or complex long double
-    divide when long double is IEEE 128-bit floating point.  We can't use
-    __multc3 and __divtc3 because the original long double using IBM extended
-    double used those names.  The complex multiply/divide functions are encoded
-    as builtin functions with a complex result and 4 scalar inputs.  */
- 
- static void
- create_complex_muldiv (const char *name, built_in_function fncode, tree fntype)
- {
-   tree fndecl = add_builtin_function (name, fntype, fncode, BUILT_IN_NORMAL,
- 				      name, NULL_TREE);
- 
-   set_builtin_decl (fncode, fndecl, true);
- 
-   if (TARGET_DEBUG_BUILTIN)
-     fprintf (stderr, "create complex %s, fncode: %d\n", name, (int) fncode);
- 
-   return;
- }
- 
  /* Set up IEEE 128-bit floating point routines.  Use different names if the
     arguments can be passed in a vector register.  The historical PowerPC
     implementation of IEEE 128-bit floating point used _q_<op> for the names, so
--- 11005,11010 ----
*************** init_float128_ieee (machine_mode mode)
*** 10999,11030 ****
  {
    if (FLOAT128_VECTOR_P (mode))
      {
-       static bool complex_muldiv_init_p = false;
- 
-       /* Set up to call __mulkc3 and __divkc3 under -mabi=ieeelongdouble.  If
- 	 we have clone or target attributes, this will be called a second
- 	 time.  We want to create the built-in function only once.  */
-      if (mode == TFmode && TARGET_IEEEQUAD && !complex_muldiv_init_p)
-        {
- 	 complex_muldiv_init_p = true;
- 	 built_in_function fncode_mul =
- 	   (built_in_function) (BUILT_IN_COMPLEX_MUL_MIN + TCmode
- 				- MIN_MODE_COMPLEX_FLOAT);
- 	 built_in_function fncode_div =
- 	   (built_in_function) (BUILT_IN_COMPLEX_DIV_MIN + TCmode
- 				- MIN_MODE_COMPLEX_FLOAT);
- 
- 	 tree fntype = build_function_type_list (complex_long_double_type_node,
- 						 long_double_type_node,
- 						 long_double_type_node,
- 						 long_double_type_node,
- 						 long_double_type_node,
- 						 NULL_TREE);
- 
- 	 create_complex_muldiv ("__mulkc3", fncode_mul, fntype);
- 	 create_complex_muldiv ("__divkc3", fncode_div, fntype);
-        }
- 
        set_optab_libfunc (add_optab, mode, "__addkf3");
        set_optab_libfunc (sub_optab, mode, "__subkf3");
        set_optab_libfunc (neg_optab, mode, "__negkf2");
--- 11016,11021 ----
*************** rs6000_can_inline_p (tree caller, tree c
*** 25074,25079 ****
--- 25065,25075 ----
        else
  	caller_isa = rs6000_isa_flags;
  
+       /* Ignore -mpower8-fusion and -mpower10-fusion options for inlining
+ 	 purposes.  */
+       callee_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION);
+       explicit_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION);
+ 
        /* The callee's options must be a subset of the caller's options, i.e.
  	 a vsx function may inline an altivec function, but a no-vsx function
  	 must not inline a vsx function.  However, for those options that the
*************** rs6000_starting_frame_offset (void)
*** 27795,27800 ****
--- 27791,27817 ----
    return RS6000_STARTING_FRAME_OFFSET;
  }
  
+ /* Internal function to return the built-in function id for the complex
+    multiply operation for a given mode.  */
+ 
+ static inline built_in_function
+ complex_multiply_builtin_code (machine_mode mode)
+ {
+   gcc_assert (IN_RANGE (mode, MIN_MODE_COMPLEX_FLOAT, MAX_MODE_COMPLEX_FLOAT));
+   int func = BUILT_IN_COMPLEX_MUL_MIN + mode - MIN_MODE_COMPLEX_FLOAT;
+   return (built_in_function) func;
+ }
+ 
+ /* Internal function to return the built-in function id for the complex divide
+    operation for a given mode.  */
+ 
+ static inline built_in_function
+ complex_divide_builtin_code (machine_mode mode)
+ {
+   gcc_assert (IN_RANGE (mode, MIN_MODE_COMPLEX_FLOAT, MAX_MODE_COMPLEX_FLOAT));
+   int func = BUILT_IN_COMPLEX_DIV_MIN + mode - MIN_MODE_COMPLEX_FLOAT;
+   return (built_in_function) func;
+ }
  
  /* On 64-bit Linux and Freebsd systems, possibly switch the long double library
     function names from <foo>l to <foo>f128 if the default long double type is
*************** rs6000_starting_frame_offset (void)
*** 27813,27823 ****
     only do this transformation if the __float128 type is enabled.  This
     prevents us from doing the transformation on older 32-bit ports that might
     have enabled using IEEE 128-bit floating point as the default long double
!    type.  */
  
  static tree
  rs6000_mangle_decl_assembler_name (tree decl, tree id)
  {
    if (TARGET_FLOAT128_TYPE && TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
        && TREE_CODE (decl) == FUNCTION_DECL
        && DECL_IS_UNDECLARED_BUILTIN (decl)
--- 27830,27882 ----
     only do this transformation if the __float128 type is enabled.  This
     prevents us from doing the transformation on older 32-bit ports that might
     have enabled using IEEE 128-bit floating point as the default long double
!    type.
! 
!    We also use the TARGET_MANGLE_DECL_ASSEMBLER_NAME hook to change the
!    function names used for complex multiply and divide to the appropriate
!    names.  */
  
  static tree
  rs6000_mangle_decl_assembler_name (tree decl, tree id)
  {
+   /* Handle complex multiply/divide.  For IEEE 128-bit, use __mulkc3 or
+      __divkc3 and for IBM 128-bit use __multc3 and __divtc3.  */
+   if (TARGET_FLOAT128_TYPE
+       && TREE_CODE (decl) == FUNCTION_DECL
+       && DECL_IS_UNDECLARED_BUILTIN (decl)
+       && DECL_BUILT_IN_CLASS (decl) == BUILT_IN_NORMAL)
+     {
+       built_in_function id = DECL_FUNCTION_CODE (decl);
+       const char *newname = NULL;
+ 
+       if (id == complex_multiply_builtin_code (KCmode))
+ 	newname = "__mulkc3";
+ 
+       else if (id == complex_multiply_builtin_code (ICmode))
+ 	newname = "__multc3";
+ 
+       else if (id == complex_multiply_builtin_code (TCmode))
+ 	newname = (TARGET_IEEEQUAD) ? "__mulkc3" : "__multc3";
+ 
+       else if (id == complex_divide_builtin_code (KCmode))
+ 	newname = "__divkc3";
+ 
+       else if (id == complex_divide_builtin_code (ICmode))
+ 	newname = "__divtc3";
+ 
+       else if (id == complex_divide_builtin_code (TCmode))
+ 	newname = (TARGET_IEEEQUAD) ? "__divkc3" : "__divtc3";
+ 
+       if (newname)
+ 	{
+ 	  if (TARGET_DEBUG_BUILTIN)
+ 	    fprintf (stderr, "Map complex mul/div => %s\n", newname);
+ 
+ 	  return get_identifier (newname);
+ 	}
+     }
+ 
+   /* Map long double built-in functions if long double is IEEE 128-bit.  */
    if (TARGET_FLOAT128_TYPE && TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128
        && TREE_CODE (decl) == FUNCTION_DECL
        && DECL_IS_UNDECLARED_BUILTIN (decl)
*************** rs6000_invalid_conversion (const_tree fr
*** 28000,28027 ****
        if (tomode == OOmode)
  	return N_("invalid conversion to type %<__vector_pair%>");
      }
-   else if (POINTER_TYPE_P (fromtype) && POINTER_TYPE_P (totype))
-     {
-       /* We really care about the modes of the base types.  */
-       frommode = TYPE_MODE (TREE_TYPE (fromtype));
-       tomode = TYPE_MODE (TREE_TYPE (totype));
- 
-       /* Do not allow conversions to/from XOmode and OOmode pointer
- 	 types, except to/from void pointers.  */
-       if (frommode != tomode
- 	  && frommode != VOIDmode
- 	  && tomode != VOIDmode)
- 	{
- 	  if (frommode == XOmode)
- 	    return N_("invalid conversion from type %<* __vector_quad%>");
- 	  if (tomode == XOmode)
- 	    return N_("invalid conversion to type %<* __vector_quad%>");
- 	  if (frommode == OOmode)
- 	    return N_("invalid conversion from type %<* __vector_pair%>");
- 	  if (tomode == OOmode)
- 	    return N_("invalid conversion to type %<* __vector_pair%>");
- 	}
-     }
  
    /* Conversion allowed.  */
    return NULL;
--- 28059,28064 ----
*************** rs6000_output_addr_vec_elt (FILE *file,
*** 28068,28073 ****
--- 28105,28191 ----
    fprintf (file, "\n");
  }
  
+ 
+ /* Now we have only two opaque types, they are __vector_quad and
+    __vector_pair built-in types.  They are target specific and
+    only available when MMA is supported.  With MMA supported, it
+    simply returns true, otherwise it checks if the given gimple
+    STMT is an assignment, asm or call stmt and uses either of
+    these two opaque types unexpectedly, if yes, it would raise
+    an error message and returns true, otherwise it returns false.  */
+ 
+ bool
+ rs6000_opaque_type_invalid_use_p (gimple *stmt)
+ {
+   if (TARGET_MMA)
+     return false;
+ 
+   /* If the given TYPE is one MMA opaque type, emit the corresponding
+      error messages and return true, otherwise return false.  */
+   auto check_and_error_invalid_use = [](tree type)
+   {
+     tree mv = TYPE_MAIN_VARIANT (type);
+     if (mv == vector_quad_type_node)
+       {
+ 	error ("type %<__vector_quad%> requires the %qs option", "-mmma");
+ 	return true;
+       }
+     else if (mv == vector_pair_type_node)
+       {
+ 	error ("type %<__vector_pair%> requires the %qs option", "-mmma");
+ 	return true;
+       }
+     return false;
+   };
+ 
+   if (stmt)
+     {
+       /* The usage of MMA opaque types is very limited for now,
+ 	 to check with gassign, gasm and gcall is enough so far.  */
+       if (gassign *ga = dyn_cast<gassign *> (stmt))
+ 	{
+ 	  tree lhs = gimple_assign_lhs (ga);
+ 	  tree type = TREE_TYPE (lhs);
+ 	  if (check_and_error_invalid_use (type))
+ 	    return true;
+ 	}
+       else if (gasm *gs = dyn_cast<gasm *> (stmt))
+ 	{
+ 	  unsigned ninputs = gimple_asm_ninputs (gs);
+ 	  for (unsigned i = 0; i < ninputs; i++)
+ 	    {
+ 	      tree op = gimple_asm_input_op (gs, i);
+ 	      tree val = TREE_VALUE (op);
+ 	      tree type = TREE_TYPE (val);
+ 	      if (check_and_error_invalid_use (type))
+ 		return true;
+ 	    }
+ 	  unsigned noutputs = gimple_asm_noutputs (gs);
+ 	  for (unsigned i = 0; i < noutputs; i++)
+ 	    {
+ 	      tree op = gimple_asm_output_op (gs, i);
+ 	      tree val = TREE_VALUE (op);
+ 	      tree type = TREE_TYPE (val);
+ 	      if (check_and_error_invalid_use (type))
+ 		return true;
+ 	    }
+ 	}
+       else if (gcall *gc = dyn_cast<gcall *> (stmt))
+ 	{
+ 	  unsigned nargs = gimple_call_num_args (gc);
+ 	  for (unsigned i = 0; i < nargs; i++)
+ 	    {
+ 	      tree arg = gimple_call_arg (gc, i);
+ 	      tree type = TREE_TYPE (arg);
+ 	      if (check_and_error_invalid_use (type))
+ 		return true;
+ 	    }
+ 	}
+     }
+ 
+   return false;
+ }
+ 
  struct gcc_target targetm = TARGET_INITIALIZER;
  
  #include "gt-rs6000.h"
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000.h gcc-11.4.0/gcc/config/rs6000/rs6000.h
*** gcc-11.3.0/gcc/config/rs6000/rs6000.h	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000.h	Mon May 29 08:46:29 2023
***************
*** 81,92 ****
  # define SUBTARGET_DRIVER_SELF_SPECS ""
  #endif
  
! /* Only for use in the testsuite: -mdejagnu-cpu= simply overrides -mcpu=.
     With older versions of Dejagnu the command line arguments you set in
!    RUNTESTFLAGS override those set in the testcases; with this option,
!    the testcase will always win.  Ditto for -mdejagnu-tune=.  */
  #define DRIVER_SELF_SPECS \
!   "%{mdejagnu-cpu=*: %<mcpu=* -mcpu=%*}", \
    "%{mdejagnu-tune=*: %<mtune=* -mtune=%*}", \
    "%{mdejagnu-*: %<mdejagnu-*}", \
     SUBTARGET_DRIVER_SELF_SPECS
--- 81,95 ----
  # define SUBTARGET_DRIVER_SELF_SPECS ""
  #endif
  
! /* Only for use in the testsuite: -mdejagnu-cpu=<value> filters out all
!    -mcpu= as well as -mtune= options then simply adds -mcpu=<value>,
!    while -mdejagnu-tune=<value> filters out all -mtune= options then
!    simply adds -mtune=<value>.
     With older versions of Dejagnu the command line arguments you set in
!    RUNTESTFLAGS override those set in the testcases; with these options,
!    the testcase will always win.  */
  #define DRIVER_SELF_SPECS \
!   "%{mdejagnu-cpu=*: %<mcpu=* %<mtune=* -mcpu=%*}", \
    "%{mdejagnu-tune=*: %<mtune=* -mtune=%*}", \
    "%{mdejagnu-*: %<mdejagnu-*}", \
     SUBTARGET_DRIVER_SELF_SPECS
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000.md gcc-11.4.0/gcc/config/rs6000/rs6000.md
*** gcc-11.3.0/gcc/config/rs6000/rs6000.md	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/rs6000.md	Mon May 29 08:46:29 2023
***************
*** 835,842 ****
  ;; complex forms.  Basic data transfer is done later.
  
  (define_insn "zero_extendqi<mode>2"
!   [(set (match_operand:EXTQI 0 "gpc_reg_operand" "=r,r,^wa,^v")
! 	(zero_extend:EXTQI (match_operand:QI 1 "reg_or_mem_operand" "m,r,Z,v")))]
    ""
    "@
     lbz%U1%X1 %0,%1
--- 835,842 ----
  ;; complex forms.  Basic data transfer is done later.
  
  (define_insn "zero_extendqi<mode>2"
!   [(set (match_operand:EXTQI 0 "gpc_reg_operand" "=r,r,wa,^v")
! 	(zero_extend:EXTQI (match_operand:QI 1 "reg_or_mem_operand" "m,r,?Z,v")))]
    ""
    "@
     lbz%U1%X1 %0,%1
***************
*** 889,896 ****
  
  
  (define_insn "zero_extendhi<mode>2"
!   [(set (match_operand:EXTHI 0 "gpc_reg_operand" "=r,r,^wa,^v")
! 	(zero_extend:EXTHI (match_operand:HI 1 "reg_or_mem_operand" "m,r,Z,v")))]
    ""
    "@
     lhz%U1%X1 %0,%1
--- 889,896 ----
  
  
  (define_insn "zero_extendhi<mode>2"
!   [(set (match_operand:EXTHI 0 "gpc_reg_operand" "=r,r,wa,^v")
! 	(zero_extend:EXTHI (match_operand:HI 1 "reg_or_mem_operand" "m,r,?Z,v")))]
    ""
    "@
     lhz%U1%X1 %0,%1
***************
*** 944,950 ****
  
  (define_insn "zero_extendsi<mode>2"
    [(set (match_operand:EXTSI 0 "gpc_reg_operand" "=r,r,d,wa,wa,r,wa")
! 	(zero_extend:EXTSI (match_operand:SI 1 "reg_or_mem_operand" "m,r,Z,Z,r,wa,wa")))]
    ""
    "@
     lwz%U1%X1 %0,%1
--- 944,950 ----
  
  (define_insn "zero_extendsi<mode>2"
    [(set (match_operand:EXTSI 0 "gpc_reg_operand" "=r,r,d,wa,wa,r,wa")
! 	(zero_extend:EXTSI (match_operand:SI 1 "reg_or_mem_operand" "m,r,?Z,?Z,r,wa,wa")))]
    ""
    "@
     lwz%U1%X1 %0,%1
***************
*** 7312,7318 ****
    [(set (match_operand:SI 0 "nonimmediate_operand"
  	  "=r,         r,
  	   r,          d,          v,
! 	   m,          Z,          Z,
  	   r,          r,          r,          r,
  	   wa,         wa,         wa,         v,
  	   wa,         v,          v,
--- 7312,7318 ----
    [(set (match_operand:SI 0 "nonimmediate_operand"
  	  "=r,         r,
  	   r,          d,          v,
! 	   m,          ?Z,         ?Z,
  	   r,          r,          r,          r,
  	   wa,         wa,         wa,         v,
  	   wa,         v,          v,
***************
*** 7320,7326 ****
  	   r,          *h,         *h")
  	(match_operand:SI 1 "input_operand"
  	  "r,          U,
! 	   m,          Z,          Z,
  	   r,          d,          v,
  	   I,          L,          eI,         n,
  	   wa,         O,          wM,         wB,
--- 7320,7326 ----
  	   r,          *h,         *h")
  	(match_operand:SI 1 "input_operand"
  	  "r,          U,
! 	   m,          ?Z,         ?Z,
  	   r,          d,          v,
  	   I,          L,          eI,         n,
  	   wa,         O,          wM,         wB,
***************
*** 7557,7563 ****
    rtx op0_v16qi = gen_rtx_REG (V16QImode, r);
  
    emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1));
!   emit_insn (gen_vsx_sign_extend_qi_si (operands[0], op0_v16qi));
    DONE;
  })
  
--- 7557,7563 ----
    rtx op0_v16qi = gen_rtx_REG (V16QImode, r);
  
    emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1));
!   emit_insn (gen_vsx_sign_extend_v16qi_si (operands[0], op0_v16qi));
    DONE;
  })
  
***************
*** 7601,7611 ****
  ;;		MTVSRWZ     MF%1       MT%1       NOP
  (define_insn "*mov<mode>_internal"
    [(set (match_operand:QHI 0 "nonimmediate_operand"
! 		"=r,        r,         wa,        m,         Z,         r,
  		 wa,        wa,        wa,        v,         ?v,        r,
  		 wa,        r,         *c*l,      *h")
  	(match_operand:QHI 1 "input_operand"
! 		"r,         m,         Z,         r,         wa,        i,
  		 wa,        O,         wM,        wB,        wS,        wa,
  		 r,         *h,        r,         0"))]
    "gpc_reg_operand (operands[0], <MODE>mode)
--- 7601,7611 ----
  ;;		MTVSRWZ     MF%1       MT%1       NOP
  (define_insn "*mov<mode>_internal"
    [(set (match_operand:QHI 0 "nonimmediate_operand"
! 		"=r,        r,         wa,        m,         ?Z,        r,
  		 wa,        wa,        wa,        v,         ?v,        r,
  		 wa,        r,         *c*l,      *h")
  	(match_operand:QHI 1 "input_operand"
! 		"r,         m,         ?Z,        r,         wa,        i,
  		 wa,        O,         wM,        wB,        wS,        wa,
  		 r,         *h,        r,         0"))]
    "gpc_reg_operand (operands[0], <MODE>mode)
***************
*** 7784,7793 ****
  ;;	FMR          MR         MT%0       MF%1       NOP
  (define_insn "movsd_hardfloat"
    [(set (match_operand:SD 0 "nonimmediate_operand"
! 	 "=!r,       d,         m,         Z,         ?d,        ?r,
  	  f,         !r,        *c*l,      !r,        *h")
  	(match_operand:SD 1 "input_operand"
! 	 "m,         Z,         r,         wx,        r,         d,
  	  f,         r,         r,         *h,        0"))]
    "(register_operand (operands[0], SDmode)
     || register_operand (operands[1], SDmode))
--- 7784,7793 ----
  ;;	FMR          MR         MT%0       MF%1       NOP
  (define_insn "movsd_hardfloat"
    [(set (match_operand:SD 0 "nonimmediate_operand"
! 	 "=!r,       d,         m,         ?Z,        ?d,        ?r,
  	  f,         !r,        *c*l,      !r,        *h")
  	(match_operand:SD 1 "input_operand"
! 	 "m,         ?Z,        r,         wx,        r,         d,
  	  f,         r,         r,         *h,        0"))]
    "(register_operand (operands[0], SDmode)
     || register_operand (operands[1], SDmode))
***************
*** 9452,9460 ****
  
    emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1));
    if (<MODE>mode == DImode)
!     emit_insn (gen_vsx_sign_extend_qi_di (operands[0], op0_v16qi));
    else if (<MODE>mode == SImode)
!     emit_insn (gen_vsx_sign_extend_qi_si (operands[0], op0_v16qi));
    else if (<MODE>mode == HImode)
      {
        rtx op0_v8hi = gen_rtx_REG (V8HImode, r);
--- 9452,9460 ----
  
    emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1));
    if (<MODE>mode == DImode)
!     emit_insn (gen_vsx_sign_extend_v16qi_di (operands[0], op0_v16qi));
    else if (<MODE>mode == SImode)
!     emit_insn (gen_vsx_sign_extend_v16qi_si (operands[0], op0_v16qi));
    else if (<MODE>mode == HImode)
      {
        rtx op0_v8hi = gen_rtx_REG (V8HImode, r);
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rtems.h gcc-11.4.0/gcc/config/rs6000/rtems.h
*** gcc-11.3.0/gcc/config/rs6000/rtems.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/rtems.h	Mon May 29 08:46:29 2023
***************
*** 23,28 ****
--- 23,31 ----
     see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     <http://www.gnu.org/licenses/>.  */
  
+ /* Undef gnu-user.h macro we don't want.  */
+ #undef CPLUSPLUS_CPP_SPEC
+ 
  /* Copy and paste from linux64.h and freebsd64.h */
  #ifdef IN_LIBGCC2
  #undef TARGET_64BIT
***************
*** 252,258 ****
  %{mcpu=821:  %{!Dppc*: %{!Dmpc*: -Dmpc821}  } } \
  %{mcpu=860:  %{!Dppc*: %{!Dmpc*: -Dmpc860}  } } \
  %{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540}  } } \
! %{mcpu=e6500: -D__PPC_CPU_E6500__}"
  
  #undef	ASM_SPEC
  #define	ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)"
--- 255,262 ----
  %{mcpu=821:  %{!Dppc*: %{!Dmpc*: -Dmpc821}  } } \
  %{mcpu=860:  %{!Dppc*: %{!Dmpc*: -Dmpc860}  } } \
  %{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540}  } } \
! %{mcpu=e6500: -D__PPC_CPU_E6500__} \
! %{mvrsave: -D__PPC_VRSAVE__}"
  
  #undef	ASM_SPEC
  #define	ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)"
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/smmintrin.h gcc-11.4.0/gcc/config/rs6000/smmintrin.h
*** gcc-11.3.0/gcc/config/rs6000/smmintrin.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/smmintrin.h	Mon May 29 08:46:29 2023
***************
*** 45,75 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi8 (__m128i const __A, int const __D, int const __N)
  {
!   __v16qi result = (__v16qi)__A;
  
!   result [__N & 0xf] = __D;
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi32 (__m128i const __A, int const __D, int const __N)
  {
!   __v4si result = (__v4si)__A;
  
!   result [__N & 3] = __D;
  
!   return (__m128i) result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi64 (__m128i const __A, long long const __D, int const __N)
  {
!   __v2di result = (__v2di)__A;
  
!   result [__N & 1] = __D;
  
!   return (__m128i) result;
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 45,75 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi8 (__m128i const __A, int const __D, int const __N)
  {
!   __v16qi __result = (__v16qi)__A;
  
!   __result [__N & 0xf] = __D;
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi32 (__m128i const __A, int const __D, int const __N)
  {
!   __v4si __result = (__v4si)__A;
  
!   __result [__N & 3] = __D;
  
!   return (__m128i) __result;
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_epi64 (__m128i const __A, long long const __D, int const __N)
  {
!   __v2di __result = (__v2di)__A;
  
!   __result [__N & 1] = __D;
  
!   return (__m128i) __result;
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/t-rtems gcc-11.4.0/gcc/config/rs6000/t-rtems
*** gcc-11.3.0/gcc/config/rs6000/t-rtems	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/t-rtems	Mon May 29 08:46:29 2023
*************** MULTILIB_DIRNAMES += nof
*** 36,41 ****
--- 36,44 ----
  MULTILIB_OPTIONS += mno-altivec
  MULTILIB_DIRNAMES += noaltivec
  
+ MULTILIB_OPTIONS += mvrsave
+ MULTILIB_DIRNAMES += vrsave
+ 
  MULTILIB_MATCHES  	+= ${MULTILIB_MATCHES_ENDIAN}
  MULTILIB_MATCHES	+= ${MULTILIB_MATCHES_SYSV}
  # Map 405 to 403
*************** MULTILIB_REQUIRED += mcpu=7400/msoft-flo
*** 70,74 ****
--- 73,79 ----
  MULTILIB_REQUIRED += mcpu=8540/msoft-float
  MULTILIB_REQUIRED += mcpu=860
  MULTILIB_REQUIRED += mcpu=e6500/m32
+ MULTILIB_REQUIRED += mcpu=e6500/m32/mvrsave
  MULTILIB_REQUIRED += mcpu=e6500/m32/msoft-float/mno-altivec
  MULTILIB_REQUIRED += mcpu=e6500/m64
+ MULTILIB_REQUIRED += mcpu=e6500/m64/mvrsave
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/tmmintrin.h gcc-11.4.0/gcc/config/rs6000/tmmintrin.h
*** gcc-11.3.0/gcc/config/rs6000/tmmintrin.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/tmmintrin.h	Mon May 29 08:46:29 2023
*************** _mm_alignr_epi8 (__m128i __A, __m128i __
*** 112,119 ****
      {
        if (__count >= 32)
  	{
! 	  const __v16qu zero = { 0 };
! 	  return (__m128i) zero;
  	}
        else
  	{
--- 112,119 ----
      {
        if (__count >= 32)
  	{
! 	  const __v16qu __zero = { 0 };
! 	  return (__m128i) __zero;
  	}
        else
  	{
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/vector.md gcc-11.4.0/gcc/config/rs6000/vector.md
*** gcc-11.3.0/gcc/config/rs6000/vector.md	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/vector.md	Mon May 29 08:46:29 2023
***************
*** 1288,1294 ****
  (define_expand "parity<mode>2"
    [(set (match_operand:VEC_IP 0 "register_operand")
  	(parity:VEC_IP (match_operand:VEC_IP 1 "register_operand")))]
!   "TARGET_P9_VECTOR")
  
  
  ;; Same size conversions
--- 1288,1303 ----
  (define_expand "parity<mode>2"
    [(set (match_operand:VEC_IP 0 "register_operand")
  	(parity:VEC_IP (match_operand:VEC_IP 1 "register_operand")))]
!   "TARGET_P9_VECTOR"
! {
!   rtx op1 = gen_lowpart (V16QImode, operands[1]);
!   rtx res = gen_reg_rtx (V16QImode);
!   emit_insn (gen_popcountv16qi2 (res, op1));
!   emit_insn (gen_rs6000_vprtyb<mode>2 (operands[0],
! 				       gen_lowpart (<MODE>mode, res)));
! 
!   DONE;
! })
  
  
  ;; Same size conversions
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/vsx.md gcc-11.4.0/gcc/config/rs6000/vsx.md
*** gcc-11.3.0/gcc/config/rs6000/vsx.md	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/vsx.md	Mon May 29 08:46:29 2023
***************
*** 1145,1154 ****
    emit_insn (gen_xxspltib_v16qi (tmp, GEN_INT (value)));
  
    if (<MODE>mode == V2DImode)
!     emit_insn (gen_vsx_sign_extend_qi_v2di (op0, tmp));
  
    else if (<MODE>mode == V4SImode)
!     emit_insn (gen_vsx_sign_extend_qi_v4si (op0, tmp));
  
    else if (<MODE>mode == V8HImode)
      emit_insn (gen_altivec_vupkhsb  (op0, tmp));
--- 1145,1154 ----
    emit_insn (gen_xxspltib_v16qi (tmp, GEN_INT (value)));
  
    if (<MODE>mode == V2DImode)
!     emit_insn (gen_vsx_sign_extend_v16qi_v2di (op0, tmp));
  
    else if (<MODE>mode == V4SImode)
!     emit_insn (gen_vsx_sign_extend_v16qi_v4si (op0, tmp));
  
    else if (<MODE>mode == V8HImode)
      emit_insn (gen_altivec_vupkhsb  (op0, tmp));
***************
*** 1972,1993 ****
    "x<VSv>tsqrt<sd>p %0,%x1"
    [(set_attr "type" "<VStype_simple>")])
  
! ;; Fused vector multiply/add instructions. Support the classical Altivec
! ;; versions of fma, which allows the target to be a separate register from the
! ;; 3 inputs.  Under VSX, the target must be either the addend or the first
! ;; multiply.
! 
  (define_insn "*vsx_fmav4sf4"
!   [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa,v")
  	(fma:V4SF
! 	  (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa,v")
! 	  (match_operand:V4SF 2 "vsx_register_operand" "wa,0,v")
! 	  (match_operand:V4SF 3 "vsx_register_operand" "0,wa,v")))]
    "VECTOR_UNIT_VSX_P (V4SFmode)"
    "@
     xvmaddasp %x0,%x1,%x2
!    xvmaddmsp %x0,%x1,%x3
!    vmaddfp %0,%1,%2,%3"
    [(set_attr "type" "vecfloat")])
  
  (define_insn "*vsx_fmav2df4"
--- 1972,1991 ----
    "x<VSv>tsqrt<sd>p %0,%x1"
    [(set_attr "type" "<VStype_simple>")])
  
! ;; Fused vector multiply/add instructions. Do not generate the Altivec versions
! ;; of fma (vmaddfp and vnmsubfp).  These instructions allows the target to be a
! ;; separate register from the 3 inputs, but they have different rounding
! ;; behaviors than the VSX instructions.
  (define_insn "*vsx_fmav4sf4"
!   [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa")
  	(fma:V4SF
! 	  (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa")
! 	  (match_operand:V4SF 2 "vsx_register_operand" "wa,0")
! 	  (match_operand:V4SF 3 "vsx_register_operand" "0,wa")))]
    "VECTOR_UNIT_VSX_P (V4SFmode)"
    "@
     xvmaddasp %x0,%x1,%x2
!    xvmaddmsp %x0,%x1,%x3"
    [(set_attr "type" "vecfloat")])
  
  (define_insn "*vsx_fmav2df4"
***************
*** 2029,2046 ****
    [(set_attr "type" "<VStype_mul>")])
  
  (define_insn "*vsx_nfmsv4sf4"
!   [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa,v")
  	(neg:V4SF
  	 (fma:V4SF
! 	   (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa,v")
! 	   (match_operand:V4SF 2 "vsx_register_operand" "wa,0,v")
  	   (neg:V4SF
! 	     (match_operand:V4SF 3 "vsx_register_operand" "0,wa,v")))))]
    "VECTOR_UNIT_VSX_P (V4SFmode)"
    "@
     xvnmsubasp %x0,%x1,%x2
!    xvnmsubmsp %x0,%x1,%x3
!    vnmsubfp %0,%1,%2,%3"
    [(set_attr "type" "vecfloat")])
  
  (define_insn "*vsx_nfmsv2df4"
--- 2027,2043 ----
    [(set_attr "type" "<VStype_mul>")])
  
  (define_insn "*vsx_nfmsv4sf4"
!   [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa")
  	(neg:V4SF
  	 (fma:V4SF
! 	   (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa")
! 	   (match_operand:V4SF 2 "vsx_register_operand" "wa,0")
  	   (neg:V4SF
! 	     (match_operand:V4SF 3 "vsx_register_operand" "0,wa")))))]
    "VECTOR_UNIT_VSX_P (V4SFmode)"
    "@
     xvnmsubasp %x0,%x1,%x2
!    xvnmsubmsp %x0,%x1,%x3"
    [(set_attr "type" "vecfloat")])
  
  (define_insn "*vsx_nfmsv2df4"
***************
*** 4892,4918 ****
   "vextsd2q %0,%1"
  [(set_attr "type" "vecexts")])
  
- (define_expand "vsignextend_v2di_v1ti"
-   [(set (match_operand:V1TI 0 "vsx_register_operand" "=v")
- 	(unspec:V1TI [(match_operand:V2DI 1 "vsx_register_operand" "v")]
- 		     UNSPEC_VSX_SIGN_EXTEND))]
-   "TARGET_POWER10"
- {
-   if (BYTES_BIG_ENDIAN)
-     {
-       rtx tmp = gen_reg_rtx (V2DImode);
- 
-       emit_insn (gen_altivec_vrevev2di2(tmp, operands[1]));
-       emit_insn (gen_vsx_sign_extend_v2di_v1ti(operands[0], tmp));
-       DONE;
-      }
- 
-   emit_insn (gen_vsx_sign_extend_v2di_v1ti(operands[0], operands[1]));
- })
- 
  ;; ISA 3.0 vector extend sign support
  
! (define_insn "vsx_sign_extend_qi_<mode>"
    [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v")
  	(unspec:VSINT_84
  	 [(match_operand:V16QI 1 "vsx_register_operand" "v")]
--- 4889,4897 ----
   "vextsd2q %0,%1"
  [(set_attr "type" "vecexts")])
  
  ;; ISA 3.0 vector extend sign support
  
! (define_insn "vsx_sign_extend_v16qi_<mode>"
    [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v")
  	(unspec:VSINT_84
  	 [(match_operand:V16QI 1 "vsx_register_operand" "v")]
***************
*** 4921,4945 ****
    "vextsb2<wd> %0,%1"
    [(set_attr "type" "vecexts")])
  
! (define_expand "vsignextend_qi_<mode>"
!   [(set (match_operand:VIlong 0 "vsx_register_operand" "=v")
! 	(unspec:VIlong
! 	 [(match_operand:V16QI 1 "vsx_register_operand" "v")]
! 	 UNSPEC_VSX_SIGN_EXTEND))]
!   "TARGET_P9_VECTOR"
! {
!   if (BYTES_BIG_ENDIAN)
!     {
!       rtx tmp = gen_reg_rtx (V16QImode);
!       emit_insn (gen_altivec_vrevev16qi2(tmp, operands[1]));
!       emit_insn (gen_vsx_sign_extend_qi_<mode>(operands[0], tmp));
!     }
!   else
!     emit_insn (gen_vsx_sign_extend_qi_<mode>(operands[0], operands[1]));
!   DONE;
! })
! 
! (define_insn "vsx_sign_extend_hi_<mode>"
    [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v")
  	(unspec:VSINT_84
  	 [(match_operand:V8HI 1 "vsx_register_operand" "v")]
--- 4900,4906 ----
    "vextsb2<wd> %0,%1"
    [(set_attr "type" "vecexts")])
  
! (define_insn "vsx_sign_extend_v8hi_<mode>"
    [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v")
  	(unspec:VSINT_84
  	 [(match_operand:V8HI 1 "vsx_register_operand" "v")]
***************
*** 4948,4972 ****
    "vextsh2<wd> %0,%1"
    [(set_attr "type" "vecexts")])
  
! (define_expand "vsignextend_hi_<mode>"
!   [(set (match_operand:VIlong 0 "vsx_register_operand" "=v")
! 	(unspec:VIlong
! 	 [(match_operand:V8HI 1 "vsx_register_operand" "v")]
! 	 UNSPEC_VSX_SIGN_EXTEND))]
!   "TARGET_P9_VECTOR"
! {
!   if (BYTES_BIG_ENDIAN)
!     {
!       rtx tmp = gen_reg_rtx (V8HImode);
!       emit_insn (gen_altivec_vrevev8hi2(tmp, operands[1]));
!       emit_insn (gen_vsx_sign_extend_hi_<mode>(operands[0], tmp));
!     }
!   else
!      emit_insn (gen_vsx_sign_extend_hi_<mode>(operands[0], operands[1]));
!   DONE;
! })
! 
! (define_insn "vsx_sign_extend_si_v2di"
    [(set (match_operand:V2DI 0 "vsx_register_operand" "=v")
  	(unspec:V2DI [(match_operand:V4SI 1 "vsx_register_operand" "v")]
  		     UNSPEC_VSX_SIGN_EXTEND))]
--- 4909,4915 ----
    "vextsh2<wd> %0,%1"
    [(set_attr "type" "vecexts")])
  
! (define_insn "vsx_sign_extend_v4si_v2di"
    [(set (match_operand:V2DI 0 "vsx_register_operand" "=v")
  	(unspec:V2DI [(match_operand:V4SI 1 "vsx_register_operand" "v")]
  		     UNSPEC_VSX_SIGN_EXTEND))]
***************
*** 4974,4997 ****
    "vextsw2d %0,%1"
    [(set_attr "type" "vecexts")])
  
- (define_expand "vsignextend_si_v2di"
-   [(set (match_operand:V2DI 0 "vsx_register_operand" "=v")
- 	(unspec:V2DI [(match_operand:V4SI 1 "vsx_register_operand" "v")]
- 		     UNSPEC_VSX_SIGN_EXTEND))]
-   "TARGET_P9_VECTOR"
- {
-   if (BYTES_BIG_ENDIAN)
-     {
-        rtx tmp = gen_reg_rtx (V4SImode);
- 
-        emit_insn (gen_altivec_vrevev4si2(tmp, operands[1]));
-        emit_insn (gen_vsx_sign_extend_si_v2di(operands[0], tmp));
-     }
-   else
-      emit_insn (gen_vsx_sign_extend_si_v2di(operands[0], operands[1]));
-   DONE;
- })
- 
  ;; ISA 3.1 vector sign extend
  ;; Move DI value from GPR to TI mode in VSX register, word 1.
  (define_insn "mtvsrdd_diti_w1"
--- 4917,4922 ----
diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/xmmintrin.h gcc-11.4.0/gcc/config/rs6000/xmmintrin.h
*** gcc-11.3.0/gcc/config/rs6000/xmmintrin.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/rs6000/xmmintrin.h	Mon May 29 08:46:29 2023
*************** extern __inline __m128 __attribute__((__
*** 127,140 ****
  _mm_loadr_ps (float const *__P)
  {
    __v4sf   __tmp;
!   __m128 result;
!   static const __vector unsigned char permute_vector =
      { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16,
  	0x17, 0x10, 0x11, 0x12, 0x13 };
  
    __tmp = vec_ld (0, (__v4sf *) __P);
!   result = (__m128) vec_perm (__tmp, __tmp, permute_vector);
!   return result;
  }
  
  /* Create a vector with all four elements equal to F.  */
--- 127,140 ----
  _mm_loadr_ps (float const *__P)
  {
    __v4sf   __tmp;
!   __m128 __result;
!   static const __vector unsigned char __permute_vector =
      { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16,
  	0x17, 0x10, 0x11, 0x12, 0x13 };
  
    __tmp = vec_ld (0, (__v4sf *) __P);
!   __result = (__m128) vec_perm (__tmp, __tmp, __permute_vector);
!   return __result;
  }
  
  /* Create a vector with all four elements equal to F.  */
*************** extern __inline void __attribute__((__gn
*** 184,194 ****
  _mm_storer_ps (float *__P, __m128 __A)
  {
    __v4sf   __tmp;
!   static const __vector unsigned char permute_vector =
      { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16,
  	0x17, 0x10, 0x11, 0x12, 0x13 };
  
!   __tmp = (__m128) vec_perm (__A, __A, permute_vector);
  
    _mm_store_ps (__P, __tmp);
  }
--- 184,194 ----
  _mm_storer_ps (float *__P, __m128 __A)
  {
    __v4sf   __tmp;
!   static const __vector unsigned char __permute_vector =
      { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16,
  	0x17, 0x10, 0x11, 0x12, 0x13 };
  
!   __tmp = (__m128) vec_perm (__A, __A, __permute_vector);
  
    _mm_store_ps (__P, __tmp);
  }
*************** _mm_set_ss (float __F)
*** 218,226 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_move_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
  
!   return (vec_sel ((__v4sf)__A, (__v4sf)__B, mask));
  }
  
  /* Create a vector with element 0 as *P and the rest zero.  */
--- 218,226 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_move_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
  
!   return (vec_sel ((__v4sf)__A, (__v4sf)__B, __mask));
  }
  
  /* Create a vector with element 0 as *P and the rest zero.  */
*************** extern __inline __m128 __attribute__((__
*** 245,262 ****
  _mm_add_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 a, b, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   a = vec_splat (__A, 0);
!   b = vec_splat (__B, 0);
!   c = a + b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  #else
    __A[0] = __A[0] + __B[0];
    return (__A);
--- 245,262 ----
  _mm_add_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 __a, __b, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   __a = vec_splat (__A, 0);
!   __b = vec_splat (__B, 0);
!   __c = __a + __b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  #else
    __A[0] = __A[0] + __B[0];
    return (__A);
*************** extern __inline __m128 __attribute__((__
*** 267,284 ****
  _mm_sub_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 a, b, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   a = vec_splat (__A, 0);
!   b = vec_splat (__B, 0);
!   c = a - b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  #else
    __A[0] = __A[0] - __B[0];
    return (__A);
--- 267,284 ----
  _mm_sub_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 __a, __b, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   __a = vec_splat (__A, 0);
!   __b = vec_splat (__B, 0);
!   __c = __a - __b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  #else
    __A[0] = __A[0] - __B[0];
    return (__A);
*************** extern __inline __m128 __attribute__((__
*** 289,306 ****
  _mm_mul_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 a, b, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   a = vec_splat (__A, 0);
!   b = vec_splat (__B, 0);
!   c = a * b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  #else
    __A[0] = __A[0] * __B[0];
    return (__A);
--- 289,306 ----
  _mm_mul_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 __a, __b, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   __a = vec_splat (__A, 0);
!   __b = vec_splat (__B, 0);
!   __c = __a * __b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  #else
    __A[0] = __A[0] * __B[0];
    return (__A);
*************** extern __inline __m128 __attribute__((__
*** 311,328 ****
  _mm_div_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 a, b, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   a = vec_splat (__A, 0);
!   b = vec_splat (__B, 0);
!   c = a / b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  #else
    __A[0] = __A[0] / __B[0];
    return (__A);
--- 311,328 ----
  _mm_div_ss (__m128 __A, __m128 __B)
  {
  #ifdef _ARCH_PWR7
!   __m128 __a, __b, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
       results. So to insure we don't generate spurious exceptions
       (from the upper double values) we splat the lower double
       before we to the operation.  */
!   __a = vec_splat (__A, 0);
!   __b = vec_splat (__B, 0);
!   __c = __a / __b;
    /* Then we merge the lower float result with the original upper
       float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  #else
    __A[0] = __A[0] / __B[0];
    return (__A);
*************** _mm_div_ss (__m128 __A, __m128 __B)
*** 332,348 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sqrt_ss (__m128 __A)
  {
!   __m128 a, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper double values) we splat the lower double
     * before we to the operation. */
!   a = vec_splat (__A, 0);
!   c = vec_sqrt (a);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  }
  
  /* Perform the respective operation on the four SPFP values in A and B.  */
--- 332,348 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sqrt_ss (__m128 __A)
  {
!   __m128 __a, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper double values) we splat the lower double
     * before we to the operation. */
!   __a = vec_splat (__A, 0);
!   __c = vec_sqrt (__a);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  }
  
  /* Perform the respective operation on the four SPFP values in A and B.  */
*************** _mm_rsqrt_ps (__m128 __A)
*** 391,471 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_rcp_ss (__m128 __A)
  {
!   __m128 a, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper double values) we splat the lower double
     * before we to the operation. */
!   a = vec_splat (__A, 0);
!   c = _mm_rcp_ps (a);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_rsqrt_ss (__m128 __A)
  {
!   __m128 a, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper double values) we splat the lower double
     * before we to the operation. */
!   a = vec_splat (__A, 0);
!   c = vec_rsqrte (a);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel (__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_min_ss (__m128 __A, __m128 __B)
  {
!   __v4sf a, b, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower float)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper float values) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf)__A, 0);
!   b = vec_splat ((__v4sf)__B, 0);
!   c = vec_min (a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_max_ss (__m128 __A, __m128 __B)
  {
!   __v4sf a, b, c;
!   static const __vector unsigned int mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower float)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper float values) we splat the lower float
     * before we to the operation. */
!   a = vec_splat (__A, 0);
!   b = vec_splat (__B, 0);
!   c = vec_max (a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_min_ps (__m128 __A, __m128 __B)
  {
!   __vector __bool int m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A);
!   return vec_sel (__B, __A, m);
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_max_ps (__m128 __A, __m128 __B)
  {
!   __vector __bool int m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B);
!   return vec_sel (__B, __A, m);
  }
  
  /* Perform logical bit-wise operations on 128-bit values.  */
--- 391,471 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_rcp_ss (__m128 __A)
  {
!   __m128 __a, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper double values) we splat the lower double
     * before we to the operation. */
!   __a = vec_splat (__A, 0);
!   __c = _mm_rcp_ps (__a);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_rsqrt_ss (__m128 __A)
  {
!   __m128 __a, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower double)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper double values) we splat the lower double
     * before we to the operation. */
!   __a = vec_splat (__A, 0);
!   __c = vec_rsqrte (__a);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel (__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_min_ss (__m128 __A, __m128 __B)
  {
!   __v4sf __a, __b, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower float)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper float values) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf)__A, 0);
!   __b = vec_splat ((__v4sf)__B, 0);
!   __c = vec_min (__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_max_ss (__m128 __A, __m128 __B)
  {
!   __v4sf __a, __b, __c;
!   static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0};
    /* PowerISA VSX does not allow partial (for just lower float)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper float values) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat (__A, 0);
!   __b = vec_splat (__B, 0);
!   __c = vec_max (__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return (vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_min_ps (__m128 __A, __m128 __B)
  {
!   __vector __bool int __m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A);
!   return vec_sel (__B, __A, __m);
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_max_ps (__m128 __A, __m128 __B)
  {
!   __vector __bool int __m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B);
!   return vec_sel (__B, __A, __m);
  }
  
  /* Perform logical bit-wise operations on 128-bit values.  */
*************** _mm_cmpge_ps (__m128 __A, __m128 __B)
*** 530,537 ****
  extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpneq_ps (__m128  __A, __m128  __B)
  {
!   __v4sf temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B);
!   return ((__m128)vec_nor (temp, temp));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 530,537 ----
  extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpneq_ps (__m128  __A, __m128  __B)
  {
!   __v4sf __temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B);
!   return ((__m128)vec_nor (__temp, __temp));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cmpnge_ps (__m128 __A, __m128 __B)
*** 561,591 ****
  extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_ps (__m128  __A, __m128  __B)
  {
!   __vector unsigned int a, b;
!   __vector unsigned int c, d;
!   static const __vector unsigned int float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
  
!   a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a);
!   d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b);
!   return ((__m128 ) vec_and (c, d));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_ps (__m128 __A, __m128 __B)
  {
!   __vector unsigned int a, b;
!   __vector unsigned int c, d;
!   static const __vector unsigned int float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
  
!   a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask);
!   d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask);
!   return ((__m128 ) vec_or (c, d));
  }
  
  /* Perform a comparison on the lower SPFP values of A and B.  If the
--- 561,591 ----
  extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_ps (__m128  __A, __m128  __B)
  {
!   __vector unsigned int __a, __b;
!   __vector unsigned int __c, __d;
!   static const __vector unsigned int __float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
  
!   __a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   __b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   __c = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __a);
!   __d = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __b);
!   return ((__m128 ) vec_and (__c, __d));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_ps (__m128 __A, __m128 __B)
  {
!   __vector unsigned int __a, __b;
!   __vector unsigned int __c, __d;
!   static const __vector unsigned int __float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
  
!   __a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   __b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   __c = (__vector unsigned int) vec_cmpgt (__a, __float_exp_mask);
!   __d = (__vector unsigned int) vec_cmpgt (__b, __float_exp_mask);
!   return ((__m128 ) vec_or (__c, __d));
  }
  
  /* Perform a comparison on the lower SPFP values of A and B.  If the
*************** _mm_cmpunord_ps (__m128 __A, __m128 __B)
*** 594,815 ****
  extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpeq_ss (__m128  __A, __m128  __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmpeq(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmplt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmplt(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmple_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmple(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpgt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmpgt(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpge_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmpge(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpneq_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmpeq(a, b);
!   c = vec_nor (c, c);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpnlt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmpge(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpnle_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmpgt(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpngt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmple(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpnge_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf a, b, c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we do the operation. */
!   a = vec_splat ((__v4sf) __A, 0);
!   b = vec_splat ((__v4sf) __B, 0);
!   c = (__v4sf) vec_cmplt(a, b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_ss (__m128 __A, __m128 __B)
  {
!   __vector unsigned int a, b;
!   __vector unsigned int c, d;
!   static const __vector unsigned int float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
  
!   a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a);
!   d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b);
!   c = vec_and (c, d);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_ss (__m128 __A, __m128 __B)
  {
!   __vector unsigned int a, b;
!   __vector unsigned int c, d;
!   static const __vector unsigned int float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
!   static const __vector unsigned int mask =
      { 0xffffffff, 0, 0, 0 };
  
!   a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask);
!   d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask);
!   c = vec_or (c, d);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask));
  }
  
  /* Compare the lower SPFP values of A and B and return 1 if true
--- 594,815 ----
  extern __inline  __m128  __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpeq_ss (__m128  __A, __m128  __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmpeq (__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmplt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmplt(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmple_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmple(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpgt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmpgt(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpge_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmpge(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpneq_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmpeq(__a, __b);
!   __c = vec_nor (__c, __c);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpnlt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmpge(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpnle_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmpgt(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpngt_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we to the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmple(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpnge_ss (__m128 __A, __m128 __B)
  {
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
!   __v4sf __a, __b, __c;
    /* PowerISA VMX does not allow partial (for just element 0)
     * results. So to insure we don't generate spurious exceptions
     * (from the upper elements) we splat the lower float
     * before we do the operation. */
!   __a = vec_splat ((__v4sf) __A, 0);
!   __b = vec_splat ((__v4sf) __B, 0);
!   __c = (__v4sf) vec_cmplt(__a, __b);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, __c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpord_ss (__m128 __A, __m128 __B)
  {
!   __vector unsigned int __a, __b;
!   __vector unsigned int __c, __d;
!   static const __vector unsigned int __float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
  
!   __a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   __b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   __c = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __a);
!   __d = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __b);
!   __c = vec_and (__c, __d);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)__c, __mask));
  }
  
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpunord_ss (__m128 __A, __m128 __B)
  {
!   __vector unsigned int __a, __b;
!   __vector unsigned int __c, __d;
!   static const __vector unsigned int __float_exp_mask =
      { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 };
!   static const __vector unsigned int __mask =
      { 0xffffffff, 0, 0, 0 };
  
!   __a = (__vector unsigned int) vec_abs ((__v4sf)__A);
!   __b = (__vector unsigned int) vec_abs ((__v4sf)__B);
!   __c = (__vector unsigned int) vec_cmpgt (__a, __float_exp_mask);
!   __d = (__vector unsigned int) vec_cmpgt (__b, __float_exp_mask);
!   __c = vec_or (__c, __d);
    /* Then we merge the lower float result with the original upper
     * float elements from __A.  */
!   return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)__c, __mask));
  }
  
  /* Compare the lower SPFP values of A and B and return 1 if true
*************** _mm_cvtss_f32 (__m128 __A)
*** 905,913 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtss_si32 (__m128 __A)
  {
!   int res;
  #ifdef _ARCH_PWR8
!   double dtmp;
    __asm__(
  #ifdef __LITTLE_ENDIAN__
        "xxsldwi %x0,%x0,%x0,3;\n"
--- 905,913 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtss_si32 (__m128 __A)
  {
!   int __res;
  #ifdef _ARCH_PWR8
!   double __dtmp;
    __asm__(
  #ifdef __LITTLE_ENDIAN__
        "xxsldwi %x0,%x0,%x0,3;\n"
*************** _mm_cvtss_si32 (__m128 __A)
*** 916,928 ****
        "fctiw  %2,%2;\n"
        "mfvsrd  %1,%x2;\n"
        : "+wa" (__A),
!         "=r" (res),
!         "=f" (dtmp)
        : );
  #else
!   res = __builtin_rint(__A[0]);
  #endif
!   return (res);
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 916,928 ----
        "fctiw  %2,%2;\n"
        "mfvsrd  %1,%x2;\n"
        : "+wa" (__A),
!         "=r" (__res),
!         "=f" (__dtmp)
        : );
  #else
!   __res = __builtin_rint(__A[0]);
  #endif
!   return __res;
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cvt_ss2si (__m128 __A)
*** 938,946 ****
  extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtss_si64 (__m128 __A)
  {
!   long long res;
  #if defined (_ARCH_PWR8) && defined (__powerpc64__)
!   double dtmp;
    __asm__(
  #ifdef __LITTLE_ENDIAN__
        "xxsldwi %x0,%x0,%x0,3;\n"
--- 938,946 ----
  extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtss_si64 (__m128 __A)
  {
!   long long __res;
  #if defined (_ARCH_PWR8) && defined (__powerpc64__)
!   double __dtmp;
    __asm__(
  #ifdef __LITTLE_ENDIAN__
        "xxsldwi %x0,%x0,%x0,3;\n"
*************** _mm_cvtss_si64 (__m128 __A)
*** 949,961 ****
        "fctid  %2,%2;\n"
        "mfvsrd  %1,%x2;\n"
        : "+wa" (__A),
!         "=r" (res),
!         "=f" (dtmp)
        : );
  #else
!   res = __builtin_llrint(__A[0]);
  #endif
!   return (res);
  }
  
  /* Microsoft intrinsic.  */
--- 949,961 ----
        "fctid  %2,%2;\n"
        "mfvsrd  %1,%x2;\n"
        : "+wa" (__A),
!         "=r" (__res),
!         "=f" (__dtmp)
        : );
  #else
!   __res = __builtin_llrint(__A[0]);
  #endif
!   return __res;
  }
  
  /* Microsoft intrinsic.  */
*************** extern __inline __m64 __attribute__((__g
*** 992,1006 ****
  _mm_cvtps_pi32 (__m128 __A)
  {
    /* Splat two lower SPFP values to both halves.  */
!   __v4sf temp, rounded;
!   __vector unsigned long long result;
  
    /* Splat two lower SPFP values to both halves.  */
!   temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
!   rounded = vec_rint(temp);
!   result = (__vector unsigned long long) vec_cts (rounded, 0);
  
!   return (__m64) ((__vector long long) result)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 992,1006 ----
  _mm_cvtps_pi32 (__m128 __A)
  {
    /* Splat two lower SPFP values to both halves.  */
!   __v4sf __temp, __rounded;
!   __vector unsigned long long __result;
  
    /* Splat two lower SPFP values to both halves.  */
!   __temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
!   __rounded = vec_rint (__temp);
!   __result = (__vector unsigned long long) vec_cts (__rounded, 0);
  
!   return (__m64) ((__vector long long) __result)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** extern __inline int __attribute__((__gnu
*** 1014,1022 ****
  _mm_cvttss_si32 (__m128 __A)
  {
    /* Extract the lower float element.  */
!   float temp = __A[0];
    /* truncate to 32-bit integer and return.  */
!   return temp;
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1014,1022 ----
  _mm_cvttss_si32 (__m128 __A)
  {
    /* Extract the lower float element.  */
!   float __temp = __A[0];
    /* truncate to 32-bit integer and return.  */
!   return __temp;
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** extern __inline long long __attribute__(
*** 1030,1038 ****
  _mm_cvttss_si64 (__m128 __A)
  {
    /* Extract the lower float element.  */
!   float temp = __A[0];
    /* truncate to 32-bit integer and return.  */
!   return temp;
  }
  
  /* Microsoft intrinsic.  */
--- 1030,1038 ----
  _mm_cvttss_si64 (__m128 __A)
  {
    /* Extract the lower float element.  */
!   float __temp = __A[0];
    /* truncate to 32-bit integer and return.  */
!   return __temp;
  }
  
  /* Microsoft intrinsic.  */
*************** extern __inline long long __attribute__(
*** 1040,1048 ****
  _mm_cvttss_si64x (__m128 __A)
  {
    /* Extract the lower float element.  */
!   float temp = __A[0];
    /* truncate to 32-bit integer and return.  */
!   return temp;
  }
  
  /* Truncate the two lower SPFP values to 32-bit integers.  Return the
--- 1040,1048 ----
  _mm_cvttss_si64x (__m128 __A)
  {
    /* Extract the lower float element.  */
!   float __temp = __A[0];
    /* truncate to 32-bit integer and return.  */
!   return __temp;
  }
  
  /* Truncate the two lower SPFP values to 32-bit integers.  Return the
*************** _mm_cvttss_si64x (__m128 __A)
*** 1050,1063 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttps_pi32 (__m128 __A)
  {
!   __v4sf temp;
!   __vector unsigned long long result;
  
    /* Splat two lower SPFP values to both halves.  */
!   temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
!   result = (__vector unsigned long long) vec_cts (temp, 0);
  
!   return (__m64) ((__vector long long) result)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1050,1063 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvttps_pi32 (__m128 __A)
  {
!   __v4sf __temp;
!   __vector unsigned long long __result;
  
    /* Splat two lower SPFP values to both halves.  */
!   __temp = (__v4sf) vec_splat ((__vector long long)__A, 0);
!   __result = (__vector unsigned long long) vec_cts (__temp, 0);
  
!   return (__m64) ((__vector long long) __result)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _mm_cvtt_ps2pi (__m128 __A)
*** 1070,1077 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi32_ss (__m128 __A, int __B)
  {
!   float temp = __B;
!   __A[0] = temp;
  
    return __A;
  }
--- 1070,1077 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi32_ss (__m128 __A, int __B)
  {
!   float __temp = __B;
!   __A[0] = __temp;
  
    return __A;
  }
*************** _mm_cvt_si2ss (__m128 __A, int __B)
*** 1087,1094 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi64_ss (__m128 __A, long long __B)
  {
!   float temp = __B;
!   __A[0] = temp;
  
    return __A;
  }
--- 1087,1094 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtsi64_ss (__m128 __A, long long __B)
  {
!   float __temp = __B;
!   __A[0] = __temp;
  
    return __A;
  }
*************** _mm_cvtsi64x_ss (__m128 __A, long long _
*** 1105,1118 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi32_ps (__m128        __A, __m64        __B)
  {
!   __vector signed int vm1;
!   __vector float vf1;
  
!   vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B};
!   vf1 = (__vector float) vec_ctf (vm1, 0);
  
    return ((__m128) (__vector unsigned long long)
!     { ((__vector unsigned long long)vf1) [0],
  	((__vector unsigned long long)__A) [1]});
  }
  
--- 1105,1118 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi32_ps (__m128        __A, __m64        __B)
  {
!   __vector signed int __vm1;
!   __vector float __vf1;
  
!   __vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B};
!   __vf1 = (__vector float) vec_ctf (__vm1, 0);
  
    return ((__m128) (__vector unsigned long long)
!     { ((__vector unsigned long long)__vf1) [0],
  	((__vector unsigned long long)__A) [1]});
  }
  
*************** _mm_cvt_pi2ps (__m128 __A, __m64 __B)
*** 1126,1179 ****
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi16_ps (__m64 __A)
  {
!   __vector signed short vs8;
!   __vector signed int vi4;
!   __vector float vf1;
  
!   vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A };
!   vi4 = vec_vupklsh (vs8);
!   vf1 = (__vector float) vec_ctf (vi4, 0);
  
!   return (__m128) vf1;
  }
  
  /* Convert the four unsigned 16-bit values in A to SPFP form.  */
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpu16_ps (__m64 __A)
  {
!   const __vector unsigned short zero =
      { 0, 0, 0, 0, 0, 0, 0, 0 };
!   __vector unsigned short vs8;
!   __vector unsigned int vi4;
!   __vector float vf1;
  
!   vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A };
!   vi4 = (__vector unsigned int) vec_mergel
  #ifdef __LITTLE_ENDIAN__
!                                            (vs8, zero);
  #else
!                                            (zero, vs8);
  #endif
!   vf1 = (__vector float) vec_ctf (vi4, 0);
  
!   return (__m128) vf1;
  }
  
  /* Convert the low four signed 8-bit values in A to SPFP form.  */
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi8_ps (__m64 __A)
  {
!   __vector signed char vc16;
!   __vector signed short vs8;
!   __vector signed int vi4;
!   __vector float vf1;
  
!   vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A };
!   vs8 = vec_vupkhsb (vc16);
!   vi4 = vec_vupkhsh (vs8);
!   vf1 = (__vector float) vec_ctf (vi4, 0);
  
!   return (__m128) vf1;
  }
  
  /* Convert the low four unsigned 8-bit values in A to SPFP form.  */
--- 1126,1179 ----
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi16_ps (__m64 __A)
  {
!   __vector signed short __vs8;
!   __vector signed int __vi4;
!   __vector float __vf1;
  
!   __vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A };
!   __vi4 = vec_vupklsh (__vs8);
!   __vf1 = (__vector float) vec_ctf (__vi4, 0);
  
!   return (__m128) __vf1;
  }
  
  /* Convert the four unsigned 16-bit values in A to SPFP form.  */
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpu16_ps (__m64 __A)
  {
!   const __vector unsigned short __zero =
      { 0, 0, 0, 0, 0, 0, 0, 0 };
!   __vector unsigned short __vs8;
!   __vector unsigned int __vi4;
!   __vector float __vf1;
  
!   __vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A };
!   __vi4 = (__vector unsigned int) vec_mergel
  #ifdef __LITTLE_ENDIAN__
!                                            (__vs8, __zero);
  #else
!                                            (__zero, __vs8);
  #endif
!   __vf1 = (__vector float) vec_ctf (__vi4, 0);
  
!   return (__m128) __vf1;
  }
  
  /* Convert the low four signed 8-bit values in A to SPFP form.  */
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi8_ps (__m64 __A)
  {
!   __vector signed char __vc16;
!   __vector signed short __vs8;
!   __vector signed int __vi4;
!   __vector float __vf1;
  
!   __vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A };
!   __vs8 = vec_vupkhsb (__vc16);
!   __vi4 = vec_vupkhsh (__vs8);
!   __vf1 = (__vector float) vec_ctf (__vi4, 0);
  
!   return (__m128) __vf1;
  }
  
  /* Convert the low four unsigned 8-bit values in A to SPFP form.  */
*************** extern __inline  __m128  __attribute__((
*** 1181,1250 ****
  
  _mm_cvtpu8_ps (__m64  __A)
  {
!   const __vector unsigned char zero =
      { 0, 0, 0, 0, 0, 0, 0, 0 };
!   __vector unsigned char vc16;
!   __vector unsigned short vs8;
!   __vector unsigned int vi4;
!   __vector float vf1;
  
!   vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A };
  #ifdef __LITTLE_ENDIAN__
!   vs8 = (__vector unsigned short) vec_mergel (vc16, zero);
!   vi4 = (__vector unsigned int) vec_mergeh (vs8,
! 					    (__vector unsigned short) zero);
  #else
!   vs8 = (__vector unsigned short) vec_mergel (zero, vc16);
!   vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) zero,
!                                             vs8);
  #endif
!   vf1 = (__vector float) vec_ctf (vi4, 0);
  
!   return (__m128) vf1;
  }
  
  /* Convert the four signed 32-bit values in A and B to SPFP form.  */
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi32x2_ps (__m64 __A, __m64 __B)
  {
!   __vector signed int vi4;
!   __vector float vf4;
  
!   vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B };
!   vf4 = (__vector float) vec_ctf (vi4, 0);
!   return (__m128) vf4;
  }
  
  /* Convert the four SPFP values in A to four signed 16-bit integers.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtps_pi16 (__m128 __A)
  {
!   __v4sf rounded;
!   __vector signed int temp;
!   __vector unsigned long long result;
  
!   rounded = vec_rint(__A);
!   temp = vec_cts (rounded, 0);
!   result = (__vector unsigned long long) vec_pack (temp, temp);
  
!   return (__m64) ((__vector long long) result)[0];
  }
  
  /* Convert the four SPFP values in A to four signed 8-bit integers.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtps_pi8 (__m128 __A)
  {
!   __v4sf rounded;
!   __vector signed int tmp_i;
!   static const __vector signed int zero = {0, 0, 0, 0};
!   __vector signed short tmp_s;
!   __vector signed char res_v;
  
!   rounded = vec_rint(__A);
!   tmp_i = vec_cts (rounded, 0);
!   tmp_s = vec_pack (tmp_i, zero);
!   res_v = vec_pack (tmp_s, tmp_s);
!   return (__m64) ((__vector long long) res_v)[0];
  }
  
  /* Selects four specific SPFP values from A and B based on MASK.  */
--- 1181,1250 ----
  
  _mm_cvtpu8_ps (__m64  __A)
  {
!   const __vector unsigned char __zero =
      { 0, 0, 0, 0, 0, 0, 0, 0 };
!   __vector unsigned char __vc16;
!   __vector unsigned short __vs8;
!   __vector unsigned int __vi4;
!   __vector float __vf1;
  
!   __vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A };
  #ifdef __LITTLE_ENDIAN__
!   __vs8 = (__vector unsigned short) vec_mergel (__vc16, __zero);
!   __vi4 = (__vector unsigned int) vec_mergeh (__vs8,
! 					    (__vector unsigned short) __zero);
  #else
!   __vs8 = (__vector unsigned short) vec_mergel (__zero, __vc16);
!   __vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) __zero,
!                                             __vs8);
  #endif
!   __vf1 = (__vector float) vec_ctf (__vi4, 0);
  
!   return (__m128) __vf1;
  }
  
  /* Convert the four signed 32-bit values in A and B to SPFP form.  */
  extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtpi32x2_ps (__m64 __A, __m64 __B)
  {
!   __vector signed int __vi4;
!   __vector float __vf4;
  
!   __vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B };
!   __vf4 = (__vector float) vec_ctf (__vi4, 0);
!   return (__m128) __vf4;
  }
  
  /* Convert the four SPFP values in A to four signed 16-bit integers.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtps_pi16 (__m128 __A)
  {
!   __v4sf __rounded;
!   __vector signed int __temp;
!   __vector unsigned long long __result;
  
!   __rounded = vec_rint(__A);
!   __temp = vec_cts (__rounded, 0);
!   __result = (__vector unsigned long long) vec_pack (__temp, __temp);
  
!   return (__m64) ((__vector long long) __result)[0];
  }
  
  /* Convert the four SPFP values in A to four signed 8-bit integers.  */
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cvtps_pi8 (__m128 __A)
  {
!   __v4sf __rounded;
!   __vector signed int __tmp_i;
!   static const __vector signed int __zero = {0, 0, 0, 0};
!   __vector signed short __tmp_s;
!   __vector signed char __res_v;
  
!   __rounded = vec_rint(__A);
!   __tmp_i = vec_cts (__rounded, 0);
!   __tmp_s = vec_pack (__tmp_i, __zero);
!   __res_v = vec_pack (__tmp_s, __tmp_s);
!   return (__m64) ((__vector long long) __res_v)[0];
  }
  
  /* Selects four specific SPFP values from A and B based on MASK.  */
*************** extern __inline  __m128  __attribute__((
*** 1252,1262 ****
  
  _mm_shuffle_ps (__m128  __A, __m128  __B, int const __mask)
  {
!   unsigned long element_selector_10 = __mask & 0x03;
!   unsigned long element_selector_32 = (__mask >> 2) & 0x03;
!   unsigned long element_selector_54 = (__mask >> 4) & 0x03;
!   unsigned long element_selector_76 = (__mask >> 6) & 0x03;
!   static const unsigned int permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
        0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C
--- 1252,1262 ----
  
  _mm_shuffle_ps (__m128  __A, __m128  __B, int const __mask)
  {
!   unsigned long __element_selector_10 = __mask & 0x03;
!   unsigned long __element_selector_32 = (__mask >> 2) & 0x03;
!   unsigned long __element_selector_54 = (__mask >> 4) & 0x03;
!   unsigned long __element_selector_76 = (__mask >> 6) & 0x03;
!   static const unsigned int __permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
        0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C
*************** _mm_shuffle_ps (__m128  __A, __m128  __B
*** 1264,1276 ****
        0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F
  #endif
      };
!   __vector unsigned int t;
  
!   t[0] = permute_selectors[element_selector_10];
!   t[1] = permute_selectors[element_selector_32];
!   t[2] = permute_selectors[element_selector_54] + 0x10101010;
!   t[3] = permute_selectors[element_selector_76] + 0x10101010;
!   return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)t);
  }
  
  /* Selects and interleaves the upper two SPFP values from A and B.  */
--- 1264,1276 ----
        0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F
  #endif
      };
!   __vector unsigned int __t;
  
!   __t[0] = __permute_selectors[__element_selector_10];
!   __t[1] = __permute_selectors[__element_selector_32];
!   __t[2] = __permute_selectors[__element_selector_54] + 0x10101010;
!   __t[3] = __permute_selectors[__element_selector_76] + 0x10101010;
!   return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)__t);
  }
  
  /* Selects and interleaves the upper two SPFP values from A and B.  */
*************** _mm_storel_pi (__m64 *__P, __m128 __A)
*** 1352,1359 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_movemask_ps (__m128  __A)
  {
!   __vector unsigned long long result;
!   static const __vector unsigned int perm_mask =
      {
  #ifdef __LITTLE_ENDIAN__
  	0x00204060, 0x80808080, 0x80808080, 0x80808080
--- 1352,1359 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_movemask_ps (__m128  __A)
  {
!   __vector unsigned long long __result;
!   static const __vector unsigned int __perm_mask =
      {
  #ifdef __LITTLE_ENDIAN__
  	0x00204060, 0x80808080, 0x80808080, 0x80808080
*************** _mm_movemask_ps (__m128  __A)
*** 1362,1375 ****
  #endif
      };
  
!   result = ((__vector unsigned long long)
  	    vec_vbpermq ((__vector unsigned char) __A,
! 			 (__vector unsigned char) perm_mask));
  
  #ifdef __LITTLE_ENDIAN__
!   return result[1];
  #else
!   return result[0];
  #endif
  }
  #endif /* _ARCH_PWR8 */
--- 1362,1375 ----
  #endif
      };
  
!   __result = ((__vector unsigned long long)
  	    vec_vbpermq ((__vector unsigned char) __A,
! 			 (__vector unsigned char) __perm_mask));
  
  #ifdef __LITTLE_ENDIAN__
!   return __result[1];
  #else
!   return __result[0];
  #endif
  }
  #endif /* _ARCH_PWR8 */
*************** _mm_load_ps1 (float const *__P)
*** 1391,1402 ****
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_extract_pi16 (__m64 const __A, int const __N)
  {
!   unsigned int shiftr = __N & 3;
  #ifdef __BIG_ENDIAN__
!   shiftr = 3 - shiftr;
  #endif
  
!   return ((__A >> (shiftr * 16)) & 0xffff);
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1391,1402 ----
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_extract_pi16 (__m64 const __A, int const __N)
  {
!   unsigned int __shiftr = __N & 3;
  #ifdef __BIG_ENDIAN__
!   __shiftr = 3 - __shiftr;
  #endif
  
!   return ((__A >> (__shiftr * 16)) & 0xffff);
  }
  
  extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pextrw (__m64 const __A, int const __
*** 1410,1421 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_pi16 (__m64 const __A, int const __D, int const __N)
  {
!   const int shiftl = (__N & 3) * 16;
!   const __m64 shiftD = (const __m64) __D << shiftl;
!   const __m64 mask = 0xffffUL << shiftl;
!   __m64 result = (__A & (~mask)) | (shiftD & mask);
  
!   return (result);
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1410,1421 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_insert_pi16 (__m64 const __A, int const __D, int const __N)
  {
!   const int __shiftl = (__N & 3) * 16;
!   const __m64 __shiftD = (const __m64) __D << __shiftl;
!   const __m64 __mask = 0xffffUL << __shiftl;
!   __m64 __result = (__A & (~__mask)) | (__shiftD & __mask);
  
!   return __result;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** extern __inline __m64 __attribute__((__g
*** 1430,1459 ****
  _mm_max_pi16 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector signed short a, b, r;
!   __vector __bool short c;
  
!   a = (__vector signed short)vec_splats (__A);
!   b = (__vector signed short)vec_splats (__B);
!   c = (__vector __bool short)vec_cmpgt (a, b);
!   r = vec_sel (b, a, c);
!   return (__m64) ((__vector long long) r)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __A;
!   m2.as_m64 = __B;
  
!   res.as_short[0] =
!       (m1.as_short[0] > m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0];
!   res.as_short[1] =
!       (m1.as_short[1] > m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1];
!   res.as_short[2] =
!       (m1.as_short[2] > m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2];
!   res.as_short[3] =
!       (m1.as_short[3] > m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 1430,1459 ----
  _mm_max_pi16 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector signed short __a, __b, __r;
!   __vector __bool short __c;
  
!   __a = (__vector signed short)vec_splats (__A);
!   __b = (__vector signed short)vec_splats (__B);
!   __c = (__vector __bool short)vec_cmpgt (__a, __b);
!   __r = vec_sel (__b, __a, __c);
!   return (__m64) ((__vector long long) __r)[0];
  #else
!   __m64_union __m1, __m2, __res;
  
!   __m1.as_m64 = __A;
!   __m2.as_m64 = __B;
  
!   __res.as_short[0] =
!       (__m1.as_short[0] > __m2.as_short[0]) ? __m1.as_short[0] : __m2.as_short[0];
!   __res.as_short[1] =
!       (__m1.as_short[1] > __m2.as_short[1]) ? __m1.as_short[1] : __m2.as_short[1];
!   __res.as_short[2] =
!       (__m1.as_short[2] > __m2.as_short[2]) ? __m1.as_short[2] : __m2.as_short[2];
!   __res.as_short[3] =
!       (__m1.as_short[3] > __m2.as_short[3]) ? __m1.as_short[3] : __m2.as_short[3];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 1468,1495 ****
  _mm_max_pu8 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector unsigned char a, b, r;
!   __vector __bool char c;
  
!   a = (__vector unsigned char)vec_splats (__A);
!   b = (__vector unsigned char)vec_splats (__B);
!   c = (__vector __bool char)vec_cmpgt (a, b);
!   r = vec_sel (b, a, c);
!   return (__m64) ((__vector long long) r)[0];
  #else
!   __m64_union m1, m2, res;
!   long i;
! 
!   m1.as_m64 = __A;
!   m2.as_m64 = __B;
  
  
!   for (i = 0; i < 8; i++)
!   res.as_char[i] =
!       ((unsigned char) m1.as_char[i] > (unsigned char) m2.as_char[i]) ?
! 	  m1.as_char[i] : m2.as_char[i];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 1468,1494 ----
  _mm_max_pu8 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector unsigned char __a, __b, __r;
!   __vector __bool char __c;
  
!   __a = (__vector unsigned char)vec_splats (__A);
!   __b = (__vector unsigned char)vec_splats (__B);
!   __c = (__vector __bool char)vec_cmpgt (__a, __b);
!   __r = vec_sel (__b, __a, __c);
!   return (__m64) ((__vector long long) __r)[0];
  #else
!   __m64_union __m1, __m2, __res;
!   long __i;
  
+   __m1.as_m64 = __A;
+   __m2.as_m64 = __B;
  
!   for (__i = 0; __i < 8; __i++)
!     __res.as_char[__i] =
!       ((unsigned char) __m1.as_char[__i] > (unsigned char) __m2.as_char[__i]) ?
! 	  __m1.as_char[__i] : __m2.as_char[__i];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 1504,1533 ****
  _mm_min_pi16 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector signed short a, b, r;
!   __vector __bool short c;
  
!   a = (__vector signed short)vec_splats (__A);
!   b = (__vector signed short)vec_splats (__B);
!   c = (__vector __bool short)vec_cmplt (a, b);
!   r = vec_sel (b, a, c);
!   return (__m64) ((__vector long long) r)[0];
  #else
!   __m64_union m1, m2, res;
  
!   m1.as_m64 = __A;
!   m2.as_m64 = __B;
  
!   res.as_short[0] =
!       (m1.as_short[0] < m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0];
!   res.as_short[1] =
!       (m1.as_short[1] < m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1];
!   res.as_short[2] =
!       (m1.as_short[2] < m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2];
!   res.as_short[3] =
!       (m1.as_short[3] < m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 1503,1532 ----
  _mm_min_pi16 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector signed short __a, __b, __r;
!   __vector __bool short __c;
  
!   __a = (__vector signed short)vec_splats (__A);
!   __b = (__vector signed short)vec_splats (__B);
!   __c = (__vector __bool short)vec_cmplt (__a, __b);
!   __r = vec_sel (__b, __a, __c);
!   return (__m64) ((__vector long long) __r)[0];
  #else
!   __m64_union __m1, __m2, __res;
  
!   __m1.as_m64 = __A;
!   __m2.as_m64 = __B;
  
!   __res.as_short[0] =
!       (__m1.as_short[0] < __m2.as_short[0]) ? __m1.as_short[0] : __m2.as_short[0];
!   __res.as_short[1] =
!       (__m1.as_short[1] < __m2.as_short[1]) ? __m1.as_short[1] : __m2.as_short[1];
!   __res.as_short[2] =
!       (__m1.as_short[2] < __m2.as_short[2]) ? __m1.as_short[2] : __m2.as_short[2];
!   __res.as_short[3] =
!       (__m1.as_short[3] < __m2.as_short[3]) ? __m1.as_short[3] : __m2.as_short[3];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline __m64 __attribute__((__g
*** 1542,1569 ****
  _mm_min_pu8 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector unsigned char a, b, r;
!   __vector __bool char c;
  
!   a = (__vector unsigned char)vec_splats (__A);
!   b = (__vector unsigned char)vec_splats (__B);
!   c = (__vector __bool char)vec_cmplt (a, b);
!   r = vec_sel (b, a, c);
!   return (__m64) ((__vector long long) r)[0];
  #else
!   __m64_union m1, m2, res;
!   long i;
  
!   m1.as_m64 = __A;
!   m2.as_m64 = __B;
  
  
!   for (i = 0; i < 8; i++)
!   res.as_char[i] =
!       ((unsigned char) m1.as_char[i] < (unsigned char) m2.as_char[i]) ?
! 	  m1.as_char[i] : m2.as_char[i];
  
!   return (__m64) res.as_m64;
  #endif
  }
  
--- 1541,1568 ----
  _mm_min_pu8 (__m64 __A, __m64 __B)
  {
  #if _ARCH_PWR8
!   __vector unsigned char __a, __b, __r;
!   __vector __bool char __c;
  
!   __a = (__vector unsigned char)vec_splats (__A);
!   __b = (__vector unsigned char)vec_splats (__B);
!   __c = (__vector __bool char)vec_cmplt (__a, __b);
!   __r = vec_sel (__b, __a, __c);
!   return (__m64) ((__vector long long) __r)[0];
  #else
!   __m64_union __m1, __m2, __res;
!   long __i;
  
!   __m1.as_m64 = __A;
!   __m2.as_m64 = __B;
  
  
!   for (__i = 0; __i < 8; __i++)
!     __res.as_char[__i] =
!       ((unsigned char) __m1.as_char[__i] < (unsigned char) __m2.as_char[__i]) ?
! 	  __m1.as_char[__i] : __m2.as_char[__i];
  
!   return (__m64) __res.as_m64;
  #endif
  }
  
*************** extern __inline int __attribute__((__gnu
*** 1578,1601 ****
  _mm_movemask_pi8 (__m64 __A)
  {
  #ifdef __powerpc64__
!   unsigned long long p =
  #ifdef __LITTLE_ENDIAN__
                           0x0008101820283038UL; // permute control for sign bits
  #else
                           0x3830282018100800UL; // permute control for sign bits
  #endif
!   return __builtin_bpermd (p, __A);
  #else
  #ifdef __LITTLE_ENDIAN__
!   unsigned int mask = 0x20283038UL;
!   unsigned int r1 = __builtin_bpermd (mask, __A) & 0xf;
!   unsigned int r2 = __builtin_bpermd (mask, __A >> 32) & 0xf;
  #else
!   unsigned int mask = 0x38302820UL;
!   unsigned int r1 = __builtin_bpermd (mask, __A >> 32) & 0xf;
!   unsigned int r2 = __builtin_bpermd (mask, __A) & 0xf;
  #endif
!   return (r2 << 4) | r1;
  #endif
  }
  
--- 1577,1600 ----
  _mm_movemask_pi8 (__m64 __A)
  {
  #ifdef __powerpc64__
!   unsigned long long __p =
  #ifdef __LITTLE_ENDIAN__
                           0x0008101820283038UL; // permute control for sign bits
  #else
                           0x3830282018100800UL; // permute control for sign bits
  #endif
!   return __builtin_bpermd (__p, __A);
  #else
  #ifdef __LITTLE_ENDIAN__
!   unsigned int __mask = 0x20283038UL;
!   unsigned int __r1 = __builtin_bpermd (__mask, __A) & 0xf;
!   unsigned int __r2 = __builtin_bpermd (__mask, __A >> 32) & 0xf;
  #else
!   unsigned int __mask = 0x38302820UL;
!   unsigned int __r1 = __builtin_bpermd (__mask, __A >> 32) & 0xf;
!   unsigned int __r2 = __builtin_bpermd (__mask, __A) & 0xf;
  #endif
!   return (__r2 << 4) | __r1;
  #endif
  }
  
*************** _m_pmovmskb (__m64 __A)
*** 1610,1619 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_pu16 (__m64 __A, __m64 __B)
  {
!   __vector unsigned short a, b;
!   __vector unsigned short c;
!   __vector unsigned int w0, w1;
!   __vector unsigned char xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
--- 1609,1618 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_mulhi_pu16 (__m64 __A, __m64 __B)
  {
!   __vector unsigned short __a, __b;
!   __vector unsigned short __c;
!   __vector unsigned int __w0, __w1;
!   __vector unsigned char __xform1 = {
  #ifdef __LITTLE_ENDIAN__
        0x02, 0x03, 0x12, 0x13,  0x06, 0x07, 0x16, 0x17,
        0x0A, 0x0B, 0x1A, 0x1B,  0x0E, 0x0F, 0x1E, 0x1F
*************** _mm_mulhi_pu16 (__m64 __A, __m64 __B)
*** 1623,1636 ****
  #endif
      };
  
!   a = (__vector unsigned short)vec_splats (__A);
!   b = (__vector unsigned short)vec_splats (__B);
  
!   w0 = vec_vmuleuh (a, b);
!   w1 = vec_vmulouh (a, b);
!   c = (__vector unsigned short)vec_perm (w0, w1, xform1);
  
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1622,1635 ----
  #endif
      };
  
!   __a = (__vector unsigned short)vec_splats (__A);
!   __b = (__vector unsigned short)vec_splats (__B);
  
!   __w0 = vec_vmuleuh (__a, __b);
!   __w1 = vec_vmulouh (__a, __b);
!   __c = (__vector unsigned short)vec_perm (__w0, __w1, __xform1);
  
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pmulhuw (__m64 __A, __m64 __B)
*** 1644,1654 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shuffle_pi16 (__m64 __A, int const __N)
  {
!   unsigned long element_selector_10 = __N & 0x03;
!   unsigned long element_selector_32 = (__N >> 2) & 0x03;
!   unsigned long element_selector_54 = (__N >> 4) & 0x03;
!   unsigned long element_selector_76 = (__N >> 6) & 0x03;
!   static const unsigned short permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	      0x0908, 0x0B0A, 0x0D0C, 0x0F0E
--- 1643,1653 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_shuffle_pi16 (__m64 __A, int const __N)
  {
!   unsigned long __element_selector_10 = __N & 0x03;
!   unsigned long __element_selector_32 = (__N >> 2) & 0x03;
!   unsigned long __element_selector_54 = (__N >> 4) & 0x03;
!   unsigned long __element_selector_76 = (__N >> 6) & 0x03;
!   static const unsigned short __permute_selectors[4] =
      {
  #ifdef __LITTLE_ENDIAN__
  	      0x0908, 0x0B0A, 0x0D0C, 0x0F0E
*************** _mm_shuffle_pi16 (__m64 __A, int const _
*** 1656,1679 ****
  	      0x0607, 0x0405, 0x0203, 0x0001
  #endif
      };
!   __m64_union t;
!   __vector unsigned long long a, p, r;
  
  #ifdef __LITTLE_ENDIAN__
!   t.as_short[0] = permute_selectors[element_selector_10];
!   t.as_short[1] = permute_selectors[element_selector_32];
!   t.as_short[2] = permute_selectors[element_selector_54];
!   t.as_short[3] = permute_selectors[element_selector_76];
  #else
!   t.as_short[3] = permute_selectors[element_selector_10];
!   t.as_short[2] = permute_selectors[element_selector_32];
!   t.as_short[1] = permute_selectors[element_selector_54];
!   t.as_short[0] = permute_selectors[element_selector_76];
  #endif
!   p = vec_splats (t.as_m64);
!   a = vec_splats (__A);
!   r = vec_perm (a, a, (__vector unsigned char)p);
!   return (__m64) ((__vector long long) r)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1655,1678 ----
  	      0x0607, 0x0405, 0x0203, 0x0001
  #endif
      };
!   __m64_union __t;
!   __vector unsigned long long __a, __p, __r;
  
  #ifdef __LITTLE_ENDIAN__
!   __t.as_short[0] = __permute_selectors[__element_selector_10];
!   __t.as_short[1] = __permute_selectors[__element_selector_32];
!   __t.as_short[2] = __permute_selectors[__element_selector_54];
!   __t.as_short[3] = __permute_selectors[__element_selector_76];
  #else
!   __t.as_short[3] = __permute_selectors[__element_selector_10];
!   __t.as_short[2] = __permute_selectors[__element_selector_32];
!   __t.as_short[1] = __permute_selectors[__element_selector_54];
!   __t.as_short[0] = __permute_selectors[__element_selector_76];
  #endif
!   __p = vec_splats (__t.as_m64);
!   __a = vec_splats (__A);
!   __r = vec_perm (__a, __a, (__vector unsigned char)__p);
!   return (__m64) ((__vector long long) __r)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pshufw (__m64 __A, int const __N)
*** 1688,1701 ****
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P)
  {
!   __m64 hibit = 0x8080808080808080UL;
!   __m64 mask, tmp;
!   __m64 *p = (__m64*)__P;
  
!   tmp = *p;
!   mask = _mm_cmpeq_pi8 ((__N & hibit), hibit);
!   tmp = (tmp & (~mask)) | (__A & mask);
!   *p = tmp;
  }
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1687,1700 ----
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P)
  {
!   __m64 __hibit = 0x8080808080808080UL;
!   __m64 __mask, __tmp;
!   __m64 *__p = (__m64*)__P;
  
!   __tmp = *__p;
!   __mask = _mm_cmpeq_pi8 ((__N & __hibit), __hibit);
!   __tmp = (__tmp & (~__mask)) | (__A & __mask);
!   *__p = __tmp;
  }
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_maskmovq (__m64 __A, __m64 __N, char
*** 1708,1719 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_avg_pu8 (__m64 __A, __m64 __B)
  {
!   __vector unsigned char a, b, c;
  
!   a = (__vector unsigned char)vec_splats (__A);
!   b = (__vector unsigned char)vec_splats (__B);
!   c = vec_avg (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1707,1718 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_avg_pu8 (__m64 __A, __m64 __B)
  {
!   __vector unsigned char __a, __b, __c;
  
!   __a = (__vector unsigned char)vec_splats (__A);
!   __b = (__vector unsigned char)vec_splats (__B);
!   __c = vec_avg (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pavgb (__m64 __A, __m64 __B)
*** 1726,1737 ****
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_avg_pu16 (__m64 __A, __m64 __B)
  {
!   __vector unsigned short a, b, c;
  
!   a = (__vector unsigned short)vec_splats (__A);
!   b = (__vector unsigned short)vec_splats (__B);
!   c = vec_avg (a, b);
!   return (__m64) ((__vector long long) c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1725,1736 ----
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_avg_pu16 (__m64 __A, __m64 __B)
  {
!   __vector unsigned short __a, __b, __c;
  
!   __a = (__vector unsigned short)vec_splats (__A);
!   __b = (__vector unsigned short)vec_splats (__B);
!   __c = vec_avg (__a, __b);
!   return (__m64) ((__vector long long) __c)[0];
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
*************** _m_pavgw (__m64 __A, __m64 __B)
*** 1746,1771 ****
  extern __inline    __m64    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sad_pu8 (__m64  __A, __m64  __B)
  {
!   __vector unsigned char a, b;
!   __vector unsigned char vmin, vmax, vabsdiff;
!   __vector signed int vsum;
!   const __vector unsigned int zero =
      { 0, 0, 0, 0 };
!   __m64_union result = {0};
  
!   a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A };
!   b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B };
!   vmin = vec_min (a, b);
!   vmax = vec_max (a, b);
!   vabsdiff = vec_sub (vmax, vmin);
    /* Sum four groups of bytes into integers.  */
!   vsum = (__vector signed int) vec_sum4s (vabsdiff, zero);
    /* Sum across four integers with integer result.  */
!   vsum = vec_sums (vsum, (__vector signed int) zero);
    /* The sum is in the right most 32-bits of the vector result.
       Transfer to a GPR and truncate to 16 bits.  */
!   result.as_short[0] = vsum[3];
!   return result.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1745,1770 ----
  extern __inline    __m64    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_sad_pu8 (__m64  __A, __m64  __B)
  {
!   __vector unsigned char __a, __b;
!   __vector unsigned char __vmin, __vmax, __vabsdiff;
!   __vector signed int __vsum;
!   const __vector unsigned int __zero =
      { 0, 0, 0, 0 };
!   __m64_union __result = {0};
  
!   __a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A };
!   __b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B };
!   __vmin = vec_min (__a, __b);
!   __vmax = vec_max (__a, __b);
!   __vabsdiff = vec_sub (__vmax, __vmin);
    /* Sum four groups of bytes into integers.  */
!   __vsum = (__vector signed int) vec_sum4s (__vabsdiff, __zero);
    /* Sum across four integers with integer result.  */
!   __vsum = vec_sums (__vsum, (__vector signed int) __zero);
    /* The sum is in the right most 32-bits of the vector result.
       Transfer to a GPR and truncate to 16 bits.  */
!   __result.as_short[0] = __vsum[3];
!   return __result.as_m64;
  }
  
  extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
diff -Nrcpad gcc-11.3.0/gcc/config/s390/s390.c gcc-11.4.0/gcc/config/s390/s390.c
*** gcc-11.3.0/gcc/config/s390/s390.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/s390/s390.c	Mon May 29 08:46:29 2023
*************** s390_call_saved_register_used (tree call
*** 13679,13714 ****
        function_arg_info arg (TREE_TYPE (parameter), /*named=*/true);
        apply_pass_by_reference_rules (&cum_v, arg);
  
!        parm_rtx = s390_function_arg (cum, arg);
! 
!        s390_function_arg_advance (cum, arg);
  
!        if (!parm_rtx)
! 	 continue;
  
!        if (REG_P (parm_rtx))
! 	 {
! 	   for (reg = 0; reg < REG_NREGS (parm_rtx); reg++)
! 	     if (!call_used_or_fixed_reg_p (reg + REGNO (parm_rtx)))
! 	       return true;
! 	 }
  
!        if (GET_CODE (parm_rtx) == PARALLEL)
! 	 {
! 	   int i;
  
! 	   for (i = 0; i < XVECLEN (parm_rtx, 0); i++)
! 	     {
! 	       rtx r = XEXP (XVECEXP (parm_rtx, 0, i), 0);
  
! 	       gcc_assert (REG_P (r));
  
! 	       for (reg = 0; reg < REG_NREGS (r); reg++)
! 		 if (!call_used_or_fixed_reg_p (reg + REGNO (r)))
! 		   return true;
! 	     }
! 	 }
  
      }
    return false;
  }
--- 13679,13715 ----
        function_arg_info arg (TREE_TYPE (parameter), /*named=*/true);
        apply_pass_by_reference_rules (&cum_v, arg);
  
!       parm_rtx = s390_function_arg (cum, arg);
  
!       s390_function_arg_advance (cum, arg);
  
!       if (!parm_rtx)
! 	continue;
  
!       if (REG_P (parm_rtx))
! 	{
! 	  int size = s390_function_arg_size (arg.mode, arg.type);
! 	  int nregs = (size + UNITS_PER_LONG - 1) / UNITS_PER_LONG;
  
! 	  for (reg = 0; reg < nregs; reg++)
! 	    if (!call_used_or_fixed_reg_p (reg + REGNO (parm_rtx)))
! 	      return true;
! 	}
!       else if (GET_CODE (parm_rtx) == PARALLEL)
! 	{
! 	  int i;
  
! 	  for (i = 0; i < XVECLEN (parm_rtx, 0); i++)
! 	    {
! 	      rtx r = XEXP (XVECEXP (parm_rtx, 0, i), 0);
  
! 	      gcc_assert (REG_P (r));
! 	      gcc_assert (REG_NREGS (r) == 1);
  
+ 	      if (!call_used_or_fixed_reg_p (REGNO (r)))
+ 		return true;
+ 	    }
+ 	}
      }
    return false;
  }
diff -Nrcpad gcc-11.3.0/gcc/config/sparc/sparc.c gcc-11.4.0/gcc/config/sparc/sparc.c
*** gcc-11.3.0/gcc/config/sparc/sparc.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/sparc/sparc.c	Mon May 29 08:46:29 2023
*************** sparc_expand_prologue (void)
*** 6122,6127 ****
--- 6122,6130 ----
  	}
  
        RTX_FRAME_RELATED_P (insn) = 1;
+ 
+       /* Ensure no memory access is done before the frame is established.  */
+       emit_insn (gen_frame_blockage ());
      }
    else
      {
*************** sparc_expand_prologue (void)
*** 6136,6148 ****
  	  /* %sp is not the CFA register anymore.  */
  	  emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));
  
! 	  /* Make sure no %fp-based store is issued until after the frame is
! 	     established.  The offset between the frame pointer and the stack
! 	     pointer is calculated relative to the value of the stack pointer
! 	     at the end of the function prologue, and moving instructions that
! 	     access the stack via the frame pointer between the instructions
! 	     that decrement the stack pointer could result in accessing the
! 	     register window save area, which is volatile.  */
  	  emit_insn (gen_frame_blockage ());
  	}
        else
--- 6139,6145 ----
  	  /* %sp is not the CFA register anymore.  */
  	  emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));
  
! 	  /* Likewise.  */
  	  emit_insn (gen_frame_blockage ());
  	}
        else
*************** sparc_flat_expand_prologue (void)
*** 6238,6245 ****
  	}
        RTX_FRAME_RELATED_P (insn) = 1;
  
!       /* Ensure nothing is scheduled until after the frame is established.  */
!       emit_insn (gen_blockage ());
  
        if (frame_pointer_needed)
  	{
--- 6235,6242 ----
  	}
        RTX_FRAME_RELATED_P (insn) = 1;
  
!       /* Ensure no memory access is done before the frame is established.  */
!       emit_insn (gen_frame_blockage ());
  
        if (frame_pointer_needed)
  	{
*************** sparc_expand_epilogue (bool for_eh)
*** 6326,6331 ****
--- 6323,6331 ----
      ; /* do nothing.  */
    else if (sparc_leaf_function_p)
      {
+       /* Ensure no memory access is done after the frame is destroyed.  */
+       emit_insn (gen_frame_blockage ());
+ 
        if (size <= 4096)
  	emit_insn (gen_stack_pointer_inc (GEN_INT (size)));
        else if (size <= 8192)
*************** sparc_flat_expand_epilogue (bool for_eh)
*** 6376,6390 ****
      ; /* do nothing.  */
    else if (frame_pointer_needed)
      {
!       /* Make sure the frame is destroyed after everything else is done.  */
!       emit_insn (gen_blockage ());
  
        emit_move_insn (stack_pointer_rtx, gen_rtx_REG (Pmode, 1));
      }
    else
      {
        /* Likewise.  */
!       emit_insn (gen_blockage ());
  
        if (size <= 4096)
  	emit_insn (gen_stack_pointer_inc (GEN_INT (size)));
--- 6376,6390 ----
      ; /* do nothing.  */
    else if (frame_pointer_needed)
      {
!       /* Ensure no memory access is done after the frame is destroyed.  */
!       emit_insn (gen_frame_blockage ());
  
        emit_move_insn (stack_pointer_rtx, gen_rtx_REG (Pmode, 1));
      }
    else
      {
        /* Likewise.  */
!       emit_insn (gen_frame_blockage ());
  
        if (size <= 4096)
  	emit_insn (gen_stack_pointer_inc (GEN_INT (size)));
*************** epilogue_renumber (rtx *where, int test)
*** 8956,8963 ****
        if (REGNO (*where) >= 8 && REGNO (*where) < 24)      /* oX or lX */
  	return 1;
        if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32)
! 	*where = gen_rtx_REG (GET_MODE (*where), OUTGOING_REGNO (REGNO(*where)));
!       /* fallthrough */
      case SCRATCH:
      case CC0:
      case PC:
--- 8956,8975 ----
        if (REGNO (*where) >= 8 && REGNO (*where) < 24)      /* oX or lX */
  	return 1;
        if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32)
! 	{
! 	  if (ORIGINAL_REGNO (*where))
! 	    {
! 	      rtx n = gen_raw_REG (GET_MODE (*where),
! 				   OUTGOING_REGNO (REGNO (*where)));
! 	      ORIGINAL_REGNO (n) = ORIGINAL_REGNO (*where);
! 	      *where = n;
! 	    }
! 	  else
! 	    *where = gen_rtx_REG (GET_MODE (*where),
! 				  OUTGOING_REGNO (REGNO (*where)));
! 	}
!       return 0;
! 
      case SCRATCH:
      case CC0:
      case PC:
*************** sparc_vectorize_vec_perm_const (machine_
*** 13074,13082 ****
    if (!TARGET_VIS2)
      return false;
  
!   /* All permutes are supported.  */
    if (!target)
!     return true;
  
    /* Force target-independent code to convert constant permutations on other
       modes down to V8QI.  Rely on this to avoid the complexity of the byte
--- 13086,13094 ----
    if (!TARGET_VIS2)
      return false;
  
!   /* All 8-byte permutes are supported.  */
    if (!target)
!     return GET_MODE_SIZE (vmode) == 8;
  
    /* Force target-independent code to convert constant permutations on other
       modes down to V8QI.  Rely on this to avoid the complexity of the byte
*************** sparc_expand_conditional_move (machine_m
*** 13693,13710 ****
  void
  sparc_expand_vcond (machine_mode mode, rtx *operands, int ccode, int fcode)
  {
    rtx mask, cop0, cop1, fcmp, cmask, bshuf, gsr;
-   enum rtx_code code = GET_CODE (operands[3]);
  
    mask = gen_reg_rtx (Pmode);
    cop0 = operands[4];
    cop1 = operands[5];
    if (code == LT || code == GE)
      {
-       rtx t;
- 
        code = swap_condition (code);
!       t = cop0; cop0 = cop1; cop1 = t;
      }
  
    gsr = gen_rtx_REG (DImode, SPARC_GSR_REG);
--- 13705,13720 ----
  void
  sparc_expand_vcond (machine_mode mode, rtx *operands, int ccode, int fcode)
  {
+   enum rtx_code code = signed_condition (GET_CODE (operands[3]));
    rtx mask, cop0, cop1, fcmp, cmask, bshuf, gsr;
  
    mask = gen_reg_rtx (Pmode);
    cop0 = operands[4];
    cop1 = operands[5];
    if (code == LT || code == GE)
      {
        code = swap_condition (code);
!       std::swap (cop0, cop1);
      }
  
    gsr = gen_rtx_REG (DImode, SPARC_GSR_REG);
diff -Nrcpad gcc-11.3.0/gcc/config/sparc/sparc.md gcc-11.4.0/gcc/config/sparc/sparc.md
*** gcc-11.3.0/gcc/config/sparc/sparc.md	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/sparc/sparc.md	Mon May 29 08:46:29 2023
*************** visl")
*** 9033,9038 ****
--- 9033,9082 ----
    DONE;
  })
  
+ (define_expand "vcondv8qiv8qi"
+   [(match_operand:V8QI 0 "register_operand" "")
+    (match_operand:V8QI 1 "register_operand" "")
+    (match_operand:V8QI 2 "register_operand" "")
+    (match_operator 3 ""
+      [(match_operand:V8QI 4 "register_operand" "")
+       (match_operand:V8QI 5 "register_operand" "")])]
+   "TARGET_VIS4"
+ {
+   sparc_expand_vcond (V8QImode, operands, UNSPEC_CMASK8, UNSPEC_FCMP);
+   DONE;
+ })
+ 
+ (define_insn "fucmp<gcond:code>8<P:mode>_vis"
+   [(set (match_operand:P 0 "register_operand" "=r")
+ 	(unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e")
+ 		               (match_operand:V8QI 2 "register_operand" "e"))]
+ 	 UNSPEC_FUCMP))]
+   "TARGET_VIS3"
+   "fucmp<gcond:code>8\t%1, %2, %0"
+   [(set_attr "type" "viscmp")])
+ 
+ (define_insn "fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"
+   [(set (match_operand:P 0 "register_operand" "=r")
+ 	(unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e")
+ 		              (match_operand:GCM 2 "register_operand" "e"))]
+ 	 UNSPEC_FUCMP))]
+   "TARGET_VIS4"
+   "fpcmpu<gcond:code><GCM:gcm_name>\t%1, %2, %0"
+   [(set_attr "type" "viscmp")])
+ 
+ (define_expand "vcondu<GCM:mode><GCM:mode>"
+   [(match_operand:GCM 0 "register_operand" "")
+    (match_operand:GCM 1 "register_operand" "")
+    (match_operand:GCM 2 "register_operand" "")
+    (match_operator 3 ""
+      [(match_operand:GCM 4 "register_operand" "")
+       (match_operand:GCM 5 "register_operand" "")])]
+   "TARGET_VIS4"
+ {
+   sparc_expand_vcond (<MODE>mode, operands, UNSPEC_CMASK<gcm_name>, UNSPEC_FUCMP);
+   DONE;
+ })
+ 
  (define_expand "vconduv8qiv8qi"
    [(match_operand:V8QI 0 "register_operand" "")
     (match_operand:V8QI 1 "register_operand" "")
*************** visl")
*** 9351,9374 ****
   [(set_attr "type" "fga")
    (set_attr "subtype" "other")])
  
- (define_insn "fucmp<gcond:code>8<P:mode>_vis"
-   [(set (match_operand:P 0 "register_operand" "=r")
- 	(unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e")
- 		               (match_operand:V8QI 2 "register_operand" "e"))]
- 	 UNSPEC_FUCMP))]
-   "TARGET_VIS3"
-   "fucmp<gcond:code>8\t%1, %2, %0"
-   [(set_attr "type" "viscmp")])
- 
- (define_insn "fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"
-   [(set (match_operand:P 0 "register_operand" "=r")
- 	(unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e")
- 		              (match_operand:GCM 2 "register_operand" "e"))]
- 	 UNSPEC_FUCMP))]
-   "TARGET_VIS4"
-   "fpcmpu<gcond:code><GCM:gcm_name>\t%1, %2, %0"
-   [(set_attr "type" "viscmp")])
- 
  (define_insn "*naddsf3"
    [(set (match_operand:SF 0 "register_operand" "=f")
          (neg:SF (plus:SF (match_operand:SF 1 "register_operand" "f")
--- 9395,9400 ----
diff -Nrcpad gcc-11.3.0/gcc/config/tilepro/gen-mul-tables.cc gcc-11.4.0/gcc/config/tilepro/gen-mul-tables.cc
*** gcc-11.3.0/gcc/config/tilepro/gen-mul-tables.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/tilepro/gen-mul-tables.cc	Mon May 29 08:46:29 2023
*************** tilegx_emit (long long multiplier, int n
*** 1190,1200 ****
      long long next_pow10;
  
      while (((j * 10) < abs_multiplier)
! 	   && (j < (INTMAX_MAX / 10)))
        j = j * 10;
  
      prev_pow10 = j;
!     next_pow10 = (j > (INTMAX_MAX / 10)) ? 0 : j * 10;
  
      if ((abs_multiplier - prev_pow10 <= 100)
  	|| (next_pow10
--- 1190,1200 ----
      long long next_pow10;
  
      while (((j * 10) < abs_multiplier)
! 	   && (j < (j * 10)))
        j = j * 10;
  
      prev_pow10 = j;
!     next_pow10 = j * 10;
  
      if ((abs_multiplier - prev_pow10 <= 100)
  	|| (next_pow10
diff -Nrcpad gcc-11.3.0/gcc/config/xtensa/xtensa.md gcc-11.4.0/gcc/config/xtensa/xtensa.md
*** gcc-11.3.0/gcc/config/xtensa/xtensa.md	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/config/xtensa/xtensa.md	Mon May 29 08:46:29 2023
***************
*** 754,764 ****
  	 because of offering further optimization opportunities.  */
        if (register_operand (operands[0], DImode))
  	{
! 	  rtx first, second;
  
! 	  split_double (operands[1], &first, &second);
! 	  emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), first));
! 	  emit_insn (gen_movsi (gen_highpart (SImode, operands[0]), second));
  	  DONE;
  	}
  
--- 754,767 ----
  	 because of offering further optimization opportunities.  */
        if (register_operand (operands[0], DImode))
  	{
! 	  rtx lowpart, highpart;
  
! 	  if (TARGET_BIG_ENDIAN)
! 	    split_double (operands[1], &highpart, &lowpart);
! 	  else
! 	    split_double (operands[1], &lowpart, &highpart);
! 	  emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), lowpart));
! 	  emit_insn (gen_movsi (gen_highpart (SImode, operands[0]), highpart));
  	  DONE;
  	}
  
diff -Nrcpad gcc-11.3.0/gcc/config.gcc gcc-11.4.0/gcc/config.gcc
*** gcc-11.3.0/gcc/config.gcc	Thu Apr 21 07:58:52 2022
--- gcc-11.4.0/gcc/config.gcc	Mon May 29 08:46:29 2023
*************** case ${target} in
*** 699,704 ****
--- 699,718 ----
      macos_min=0
    fi
    def_ld64=85.2
+   # Tools hosted on earlier versions of Darwin constrained all object
+   # alignment to be 2^15 or smaller.  From Darwin11 (macOS 10.7) the
+   # alignment of non-common is allowed to be up to 2^28.  Note that the
+   # larger alignment is permitted when targeting 10.6 from 10.7 so that
+   # the constraint only need be applied per host (and only if the host
+   # is Darwin).
+   case ${host} in
+       *-*-darwin[4-9]* | *-*-darwin10*)
+           tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U"
+           ;;
+       *)
+           tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U"
+           ;;
+   esac
    case ${target} in
        # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
        *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
*************** hppa[12]*-*-hpux11*)
*** 1872,1878 ****
  		dwarf2=no
  	fi
  	;;
! i[34567]86-*-darwin1[89]*)
  	echo "Error: 32bit target is not supported after Darwin17" 1>&2
  	;;
  i[34567]86-*-darwin*)
--- 1886,1892 ----
  		dwarf2=no
  	fi
  	;;
! i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*)
  	echo "Error: 32bit target is not supported after Darwin17" 1>&2
  	;;
  i[34567]86-*-darwin*)
*************** i[34567]86-*-darwin*)
*** 1882,1888 ****
  	tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
  	tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
  	;;
! x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
  	# Only 64b from now
  	with_cpu=${with_cpu:-core2}
  	tmake_file="${tmake_file} t-slibgcc"
--- 1896,1902 ----
  	tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
  	tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
  	;;
! x86_64-*-darwin1[89]* | x86_64-*-darwin2*)
  	# Only 64b from now
  	with_cpu=${with_cpu:-core2}
  	tmake_file="${tmake_file} t-slibgcc"
diff -Nrcpad gcc-11.3.0/gcc/configure gcc-11.4.0/gcc/configure
*** gcc-11.3.0/gcc/configure	Thu Apr 21 07:59:35 2022
--- gcc-11.4.0/gcc/configure	Mon May 29 08:46:29 2023
*************** $as_echo "$as_me: WARNING: LTO for $targ
*** 27016,27022 ****
  	;;
      esac
      case $target_os in
!        darwin2[0-9]* | darwin19*)
          { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5
  $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; }
  if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then :
--- 27016,27022 ----
  	;;
      esac
      case $target_os in
!        darwin2* | darwin19*)
          { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5
  $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; }
  if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then :
diff -Nrcpad gcc-11.3.0/gcc/configure.ac gcc-11.4.0/gcc/configure.ac
*** gcc-11.3.0/gcc/configure.ac	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/configure.ac	Mon May 29 08:46:29 2023
*************** foo:	nop
*** 4772,4778 ****
  	;;
      esac
      case $target_os in
!        darwin2[[0-9]]* | darwin19*)
          gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option],
            gcc_cv_as_mllvm_x86_pad_for_align,,
            [-mllvm -x86-pad-for-align=false], [.text],,
--- 4772,4778 ----
  	;;
      esac
      case $target_os in
!        darwin2* | darwin19*)
          gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option],
            gcc_cv_as_mllvm_x86_pad_for_align,,
            [-mllvm -x86-pad-for-align=false], [.text],,
diff -Nrcpad gcc-11.3.0/gcc/cp/ChangeLog gcc-11.4.0/gcc/cp/ChangeLog
*** gcc-11.3.0/gcc/cp/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/cp/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,542 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/108998
+ 	* pt.c (el_data::skipped_trees): New data member.
+ 	(extract_locals_r): Push to skipped_trees any unevaluated
+ 	contexts that we skipped over.
+ 	(extract_local_specs): For the second walk, start from each
+ 	tree in skipped_trees.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/100295
+ 	PR c++/107579
+ 	* pt.c (el_data::skip_unevaluated_operands): New data member.
+ 	(extract_locals_r): If skip_unevaluated_operands is true,
+ 	don't walk into unevaluated contexts.
+ 	(extract_local_specs): Walk the pattern twice, first with
+ 	skip_unevaluated_operands true followed by it set to false.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-29  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/107864
+ 	* decl.c (function_requirements_equivalent_p): Don't check
+ 	DECL_TEMPLATE_SPECIALIZATION.
+ 	* pt.c (determine_specialization): Propagate constraints when
+ 	specializing a function template too.  Simplify by using
+ 	add_outermost_template_args.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/107179
+ 	* constraint.cc (tsubst_requires_expr): Make sure we're not
+ 	deferring access checks.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/100474
+ 	* constraint.cc (diagnose_trait_expr): Handle all remaining
+ 	traits appropriately.  Remove default case.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-03-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/104527
+ 	* constraint.cc (normalize_atom): Set
+ 	ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P appropriately.
+ 	(get_mapped_args):  Make static, adjust parameters.  Always
+ 	return a vector whose depth corresponds to the template depth of
+ 	the context of the atomic constraint expression.  Micro-optimize
+ 	by passing false as exact to safe_grow_cleared and by collapsing
+ 	a multi-level depth-one argument vector.
+ 	(satisfy_atom): Adjust call to get_mapped_args and
+ 	diagnose_atomic_constraint.
+ 	(diagnose_atomic_constraint): Replace map parameter with an args
+ 	parameter.
+ 	* cp-tree.h (ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P): Define.
+ 	(get_mapped_args): Remove declaration.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-28  Patrick Palka  <ppalka@redhat.com>
+ 		    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/92752
+ 	* typeck.c (build_ptrmemfunc): Cast a nullptr constant to the
+ 	unqualified pointer type not the qualified one.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2023-04-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* coroutines.cc (coro_rewrite_function_body): Ensure that added
+ 	bind expressions have scope blocks.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2023-04-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/101118
+ 	* coroutines.cc (flatten_await_stmt): Use the current count of
+ 	promoted temporaries to build a unique name for the frame entries.
+ 
+ 2023-05-09  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106740
+ 	PR c++/105852
+ 	* decl.c (duplicate_decls): Change non-templated friend
+ 	check to an assert.
+ 	* pt.c	(tsubst_function_decl): Don't set DECL_TEMPLATE_INFO
+ 	on non-templated friends.
+ 	(tsubst_friend_function): Adjust.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* Make-lang.in (s-cp-module-version): New target.
+ 	(cp/module.o): Depend on it.
+ 	(MODULE_VERSION): Remove variable.
+ 	(CFLAGS-cp/module.o): For -DMODULE_VERSION= argument just
+ 	cat s-cp-module-version.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/109164
+ 	* cp-tree.h (var_needs_tls_wrapper): Declare.
+ 	* decl2.c (var_needs_tls_wrapper): No longer static.
+ 	* decl.c (cp_finish_decl): Clear TREE_READONLY on TLS variables
+ 	for which a TLS wrapper will be needed.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/109096
+ 	* tree.c (record_has_unique_obj_representations): Ignore unnamed
+ 	bitfields.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107558
+ 	* decl.c (cp_finish_decl): Don't clear TREE_READONLY on
+ 	automatic non-aggregate variables just because of
+ 	-fmerge-all-constants.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108716
+ 	* cp-gimplify.c (cp_genericize_r) <case USING_STMT>: Set
+ 	DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location
+ 	of USING_STMT or input_location.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108474
+ 	* cp-gimplify.c (cp_fold_r): Handle structured bindings
+ 	vars like anon union artificial vars.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108365
+ 	* typeck.c (cp_build_binary_op): For integral division or modulo,
+ 	shorten if type0 is unsigned, or op0 is cast from narrower unsigned
+ 	integral type or stripped_op1 is INTEGER_CST other than -1.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108607
+ 	* constexpr.c (cxx_eval_constant_expression): Handle OMP_*
+ 	and OACC_* constructs as non-constant.
+ 	(potential_constant_expression_1): Handle OMP_SCAN.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/53932
+ 	* cp-gimplify.c (cp_fold_r): During cp_fully_fold_init replace
+ 	DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding
+ 	DECL_VALUE_EXPR.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108180
+ 	* pt.c (tsubst_expr): Don't call cp_finish_decl on
+ 	DECL_OMP_PRIVATIZED_MEMBER vars.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107065
+ 	* typeck.c (cp_build_unary_op) <case TRUTH_NOT_EXPR>: If
+ 	invert_truthvalue_loc returns obvalue_p, wrap it into NON_LVALUE_EXPR.
+ 	* parser.c (cp_parser_binary_expression): Don't call
+ 	warn_logical_not_parentheses if current.lhs is a NON_LVALUE_EXPR
+ 	of a decl with boolean type.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105996
+ 	* typeck.c (build_ptrmemfunc): Drop 0-offset optimization
+ 	and location wrappers.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/108975
+ 	* lambda.c (prune_lambda_captures): Don't bother in a template.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/69410
+ 	* friend.c (do_friend): Handle namespace as scope argument.
+ 	* decl.c (grokdeclarator): Pass down in_namespace.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/101869
+ 	* semantics.c (finish_qualified_id_expr): Don't try to build a
+ 	pointer-to-member if the scope is an enumeration.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105406
+ 	* coroutines.cc (build_co_await): Handle lvalue 'o'.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/103871
+ 	PR c++/98056
+ 	* typeck.c (cp_build_modify_expr): Allow array initialization of
+ 	DECL_ARTIFICIAL variable.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/108468
+ 	* pt.c (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE
+ 	is non-null.
+ 
+ 2023-03-13  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	PR c++/106188
+ 	PR c++/106713
+ 	* coroutines.cc (coro_rewrite_function_body): Ensure we have a
+ 	BIND_EXPR wrapping the function body.
+ 
+ 2023-02-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/106675
+ 	* call.c (joust_maybe_elide_copy): Return false for ck_ambig.
+ 
+ 2022-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-10-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/102780
+ 	PR c++/108138
+ 	* constexpr.c (potential_constant_expression_1) <case TRUTH_*_EXPR>:
+ 	When tf_error isn't set, preemptively check potentiality of the
+ 	second operand before performing trial evaluation of the first
+ 	operand.
+ 	(potential_constant_expression_1): When tf_error is set, first check
+ 	potentiality quietly and return true if successful, otherwise
+ 	proceed noisily to give errors.
+ 
+ 2022-11-18  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-18  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/104066
+ 	* decl.c (grokdeclarator): Check funcdecl_p before complaining
+ 	about constinit.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/105774
+ 	* constexpr.c (cxx_eval_increment_expression): For signed types
+ 	that promote to int, evaluate PLUS_EXPR or MINUS_EXPR in int type.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* typeck.c (cp_build_modify_expr): Implement
+ 	P2327R1 - De-deprecating volatile compound operations.  Don't warn
+ 	for |=, &= or ^= with volatile lhs.
+ 	* expr.c (mark_use) <case MODIFY_EXPR>: Adjust warning wording,
+ 	leave out simple.
+ 
+ 2022-10-24  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-27  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/105725
+ 	* parser.c (class_decl_loc_t::add): Check CLASS_TYPE_P.
+ 
+ 2022-07-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106361
+ 	* decl.c (move_fn_p): Remove assert.
+ 
+ 2022-07-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106024
+ 	* parser.c (cp_parser_lookup_name): Don't look in dependent lambda.
+ 
+ 2022-06-24  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105925
+ 	* decl.c (reshape_init_array_1): Set
+ 	CONSTRUCTOR_IS_DESIGNATED_INIT here.
+ 	(reshape_init_class): And here.
+ 
+ 2022-06-08  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105852
+ 	PR c++/105761
+ 	* decl.c (duplicate_decls): Avoid copying template info
+ 	from non-templated friend even if newdecl isn't a definition.
+ 	Correct handling of DECL_UNIQUE_FRIEND_P on templates.
+ 	* pt.c (non_templated_friend_p): New.
+ 	* cp-tree.h (non_templated_friend_p): Declare it.
+ 
+ 2022-06-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105761
+ 	* decl.c (duplicate_decls): Don't copy DECL_TEMPLATE_INFO
+ 	from a hidden friend.
+ 
+ 2022-06-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105795
+ 	* constexpr.c (cxx_eval_bare_aggregate): Always call
+ 	init_subob_ctx.
+ 
+ 2022-05-31  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102307
+ 	* decl.c (check_initializer): Use build_cplus_new in case of
+ 	constexpr failure.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/101442
+ 	* decl.c (cp_finish_decl): Don't pass decl to push_cleanup.
+ 	* init.c (perform_member_init): Likewise.
+ 	* semantics.c (push_cleanup): Adjust comment.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/101698
+ 	* pt.c (tsubst_baselink): Also check dependent optype.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/65211
+ 	* pt.c (tsubst_decl) [TYPE_DECL]: Copy TYPE_ALIGN.
+ 
+ 2022-05-13  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/102479
+ 	* pt.c (rewrite_template_parm): Handle single-level tsubst_args.
+ 	Avoid a tree cycle when assigning the DECL_TEMPLATE_PARMS for a
+ 	rewritten ttp.
+ 	(alias_ctad_tweaks): Set current_template_parms accordingly.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102300
+ 	* parser.c (cp_parser_template_name): Use dependent_scope_p.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102629
+ 	* pt.c (gen_elem_of_pack_expansion_instantiation): Clear
+ 	TEMPLATE_TYPE_PARAMETER_PACK on auto.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/104646
+ 	* constexpr.c (maybe_save_constexpr_fundef): Don't do extra
+ 	checks for defaulted ctors.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/82980
+ 	* lambda.c (type_deducible_expression_p): New.
+ 	(lambda_capture_field_type): Check it.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105265
+ 	PR c++/100838
+ 	* call.c (build_user_type_conversion_1): Drop
+ 	flag_elide_constructors check.
+ 	(convert_like_internal): Likewise.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105245
+ 	PR c++/100111
+ 	* constexpr.c (cxx_eval_store_expression): Build a CONSTRUCTOR
+ 	as needed in empty base handling.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/104669
+ 	* decl.c (decls_match): Compare versions even if not recording.
+ 	(duplicate_decls): Propagate attributes to alias.
+ 	* decl2.c (find_last_decl): Give up if versioned.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102071
+ 	* init.c (build_new_1): Include cookie in alignment.  Omit
+ 	constexpr wrapper from alloc_call.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/104142
+ 	* decl.c (check_initializer): Check TREE_SIDE_EFFECTS.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* lambda.c: Include decl.h.
+ 	(maybe_add_lambda_conv_op): Temporarily override deprecated_state to
+ 	DEPRECATED_SUPPRESS.
+ 
+ 2022-04-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/105386
+ 	* semantics.c (finish_decltype_type): Pass tf_decltype to
+ 	instantiate_non_dependent_expr_sfinae.
+ 
+ 2022-04-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/105289
+ 	PR c++/86193
+ 	* pt.c (process_partial_specialization): Downgrade "partial
+ 	specialization isn't more specialized" diagnostic from permerror
+ 	to an on-by-default pedwarn.
+ 	(unify) <case TEMPLATE_PARM_INDEX>: When substituting into the
+ 	NTTP type a second time, use the original type not the
+ 	substituted type.
+ 
+ 2022-04-28  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-28  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/90107
+ 	* parser.c (cp_parser_class_specifier_1): Accept :: after a class
+ 	definition.
+ 
+ 2022-04-27  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-27  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/105398
+ 	* pt.c (uses_template_parms): Return false for any NAMESPACE_DECL.
+ 
+ 2022-04-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-21  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/105321
+ 	* constexpr.c (cxx_eval_logical_expression): Always pass false for lval
+ 	to cxx_eval_constant_expression.
+ 
+ 2022-04-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/97296
+ 	* call.c (direct_reference_binding): strip_top_quals when creating
+ 	a ck_qual.
+ 
+ 2022-04-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2021-12-19  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* module.cc (trees_out::get_merge_kind): NAMESPACE_DECLs also
+ 	cannot have a DECL_TEMPLATE_INFO.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/cp/Make-lang.in gcc-11.4.0/gcc/cp/Make-lang.in
*** gcc-11.3.0/gcc/cp/Make-lang.in	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/Make-lang.in	Mon May 29 08:46:29 2023
*************** CFLAGS-cp/module.o += -DHOST_MACHINE=\"$
*** 59,70 ****
  
  # In non-release builds, use a date-related module version.
  ifneq ($(DEVPHASE_c),)
! # Some date's don't grok 'r', if so, simply use today's
! # date (don't bootstrap at midnight).
! MODULE_VERSION := $(shell date -r $(srcdir)/cp/module.cc '+%y%m%d-%H%M' \
!   2>/dev/null || date '+%y%m%d-0000' 2>/dev/null || echo 0)
! 
! CFLAGS-cp/module.o += -DMODULE_VERSION='($(subst -,,$(MODULE_VERSION))U)'
  endif
  
  # Create the compiler driver for g++.
--- 59,79 ----
  
  # In non-release builds, use a date-related module version.
  ifneq ($(DEVPHASE_c),)
! # Some date's don't grok 'r', if so, simply use today's date,
! # but use date from previous stage if bootstrapping to avoid breaking
! # bootstraps across midnight.
! s-cp-module-version: $(srcdir)/cp/module.cc
! 	MODULE_VERSION=`if date -r $(srcdir)/cp/module.cc '+%y%m%d%H%MU' \
! 			  2>/dev/null; then :; \
! 			elif test ../prev-gcc/s-cp-module-version -nt \
! 			       $(srcdir)/cp/module.cc; then \
! 			  cat ../prev-gcc/s-cp-module-version; \
! 			else \
! 			  date '+%y%m%d0000U' 2>/dev/null; \
! 			fi`; \
! 	echo $${MODULE_VERSION} > s-cp-module-version
! cp/module.o: s-cp-module-version
! CFLAGS-cp/module.o += -DMODULE_VERSION='$(shell cat s-cp-module-version)'
  endif
  
  # Create the compiler driver for g++.
diff -Nrcpad gcc-11.3.0/gcc/cp/call.c gcc-11.4.0/gcc/cp/call.c
*** gcc-11.3.0/gcc/cp/call.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/call.c	Mon May 29 08:46:29 2023
*************** direct_reference_binding (tree type, con
*** 1683,1690 ****
         because the types "int *" and "const int *const" are
         reference-related and we were binding both directly and they
         had the same rank.  To break it up, we add a ck_qual under the
!        ck_ref_bind so that conversion sequence ranking chooses #1.  */
!     conv = build_conv (ck_qual, t, conv);
  
    return build_conv (ck_ref_bind, type, conv);
  }
--- 1683,1701 ----
         because the types "int *" and "const int *const" are
         reference-related and we were binding both directly and they
         had the same rank.  To break it up, we add a ck_qual under the
!        ck_ref_bind so that conversion sequence ranking chooses #1.
! 
!        We strip_top_quals here which is also what standard_conversion
!        does.  Failure to do so would confuse comp_cv_qual_signature
!        into thinking that in
! 
! 	 void f(const int * const &); // #1
! 	 void f(const int *); // #2
! 	 int *x;
! 	 f(x);
! 
!        #2 is a better match than #1 even though they're ambiguous (97296).  */
!     conv = build_conv (ck_qual, strip_top_quals (t), conv);
  
    return build_conv (ck_ref_bind, type, conv);
  }
*************** build_user_type_conversion_1 (tree totyp
*** 4117,4123 ****
  	     We represent this in the conversion sequence with an
  	     rvalue conversion, which means a constructor call.  */
  	  if (!TYPE_REF_P (totype)
! 	      && (flag_elide_constructors || (flags & LOOKUP_ONLYCONVERTING))
  	      && !(convflags & LOOKUP_NO_TEMP_BIND))
  	    cand->second_conv
  	      = build_conv (ck_rvalue, totype, cand->second_conv);
--- 4128,4135 ----
  	     We represent this in the conversion sequence with an
  	     rvalue conversion, which means a constructor call.  */
  	  if (!TYPE_REF_P (totype)
! 	      && cxx_dialect < cxx17
! 	      && (flags & LOOKUP_ONLYCONVERTING)
  	      && !(convflags & LOOKUP_NO_TEMP_BIND))
  	    cand->second_conv
  	      = build_conv (ck_rvalue, totype, cand->second_conv);
*************** convert_like_internal (conversion *convs
*** 7804,7816 ****
        break;
      };
  
-   tsubst_flags_t sub_complain = complain;
-   if (!flag_elide_constructors)
-     sub_complain &= ~tf_no_cleanup;
    expr = convert_like (next_conversion (convs), expr, fn, argnum,
  		       convs->kind == ck_ref_bind
  		       ? issue_conversion_warnings : false,
! 		       c_cast_p, sub_complain);
    if (expr == error_mark_node)
      return error_mark_node;
  
--- 7816,7825 ----
        break;
      };
  
    expr = convert_like (next_conversion (convs), expr, fn, argnum,
  		       convs->kind == ck_ref_bind
  		       ? issue_conversion_warnings : false,
! 		       c_cast_p, complain & ~tf_no_cleanup);
    if (expr == error_mark_node)
      return error_mark_node;
  
*************** joust_maybe_elide_copy (z_candidate *&ca
*** 11584,11589 ****
--- 11593,11600 ----
    if (!DECL_COPY_CONSTRUCTOR_P (fn) && !DECL_MOVE_CONSTRUCTOR_P (fn))
      return false;
    conversion *conv = cand->convs[0];
+   if (conv->kind == ck_ambig)
+     return false;
    gcc_checking_assert (conv->kind == ck_ref_bind);
    conv = next_conversion (conv);
    if (conv->kind == ck_user && !TYPE_REF_P (conv->type))
diff -Nrcpad gcc-11.3.0/gcc/cp/constexpr.c gcc-11.4.0/gcc/cp/constexpr.c
*** gcc-11.3.0/gcc/cp/constexpr.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/constexpr.c	Mon May 29 08:46:29 2023
*************** maybe_save_constexpr_fundef (tree fun)
*** 890,896 ****
    if (!potential && !DECL_GENERATED_P (fun))
      require_potential_rvalue_constant_expression (massaged);
  
!   if (DECL_CONSTRUCTOR_P (fun)
        && cx_check_missing_mem_inits (DECL_CONTEXT (fun),
  				     massaged, !DECL_GENERATED_P (fun)))
      potential = false;
--- 890,896 ----
    if (!potential && !DECL_GENERATED_P (fun))
      require_potential_rvalue_constant_expression (massaged);
  
!   if (DECL_CONSTRUCTOR_P (fun) && !DECL_DEFAULTED_FN (fun)
        && cx_check_missing_mem_inits (DECL_CONTEXT (fun),
  				     massaged, !DECL_GENERATED_P (fun)))
      potential = false;
*************** cxx_eval_bit_cast (const constexpr_ctx *
*** 4280,4298 ****
  static tree
  cxx_eval_logical_expression (const constexpr_ctx *ctx, tree t,
                               tree bailout_value, tree continue_value,
! 			     bool lval,
! 			     bool *non_constant_p, bool *overflow_p)
  {
    tree r;
    tree lhs = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 0),
! 					   lval,
! 					   non_constant_p, overflow_p);
    VERIFY_CONSTANT (lhs);
    if (tree_int_cst_equal (lhs, bailout_value))
      return lhs;
    gcc_assert (tree_int_cst_equal (lhs, continue_value));
    r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 1),
! 				    lval, non_constant_p,
  				    overflow_p);
    VERIFY_CONSTANT (r);
    return r;
--- 4280,4297 ----
  static tree
  cxx_eval_logical_expression (const constexpr_ctx *ctx, tree t,
                               tree bailout_value, tree continue_value,
! 			     bool, bool *non_constant_p, bool *overflow_p)
  {
    tree r;
    tree lhs = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 0),
! 					   /*lval*/false, non_constant_p,
! 					   overflow_p);
    VERIFY_CONSTANT (lhs);
    if (tree_int_cst_equal (lhs, bailout_value))
      return lhs;
    gcc_assert (tree_int_cst_equal (lhs, continue_value));
    r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 1),
! 				    /*lval*/false, non_constant_p,
  				    overflow_p);
    VERIFY_CONSTANT (r);
    return r;
*************** cxx_eval_bare_aggregate (const constexpr
*** 4468,4479 ****
        tree orig_value = value;
        /* Like in cxx_eval_store_expression, omit entries for empty fields.  */
        bool no_slot = TREE_CODE (type) == RECORD_TYPE && is_empty_field (index);
!       if (no_slot)
! 	new_ctx = *ctx;
!       else
! 	init_subob_ctx (ctx, new_ctx, index, value);
        int pos_hint = -1;
!       if (new_ctx.ctor != ctx->ctor)
  	{
  	  /* If we built a new CONSTRUCTOR, attach it now so that other
  	     initializers can refer to it.  */
--- 4467,4475 ----
        tree orig_value = value;
        /* Like in cxx_eval_store_expression, omit entries for empty fields.  */
        bool no_slot = TREE_CODE (type) == RECORD_TYPE && is_empty_field (index);
!       init_subob_ctx (ctx, new_ctx, index, value);
        int pos_hint = -1;
!       if (new_ctx.ctor != ctx->ctor && !no_slot)
  	{
  	  /* If we built a new CONSTRUCTOR, attach it now so that other
  	     initializers can refer to it.  */
*************** cxx_eval_store_expression (const constex
*** 5579,5584 ****
--- 5575,5586 ----
      {
        /* See above on initialization of empty bases.  */
        gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval);
+       if (!*valp)
+ 	{
+ 	  /* But do make sure we have something in *valp.  */
+ 	  *valp = build_constructor (type, nullptr);
+ 	  CONSTRUCTOR_NO_CLEARING (*valp) = no_zero_init;
+ 	}
        return init;
      }
    else
*************** cxx_eval_increment_expression (const con
*** 5672,5677 ****
--- 5674,5691 ----
  	offset = fold_build1 (NEGATE_EXPR, TREE_TYPE (offset), offset);
        mod = fold_build2 (POINTER_PLUS_EXPR, type, val, offset);
      }
+   else if (c_promoting_integer_type_p (type)
+ 	   && !TYPE_UNSIGNED (type)
+ 	   && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
+     {
+       offset = fold_convert (integer_type_node, offset);
+       mod = fold_convert (integer_type_node, val);
+       tree t = fold_build2 (inc ? PLUS_EXPR : MINUS_EXPR, integer_type_node,
+ 			    mod, offset);
+       mod = fold_convert (type, t);
+       if (TREE_OVERFLOW_P (mod) && !TREE_OVERFLOW_P (t))
+ 	TREE_OVERFLOW (mod) = false;
+     }
    else
      mod = fold_build2 (inc ? PLUS_EXPR : MINUS_EXPR, type, val, offset);
    if (!ptr)
*************** cxx_eval_constant_expression (const cons
*** 7158,7163 ****
--- 7172,7220 ----
        r = cxx_eval_bit_cast (ctx, t, non_constant_p, overflow_p);
        break;
  
+     case OMP_PARALLEL:
+     case OMP_TASK:
+     case OMP_FOR:
+     case OMP_SIMD:
+     case OMP_DISTRIBUTE:
+     case OMP_TASKLOOP:
+     case OMP_LOOP:
+     case OMP_TEAMS:
+     case OMP_TARGET_DATA:
+     case OMP_TARGET:
+     case OMP_SECTIONS:
+     case OMP_ORDERED:
+     case OMP_CRITICAL:
+     case OMP_SINGLE:
+     case OMP_SCAN:
+     case OMP_SECTION:
+     case OMP_MASTER:
+     case OMP_TASKGROUP:
+     case OMP_TARGET_UPDATE:
+     case OMP_TARGET_ENTER_DATA:
+     case OMP_TARGET_EXIT_DATA:
+     case OMP_ATOMIC:
+     case OMP_ATOMIC_READ:
+     case OMP_ATOMIC_CAPTURE_OLD:
+     case OMP_ATOMIC_CAPTURE_NEW:
+     case OMP_DEPOBJ:
+     case OACC_PARALLEL:
+     case OACC_KERNELS:
+     case OACC_SERIAL:
+     case OACC_DATA:
+     case OACC_HOST_DATA:
+     case OACC_LOOP:
+     case OACC_CACHE:
+     case OACC_DECLARE:
+     case OACC_ENTER_DATA:
+     case OACC_EXIT_DATA:
+     case OACC_UPDATE:
+       if (!ctx->quiet)
+ 	error_at (EXPR_LOCATION (t),
+ 		  "statement is not a constant expression");
+       *non_constant_p = true;
+       break;
+ 
      default:
        if (STATEMENT_CODE_P (TREE_CODE (t)))
  	{
*************** potential_constant_expression_1 (tree t,
*** 8575,8580 ****
--- 8632,8638 ----
      case OMP_ORDERED:
      case OMP_CRITICAL:
      case OMP_SINGLE:
+     case OMP_SCAN:
      case OMP_SECTION:
      case OMP_MASTER:
      case OMP_TASKGROUP:
*************** potential_constant_expression_1 (tree t,
*** 8868,8880 ****
        tmp = boolean_false_node;
      truth:
        {
! 	tree op = TREE_OPERAND (t, 0);
! 	if (!RECUR (op, rval))
  	  return false;
  	if (!processing_template_decl)
! 	  op = cxx_eval_outermost_constant_expr (op, true);
! 	if (tree_int_cst_equal (op, tmp))
! 	  return RECUR (TREE_OPERAND (t, 1), rval);
  	else
  	  return true;
        }
--- 8926,8943 ----
        tmp = boolean_false_node;
      truth:
        {
! 	tree op0 = TREE_OPERAND (t, 0);
! 	tree op1 = TREE_OPERAND (t, 1);
! 	if (!RECUR (op0, rval))
  	  return false;
+ 	if (!(flags & tf_error) && RECUR (op1, rval))
+ 	  /* When quiet, try to avoid expensive trial evaluation by first
+ 	     checking potentiality of the second operand.  */
+ 	  return true;
  	if (!processing_template_decl)
! 	  op0 = cxx_eval_outermost_constant_expr (op0, true);
! 	if (tree_int_cst_equal (op0, tmp))
! 	  return (flags & tf_error) ? RECUR (op1, rval) : false;
  	else
  	  return true;
        }
*************** bool
*** 9075,9080 ****
--- 9138,9154 ----
  potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
  				 tsubst_flags_t flags)
  {
+   if (flags & tf_error)
+     {
+       /* Check potentiality quietly first, as that could be performed more
+ 	 efficiently in some cases (currently only for TRUTH_*_EXPR).  If
+ 	 that fails, replay the check noisily to give errors.  */
+       flags &= ~tf_error;
+       if (potential_constant_expression_1 (t, want_rval, strict, now, flags))
+ 	return true;
+       flags |= tf_error;
+     }
+ 
    tree target = NULL_TREE;
    return potential_constant_expression_1 (t, want_rval, strict, now,
  					  flags, &target);
diff -Nrcpad gcc-11.3.0/gcc/cp/constraint.cc gcc-11.4.0/gcc/cp/constraint.cc
*** gcc-11.3.0/gcc/cp/constraint.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/constraint.cc	Mon May 29 08:46:29 2023
*************** normalize_atom (tree t, tree args, norm_
*** 788,793 ****
--- 788,802 ----
    tree ci = build_tree_list (t, info.context);
  
    tree atom = build1 (ATOMIC_CONSTR, ci, map);
+ 
+   /* Remember whether the expression of this atomic constraint belongs to
+      a concept definition by inspecting in_decl, which should always be set
+      in this case either by norm_info::update_context (when recursing into a
+      concept-id during normalization) or by normalize_concept_definition
+      (when starting out with a concept-id).  */
+   if (info.in_decl && concept_definition_p (info.in_decl))
+     ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (atom) = true;
+ 
    if (!info.generate_diagnostics ())
      {
        /* Cache the ATOMIC_CONSTRs that we return, so that sat_hasher::equal
*************** tsubst_requires_expr (tree t, tree args,
*** 2292,2297 ****
--- 2301,2309 ----
  {
    local_specialization_stack stack (lss_copy);
  
+   /* We need to check access during the substitution.  */
+   deferring_access_check_sentinel acs (dk_no_deferred);
+ 
    /* A requires-expression is an unevaluated context.  */
    cp_unevaluated u;
  
*************** satisfaction_value (tree t)
*** 2870,2902 ****
      return boolean_true_node;
  }
  
! /* Build a new template argument list with template arguments corresponding
!    to the parameters used in an atomic constraint.  */
  
! tree
! get_mapped_args (tree map)
  {
    /* No map, no arguments.  */
    if (!map)
      return NULL_TREE;
  
!   /* Find the mapped parameter with the highest level.  */
!   int count = 0;
!   for (tree p = map; p; p = TREE_CHAIN (p))
!     {
!       int level;
!       int index;
!       template_parm_level_and_index (TREE_VALUE (p), &level, &index);
!       if (level > count)
!         count = level;
!     }
  
    /* Place each argument at its corresponding position in the argument
       list. Note that the list will be sparse (not all arguments supplied),
       but instantiation is guaranteed to only use the parameters in the
       mapping, so null arguments would never be used.  */
!   auto_vec< vec<tree> > lists (count);
!   lists.quick_grow_cleared (count);
    for (tree p = map; p; p = TREE_CHAIN (p))
      {
        int level;
--- 2882,2918 ----
      return boolean_true_node;
  }
  
! /* Build a new template argument vector corresponding to the parameter
!    mapping of the atomic constraint T, using arguments from ARGS.  */
  
! static tree
! get_mapped_args (tree t, tree args)
  {
+   tree map = ATOMIC_CONSTR_MAP (t);
+ 
    /* No map, no arguments.  */
    if (!map)
      return NULL_TREE;
  
!   /* Determine the depth of the resulting argument vector.  */
!   int depth;
!   if (ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (t))
!     /* The expression of this atomic constraint comes from a concept definition,
!        whose template depth is always one, so the resulting argument vector
!        will also have depth one.  */
!     depth = 1;
!   else
!     /* Otherwise, the expression of this atomic constraint comes from
!        the context of the constrained entity, whose template depth is that
!        of ARGS.  */
!     depth = TMPL_ARGS_DEPTH (args);
  
    /* Place each argument at its corresponding position in the argument
       list. Note that the list will be sparse (not all arguments supplied),
       but instantiation is guaranteed to only use the parameters in the
       mapping, so null arguments would never be used.  */
!   auto_vec< vec<tree> > lists (depth);
!   lists.quick_grow_cleared (depth);
    for (tree p = map; p; p = TREE_CHAIN (p))
      {
        int level;
*************** get_mapped_args (tree map)
*** 2906,2917 ****
        /* Insert the argument into its corresponding position.  */
        vec<tree> &list = lists[level - 1];
        if (index >= (int)list.length ())
! 	list.safe_grow_cleared (index + 1, true);
        list[index] = TREE_PURPOSE (p);
      }
  
    /* Build the new argument list.  */
!   tree args = make_tree_vec (lists.length ());
    for (unsigned i = 0; i != lists.length (); ++i)
      {
        vec<tree> &list = lists[i];
--- 2922,2933 ----
        /* Insert the argument into its corresponding position.  */
        vec<tree> &list = lists[level - 1];
        if (index >= (int)list.length ())
! 	list.safe_grow_cleared (index + 1, /*exact=*/false);
        list[index] = TREE_PURPOSE (p);
      }
  
    /* Build the new argument list.  */
!   args = make_tree_vec (lists.length ());
    for (unsigned i = 0; i != lists.length (); ++i)
      {
        vec<tree> &list = lists[i];
*************** get_mapped_args (tree map)
*** 2923,2928 ****
--- 2939,2953 ----
      }
    SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT (args, 0);
  
+   if (TMPL_ARGS_HAVE_MULTIPLE_LEVELS (args)
+       && TMPL_ARGS_DEPTH (args) == 1)
+     {
+       /* Get rid of the redundant outer TREE_VEC.  */
+       tree level = TMPL_ARGS_LEVEL (args, 1);
+       ggc_free (args);
+       args = level;
+     }
+ 
    return args;
  }
  
*************** satisfy_atom (tree t, tree args, sat_inf
*** 2977,2983 ****
      }
  
    /* Rebuild the argument vector from the parameter mapping.  */
!   args = get_mapped_args (map);
  
    /* Apply the parameter mapping (i.e., just substitute).  */
    tree expr = ATOMIC_CONSTR_EXPR (t);
--- 3002,3008 ----
      }
  
    /* Rebuild the argument vector from the parameter mapping.  */
!   args = get_mapped_args (t, args);
  
    /* Apply the parameter mapping (i.e., just substitute).  */
    tree expr = ATOMIC_CONSTR_EXPR (t);
*************** satisfy_atom (tree t, tree args, sat_inf
*** 2999,3005 ****
    if (!same_type_p (TREE_TYPE (result), boolean_type_node))
      {
        if (info.noisy ())
! 	diagnose_atomic_constraint (t, map, result, info);
        return cache.save (inst_cache.save (error_mark_node));
      }
  
--- 3024,3030 ----
    if (!same_type_p (TREE_TYPE (result), boolean_type_node))
      {
        if (info.noisy ())
! 	diagnose_atomic_constraint (t, args, result, info);
        return cache.save (inst_cache.save (error_mark_node));
      }
  
*************** satisfy_atom (tree t, tree args, sat_inf
*** 3018,3024 ****
      }
    result = satisfaction_value (result);
    if (result == boolean_false_node && info.diagnose_unsatisfaction_p ())
!     diagnose_atomic_constraint (t, map, result, info);
  
    return cache.save (inst_cache.save (result));
  }
--- 3043,3049 ----
      }
    result = satisfaction_value (result);
    if (result == boolean_false_node && info.diagnose_unsatisfaction_p ())
!     diagnose_atomic_constraint (t, args, result, info);
  
    return cache.save (inst_cache.save (result));
  }
*************** diagnose_trait_expr (tree expr, tree arg
*** 3717,3732 ****
      case CPTK_IS_UNION:
        inform (loc, "  %qT is not a union", t1);
        break;
!     default:
        gcc_unreachable ();
      }
  }
  
! /* Diagnose a substitution failure in the atomic constraint T when applied
!    with the instantiated parameter mapping MAP.  */
  
  static void
! diagnose_atomic_constraint (tree t, tree map, tree result, sat_info info)
  {
    /* If the constraint is already ill-formed, we've previously diagnosed
       the reason. We should still say why the constraints aren't satisfied.  */
--- 3742,3797 ----
      case CPTK_IS_UNION:
        inform (loc, "  %qT is not a union", t1);
        break;
!     case CPTK_IS_AGGREGATE:
!       inform (loc, "  %qT is not an aggregate", t1);
!       break;
!     case CPTK_IS_TRIVIALLY_COPYABLE:
!       inform (loc, "  %qT is not trivially copyable", t1);
!       break;
!     case CPTK_IS_ASSIGNABLE:
!       inform (loc, "  %qT is not assignable from %qT", t1, t2);
!       break;
!     case CPTK_IS_TRIVIALLY_ASSIGNABLE:
!       inform (loc, "  %qT is not trivially assignable from %qT", t1, t2);
!       break;
!     case CPTK_IS_NOTHROW_ASSIGNABLE:
!       inform (loc, "  %qT is not %<nothrow%> assignable from %qT", t1, t2);
!       break;
!     case CPTK_IS_CONSTRUCTIBLE:
!       if (!t2)
! 	inform (loc, "  %qT is not default constructible", t1);
!       else
! 	inform (loc, "  %qT is not constructible from %qE", t1, t2);
!       break;
!     case CPTK_IS_TRIVIALLY_CONSTRUCTIBLE:
!       if (!t2)
! 	inform (loc, "  %qT is not trivially default constructible", t1);
!       else
! 	inform (loc, "  %qT is not trivially constructible from %qE", t1, t2);
!       break;
!     case CPTK_IS_NOTHROW_CONSTRUCTIBLE:
!       if (!t2)
! 	inform (loc, "  %qT is not %<nothrow%> default constructible", t1);
!       else
! 	inform (loc, "  %qT is not %<nothrow%> constructible from %qE", t1, t2);
!       break;
!     case CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS:
!       inform (loc, "  %qT does not have unique object representations", t1);
!       break;
!     case CPTK_BASES:
!     case CPTK_DIRECT_BASES:
!     case CPTK_UNDERLYING_TYPE:
!       /* We shouldn't see these non-expression traits.  */
        gcc_unreachable ();
+     /* We deliberately omit the default case so that when adding a new
+        trait we'll get reminded (by way of a warning) to handle it here.  */
      }
  }
  
! /* Diagnose a substitution failure in the atomic constraint T using ARGS.  */
  
  static void
! diagnose_atomic_constraint (tree t, tree args, tree result, sat_info info)
  {
    /* If the constraint is already ill-formed, we've previously diagnosed
       the reason. We should still say why the constraints aren't satisfied.  */
*************** diagnose_atomic_constraint (tree t, tree
*** 3747,3753 ****
    /* Generate better diagnostics for certain kinds of expressions.  */
    tree expr = ATOMIC_CONSTR_EXPR (t);
    STRIP_ANY_LOCATION_WRAPPER (expr);
-   tree args = get_mapped_args (map);
    switch (TREE_CODE (expr))
      {
      case TRAIT_EXPR:
--- 3812,3817 ----
diff -Nrcpad gcc-11.3.0/gcc/cp/coroutines.cc gcc-11.4.0/gcc/cp/coroutines.cc
*** gcc-11.3.0/gcc/cp/coroutines.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/coroutines.cc	Mon May 29 08:46:29 2023
*************** build_co_await (location_t loc, tree a,
*** 1016,1024 ****
      }
    else
      {
!       e_proxy = get_awaitable_var (suspend_kind, o_type);
        o = cp_build_modify_expr (loc, e_proxy, INIT_EXPR, o,
  				tf_warning_or_error);
      }
  
    /* I suppose we could check that this is contextually convertible to bool.  */
--- 1016,1028 ----
      }
    else
      {
!       tree p_type = o_type;
!       if (glvalue_p (o))
! 	p_type = cp_build_reference_type (p_type, !lvalue_p (o));
!       e_proxy = get_awaitable_var (suspend_kind, p_type);
        o = cp_build_modify_expr (loc, e_proxy, INIT_EXPR, o,
  				tf_warning_or_error);
+       e_proxy = convert_from_reference (e_proxy);
      }
  
    /* I suppose we could check that this is contextually convertible to bool.  */
*************** build_co_await (location_t loc, tree a,
*** 1111,1116 ****
--- 1115,1123 ----
      }
    TREE_VEC_ELT (awaiter_calls, 2) = awrs_call; /* await_resume().  */
  
+   if (REFERENCE_REF_P (e_proxy))
+     e_proxy = TREE_OPERAND (e_proxy, 0);
+ 
    tree await_expr = build5_loc (loc, CO_AWAIT_EXPR,
  				TREE_TYPE (TREE_TYPE (awrs_func)),
  				a, e_proxy, o, awaiter_calls,
*************** flatten_await_stmt (var_nest_node *n, ha
*** 2867,2873 ****
  	  tree init = t;
  	  temps_used->add (init);
  	  tree var_type = TREE_TYPE (init);
! 	  char *buf = xasprintf ("D.%d", DECL_UID (TREE_OPERAND (init, 0)));
  	  tree var = build_lang_decl (VAR_DECL, get_identifier (buf), var_type);
  	  DECL_ARTIFICIAL (var) = true;
  	  free (buf);
--- 2874,2880 ----
  	  tree init = t;
  	  temps_used->add (init);
  	  tree var_type = TREE_TYPE (init);
! 	  char *buf = xasprintf ("T%03u", (unsigned) temps_used->elements ());
  	  tree var = build_lang_decl (VAR_DECL, get_identifier (buf), var_type);
  	  DECL_ARTIFICIAL (var) = true;
  	  free (buf);
*************** coro_rewrite_function_body (location_t f
*** 4067,4072 ****
--- 4074,4092 ----
        BLOCK_SUPERCONTEXT (replace_blk) = top_block;
        BLOCK_SUBBLOCKS (top_block) = replace_blk;
      }
+   else
+     {
+       /* We are missing a top level BIND_EXPR. We need one to ensure that we
+ 	 don't shuffle around the coroutine frame and corrupt it.  */
+       tree bind_wrap = build3_loc (fn_start, BIND_EXPR, void_type_node,
+ 				   NULL, NULL, NULL);
+       BIND_EXPR_BODY (bind_wrap) = fnbody;
+       /* Ensure we have a block to connect up the scopes.  */
+       tree new_blk = make_node (BLOCK);
+       BIND_EXPR_BLOCK (bind_wrap) = new_blk;
+       BLOCK_SUBBLOCKS (top_block) = new_blk;
+       fnbody = bind_wrap;
+     }
  
    /* Wrap the function body in a try {} catch (...) {} block, if exceptions
       are enabled.  */
diff -Nrcpad gcc-11.3.0/gcc/cp/cp-gimplify.c gcc-11.4.0/gcc/cp/cp-gimplify.c
*** gcc-11.3.0/gcc/cp/cp-gimplify.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/cp-gimplify.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 42,47 ****
--- 42,55 ----
  #include "cgraph.h"
  #include "omp-general.h"
  
+ struct cp_fold_data
+ {
+   hash_set<tree> pset;
+   bool genericize; // called from cp_fold_function?
+ 
+   cp_fold_data (bool g): genericize (g) {}
+ };
+ 
  /* Forward declarations.  */
  
  static tree cp_genericize_r (tree *, int *, void *);
*************** cp_gimplify_expr (tree *expr_p, gimple_s
*** 468,475 ****
  				  init, VEC_INIT_EXPR_VALUE_INIT (*expr_p),
  				  from_array,
  				  tf_warning_or_error);
! 	hash_set<tree> pset;
! 	cp_walk_tree (expr_p, cp_fold_r, &pset, NULL);
  	cp_genericize_tree (expr_p, false);
  	copy_if_shared (expr_p);
  	ret = GS_OK;
--- 476,483 ----
  				  init, VEC_INIT_EXPR_VALUE_INIT (*expr_p),
  				  from_array,
  				  tf_warning_or_error);
! 	cp_fold_data data (/*genericize*/true);
! 	cp_walk_tree (expr_p, cp_fold_r, &data, NULL);
  	cp_genericize_tree (expr_p, false);
  	copy_if_shared (expr_p);
  	ret = GS_OK;
*************** struct cp_genericize_data
*** 875,888 ****
       GIMPLE-form.  */
  
  static tree
! cp_fold_r (tree *stmt_p, int *walk_subtrees, void *data)
  {
!   tree stmt;
!   enum tree_code code;
  
    *stmt_p = stmt = cp_fold (*stmt_p);
  
!   if (((hash_set<tree> *) data)->add (stmt))
      {
        /* Don't walk subtrees of stmts we've already walked once, otherwise
  	 we can have exponential complexity with e.g. lots of nested
--- 883,917 ----
       GIMPLE-form.  */
  
  static tree
! cp_fold_r (tree *stmt_p, int *walk_subtrees, void *data_)
  {
!   cp_fold_data *data = (cp_fold_data*)data_;
!   tree stmt = *stmt_p;
!   enum tree_code code = TREE_CODE (stmt);
! 
!   switch (code)
!     {
!     case VAR_DECL:
!       /* In initializers replace anon union artificial VAR_DECLs
! 	 with their DECL_VALUE_EXPRs, as nothing will do it later.
! 	 Ditto for structured bindings.  */
!       if (!data->genericize
! 	  && DECL_HAS_VALUE_EXPR_P (stmt)
! 	  && (DECL_ANON_UNION_VAR_P (stmt)
! 	      || (DECL_DECOMPOSITION_P (stmt) && DECL_DECOMP_BASE (stmt))))
! 	{
! 	  *stmt_p = stmt = unshare_expr (DECL_VALUE_EXPR (stmt));
! 	  break;
! 	}
!       break;
! 
!     default:
!       break;
!     }
  
    *stmt_p = stmt = cp_fold (*stmt_p);
  
!   if (data->pset.add (stmt))
      {
        /* Don't walk subtrees of stmts we've already walked once, otherwise
  	 we can have exponential complexity with e.g. lots of nested
*************** cp_fold_r (tree *stmt_p, int *walk_subtr
*** 949,956 ****
  void
  cp_fold_function (tree fndecl)
  {
!   hash_set<tree> pset;
!   cp_walk_tree (&DECL_SAVED_TREE (fndecl), cp_fold_r, &pset, NULL);
  }
  
  /* Turn SPACESHIP_EXPR EXPR into GENERIC.  */
--- 978,985 ----
  void
  cp_fold_function (tree fndecl)
  {
!   cp_fold_data data (/*genericize*/true);
!   cp_walk_tree (&DECL_SAVED_TREE (fndecl), cp_fold_r, &data, NULL);
  }
  
  /* Turn SPACESHIP_EXPR EXPR into GENERIC.  */
*************** cp_genericize_r (tree *stmt_p, int *walk
*** 1273,1278 ****
--- 1302,1309 ----
  		tree using_directive = make_node (IMPORTED_DECL);
  		TREE_TYPE (using_directive) = void_type_node;
  		DECL_CONTEXT (using_directive) = current_function_decl;
+ 		DECL_SOURCE_LOCATION (using_directive)
+ 		  = cp_expr_loc_or_input_loc (stmt);
  
  		IMPORTED_DECL_ASSOCIATED_DECL (using_directive) = decl;
  		DECL_CHAIN (using_directive) = BLOCK_VARS (block);
*************** cp_fully_fold_init (tree x)
*** 2218,2225 ****
    if (processing_template_decl)
      return x;
    x = cp_fully_fold (x);
!   hash_set<tree> pset;
!   cp_walk_tree (&x, cp_fold_r, &pset, NULL);
    return x;
  }
  
--- 2249,2256 ----
    if (processing_template_decl)
      return x;
    x = cp_fully_fold (x);
!   cp_fold_data data (/*genericize*/false);
!   cp_walk_tree (&x, cp_fold_r, &data, NULL);
    return x;
  }
  
diff -Nrcpad gcc-11.3.0/gcc/cp/cp-tree.h gcc-11.4.0/gcc/cp/cp-tree.h
*** gcc-11.3.0/gcc/cp/cp-tree.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/cp-tree.h	Mon May 29 08:46:29 2023
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 466,471 ****
--- 466,472 ----
        PACK_EXPANSION_SIZEOF_P (in *_PACK_EXPANSION)
        OVL_USING_P (in OVERLOAD)
        IMPLICIT_CONV_EXPR_NONTYPE_ARG (in IMPLICIT_CONV_EXPR)
+       ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (in ATOMIC_CONSTR)
     2: IDENTIFIER_KIND_BIT_2 (in IDENTIFIER_NODE)
        ICS_THIS_FLAG (in _CONV)
        DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (in VAR_DECL)
*************** check_constraint_info (tree t)
*** 1635,1640 ****
--- 1636,1646 ----
  #define ATOMIC_CONSTR_MAP_INSTANTIATED_P(NODE) \
    TREE_LANG_FLAG_0 (ATOMIC_CONSTR_CHECK (NODE))
  
+ /* Whether the expression for this atomic constraint belongs to a
+    concept definition.  */
+ #define ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P(NODE) \
+   TREE_LANG_FLAG_1 (ATOMIC_CONSTR_CHECK (NODE))
+ 
  /* The expression of an atomic constraint. */
  #define ATOMIC_CONSTR_EXPR(NODE) \
    CONSTR_EXPR (ATOMIC_CONSTR_CHECK (NODE))
*************** extern void copy_linkage			(tree, tree);
*** 6789,6794 ****
--- 6795,6801 ----
  extern tree get_guard				(tree);
  extern tree get_guard_cond			(tree, bool);
  extern tree set_guard				(tree);
+ extern bool var_needs_tls_wrapper		(tree);
  extern tree maybe_get_tls_wrapper_call		(tree);
  extern void mark_needed				(tree);
  extern bool decl_needed_p			(tree);
*************** extern bool push_tinst_level_loc
*** 7242,7247 ****
--- 7249,7255 ----
  extern bool push_tinst_level_loc                (tree, tree, location_t);
  extern void pop_tinst_level                     (void);
  extern struct tinst_level *outermost_tinst_level(void);
+ extern bool non_templated_friend_p		(tree);
  extern void init_template_processing		(void);
  extern void print_template_statistics		(void);
  bool template_template_parameter_p		(const_tree);
*************** extern tree evaluate_requires_expr		(tre
*** 8137,8143 ****
  extern tree tsubst_constraint                   (tree, tree, tsubst_flags_t, tree);
  extern tree tsubst_constraint_info              (tree, tree, tsubst_flags_t, tree);
  extern tree tsubst_parameter_mapping		(tree, tree, tsubst_flags_t, tree);
- extern tree get_mapped_args			(tree);
  
  struct processing_constraint_expression_sentinel
  {
--- 8145,8150 ----
diff -Nrcpad gcc-11.3.0/gcc/cp/decl.c gcc-11.4.0/gcc/cp/decl.c
*** gcc-11.3.0/gcc/cp/decl.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/decl.c	Mon May 29 08:46:29 2023
*************** static bool
*** 944,952 ****
  function_requirements_equivalent_p (tree newfn, tree oldfn)
  {
    /* In the concepts TS, the combined constraints are compared.  */
!   if (cxx_dialect < cxx20
!       && (DECL_TEMPLATE_SPECIALIZATION (newfn)
! 	  <= DECL_TEMPLATE_SPECIALIZATION (oldfn)))
      {
        tree ci1 = get_constraints (oldfn);
        tree ci2 = get_constraints (newfn);
--- 944,950 ----
  function_requirements_equivalent_p (tree newfn, tree oldfn)
  {
    /* In the concepts TS, the combined constraints are compared.  */
!   if (cxx_dialect < cxx20)
      {
        tree ci1 = get_constraints (oldfn);
        tree ci2 = get_constraints (newfn);
*************** decls_match (tree newdecl, tree olddecl,
*** 1059,1069 ****
        if (types_match
  	  && !DECL_EXTERN_C_P (newdecl)
  	  && !DECL_EXTERN_C_P (olddecl)
! 	  && record_versions
! 	  && maybe_version_functions (newdecl, olddecl,
! 				      (!DECL_FUNCTION_VERSIONED (newdecl)
! 				       || !DECL_FUNCTION_VERSIONED (olddecl))))
! 	return 0;
      }
    else if (TREE_CODE (newdecl) == TEMPLATE_DECL)
      {
--- 1057,1070 ----
        if (types_match
  	  && !DECL_EXTERN_C_P (newdecl)
  	  && !DECL_EXTERN_C_P (olddecl)
! 	  && targetm.target_option.function_versions (newdecl, olddecl))
! 	{
! 	  if (record_versions)
! 	    maybe_version_functions (newdecl, olddecl,
! 				     (!DECL_FUNCTION_VERSIONED (newdecl)
! 				      || !DECL_FUNCTION_VERSIONED (olddecl)));
! 	  return 0;
! 	}
      }
    else if (TREE_CODE (newdecl) == TEMPLATE_DECL)
      {
*************** duplicate_decls (tree newdecl, tree oldd
*** 2221,2228 ****
  	      check_no_redeclaration_friend_default_args
  		(old_result, new_result);
  	    }
! 	  if (!DECL_UNIQUE_FRIEND_P (old_result))
! 	    DECL_UNIQUE_FRIEND_P (new_result) = false;
  
  	  check_default_args (newdecl);
  
--- 2222,2229 ----
  	      check_no_redeclaration_friend_default_args
  		(old_result, new_result);
  	    }
! 	  if (!DECL_UNIQUE_FRIEND_P (new_result))
! 	    DECL_UNIQUE_FRIEND_P (old_result) = false;
  
  	  check_default_args (newdecl);
  
*************** duplicate_decls (tree newdecl, tree oldd
*** 2523,2529 ****
        else
  	{
  	  retrofit_lang_decl (newdecl);
! 	  DECL_LOCAL_DECL_ALIAS (newdecl) = DECL_LOCAL_DECL_ALIAS (olddecl);
  	}
      }
  
--- 2524,2535 ----
        else
  	{
  	  retrofit_lang_decl (newdecl);
! 	  tree alias = DECL_LOCAL_DECL_ALIAS (newdecl)
! 	    = DECL_LOCAL_DECL_ALIAS (olddecl);
! 	  DECL_ATTRIBUTES (alias)
! 	    = (*targetm.merge_decl_attributes) (alias, newdecl);
! 	  if (TREE_CODE (newdecl) == FUNCTION_DECL)
! 	    merge_attribute_bits (newdecl, alias);
  	}
      }
  
*************** duplicate_decls (tree newdecl, tree oldd
*** 2581,2586 ****
--- 2587,2597 ----
  		TINFO_USED_TEMPLATE_ID (DECL_TEMPLATE_INFO (olddecl))
  		  = TINFO_USED_TEMPLATE_ID (new_template_info);
  	    }
+ 
+ 	  /* We don't want to copy template info from a non-templated friend
+ 	     (PR105761), but these shouldn't have DECL_TEMPLATE_INFO now.  */
+ 	  gcc_checking_assert (!DECL_TEMPLATE_INFO (olddecl)
+ 			       || !non_templated_friend_p (olddecl));
  	  DECL_TEMPLATE_INFO (newdecl) = DECL_TEMPLATE_INFO (olddecl);
  	}
  
*************** reshape_init_array_1 (tree elt_type, tre
*** 6283,6288 ****
--- 6294,6301 ----
        tree elt_init;
        constructor_elt *old_cur = d->cur;
  
+       if (d->cur->index)
+ 	CONSTRUCTOR_IS_DESIGNATED_INIT (new_init) = true;
        check_array_designated_initializer (d->cur, index);
        elt_init = reshape_init_r (elt_type, d,
  				 /*first_initializer_p=*/NULL_TREE,
*************** reshape_init_class (tree type, reshape_i
*** 6435,6440 ****
--- 6448,6454 ----
  	    }
  	  else if (TREE_CODE (d->cur->index) == IDENTIFIER_NODE)
  	    {
+ 	      CONSTRUCTOR_IS_DESIGNATED_INIT (new_init) = true;
  	      field = get_class_binding (type, d->cur->index);
  	      direct_desig = true;
  	    }
*************** check_initializer (tree decl, tree init,
*** 7167,7178 ****
  	      /* Declared constexpr or constinit, but no suitable initializer;
  		 massage init appropriately so we can pass it into
  		 store_init_value for the error.  */
! 	      if (CLASS_TYPE_P (type)
! 		  && (!init || TREE_CODE (init) == TREE_LIST))
  		{
! 		  init = build_functional_cast (input_location, type,
! 						init, tf_none);
! 		  if (TREE_CODE (init) == TARGET_EXPR)
  		    TARGET_EXPR_DIRECT_INIT_P (init) = true;
  		}
  	      init_code = NULL_TREE;
--- 7181,7199 ----
  	      /* Declared constexpr or constinit, but no suitable initializer;
  		 massage init appropriately so we can pass it into
  		 store_init_value for the error.  */
! 	      tree new_init = NULL_TREE;
! 	      if (!processing_template_decl
! 		  && TREE_CODE (init_code) == CALL_EXPR)
! 		new_init = build_cplus_new (type, init_code, tf_none);
! 	      else if (CLASS_TYPE_P (type)
! 		       && (!init || TREE_CODE (init) == TREE_LIST))
! 		new_init = build_functional_cast (input_location, type,
! 						  init, tf_none);
! 	      if (new_init)
  		{
! 		  init = new_init;
! 		  if (TREE_CODE (init) == TARGET_EXPR
! 		      && !(flags & LOOKUP_ONLYCONVERTING))
  		    TARGET_EXPR_DIRECT_INIT_P (init) = true;
  		}
  	      init_code = NULL_TREE;
*************** check_initializer (tree decl, tree init,
*** 7227,7232 ****
--- 7248,7257 ----
    if (init && init != error_mark_node)
      init_code = build2 (INIT_EXPR, type, decl, init);
  
+   if (init_code && !TREE_SIDE_EFFECTS (init_code)
+       && init_code != error_mark_node)
+     init_code = NULL_TREE;
+ 
    if (init_code)
      {
        /* We might have set these in cp_finish_decl.  */
*************** cp_finish_decl (tree decl, tree init, bo
*** 8221,8228 ****
  
        if (var_definition_p
  	  /* With -fmerge-all-constants, gimplify_init_constructor
! 	     might add TREE_STATIC to the variable.  */
! 	  && (TREE_STATIC (decl) || flag_merge_constants >= 2))
  	{
  	  /* If a TREE_READONLY variable needs initialization
  	     at runtime, it is no longer readonly and we need to
--- 8246,8255 ----
  
        if (var_definition_p
  	  /* With -fmerge-all-constants, gimplify_init_constructor
! 	     might add TREE_STATIC to aggregate variables.  */
! 	  && (TREE_STATIC (decl)
! 	      || (flag_merge_constants >= 2
! 		  && AGGREGATE_TYPE_P (type))))
  	{
  	  /* If a TREE_READONLY variable needs initialization
  	     at runtime, it is no longer readonly and we need to
*************** cp_finish_decl (tree decl, tree init, bo
*** 8240,8245 ****
--- 8267,8284 ----
  	  if (!decl_maybe_constant_destruction (decl, type))
  	    TREE_READONLY (decl) = 0;
  	}
+       else if (VAR_P (decl)
+ 	       && CP_DECL_THREAD_LOCAL_P (decl)
+ 	       && (!DECL_EXTERNAL (decl) || flag_extern_tls_init)
+ 	       && (was_readonly || TREE_READONLY (decl))
+ 	       && var_needs_tls_wrapper (decl))
+ 	{
+ 	  /* TLS variables need dynamic initialization by the TLS wrapper
+ 	     function, we don't want to hoist accesses to it before the
+ 	     wrapper.  */
+ 	  was_readonly = 0;
+ 	  TREE_READONLY (decl) = 0;
+ 	}
  
        make_rtl_for_nonlocal_decl (decl, init, asmspec);
  
*************** cp_finish_decl (tree decl, tree init, bo
*** 8300,8306 ****
      {
        unsigned i; tree t;
        FOR_EACH_VEC_ELT (*cleanups, i, t)
! 	push_cleanup (decl, t, false);
        release_tree_vector (cleanups);
      }
  
--- 8339,8345 ----
      {
        unsigned i; tree t;
        FOR_EACH_VEC_ELT (*cleanups, i, t)
! 	push_cleanup (NULL_TREE, t, false);
        release_tree_vector (cleanups);
      }
  
*************** grokdeclarator (const cp_declarator *dec
*** 12656,12662 ****
  			  "an array", name);
  		return error_mark_node;
  	      }
! 	    if (constinit_p)
  	      {
  		error_at (declspecs->locations[ds_constinit],
  			  "%<constinit%> on function return type is not "
--- 12695,12701 ----
  			  "an array", name);
  		return error_mark_node;
  	      }
! 	    if (constinit_p && funcdecl_p)
  	      {
  		error_at (declspecs->locations[ds_constinit],
  			  "%<constinit%> on function return type is not "
*************** grokdeclarator (const cp_declarator *dec
*** 13862,13868 ****
  		      return error_mark_node;
  		  }
  
! 		decl = do_friend (ctype, unqualified_id, decl,
  				  *attrlist, flags,
  				  funcdef_flag);
  		return decl;
--- 13901,13908 ----
  		      return error_mark_node;
  		  }
  
! 		tree scope = ctype ? ctype : in_namespace;
! 		decl = do_friend (scope, unqualified_id, decl,
  				  *attrlist, flags,
  				  funcdef_flag);
  		return decl;
*************** copy_fn_p (const_tree d)
*** 14663,14670 ****
  bool
  move_fn_p (const_tree d)
  {
-   gcc_assert (DECL_FUNCTION_MEMBER_P (d));
- 
    if (cxx_dialect == cxx98)
      /* There are no move constructors if we are in C++98 mode.  */
      return false;
--- 14703,14708 ----
diff -Nrcpad gcc-11.3.0/gcc/cp/decl2.c gcc-11.4.0/gcc/cp/decl2.c
*** gcc-11.3.0/gcc/cp/decl2.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/decl2.c	Mon May 29 08:46:29 2023
*************** find_last_decl (tree decl)
*** 1531,1538 ****
  	  if (TREE_CODE (*iter) == OVERLOAD)
  	    continue;
  
! 	  if (decls_match (decl, *iter, /*record_decls=*/false))
! 	    return *iter;
  	}
        return NULL_TREE;
      }
--- 1531,1546 ----
  	  if (TREE_CODE (*iter) == OVERLOAD)
  	    continue;
  
! 	  tree d = *iter;
! 
! 	  /* We can't compare versions in the middle of processing the
! 	     attribute that has the version.  */
! 	  if (TREE_CODE (d) == FUNCTION_DECL
! 	      && DECL_FUNCTION_VERSIONED (d))
! 	    return NULL_TREE;
! 
! 	  if (decls_match (decl, d, /*record_decls=*/false))
! 	    return d;
  	}
        return NULL_TREE;
      }
*************** var_defined_without_dynamic_init (tree v
*** 3441,3447 ****
  /* Returns true iff VAR is a variable that needs uses to be
     wrapped for possible dynamic initialization.  */
  
! static bool
  var_needs_tls_wrapper (tree var)
  {
    return (!error_operand_p (var)
--- 3449,3455 ----
  /* Returns true iff VAR is a variable that needs uses to be
     wrapped for possible dynamic initialization.  */
  
! bool
  var_needs_tls_wrapper (tree var)
  {
    return (!error_operand_p (var)
diff -Nrcpad gcc-11.3.0/gcc/cp/expr.c gcc-11.4.0/gcc/cp/expr.c
*** gcc-11.3.0/gcc/cp/expr.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/expr.c	Mon May 29 08:46:29 2023
*************** mark_use (tree expr, bool rvalue_p, bool
*** 220,226 ****
      case MODIFY_EXPR:
  	{
  	  tree lhs = TREE_OPERAND (expr, 0);
! 	  /* [expr.ass] "A simple assignment whose left operand is of
  	     a volatile-qualified type is deprecated unless the assignment
  	     is either a discarded-value expression or appears in an
  	     unevaluated context."  */
--- 220,226 ----
      case MODIFY_EXPR:
  	{
  	  tree lhs = TREE_OPERAND (expr, 0);
! 	  /* [expr.ass] "An assignment whose left operand is of
  	     a volatile-qualified type is deprecated unless the assignment
  	     is either a discarded-value expression or appears in an
  	     unevaluated context."  */
*************** mark_use (tree expr, bool rvalue_p, bool
*** 230,236 ****
  	      && !TREE_THIS_VOLATILE (expr))
  	    {
  	      if (warning_at (location_of (expr), OPT_Wvolatile,
! 			      "using value of simple assignment with "
  			      "%<volatile%>-qualified left operand is "
  			      "deprecated"))
  		/* Make sure not to warn about this assignment again.  */
--- 230,236 ----
  	      && !TREE_THIS_VOLATILE (expr))
  	    {
  	      if (warning_at (location_of (expr), OPT_Wvolatile,
! 			      "using value of assignment with "
  			      "%<volatile%>-qualified left operand is "
  			      "deprecated"))
  		/* Make sure not to warn about this assignment again.  */
diff -Nrcpad gcc-11.3.0/gcc/cp/friend.c gcc-11.4.0/gcc/cp/friend.c
*** gcc-11.3.0/gcc/cp/friend.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/friend.c	Mon May 29 08:46:29 2023
*************** make_friend_class (tree type, tree frien
*** 467,485 ****
  }
  
  /* Record DECL (a FUNCTION_DECL) as a friend of the
!    CURRENT_CLASS_TYPE.  If DECL is a member function, CTYPE is the
     class of which it is a member, as named in the friend declaration.
     DECLARATOR is the name of the friend.  FUNCDEF_FLAG is true if the
     friend declaration is a definition of the function.  FLAGS is as
     for grokclass fn.  */
  
  tree
! do_friend (tree ctype, tree declarator, tree decl,
  	   tree attrlist, enum overload_flags flags,
  	   bool funcdef_flag)
  {
    gcc_assert (TREE_CODE (decl) == FUNCTION_DECL);
!   gcc_assert (!ctype || MAYBE_CLASS_TYPE_P (ctype));
  
    /* Friend functions are unique, until proved otherwise.  */
    DECL_UNIQUE_FRIEND_P (decl) = 1;
--- 467,498 ----
  }
  
  /* Record DECL (a FUNCTION_DECL) as a friend of the
!    CURRENT_CLASS_TYPE.  If DECL is a member function, SCOPE is the
     class of which it is a member, as named in the friend declaration.
+    If the friend declaration was explicitly namespace-qualified, SCOPE
+    is that namespace.
     DECLARATOR is the name of the friend.  FUNCDEF_FLAG is true if the
     friend declaration is a definition of the function.  FLAGS is as
     for grokclass fn.  */
  
  tree
! do_friend (tree scope, tree declarator, tree decl,
  	   tree attrlist, enum overload_flags flags,
  	   bool funcdef_flag)
  {
    gcc_assert (TREE_CODE (decl) == FUNCTION_DECL);
! 
!   tree ctype = NULL_TREE;
!   tree in_namespace = NULL_TREE;
!   if (!scope)
!     ;
!   else if (MAYBE_CLASS_TYPE_P (scope))
!     ctype = scope;
!   else
!     {
!       gcc_checking_assert (TREE_CODE (scope) == NAMESPACE_DECL);
!       in_namespace = scope;
!     }
  
    /* Friend functions are unique, until proved otherwise.  */
    DECL_UNIQUE_FRIEND_P (decl) = 1;
*************** do_friend (tree ctype, tree declarator,
*** 606,612 ****
  	       parameters.  Instead, we call pushdecl when the class
  	       is instantiated.  */
  	    decl = push_template_decl (decl, /*is_friend=*/true);
! 	  else if (current_function_decl)
  	    /* pushdecl will check there's a local decl already.  */
  	    decl = pushdecl (decl, /*hiding=*/true);
  	  else
--- 619,625 ----
  	       parameters.  Instead, we call pushdecl when the class
  	       is instantiated.  */
  	    decl = push_template_decl (decl, /*is_friend=*/true);
! 	  else if (current_function_decl && !in_namespace)
  	    /* pushdecl will check there's a local decl already.  */
  	    decl = pushdecl (decl, /*hiding=*/true);
  	  else
diff -Nrcpad gcc-11.3.0/gcc/cp/init.c gcc-11.4.0/gcc/cp/init.c
*** gcc-11.3.0/gcc/cp/init.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/init.c	Mon May 29 08:46:29 2023
*************** perform_member_init (tree member, tree i
*** 911,917 ****
        init = build2 (INIT_EXPR, type, decl, init);
        finish_expr_stmt (init);
        FOR_EACH_VEC_ELT (*cleanups, i, t)
! 	push_cleanup (decl, t, false);
      }
    else if (type_build_ctor_call (type)
  	   || (init && CLASS_TYPE_P (strip_array_types (type))))
--- 911,917 ----
        init = build2 (INIT_EXPR, type, decl, init);
        finish_expr_stmt (init);
        FOR_EACH_VEC_ELT (*cleanups, i, t)
! 	push_cleanup (NULL_TREE, t, false);
      }
    else if (type_build_ctor_call (type)
  	   || (init && CLASS_TYPE_P (strip_array_types (type))))
*************** build_new_1 (vec<tree, va_gc> **placemen
*** 3079,3085 ****
  
    tree align_arg = NULL_TREE;
    if (type_has_new_extended_alignment (elt_type))
!     align_arg = build_int_cst (align_type_node, TYPE_ALIGN_UNIT (elt_type));
  
    alloc_fn = NULL_TREE;
  
--- 3079,3091 ----
  
    tree align_arg = NULL_TREE;
    if (type_has_new_extended_alignment (elt_type))
!     {
!       unsigned align = TYPE_ALIGN_UNIT (elt_type);
!       /* Also consider the alignment of the cookie, if any.  */
!       if (array_p && TYPE_VEC_NEW_USES_COOKIE (elt_type))
! 	align = MAX (align, TYPE_ALIGN_UNIT (size_type_node));
!       align_arg = build_int_cst (align_type_node, align);
!     }
  
    alloc_fn = NULL_TREE;
  
*************** build_new_1 (vec<tree, va_gc> **placemen
*** 3261,3278 ****
  	}
      }
  
    if (cookie_size)
!     alloc_call = maybe_wrap_new_for_constexpr (alloc_call, type,
  					       cookie_size);
  
    /* In the simple case, we can stop now.  */
    pointer_type = build_pointer_type (type);
    if (!cookie_size && !is_initialized)
!     return build_nop (pointer_type, alloc_call);
  
    /* Store the result of the allocation call in a variable so that we can
       use it more than once.  */
!   alloc_expr = get_target_expr (alloc_call);
    alloc_node = TARGET_EXPR_SLOT (alloc_expr);
  
    /* Strip any COMPOUND_EXPRs from ALLOC_CALL.  */
--- 3267,3285 ----
  	}
      }
  
+   alloc_expr = alloc_call;
    if (cookie_size)
!     alloc_expr = maybe_wrap_new_for_constexpr (alloc_call, type,
  					       cookie_size);
  
    /* In the simple case, we can stop now.  */
    pointer_type = build_pointer_type (type);
    if (!cookie_size && !is_initialized)
!     return build_nop (pointer_type, alloc_expr);
  
    /* Store the result of the allocation call in a variable so that we can
       use it more than once.  */
!   alloc_expr = get_target_expr (alloc_expr);
    alloc_node = TARGET_EXPR_SLOT (alloc_expr);
  
    /* Strip any COMPOUND_EXPRs from ALLOC_CALL.  */
diff -Nrcpad gcc-11.3.0/gcc/cp/lambda.c gcc-11.4.0/gcc/cp/lambda.c
*** gcc-11.3.0/gcc/cp/lambda.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/lambda.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 31,36 ****
--- 31,37 ----
  #include "toplev.h"
  #include "gimplify.h"
  #include "target.h"
+ #include "decl.h"
  
  /* Constructor for a lambda expression.  */
  
*************** lambda_function (tree lambda)
*** 202,207 ****
--- 203,226 ----
    return lambda;
  }
  
+ /* True if EXPR is an expression whose type can be used directly in lambda
+    capture.  Not to be used for 'auto'.  */
+ 
+ static bool
+ type_deducible_expression_p (tree expr)
+ {
+   if (!type_dependent_expression_p (expr))
+     return true;
+   if (BRACE_ENCLOSED_INITIALIZER_P (expr)
+       || TREE_CODE (expr) == EXPR_PACK_EXPANSION)
+     return false;
+   tree t = non_reference (TREE_TYPE (expr));
+   if (!t) return false;
+   while (TREE_CODE (t) == POINTER_TYPE)
+     t = TREE_TYPE (t);
+   return currently_open_class (t);
+ }
+ 
  /* Returns the type to use for the FIELD_DECL corresponding to the
     capture of EXPR.  EXPLICIT_INIT_P indicates whether this is a
     C++14 init capture, and BY_REFERENCE_P indicates whether we're
*************** lambda_capture_field_type (tree expr, bo
*** 228,234 ****
        else
  	type = do_auto_deduction (type, expr, auto_node);
      }
!   else if (!is_this && type_dependent_expression_p (expr))
      {
        type = cxx_make_type (DECLTYPE_TYPE);
        DECLTYPE_TYPE_EXPR (type) = expr;
--- 247,253 ----
        else
  	type = do_auto_deduction (type, expr, auto_node);
      }
!   else if (!is_this && !type_deducible_expression_p (expr))
      {
        type = cxx_make_type (DECLTYPE_TYPE);
        DECLTYPE_TYPE_EXPR (type) = expr;
*************** maybe_add_lambda_conv_op (tree type)
*** 1177,1185 ****
  	}
      }
    else
!     call = build_call_a (callop,
! 			 direct_argvec->length (),
! 			 direct_argvec->address ());
  
    CALL_FROM_THUNK_P (call) = 1;
    SET_EXPR_LOCATION (call, UNKNOWN_LOCATION);
--- 1196,1208 ----
  	}
      }
    else
!     {
!       /* Don't warn on deprecated lambda declarations, unless
! 	 the lambda is actually called.  */
!       auto du = make_temp_override (deprecated_state, DEPRECATED_SUPPRESS);
!       call = build_call_a (callop, direct_argvec->length (),
! 			   direct_argvec->address ());
!     }
  
    CALL_FROM_THUNK_P (call) = 1;
    SET_EXPR_LOCATION (call, UNKNOWN_LOCATION);
*************** prune_lambda_captures (tree body)
*** 1536,1541 ****
--- 1559,1567 ----
    if (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (lam) == CPLD_NONE)
      /* No default captures, and we don't prune explicit captures.  */
      return;
+   /* Don't bother pruning in a template, we'll prune at instantiation time.  */
+   if (dependent_type_p (TREE_TYPE (lam)))
+     return;
  
    hash_map<tree,tree*> const_vars;
  
diff -Nrcpad gcc-11.3.0/gcc/cp/module.cc gcc-11.4.0/gcc/cp/module.cc
*** gcc-11.3.0/gcc/cp/module.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/module.cc	Mon May 29 08:46:29 2023
*************** trees_out::get_merge_kind (tree decl, de
*** 10059,10067 ****
        tree ctx = CP_DECL_CONTEXT (decl);
        if (TREE_CODE (ctx) == FUNCTION_DECL)
  	{
! 	  /* USING_DECLs cannot have DECL_TEMPLATE_INFO -- this isn't
! 	     permitting them to have one.   */
  	  gcc_checking_assert (TREE_CODE (decl) == USING_DECL
  			       || !DECL_LANG_SPECIFIC (decl)
  			       || !DECL_TEMPLATE_INFO (decl));
  
--- 10059,10068 ----
        tree ctx = CP_DECL_CONTEXT (decl);
        if (TREE_CODE (ctx) == FUNCTION_DECL)
  	{
! 	  /* USING_DECLs and NAMESPACE_DECLs cannot have DECL_TEMPLATE_INFO --
! 	     this isn't permitting them to have one.   */
  	  gcc_checking_assert (TREE_CODE (decl) == USING_DECL
+ 			       || TREE_CODE (decl) == NAMESPACE_DECL
  			       || !DECL_LANG_SPECIFIC (decl)
  			       || !DECL_TEMPLATE_INFO (decl));
  
diff -Nrcpad gcc-11.3.0/gcc/cp/parser.c gcc-11.4.0/gcc/cp/parser.c
*** gcc-11.3.0/gcc/cp/parser.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/parser.c	Mon May 29 08:46:29 2023
*************** cp_parser_binary_expression (cp_parser*
*** 9968,9974 ****
  		      || (TREE_CODE (TREE_TYPE (TREE_OPERAND (current.lhs, 0)))
  			  != BOOLEAN_TYPE))))
  	  /* Avoid warning for !!b == y where b is boolean.  */
! 	  && (!DECL_P (tree_strip_any_location_wrapper (current.lhs))
  	      || TREE_TYPE (current.lhs) == NULL_TREE
  	      || TREE_CODE (TREE_TYPE (current.lhs)) != BOOLEAN_TYPE))
  	warn_logical_not_parentheses (current.loc, current.tree_type,
--- 9968,9977 ----
  		      || (TREE_CODE (TREE_TYPE (TREE_OPERAND (current.lhs, 0)))
  			  != BOOLEAN_TYPE))))
  	  /* Avoid warning for !!b == y where b is boolean.  */
! 	  && (!(DECL_P (tree_strip_any_location_wrapper (current.lhs))
! 		|| (TREE_CODE (current.lhs) == NON_LVALUE_EXPR
! 		    && DECL_P (tree_strip_any_location_wrapper
! 					    (TREE_OPERAND (current.lhs, 0)))))
  	      || TREE_TYPE (current.lhs) == NULL_TREE
  	      || TREE_CODE (TREE_TYPE (current.lhs)) != BOOLEAN_TYPE))
  	warn_logical_not_parentheses (current.loc, current.tree_type,
*************** cp_parser_template_name (cp_parser* pars
*** 17728,17734 ****
  			: parser->context->object_type);
  	  if (scope && TYPE_P (scope)
  	      && (!CLASS_TYPE_P (scope)
! 		  || (check_dependency_p && dependent_type_p (scope))))
  	    {
  	      /* We're optimizing away the call to cp_parser_lookup_name, but
  		 we still need to do this.  */
--- 17731,17737 ----
  			: parser->context->object_type);
  	  if (scope && TYPE_P (scope)
  	      && (!CLASS_TYPE_P (scope)
! 		  || (check_dependency_p && dependent_scope_p (scope))))
  	    {
  	      /* We're optimizing away the call to cp_parser_lookup_name, but
  		 we still need to do this.  */
*************** cp_parser_template_name (cp_parser* pars
*** 17739,17746 ****
      }
  
    /* cp_parser_lookup_name clears OBJECT_TYPE.  */
!   const bool scoped_p = ((parser->scope ? parser->scope
! 			  : parser->context->object_type) != NULL_TREE);
  
    /* Look up the name.  */
    decl = cp_parser_lookup_name (parser, identifier,
--- 17742,17749 ----
      }
  
    /* cp_parser_lookup_name clears OBJECT_TYPE.  */
!   tree scope = (parser->scope ? parser->scope
! 		: parser->context->object_type);
  
    /* Look up the name.  */
    decl = cp_parser_lookup_name (parser, identifier,
*************** cp_parser_template_name (cp_parser* pars
*** 17753,17758 ****
--- 17756,17774 ----
  
    decl = strip_using_decl (decl);
  
+   /* 13.3 [temp.names] A < is interpreted as the delimiter of a
+     template-argument-list if it follows a name that is not a
+     conversion-function-id and
+     - that follows the keyword template or a ~ after a nested-name-specifier or
+     in a class member access expression, or
+     - for which name lookup finds the injected-class-name of a class template
+     or finds any declaration of a template, or
+     - that is an unqualified name for which name lookup either finds one or
+     more functions or finds nothing, or
+     - that is a terminal name in a using-declarator (9.9), in a declarator-id
+     (9.3.4), or in a type-only context other than a nested-name-specifier
+     (13.8).  */
+ 
    /* If DECL is a template, then the name was a template-name.  */
    if (TREE_CODE (decl) == TEMPLATE_DECL)
      {
*************** cp_parser_template_name (cp_parser* pars
*** 17772,17782 ****
      }
    else
      {
!       /* The standard does not explicitly indicate whether a name that
! 	 names a set of overloaded declarations, some of which are
! 	 templates, is a template-name.  However, such a name should
! 	 be a template-name; otherwise, there is no way to form a
! 	 template-id for the overloaded templates.  */
        bool found = false;
  
        for (lkp_iterator iter (MAYBE_BASELINK_FUNCTIONS (decl));
--- 17788,17794 ----
      }
    else
      {
!       /* Look through an overload set for any templates.  */
        bool found = false;
  
        for (lkp_iterator iter (MAYBE_BASELINK_FUNCTIONS (decl));
*************** cp_parser_template_name (cp_parser* pars
*** 17784,17799 ****
  	if (TREE_CODE (*iter) == TEMPLATE_DECL)
  	  found = true;
  
        if (!found
  	  && (cxx_dialect > cxx17)
! 	  && !scoped_p
  	  && cp_lexer_next_token_is (parser->lexer, CPP_LESS)
  	  && tag_type == none_type)
  	{
- 	  /* [temp.names] says "A name is also considered to refer to a template
- 	     if it is an unqualified-id followed by a < and name lookup finds
- 	     either one or more functions or finds nothing."  */
- 
  	  /* The "more functions" case.  Just use the OVERLOAD as normally.
  	     We don't use is_overloaded_fn here to avoid considering
  	     BASELINKs.  */
--- 17796,17809 ----
  	if (TREE_CODE (*iter) == TEMPLATE_DECL)
  	  found = true;
  
+       /* "an unqualified name for which name lookup either finds one or more
+ 	 functions or finds nothing".  */
        if (!found
  	  && (cxx_dialect > cxx17)
! 	  && !scope
  	  && cp_lexer_next_token_is (parser->lexer, CPP_LESS)
  	  && tag_type == none_type)
  	{
  	  /* The "more functions" case.  Just use the OVERLOAD as normally.
  	     We don't use is_overloaded_fn here to avoid considering
  	     BASELINKs.  */
*************** cp_parser_template_name (cp_parser* pars
*** 17806,17811 ****
--- 17816,17828 ----
  	    return identifier;
  	}
  
+       /* "that follows the keyword template"..."in a type-only context" */
+       if (!found && scope
+ 	  && (template_keyword_p || tag_type != none_type)
+ 	  && TYPE_P (scope) && dependent_type_p (scope)
+ 	  && cp_parser_nth_token_starts_template_argument_list_p (parser, 1))
+ 	return identifier;
+ 
        if (!found)
  	{
  	  /* The name does not name a template.  */
*************** cp_parser_class_specifier_1 (cp_parser*
*** 24967,24972 ****
--- 24984,24990 ----
        case CPP_OPEN_PAREN:
        case CPP_CLOSE_PAREN:
        case CPP_COMMA:
+       case CPP_SCOPE:
          want_semicolon = false;
          break;
  
*************** cp_parser_lookup_name (cp_parser *parser
*** 29419,29427 ****
      }
    else if (object_type)
      {
        /* Look up the name in the scope of the OBJECT_TYPE, unless the
  	 OBJECT_TYPE is not a class.  */
!       if (CLASS_TYPE_P (object_type))
  	/* If the OBJECT_TYPE is a template specialization, it may
  	   be instantiated during name lookup.  In that case, errors
  	   may be issued.  Even if we rollback the current tentative
--- 29437,29448 ----
      }
    else if (object_type)
      {
+       bool dep = dependent_scope_p (object_type);
+ 
        /* Look up the name in the scope of the OBJECT_TYPE, unless the
  	 OBJECT_TYPE is not a class.  */
!       if (CLASS_TYPE_P (object_type)
! 	  && !(dep && LAMBDA_TYPE_P (object_type)))
  	/* If the OBJECT_TYPE is a template specialization, it may
  	   be instantiated during name lookup.  In that case, errors
  	   may be issued.  Even if we rollback the current tentative
*************** class_decl_loc_t::add (cp_parser *parser
*** 32308,32314 ****
    bool key_redundant = (!def_p && !decl_p
  			&& (decl == type_decl
  			    || TREE_CODE (decl) == TEMPLATE_DECL
! 			    || TYPE_BEING_DEFINED (type)));
  
    if (key_redundant
        && class_key != class_type
--- 32329,32336 ----
    bool key_redundant = (!def_p && !decl_p
  			&& (decl == type_decl
  			    || TREE_CODE (decl) == TEMPLATE_DECL
! 			    || (CLASS_TYPE_P (type)
! 				&& TYPE_BEING_DEFINED (type))));
  
    if (key_redundant
        && class_key != class_type
*************** class_decl_loc_t::add (cp_parser *parser
*** 32346,32352 ****
  	}
        else
  	{
! 	  /* TYPE was previously defined in some unknown precompiled hdeader.
  	     Simply add a record of its definition at an unknown location and
  	     proceed below to add a reference to it at the current location.
  	     (Declarations in precompiled headers that are not definitions
--- 32368,32374 ----
  	}
        else
  	{
! 	  /* TYPE was previously defined in some unknown precompiled header.
  	     Simply add a record of its definition at an unknown location and
  	     proceed below to add a reference to it at the current location.
  	     (Declarations in precompiled headers that are not definitions
diff -Nrcpad gcc-11.3.0/gcc/cp/pt.c gcc-11.4.0/gcc/cp/pt.c
*** gcc-11.3.0/gcc/cp/pt.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/pt.c	Mon May 29 08:46:29 2023
*************** determine_specialization (tree template_
*** 2524,2540 ****
      }
  
    /* It was a specialization of a template.  */
!   targs = DECL_TI_ARGS (DECL_TEMPLATE_RESULT (TREE_VALUE (templates)));
!   if (TMPL_ARGS_HAVE_MULTIPLE_LEVELS (targs))
!     {
!       *targs_out = copy_node (targs);
!       SET_TMPL_ARGS_LEVEL (*targs_out,
! 			   TMPL_ARGS_DEPTH (*targs_out),
! 			   TREE_PURPOSE (templates));
!     }
!   else
!     *targs_out = TREE_PURPOSE (templates);
!   return TREE_VALUE (templates);
  }
  
  /* Returns a chain of parameter types, exactly like the SPEC_TYPES,
--- 2524,2537 ----
      }
  
    /* It was a specialization of a template.  */
!   tree tmpl = TREE_VALUE (templates);
!   *targs_out = add_outermost_template_args (tmpl, TREE_PURPOSE (templates));
! 
!   /* Propagate the template's constraints to the declaration.  */
!   if (tsk != tsk_template)
!     set_constraints (decl, get_constraints (tmpl));
! 
!   return tmpl;
  }
  
  /* Returns a chain of parameter types, exactly like the SPEC_TYPES,
*************** process_partial_specialization (tree dec
*** 5200,5207 ****
  	   && !get_partial_spec_bindings (maintmpl, maintmpl, specargs))
      {
        auto_diagnostic_group d;
!       if (permerror (input_location, "partial specialization %qD is not "
! 		     "more specialized than", decl))
  	inform (DECL_SOURCE_LOCATION (maintmpl), "primary template %qD",
  		maintmpl);
      }
--- 5197,5205 ----
  	   && !get_partial_spec_bindings (maintmpl, maintmpl, specargs))
      {
        auto_diagnostic_group d;
!       if (pedwarn (input_location, 0,
! 		   "partial specialization %qD is not more specialized than",
! 		   decl))
  	inform (DECL_SOURCE_LOCATION (maintmpl), "primary template %qD",
  		maintmpl);
      }
*************** uses_template_parms (tree t)
*** 10889,10895 ****
  		   || uses_template_parms (TREE_CHAIN (t)));
    else if (TREE_CODE (t) == TYPE_DECL)
      dependent_p = dependent_type_p (TREE_TYPE (t));
!   else if (t == error_mark_node)
      dependent_p = false;
    else
      dependent_p = instantiation_dependent_expression_p (t);
--- 10887,10893 ----
  		   || uses_template_parms (TREE_CHAIN (t)));
    else if (TREE_CODE (t) == TYPE_DECL)
      dependent_p = dependent_type_p (TREE_TYPE (t));
!   else if (t == error_mark_node || TREE_CODE (t) == NAMESPACE_DECL)
      dependent_p = false;
    else
      dependent_p = instantiation_dependent_expression_p (t);
*************** outermost_tinst_level (void)
*** 11136,11141 ****
--- 11134,11166 ----
    return level;
  }
  
+ /* True iff T is a friend function declaration that is not itself a template
+    and is not defined in a class template.  */
+ 
+ bool
+ non_templated_friend_p (tree t)
+ {
+   if (t && TREE_CODE (t) == FUNCTION_DECL
+       && DECL_UNIQUE_FRIEND_P (t))
+     {
+       tree ti = DECL_TEMPLATE_INFO (t);
+       if (!ti)
+ 	return true;
+       /* DECL_FRIEND_CONTEXT is set for a friend defined in class.  */
+       if (DECL_FRIEND_CONTEXT (t))
+ 	return false;
+       /* Non-templated friends in a class template are still represented with a
+ 	 TEMPLATE_DECL; check that its primary template is the befriending
+ 	 class.  Note that DECL_PRIMARY_TEMPLATE is null for
+ 	 template <class T> friend A<T>::f(); */
+       tree tmpl = TI_TEMPLATE (ti);
+       tree primary = DECL_PRIMARY_TEMPLATE (tmpl);
+       return (primary && primary != tmpl);
+     }
+   else
+     return false;
+ }
+ 
  /* DECL is a friend FUNCTION_DECL or TEMPLATE_DECL.  ARGS is the
     vector of template arguments, as for tsubst.
  
*************** tsubst_friend_function (tree decl, tree
*** 11236,11244 ****
        tree new_friend_template_info = DECL_TEMPLATE_INFO (new_friend);
        tree new_friend_result_template_info = NULL_TREE;
        bool new_friend_is_defn =
! 	(DECL_INITIAL (DECL_TEMPLATE_RESULT
! 		       (template_for_substitution (new_friend)))
! 	 != NULL_TREE);
        tree not_tmpl = new_friend;
  
        if (TREE_CODE (new_friend) == TEMPLATE_DECL)
--- 11261,11270 ----
        tree new_friend_template_info = DECL_TEMPLATE_INFO (new_friend);
        tree new_friend_result_template_info = NULL_TREE;
        bool new_friend_is_defn =
! 	(new_friend_template_info
! 	 && (DECL_INITIAL (DECL_TEMPLATE_RESULT
! 			   (template_for_substitution (new_friend)))
! 	     != NULL_TREE));
        tree not_tmpl = new_friend;
  
        if (TREE_CODE (new_friend) == TEMPLATE_DECL)
*************** gen_elem_of_pack_expansion_instantiation
*** 12641,12647 ****
      t = tsubst_expr (pattern, args, complain, in_decl,
  		     /*integral_constant_expression_p=*/false);
    else
!     t = tsubst (pattern, args, complain, in_decl);
  
    /*  If the Ith argument pack element is a pack expansion, then
        the Ith element resulting from the substituting is going to
--- 12667,12679 ----
      t = tsubst_expr (pattern, args, complain, in_decl,
  		     /*integral_constant_expression_p=*/false);
    else
!     {
!       t = tsubst (pattern, args, complain, in_decl);
!       if (is_auto (t) && !ith_elem_is_expansion)
! 	/* When expanding the fake auto... pack expansion from add_capture, we
! 	   need to mark that the expansion is no longer a pack.  */
! 	TEMPLATE_TYPE_PARAMETER_PACK (t) = false;
!     }
  
    /*  If the Ith argument pack element is a pack expansion, then
        the Ith element resulting from the substituting is going to
*************** public:
*** 12893,12909 ****
    /* List of local_specializations used within the pattern.  */
    tree extra;
    tsubst_flags_t complain;
  
    el_data (tsubst_flags_t c)
      : extra (NULL_TREE), complain (c) {}
  };
  static tree
! extract_locals_r (tree *tp, int */*walk_subtrees*/, void *data_)
  {
    el_data &data = *reinterpret_cast<el_data*>(data_);
    tree *extra = &data.extra;
    tsubst_flags_t complain = data.complain;
  
    if (TYPE_P (*tp) && typedef_variant_p (*tp))
      /* Remember local typedefs (85214).  */
      tp = &TYPE_NAME (*tp);
--- 12925,12953 ----
    /* List of local_specializations used within the pattern.  */
    tree extra;
    tsubst_flags_t complain;
+   /* True iff we don't want to walk into unevaluated contexts.  */
+   bool skip_unevaluated_operands = false;
+   /* The unevaluated contexts that we avoided walking.  */
+   auto_vec<tree> skipped_trees;
  
    el_data (tsubst_flags_t c)
      : extra (NULL_TREE), complain (c) {}
  };
  static tree
! extract_locals_r (tree *tp, int *walk_subtrees, void *data_)
  {
    el_data &data = *reinterpret_cast<el_data*>(data_);
    tree *extra = &data.extra;
    tsubst_flags_t complain = data.complain;
  
+   if (data.skip_unevaluated_operands
+       && unevaluated_p (TREE_CODE (*tp)))
+     {
+       data.skipped_trees.safe_push (*tp);
+       *walk_subtrees = 0;
+       return NULL_TREE;
+     }
+ 
    if (TYPE_P (*tp) && typedef_variant_p (*tp))
      /* Remember local typedefs (85214).  */
      tp = &TYPE_NAME (*tp);
*************** static tree
*** 12995,13001 ****
--- 13039,13058 ----
  extract_local_specs (tree pattern, tsubst_flags_t complain)
  {
    el_data data (complain);
+   /* Walk the pattern twice, ignoring unevaluated operands the first time
+      around, so that if a local specialization appears in both an evaluated
+      and unevaluated context we prefer to process it in the evaluated context
+      (since e.g. process_outer_var_ref is a no-op inside an unevaluated
+      context).  */
+   data.skip_unevaluated_operands = true;
    cp_walk_tree (&pattern, extract_locals_r, &data, &data.visited);
+   /* Now walk the unevaluated contexts we skipped the first time around.  */
+   data.skip_unevaluated_operands = false;
+   for (tree t : data.skipped_trees)
+     {
+       data.visited.remove (t);
+       cp_walk_tree (&t, extract_locals_r, &data, &data.visited);
+     }
    return data.extra;
  }
  
*************** tsubst_function_decl (tree t, tree args,
*** 14037,14042 ****
--- 14094,14103 ----
  	  && !LAMBDA_FUNCTION_P (t))
  	return t;
  
+       /* A non-templated friend doesn't get DECL_TEMPLATE_INFO.  */
+       if (non_templated_friend_p (t))
+ 	goto friend_case;
+ 
        /* Calculate the most general template of which R is a
  	 specialization.  */
        gen_tmpl = most_general_template (DECL_TI_TEMPLATE (t));
*************** tsubst_function_decl (tree t, tree args,
*** 14072,14078 ****
        /* This special case arises when we have something like this:
  
  	 template <class T> struct S {
! 	 friend void f<int>(int, double);
  	 };
  
  	 Here, the DECL_TI_TEMPLATE for the friend declaration
--- 14133,14139 ----
        /* This special case arises when we have something like this:
  
  	 template <class T> struct S {
! 	   friend void f<int>(int, double);
  	 };
  
  	 Here, the DECL_TI_TEMPLATE for the friend declaration
*************** tsubst_function_decl (tree t, tree args,
*** 14080,14085 ****
--- 14141,14147 ----
  	 tsubst_friend_function, and we want only to create a
  	 new decl (R) with appropriate types so that we can call
  	 determine_specialization.  */
+     friend_case:
        gen_tmpl = NULL_TREE;
        argvec = NULL_TREE;
      }
*************** tsubst_function_decl (tree t, tree args,
*** 14269,14275 ****
        /* If this is an instantiation of a member template, clone it.
  	 If it isn't, that'll be handled by
  	 clone_constructors_and_destructors.  */
!       if (PRIMARY_TEMPLATE_P (gen_tmpl))
  	clone_cdtor (r, /*update_methods=*/false);
      }
    else if ((complain & tf_error) != 0
--- 14331,14337 ----
        /* If this is an instantiation of a member template, clone it.
  	 If it isn't, that'll be handled by
  	 clone_constructors_and_destructors.  */
!       if (gen_tmpl && PRIMARY_TEMPLATE_P (gen_tmpl))
  	clone_cdtor (r, /*update_methods=*/false);
      }
    else if ((complain & tf_error) != 0
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 15110,15115 ****
--- 15172,15183 ----
  	  {
  	    DECL_ORIGINAL_TYPE (r) = NULL_TREE;
  	    set_underlying_type (r);
+ 
+ 	    /* common_handle_aligned_attribute doesn't apply the alignment
+ 	       to DECL_ORIGINAL_TYPE.  */
+ 	    if (TYPE_USER_ALIGN (TREE_TYPE (t)))
+ 	      TREE_TYPE (r) = build_aligned_type (TREE_TYPE (r),
+ 						  TYPE_ALIGN (TREE_TYPE (t)));
  	  }
  
  	layout_decl (r, 0);
*************** tsubst_baselink (tree baselink, tree obj
*** 16404,16410 ****
  
    tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink));
    binfo_type = tsubst (binfo_type, args, complain, in_decl);
!   bool dependent_p = binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink));
  
    if (dependent_p)
      {
--- 16472,16479 ----
  
    tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink));
    binfo_type = tsubst (binfo_type, args, complain, in_decl);
!   bool dependent_p = (binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink))
! 		      || optype != BASELINK_OPTYPE (baselink));
  
    if (dependent_p)
      {
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 18508,18513 ****
--- 18577,18587 ----
  		    maybe_push_decl (decl);
  
  		    if (VAR_P (decl)
+ 			&& DECL_LANG_SPECIFIC (decl)
+ 			&& DECL_OMP_PRIVATIZED_MEMBER (decl))
+ 		      break;
+ 
+ 		    if (VAR_P (decl)
  			&& DECL_DECOMPOSITION_P (decl)
  			&& TREE_TYPE (pattern_decl) != error_mark_node)
  		      ndecl = tsubst_decomp_names (decl, pattern_decl, args,
*************** unify_pack_expansion (tree tparms, tree
*** 23410,23415 ****
--- 23484,23491 ----
  	     arguments if it is not otherwise deduced.  */
  	  if (cxx_dialect >= cxx20
  	      && TREE_VEC_LENGTH (new_args) < TREE_VEC_LENGTH (old_args)
+ 	      /* FIXME This isn't set properly for partial instantiations.  */
+ 	      && TPARMS_PRIMARY_TEMPLATE (tparms)
  	      && builtin_guide_p (TPARMS_PRIMARY_TEMPLATE (tparms)))
  	    TREE_VEC_LENGTH (old_args) = TREE_VEC_LENGTH (new_args);
  	  if (!comp_template_args (old_args, new_args,
*************** unify (tree tparms, tree targs, tree par
*** 23928,23934 ****
  	      /* Now check whether the type of this parameter is still
  		 dependent, and give up if so.  */
  	      ++processing_template_decl;
! 	      tparm = tsubst (tparm, targs, tf_none, NULL_TREE);
  	      --processing_template_decl;
  	      if (uses_template_parms (tparm))
  		return unify_success (explain_p);
--- 24004,24010 ----
  	      /* Now check whether the type of this parameter is still
  		 dependent, and give up if so.  */
  	      ++processing_template_decl;
! 	      tparm = tsubst (TREE_TYPE (parm), targs, tf_none, NULL_TREE);
  	      --processing_template_decl;
  	      if (uses_template_parms (tparm))
  		return unify_success (explain_p);
*************** rewrite_template_parm (tree olddecl, uns
*** 28726,28732 ****
  	  const int depth = TMPL_ARGS_DEPTH (tsubst_args);
  	  tree ttargs = make_tree_vec (depth + 1);
  	  for (int i = 0; i < depth; ++i)
! 	    TREE_VEC_ELT (ttargs, i) = TREE_VEC_ELT (tsubst_args, i);
  	  TREE_VEC_ELT (ttargs, depth)
  	    = template_parms_level_to_args (ttparms);
  	  // Substitute ttargs into ttparms to fix references to
--- 28802,28808 ----
  	  const int depth = TMPL_ARGS_DEPTH (tsubst_args);
  	  tree ttargs = make_tree_vec (depth + 1);
  	  for (int i = 0; i < depth; ++i)
! 	    TREE_VEC_ELT (ttargs, i) = TMPL_ARGS_LEVEL (tsubst_args, i + 1);
  	  TREE_VEC_ELT (ttargs, depth)
  	    = template_parms_level_to_args (ttparms);
  	  // Substitute ttargs into ttparms to fix references to
*************** rewrite_template_parm (tree olddecl, uns
*** 28739,28746 ****
  	  ttparms = tsubst_template_parms_level (ttparms, ttargs,
  						 complain);
  	  // Finally, tack the adjusted parms onto tparms.
! 	  ttparms = tree_cons (size_int (depth), ttparms,
! 			       current_template_parms);
  	  DECL_TEMPLATE_PARMS (newdecl) = ttparms;
  	}
      }
--- 28815,28831 ----
  	  ttparms = tsubst_template_parms_level (ttparms, ttargs,
  						 complain);
  	  // Finally, tack the adjusted parms onto tparms.
! 	  ttparms = tree_cons (size_int (level + 1), ttparms,
! 			       copy_node (current_template_parms));
! 	  // As with all template template parms, the parameter list captured
! 	  // by this template template parm that corresponds to its own level
! 	  // should be empty.  This avoids infinite recursion when structurally
! 	  // comparing two such rewritten template template parms (PR102479).
! 	  gcc_assert (!TREE_VEC_LENGTH
! 		      (TREE_VALUE (TREE_CHAIN (DECL_TEMPLATE_PARMS (olddecl)))));
! 	  gcc_assert (TMPL_PARMS_DEPTH (TREE_CHAIN (ttparms)) == level);
! 	  TREE_VALUE (TREE_CHAIN (ttparms)) = make_tree_vec (0);
! 	  // All done.
  	  DECL_TEMPLATE_PARMS (newdecl) = ttparms;
  	}
      }
*************** alias_ctad_tweaks (tree tmpl, tree uguid
*** 29238,29243 ****
--- 29323,29333 ----
  	      ++ndlen;
  	  tree gtparms = make_tree_vec (natparms + ndlen);
  
+ 	  /* Set current_template_parms as in build_deduction_guide.  */
+ 	  auto ctp = make_temp_override (current_template_parms);
+ 	  current_template_parms = copy_node (DECL_TEMPLATE_PARMS (tmpl));
+ 	  TREE_VALUE (current_template_parms) = gtparms;
+ 
  	  /* First copy over the parms of A.  */
  	  for (j = 0; j < natparms; ++j)
  	    TREE_VEC_ELT (gtparms, j) = TREE_VEC_ELT (atparms, j);
diff -Nrcpad gcc-11.3.0/gcc/cp/semantics.c gcc-11.4.0/gcc/cp/semantics.c
*** gcc-11.3.0/gcc/cp/semantics.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/semantics.c	Mon May 29 08:46:29 2023
*************** do_pushlevel (scope_kind sk)
*** 655,661 ****
  
  /* Queue a cleanup.  CLEANUP is an expression/statement to be executed
     when the current scope is exited.  EH_ONLY is true when this is not
!    meant to apply to normal control flow transfer.  */
  
  void
  push_cleanup (tree decl, tree cleanup, bool eh_only)
--- 655,662 ----
  
  /* Queue a cleanup.  CLEANUP is an expression/statement to be executed
     when the current scope is exited.  EH_ONLY is true when this is not
!    meant to apply to normal control flow transfer.  DECL is the VAR_DECL
!    being cleaned up, if any, or null for temporaries or subobjects.  */
  
  void
  push_cleanup (tree decl, tree cleanup, bool eh_only)
*************** finish_qualified_id_expr (tree qualifyin
*** 2301,2307 ****
  
    /* If EXPR occurs as the operand of '&', use special handling that
       permits a pointer-to-member.  */
!   if (address_p && done)
      {
        if (TREE_CODE (expr) == SCOPE_REF)
  	expr = TREE_OPERAND (expr, 1);
--- 2302,2309 ----
  
    /* If EXPR occurs as the operand of '&', use special handling that
       permits a pointer-to-member.  */
!   if (address_p && done
!       && TREE_CODE (qualifying_class) != ENUMERAL_TYPE)
      {
        if (TREE_CODE (expr) == SCOPE_REF)
  	expr = TREE_OPERAND (expr, 1);
*************** finish_decltype_type (tree expr, bool id
*** 10220,10226 ****
      }
    else if (processing_template_decl)
      {
!       expr = instantiate_non_dependent_expr_sfinae (expr, complain);
        if (expr == error_mark_node)
  	return error_mark_node;
      }
--- 10222,10228 ----
      }
    else if (processing_template_decl)
      {
!       expr = instantiate_non_dependent_expr_sfinae (expr, complain|tf_decltype);
        if (expr == error_mark_node)
  	return error_mark_node;
      }
diff -Nrcpad gcc-11.3.0/gcc/cp/tree.c gcc-11.4.0/gcc/cp/tree.c
*** gcc-11.3.0/gcc/cp/tree.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/tree.c	Mon May 29 08:46:29 2023
*************** record_has_unique_obj_representations (c
*** 4641,4647 ****
  						    DECL_SIZE (field)))
  	  return false;
        }
!     else if (DECL_C_BIT_FIELD (field))
        {
  	tree btype = DECL_BIT_FIELD_TYPE (field);
  	if (!type_has_unique_obj_representations (btype))
--- 4641,4647 ----
  						    DECL_SIZE (field)))
  	  return false;
        }
!     else if (DECL_C_BIT_FIELD (field) && !DECL_UNNAMED_BIT_FIELD (field))
        {
  	tree btype = DECL_BIT_FIELD_TYPE (field);
  	if (!type_has_unique_obj_representations (btype))
*************** record_has_unique_obj_representations (c
*** 4652,4658 ****
  
    offset_int cur = 0;
    for (tree field = TYPE_FIELDS (t); field; field = DECL_CHAIN (field))
!     if (TREE_CODE (field) == FIELD_DECL)
        {
  	offset_int fld = wi::to_offset (DECL_FIELD_OFFSET (field));
  	offset_int bitpos = wi::to_offset (DECL_FIELD_BIT_OFFSET (field));
--- 4652,4658 ----
  
    offset_int cur = 0;
    for (tree field = TYPE_FIELDS (t); field; field = DECL_CHAIN (field))
!     if (TREE_CODE (field) == FIELD_DECL && !DECL_UNNAMED_BIT_FIELD (field))
        {
  	offset_int fld = wi::to_offset (DECL_FIELD_OFFSET (field));
  	offset_int bitpos = wi::to_offset (DECL_FIELD_BIT_OFFSET (field));
diff -Nrcpad gcc-11.3.0/gcc/cp/typeck.c gcc-11.4.0/gcc/cp/typeck.c
*** gcc-11.3.0/gcc/cp/typeck.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cp/typeck.c	Mon May 29 08:46:29 2023
*************** cp_build_binary_op (const op_location_t
*** 4926,4932 ****
  		 it was unsigned.  */
  	      tree stripped_op1 = tree_strip_any_location_wrapper (op1);
  	      shorten = ((TREE_CODE (op0) == NOP_EXPR
! 			  && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0))))
  			 || (TREE_CODE (stripped_op1) == INTEGER_CST
  			     && ! integer_all_onesp (stripped_op1)));
  	    }
--- 4926,4937 ----
  		 it was unsigned.  */
  	      tree stripped_op1 = tree_strip_any_location_wrapper (op1);
  	      shorten = ((TREE_CODE (op0) == NOP_EXPR
! 			  && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (op0,
! 								       0)))
! 			  && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))
! 			  && (TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (op0,
! 								       0)))
! 			      < TYPE_PRECISION (type0)))
  			 || (TREE_CODE (stripped_op1) == INTEGER_CST
  			     && ! integer_all_onesp (stripped_op1)));
  	    }
*************** cp_build_binary_op (const op_location_t
*** 4962,4968 ****
  	     only if unsigned or if dividing by something we know != -1.  */
  	  tree stripped_op1 = tree_strip_any_location_wrapper (op1);
  	  shorten = ((TREE_CODE (op0) == NOP_EXPR
! 		      && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0))))
  		     || (TREE_CODE (stripped_op1) == INTEGER_CST
  			 && ! integer_all_onesp (stripped_op1)));
  	  common = 1;
--- 4967,4976 ----
  	     only if unsigned or if dividing by something we know != -1.  */
  	  tree stripped_op1 = tree_strip_any_location_wrapper (op1);
  	  shorten = ((TREE_CODE (op0) == NOP_EXPR
! 		      && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (op0, 0)))
! 		      && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))
! 		      && (TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (op0, 0)))
! 			  < TYPE_PRECISION (type0)))
  		     || (TREE_CODE (stripped_op1) == INTEGER_CST
  			 && ! integer_all_onesp (stripped_op1)));
  	  common = 1;
*************** cp_build_unary_op (enum tree_code code,
*** 6741,6749 ****
  				   build_zero_cst (TREE_TYPE (arg)), complain);
        arg = perform_implicit_conversion (boolean_type_node, arg,
  					 complain);
-       val = invert_truthvalue_loc (location, arg);
        if (arg != error_mark_node)
! 	return val;
        errstring = _("in argument to unary !");
        break;
  
--- 6749,6761 ----
  				   build_zero_cst (TREE_TYPE (arg)), complain);
        arg = perform_implicit_conversion (boolean_type_node, arg,
  					 complain);
        if (arg != error_mark_node)
! 	{
! 	  val = invert_truthvalue_loc (location, arg);
! 	  if (obvalue_p (val))
! 	    val = non_lvalue_loc (location, val);
! 	  return val;
! 	}
        errstring = _("in argument to unary !");
        break;
  
*************** cp_build_modify_expr (location_t loc, tr
*** 8769,8778 ****
  
  	  /* An expression of the form E1 op= E2.  [expr.ass] says:
  	     "Such expressions are deprecated if E1 has volatile-qualified
! 	     type."  We warn here rather than in cp_genericize_r because
  	     for compound assignments we are supposed to warn even if the
  	     assignment is a discarded-value expression.  */
! 	  if (TREE_THIS_VOLATILE (lhs) || CP_TYPE_VOLATILE_P (lhstype))
  	    warning_at (loc, OPT_Wvolatile,
  			"compound assignment with %<volatile%>-qualified left "
  			"operand is deprecated");
--- 8781,8794 ----
  
  	  /* An expression of the form E1 op= E2.  [expr.ass] says:
  	     "Such expressions are deprecated if E1 has volatile-qualified
! 	     type and op is not one of the bitwise operators |, &, ^."
! 	     We warn here rather than in cp_genericize_r because
  	     for compound assignments we are supposed to warn even if the
  	     assignment is a discarded-value expression.  */
! 	  if (modifycode != BIT_AND_EXPR
! 	      && modifycode != BIT_IOR_EXPR
! 	      && modifycode != BIT_XOR_EXPR
! 	      && (TREE_THIS_VOLATILE (lhs) || CP_TYPE_VOLATILE_P (lhstype)))
  	    warning_at (loc, OPT_Wvolatile,
  			"compound assignment with %<volatile%>-qualified left "
  			"operand is deprecated");
*************** cp_build_modify_expr (location_t loc, tr
*** 8887,8892 ****
--- 8903,8910 ----
  	}
  
        /* Allow array assignment in compiler-generated code.  */
+       else if (DECL_P (lhs) && DECL_ARTIFICIAL (lhs))
+ 	/* OK, used by coroutines (co-await-initlist1.C).  */;
        else if (!current_function_decl
  	       || !DECL_DEFAULTED_FN (current_function_decl))
  	{
*************** build_ptrmemfunc (tree type, tree pfn, i
*** 9208,9225 ****
        if (n == error_mark_node)
  	return error_mark_node;
  
        /* We don't have to do any conversion to convert a
  	 pointer-to-member to its own type.  But, we don't want to
  	 just return a PTRMEM_CST if there's an explicit cast; that
  	 cast should make the expression an invalid template argument.  */
!       if (TREE_CODE (pfn) != PTRMEM_CST)
! 	{
! 	  if (same_type_p (to_type, pfn_type))
! 	    return pfn;
! 	  else if (integer_zerop (n) && TREE_CODE (pfn) != CONSTRUCTOR)
! 	    return build_reinterpret_cast (input_location, to_type, pfn, 
!                                            complain);
! 	}
  
        if (TREE_SIDE_EFFECTS (pfn))
  	pfn = save_expr (pfn);
--- 9226,9240 ----
        if (n == error_mark_node)
  	return error_mark_node;
  
+       STRIP_ANY_LOCATION_WRAPPER (pfn);
+ 
        /* We don't have to do any conversion to convert a
  	 pointer-to-member to its own type.  But, we don't want to
  	 just return a PTRMEM_CST if there's an explicit cast; that
  	 cast should make the expression an invalid template argument.  */
!       if (TREE_CODE (pfn) != PTRMEM_CST
! 	  && same_type_p (to_type, pfn_type))
! 	return pfn;
  
        if (TREE_SIDE_EFFECTS (pfn))
  	pfn = save_expr (pfn);
*************** build_ptrmemfunc (tree type, tree pfn, i
*** 9251,9257 ****
    /* Handle null pointer to member function conversions.  */
    if (null_ptr_cst_p (pfn))
      {
!       pfn = cp_build_c_cast (input_location, type, pfn, complain);
        return build_ptrmemfunc1 (to_type,
  				integer_zero_node,
  				pfn);
--- 9266,9274 ----
    /* Handle null pointer to member function conversions.  */
    if (null_ptr_cst_p (pfn))
      {
!       pfn = cp_build_c_cast (input_location,
! 			     TYPE_PTRMEMFUNC_FN_TYPE_RAW (to_type),
! 			     pfn, complain);
        return build_ptrmemfunc1 (to_type,
  				integer_zero_node,
  				pfn);
diff -Nrcpad gcc-11.3.0/gcc/cse.c gcc-11.4.0/gcc/cse.c
*** gcc-11.3.0/gcc/cse.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cse.c	Mon May 29 08:46:29 2023
*************** compute_const_anchors (rtx cst,
*** 1190,1203 ****
  		       HOST_WIDE_INT *lower_base, HOST_WIDE_INT *lower_offs,
  		       HOST_WIDE_INT *upper_base, HOST_WIDE_INT *upper_offs)
  {
!   HOST_WIDE_INT n = INTVAL (cst);
  
    *lower_base = n & ~(targetm.const_anchor - 1);
!   if (*lower_base == n)
      return false;
  
!   *upper_base =
!     (n + (targetm.const_anchor - 1)) & ~(targetm.const_anchor - 1);
    *upper_offs = n - *upper_base;
    *lower_offs = n - *lower_base;
    return true;
--- 1190,1203 ----
  		       HOST_WIDE_INT *lower_base, HOST_WIDE_INT *lower_offs,
  		       HOST_WIDE_INT *upper_base, HOST_WIDE_INT *upper_offs)
  {
!   unsigned HOST_WIDE_INT n = UINTVAL (cst);
  
    *lower_base = n & ~(targetm.const_anchor - 1);
!   if ((unsigned HOST_WIDE_INT) *lower_base == n)
      return false;
  
!   *upper_base = ((n + (targetm.const_anchor - 1))
! 		 & ~(targetm.const_anchor - 1));
    *upper_offs = n - *upper_base;
    *lower_offs = n - *lower_base;
    return true;
*************** insert_const_anchor (HOST_WIDE_INT ancho
*** 1214,1220 ****
    rtx anchor_exp;
    rtx exp;
  
!   anchor_exp = GEN_INT (anchor);
    hash = HASH (anchor_exp, mode);
    elt = lookup (anchor_exp, hash, mode);
    if (!elt)
--- 1214,1220 ----
    rtx anchor_exp;
    rtx exp;
  
!   anchor_exp = gen_int_mode (anchor, mode);
    hash = HASH (anchor_exp, mode);
    elt = lookup (anchor_exp, hash, mode);
    if (!elt)
diff -Nrcpad gcc-11.3.0/gcc/cselib.c gcc-11.4.0/gcc/cselib.c
*** gcc-11.3.0/gcc/cselib.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cselib.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 32,37 ****
--- 32,38 ----
  #include "dumpfile.h"
  #include "cselib.h"
  #include "function-abi.h"
+ #include "alias.h"
  
  /* A list of cselib_val structures.  */
  struct elt_list
*************** rtx_equal_for_cselib_1 (rtx x, rtx y, ma
*** 1157,1162 ****
--- 1158,1232 ----
    return 1;
  }
  
+ /* Wrapper for rtx_equal_for_cselib_p to determine whether a SET is
+    truly redundant, taking into account aliasing information.  */
+ bool
+ cselib_redundant_set_p (rtx set)
+ {
+   gcc_assert (GET_CODE (set) == SET);
+   rtx dest = SET_DEST (set);
+   if (cselib_reg_set_mode (dest) != GET_MODE (dest))
+     return false;
+ 
+   if (!rtx_equal_for_cselib_p (dest, SET_SRC (set)))
+     return false;
+ 
+   while (GET_CODE (dest) == SUBREG
+ 	 || GET_CODE (dest) == ZERO_EXTRACT
+ 	 || GET_CODE (dest) == STRICT_LOW_PART)
+     dest = XEXP (dest, 0);
+ 
+   if (!flag_strict_aliasing || !MEM_P (dest))
+     return true;
+ 
+   /* For a store we need to check that suppressing it will not change
+      the effective alias set.  */
+   rtx dest_addr = XEXP (dest, 0);
+ 
+   /* Lookup the equivalents to the original dest (rather than just the
+      MEM).  */
+   cselib_val *src_val = cselib_lookup (SET_DEST (set),
+ 				       GET_MODE (SET_DEST (set)),
+ 				       0, VOIDmode);
+ 
+   if (src_val)
+     {
+       /* Walk the list of source equivalents to find the MEM accessing
+ 	 the same location.  */
+       for (elt_loc_list *l = src_val->locs; l; l = l->next)
+ 	{
+ 	  rtx src_equiv = l->loc;
+ 	  while (GET_CODE (src_equiv) == SUBREG
+ 		 || GET_CODE (src_equiv) == ZERO_EXTRACT
+ 		 || GET_CODE (src_equiv) == STRICT_LOW_PART)
+ 	    src_equiv = XEXP (src_equiv, 0);
+ 
+ 	  if (MEM_P (src_equiv))
+ 	    {
+ 	      /* Match the MEMs by comparing the addresses.  We can
+ 		 only remove the later store if the earlier aliases at
+ 		 least all the accesses of the later one.  */
+ 	      if (rtx_equal_for_cselib_1 (dest_addr, XEXP (src_equiv, 0),
+ 					  GET_MODE (dest), 0))
+ 		return mems_same_for_tbaa_p (src_equiv, dest);
+ 	    }
+ 	}
+     }
+ 
+   /* We failed to find a recorded value in the cselib history, so try
+      the source of this set; this catches cases such as *p = *q when p
+      and q have the same value.  */
+   rtx src = SET_SRC (set);
+   while (GET_CODE (src) == SUBREG)
+     src = XEXP (src, 0);
+ 
+   if (MEM_P (src)
+       && rtx_equal_for_cselib_1 (dest_addr, XEXP (src, 0), GET_MODE (dest), 0))
+     return mems_same_for_tbaa_p (src, dest);
+ 
+   return false;
+ }
+ 
  /* Helper function for cselib_hash_rtx.  Arguments like for cselib_hash_rtx,
     except that it hashes (plus:P x c).  */
  
diff -Nrcpad gcc-11.3.0/gcc/cselib.h gcc-11.4.0/gcc/cselib.h
*** gcc-11.3.0/gcc/cselib.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/cselib.h	Mon May 29 08:46:29 2023
*************** extern void cselib_process_insn (rtx_ins
*** 83,88 ****
--- 83,89 ----
  extern bool fp_setter_insn (rtx_insn *);
  extern machine_mode cselib_reg_set_mode (const_rtx);
  extern int rtx_equal_for_cselib_1 (rtx, rtx, machine_mode, int);
+ extern bool cselib_redundant_set_p (rtx);
  extern int references_value_p (const_rtx, int);
  extern rtx cselib_expand_value_rtx (rtx, bitmap, int);
  typedef rtx (*cselib_expand_callback)(rtx, bitmap, int, void *);
diff -Nrcpad gcc-11.3.0/gcc/d/ChangeLog gcc-11.4.0/gcc/d/ChangeLog
*** gcc-11.3.0/gcc/d/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/d/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,114 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/109108
+ 	* decl.cc (get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function
+ 	literals.
+ 	(start_function): Unconditionally unset DECL_EXTERNAL.
+ 	(set_linkage_for_decl): Give lambda functions one-only linkage.
+ 
+ 2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* decl.cc (finish_thunk): Unset DECL_EXTERNAL on thunk.
+ 	(make_thunk): Set DECL_EXTERNAL on thunk, don't call build_decl_tree.
+ 	(finish_function): Call finish_thunk on forward referenced thunks.
+ 
+ 2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2023-03-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* decl.cc (get_fndecl_result): New function.
+ 	(get_fndecl_arguments): New function.
+ 	(DeclVisitor::visit (FuncDeclaration *)): Adjust to call
+ 	get_fndecl_arguments.
+ 	(make_thunk): Adjust to call get_fndecl_arguments and
+ 	get_fndecl_result.
+ 	(start_function): Adjust to call get_fndecl_result.
+ 
+ 2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/108877
+ 	* imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call
+ 	make_import on TYPE_MAIN_VARIANT.
+ 	(ImportVisitor::visit (AggregateDeclaration *)): Likewise.
+ 	(ImportVisitor::visit (ClassDeclaration *)): Likewise.
+ 
+ 2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/108050
+ 	* decl.cc (DeclVisitor::visit (Import *)): Handle build_import_decl
+ 	returning a TREE_LIST.
+ 	* imports.cc (ImportVisitor::visit (OverloadSet *)): New override.
+ 
+ 2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/107592
+ 	* toir.cc (IRVisitor::push_unrolled_continue_label): New method.
+ 	(IRVisitor::pop_unrolled_continue_label): New method.
+ 	(IRVisitor::visit (UnrolledLoopStatement *)): Use them instead of
+ 	push_continue_label and pop_continue_label.
+ 
+ 2022-08-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-08-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/106638
+ 	* gdc.texi: Update DIP links to point at upstream dlang/DIPs
+ 	repository.
+ 
+ 2022-07-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/106139
+ 	* d-convert.cc (convert_expr): Handle casting from array to vector.
+ 	(convert_for_rvalue): Rewrite vector to array casts of the same
+ 	element type into a constructor.
+ 	(convert_for_assignment): Return calling convert_for_rvalue.
+ 	* dmd/expressionsem.c (ExpressionSemanticVisitor::visit): Run semantic
+ 	on vector expression after lowering.
+ 	* expr.cc (ExprVisitor::visit (VectorExp *)): Handle generating a
+ 	vector expression from a static array.
+ 	* toir.cc (IRVisitor::visit (ReturnStatement *)): Call
+ 	convert_for_rvalue on return value.
+ 
+ 2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL.
+ 
+ 2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2021-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* d-spec.cc (lang_specific_driver): Set SKIPOPT on -static-libstdc++
+ 	and -static-libphobos only when target supports LD_STATIC_DYNAMIC.
+ 	Remove generate_option to re-add -static-libstdc++.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/d/d-convert.cc gcc-11.4.0/gcc/d/d-convert.cc
*** gcc-11.3.0/gcc/d/d-convert.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/d-convert.cc	Mon May 29 08:46:29 2023
*************** convert_expr (tree exp, Type *etype, Typ
*** 502,507 ****
--- 502,516 ----
  	  gcc_assert (totype->size () == etype->size ());
  	  result = build_vconvert (build_ctype (totype), exp);
  	}
+       else if (tbtype->ty == Tvector && tbtype->size () == ebtype->size ())
+ 	{
+ 	  /* Allow casting from array to vector as if its an unaligned load.  */
+ 	  tree type = build_ctype (totype);
+ 	  tree unaligned_type = build_variant_type_copy (type);
+ 	  SET_TYPE_ALIGN (unaligned_type, 1 * BITS_PER_UNIT);
+ 	  TYPE_USER_ALIGN (unaligned_type) = 1;
+ 	  result = convert (type, build_vconvert (unaligned_type, exp));
+ 	}
        else
  	{
  	  error ("cannot cast expression of type %qs to type %qs",
*************** convert_for_rvalue (tree expr, Type *ety
*** 636,641 ****
--- 645,683 ----
        break;
      }
  
+   if (tbtype->ty == Tsarray
+       && ebtype->ty == Tsarray
+       && tbtype->nextOf ()->ty == ebtype->nextOf ()->ty
+       && INDIRECT_REF_P (expr)
+       && CONVERT_EXPR_CODE_P (TREE_CODE (TREE_OPERAND (expr, 0)))
+       && TREE_CODE (TREE_OPERAND (TREE_OPERAND (expr, 0), 0)) == ADDR_EXPR)
+     {
+       /* If expression is a vector that was casted to an array either by
+ 	 explicit type cast or by taking the vector's `.array' value, strip the
+ 	 reinterpret cast and build a constructor instead.  */
+       tree ptr = TREE_OPERAND (TREE_OPERAND (expr, 0), 0);
+ 
+       if (VECTOR_TYPE_P (TREE_TYPE (TREE_TYPE (ptr))))
+ 	{
+ 	  /* Rewrite: `*(Array *)&vector'
+ 		into: `{ vector[0], vector[1], ... }'  */
+ 	  tree array = d_save_expr (TREE_OPERAND (ptr, 0));
+ 	  array = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (expr), array);
+ 
+ 	  uinteger_t dim = tbtype->isTypeSArray ()->dim->toUInteger ();
+ 	  vec <constructor_elt, va_gc> *elms = NULL;
+ 	  for (uinteger_t i = 0; i < dim; i++)
+ 	    {
+ 	      tree index = size_int (i);
+ 	      tree value = build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (array)),
+ 				   array, index, NULL_TREE, NULL_TREE);
+ 	      CONSTRUCTOR_APPEND_ELT (elms, index, value);
+ 	    }
+ 
+ 	  return build_constructor (build_ctype (totype), elms);
+ 	}
+     }
+ 
    return result ? result : convert_expr (expr, etype, totype);
  }
  
*************** convert_for_assignment (tree expr, Type
*** 696,702 ****
        return expr;
      }
  
!   return convert_expr (expr, etype, totype);
  }
  
  /* Return a TREE representation of EXPR converted to represent
--- 738,744 ----
        return expr;
      }
  
!   return convert_for_rvalue (expr, etype, totype);
  }
  
  /* Return a TREE representation of EXPR converted to represent
diff -Nrcpad gcc-11.3.0/gcc/d/d-spec.cc gcc-11.4.0/gcc/d/d-spec.cc
*** gcc-11.3.0/gcc/d/d-spec.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/d-spec.cc	Mon May 29 08:46:29 2023
*************** lang_specific_driver (cl_decoded_option
*** 253,265 ****
--- 253,275 ----
  
  	case OPT_static_libstdc__:
  	  saw_static_libcxx = true;
+ #ifdef HAVE_LD_STATIC_DYNAMIC
+ 	  /* Remove -static-libstdc++ from the command only if target supports
+ 	     LD_STATIC_DYNAMIC.  When not supported, it is left in so that a
+ 	     back-end target can use outfile substitution.  */
  	  args[i] |= SKIPOPT;
+ #endif
  	  break;
  
  	case OPT_static_libphobos:
  	  if (phobos_library != PHOBOS_NOLINK)
  	    phobos_library = PHOBOS_STATIC;
+ #ifdef HAVE_LD_STATIC_DYNAMIC
+ 	  /* Remove -static-libphobos from the command only if target supports
+ 	     LD_STATIC_DYNAMIC.  When not supported, it is left in so that a
+ 	     back-end target can use outfile substitution.  */
  	  args[i] |= SKIPOPT;
+ #endif
  	  break;
  
  	case OPT_shared_libphobos:
*************** lang_specific_driver (cl_decoded_option
*** 460,466 ****
  #endif
      }
  
!   if (saw_libcxx || need_stdcxx)
      {
  #ifdef HAVE_LD_STATIC_DYNAMIC
        if (saw_static_libcxx && !static_link)
--- 470,476 ----
  #endif
      }
  
!   if (saw_libcxx || saw_static_libcxx || need_stdcxx)
      {
  #ifdef HAVE_LD_STATIC_DYNAMIC
        if (saw_static_libcxx && !static_link)
*************** lang_specific_driver (cl_decoded_option
*** 468,479 ****
  	  generate_option (OPT_Wl_, LD_STATIC_OPTION, 1, CL_DRIVER,
  			   &new_decoded_options[j++]);
  	}
- #else
-       /* Push the -static-libstdc++ option back onto the command so that
- 	 a target without LD_STATIC_DYNAMIC can use outfile substitution.  */
-       if (saw_static_libcxx && !static_link)
- 	generate_option (OPT_static_libstdc__, NULL, 1, CL_DRIVER,
- 			 &new_decoded_options[j++]);
  #endif
        if (saw_libcxx)
  	new_decoded_options[j++] = *saw_libcxx;
--- 478,483 ----
diff -Nrcpad gcc-11.3.0/gcc/d/decl.cc gcc-11.4.0/gcc/d/decl.cc
*** gcc-11.3.0/gcc/d/decl.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/decl.cc	Mon May 29 08:46:29 2023
*************** gcc_attribute_p (Dsymbol *decl)
*** 116,121 ****
--- 116,222 ----
    return false;
  }
  
+ /* Return the DECL_RESULT for the function declaration DECL, create it if it
+    doesn't already exist.  */
+ 
+ static tree
+ get_fndecl_result (FuncDeclaration *decl)
+ {
+   tree fndecl = get_symbol_decl (decl);
+   tree resdecl = DECL_RESULT (fndecl);
+ 
+   if (resdecl != NULL_TREE)
+     return resdecl;
+ 
+   resdecl = build_decl (make_location_t (decl->loc), RESULT_DECL,
+ 			NULL_TREE, TREE_TYPE (TREE_TYPE (fndecl)));
+ 
+   DECL_ARTIFICIAL (resdecl) = 1;
+   DECL_IGNORED_P (resdecl) = 1;
+   DECL_CONTEXT (resdecl) = fndecl;
+   DECL_RESULT (fndecl) = resdecl;
+   return resdecl;
+ }
+ 
+ /* Return the list of PARAM_DECLs for the function declaration DECL, create it
+    if it doesn't already exist.  */
+ 
+ static tree
+ get_fndecl_arguments (FuncDeclaration *decl)
+ {
+   tree fndecl = get_symbol_decl (decl);
+   tree param_list = DECL_ARGUMENTS (fndecl);
+ 
+   if (param_list != NULL_TREE)
+     return param_list;
+ 
+   if (decl->fbody)
+     {
+       /* Handle special arguments first.  */
+ 
+       /* `this' parameter:
+ 	 For nested functions, D still generates a vthis, but it
+ 	 should not be referenced in any expression.  */
+       if (decl->vthis)
+ 	{
+ 	  tree parm_decl = get_symbol_decl (decl->vthis);
+ 	  DECL_ARTIFICIAL (parm_decl) = 1;
+ 	  TREE_READONLY (parm_decl) = 1;
+ 
+ 	  if (decl->vthis->type == Type::tvoidptr)
+ 	    {
+ 	      /* Replace generic pointer with back-end closure type
+ 		 (this wins for gdb).  */
+ 	      tree frame_type = FRAMEINFO_TYPE (get_frameinfo (decl));
+ 	      gcc_assert (frame_type != NULL_TREE);
+ 	      TREE_TYPE (parm_decl) = build_pointer_type (frame_type);
+ 	    }
+ 
+ 	  param_list = chainon (param_list, parm_decl);
+ 	}
+ 
+       /* `_arguments' parameter.  */
+       if (decl->v_arguments)
+ 	{
+ 	  tree parm_decl = get_symbol_decl (decl->v_arguments);
+ 	  param_list = chainon (param_list, parm_decl);
+ 	}
+ 
+       /* Now add on formal function parameters.  */
+       size_t n_parameters = decl->parameters ? decl->parameters->length : 0;
+ 
+       for (size_t i = 0; i < n_parameters; i++)
+ 	{
+ 	  VarDeclaration *param = (*decl->parameters)[i];
+ 	  tree parm_decl = get_symbol_decl (param);
+ 	  /* Chain them in the correct order.  */
+ 	  param_list = chainon (param_list, parm_decl);
+ 	}
+     }
+   else
+     {
+       /* Build parameters from the function type.  */
+       tree fntype = TREE_TYPE (fndecl);
+ 
+       for (tree t = TYPE_ARG_TYPES (fntype); t; t = TREE_CHAIN (t))
+ 	{
+ 	  if (t == void_list_node)
+ 	    break;
+ 
+ 	  tree param = build_decl (DECL_SOURCE_LOCATION (fndecl),
+ 				   PARM_DECL, NULL_TREE, TREE_VALUE (t));
+ 	  DECL_ARG_TYPE (param) = TREE_TYPE (param);
+ 	  DECL_ARTIFICIAL (param) = 1;
+ 	  DECL_IGNORED_P (param) = 1;
+ 	  DECL_CONTEXT (param) = fndecl;
+ 	  param_list = chainon (param_list, param);
+ 	}
+     }
+ 
+   DECL_ARGUMENTS (fndecl) = param_list;
+   return param_list;
+ }
+ 
  /* Implements the visitor interface to lower all Declaration AST classes
     emitted from the D Front-end to GCC trees.
     All visit methods accept one parameter D, which holds the frontend AST
*************** public:
*** 197,204 ****
  	    tree name = (alias != NULL)
  	      ? get_identifier (alias->toChars ()) : NULL_TREE;
  
! 	    debug_hooks->imported_module_or_decl (decl, name, context,
! 						  false, false);
  	  }
        }
      else
--- 298,313 ----
  	    tree name = (alias != NULL)
  	      ? get_identifier (alias->toChars ()) : NULL_TREE;
  
! 	    if (TREE_CODE (decl) != TREE_LIST)
! 	      debug_hooks->imported_module_or_decl (decl, name, context,
! 						    false, false);
! 	    else
! 	      {
! 		/* Overload sets return a list of imported decls.  */
! 		for (; decl != NULL_TREE; decl = TREE_CHAIN (decl))
! 		  debug_hooks->imported_module_or_decl (TREE_VALUE (decl), name,
! 							context, false, false);
! 	      }
  	  }
        }
      else
*************** public:
*** 824,882 ****
      d->semanticRun = PASSobj;
  
      tree old_context = start_function (d);
  
-     tree parm_decl = NULL_TREE;
-     tree param_list = NULL_TREE;
- 
-     /* Special arguments...  */
- 
-     /* `this' parameter:
-        For nested functions, D still generates a vthis, but it
-        should not be referenced in any expression.  */
-     if (d->vthis)
-       {
- 	parm_decl = get_symbol_decl (d->vthis);
- 	DECL_ARTIFICIAL (parm_decl) = 1;
- 	TREE_READONLY (parm_decl) = 1;
- 
- 	if (d->vthis->type == Type::tvoidptr)
- 	  {
- 	    /* Replace generic pointer with back-end closure type
- 	       (this wins for gdb).  */
- 	    tree frame_type = FRAMEINFO_TYPE (get_frameinfo (d));
- 	    gcc_assert (frame_type != NULL_TREE);
- 	    TREE_TYPE (parm_decl) = build_pointer_type (frame_type);
- 	  }
- 
- 	param_list = chainon (param_list, parm_decl);
- 	d_function_chain->static_chain = parm_decl;
-       }
- 
-     /* _arguments parameter.  */
-     if (d->v_arguments)
-       {
- 	parm_decl = get_symbol_decl (d->v_arguments);
- 	param_list = chainon (param_list, parm_decl);
-       }
- 
-     /* formal function parameters.  */
-     size_t n_parameters = d->parameters ? d->parameters->length : 0;
- 
-     for (size_t i = 0; i < n_parameters; i++)
-       {
- 	VarDeclaration *param = (*d->parameters)[i];
- 	parm_decl = get_symbol_decl (param);
- 	/* Chain them in the correct order.  */
- 	param_list = chainon (param_list, parm_decl);
-       }
- 
-     DECL_ARGUMENTS (fndecl) = param_list;
      DECL_IN_UNITTEST_CONDITION_P (fndecl) = this->in_version_unittest_;
      rest_of_decl_compilation (fndecl, 1, 0);
  
      /* If this is a member function that nested (possibly indirectly) in another
         function, construct an expession for this member function's static chain
         by going through parent link of nested classes.  */
      if (d->isThis ())
        {
  	AggregateDeclaration *ad = d->isThis ();
--- 933,949 ----
      d->semanticRun = PASSobj;
  
      tree old_context = start_function (d);
+     tree param_list = get_fndecl_arguments (d);
  
      DECL_IN_UNITTEST_CONDITION_P (fndecl) = this->in_version_unittest_;
      rest_of_decl_compilation (fndecl, 1, 0);
  
      /* If this is a member function that nested (possibly indirectly) in another
         function, construct an expession for this member function's static chain
         by going through parent link of nested classes.  */
+     if (d->vthis)
+       d_function_chain->static_chain = get_symbol_decl (d->vthis);
+ 
      if (d->isThis ())
        {
  	AggregateDeclaration *ad = d->isThis ();
*************** public:
*** 891,897 ****
  	    ad = pd->isAggregateDeclaration ();
  	    if (ad == NULL)
  	      {
! 		cfun->language->static_chain = this_tree;
  		break;
  	      }
  	  }
--- 958,964 ----
  	    ad = pd->isAggregateDeclaration ();
  	    if (ad == NULL)
  	      {
! 		d_function_chain->static_chain = this_tree;
  		break;
  	      }
  	  }
*************** public:
*** 952,958 ****
  	var = build_address (var);
  
  	tree init = build_call_expr (builtin_decl_explicit (BUILT_IN_VA_START),
! 				     2, var, parm_decl);
  	declare_local_var (d->v_argptr);
  	add_stmt (init);
  
--- 1019,1025 ----
  	var = build_address (var);
  
  	tree init = build_call_expr (builtin_decl_explicit (BUILT_IN_VA_START),
! 				     2, var, tree_last (param_list));
  	declare_local_var (d->v_argptr);
  	add_stmt (init);
  
*************** get_symbol_decl (Declaration *decl)
*** 1253,1258 ****
--- 1320,1331 ----
  	  DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl->csym) = 1;
  	}
  
+       /* In [expression/function_literals], function literals (aka lambdas)
+ 	 enable embedding anonymous functions and anonymous delegates directly
+ 	 into expressions.  They are defined in each referencing module.  */
+       if (fd->isFuncLiteralDeclaration ())
+ 	DECL_SET_LAMBDA_FUNCTION (decl->csym, true);
+ 
        /* Mark compiler generated functions as artificial.  */
        if (fd->generated)
  	DECL_ARTIFICIAL (decl->csym) = 1;
*************** finish_thunk (tree thunk, tree function)
*** 1640,1645 ****
--- 1713,1719 ----
  
    TREE_ADDRESSABLE (function) = 1;
    TREE_USED (function) = 1;
+   DECL_EXTERNAL (thunk) = 0;
  
    if (flag_syntax_only)
      {
*************** make_thunk (FuncDeclaration *decl, int o
*** 1711,1753 ****
  
    if (!DECL_ARGUMENTS (function) || !DECL_RESULT (function))
      {
!       /* Compile the function body before generating the thunk, this is done
! 	 even if the decl is external to the current module.  */
!       if (decl->fbody)
! 	build_decl_tree (decl);
!       else
! 	{
! 	  /* Build parameters for functions that are not being compiled,
! 	     so that they can be correctly cloned in finish_thunk.  */
! 	  tree fntype = TREE_TYPE (function);
! 	  tree params = NULL_TREE;
! 
! 	  for (tree t = TYPE_ARG_TYPES (fntype); t; t = TREE_CHAIN (t))
! 	    {
! 	      if (t == void_list_node)
! 		break;
! 
! 	      tree param = build_decl (DECL_SOURCE_LOCATION (function),
! 				       PARM_DECL, NULL_TREE, TREE_VALUE (t));
! 	      DECL_ARG_TYPE (param) = TREE_TYPE (param);
! 	      DECL_ARTIFICIAL (param) = 1;
! 	      DECL_IGNORED_P (param) = 1;
! 	      DECL_CONTEXT (param) = function;
! 	      params = chainon (params, param);
! 	    }
! 
! 	  DECL_ARGUMENTS (function) = params;
  
! 	  /* Also build the result decl, which is needed when force creating
! 	     the thunk in gimple inside cgraph_node::expand_thunk.  */
! 	  tree resdecl = build_decl (DECL_SOURCE_LOCATION (function),
! 				     RESULT_DECL, NULL_TREE,
! 				     TREE_TYPE (fntype));
! 	  DECL_ARTIFICIAL (resdecl) = 1;
! 	  DECL_IGNORED_P (resdecl) = 1;
! 	  DECL_CONTEXT (resdecl) = function;
! 	  DECL_RESULT (function) = resdecl;
! 	}
      }
  
    /* Don't build the thunk if the compilation step failed.  */
--- 1785,1798 ----
  
    if (!DECL_ARGUMENTS (function) || !DECL_RESULT (function))
      {
!       /* Build parameters for functions that are not being compiled,
! 	 so that they can be correctly cloned in finish_thunk.  */
!       tree function = get_symbol_decl (decl);
!       DECL_ARGUMENTS (function) = get_fndecl_arguments (decl);
  
!       /* Also build the result decl, which is needed when force creating
! 	 the thunk in gimple inside cgraph_node::expand_thunk.  */
!       DECL_RESULT (function) = get_fndecl_result (decl);
      }
  
    /* Don't build the thunk if the compilation step failed.  */
*************** make_thunk (FuncDeclaration *decl, int o
*** 1773,1783 ****
  
    DECL_CONTEXT (thunk) = d_decl_context (decl);
  
!   /* Thunks inherit the public access of the function they are targeting.
!      Thunks are connected to the definitions of the functions, so thunks are
!      not produced for external functions.  */
    TREE_PUBLIC (thunk) = TREE_PUBLIC (function);
!   DECL_EXTERNAL (thunk) = DECL_EXTERNAL (function);
  
    /* Thunks are always addressable.  */
    TREE_ADDRESSABLE (thunk) = 1;
--- 1818,1827 ----
  
    DECL_CONTEXT (thunk) = d_decl_context (decl);
  
!   /* Thunks inherit the public access of the function they are targeting.  */
    TREE_PUBLIC (thunk) = TREE_PUBLIC (function);
!   /* The thunk has not been defined -- yet.  */
!   DECL_EXTERNAL (thunk) = 1;
  
    /* Thunks are always addressable.  */
    TREE_ADDRESSABLE (thunk) = 1;
*************** make_thunk (FuncDeclaration *decl, int o
*** 1812,1817 ****
--- 1856,1863 ----
    d_keep (thunk);
    free (CONST_CAST (char *, ident));
  
+   /* Thunks are connected to the definitions of the functions, so thunks are
+      not produced for external functions.  */
    if (!DECL_EXTERNAL (function))
      finish_thunk (thunk, function);
  
*************** start_function (FuncDeclaration *fd)
*** 1833,1841 ****
  {
    tree fndecl = get_symbol_decl (fd);
  
!   /* Function has been defined, check now whether we intend to send it to
!      object file, or it really is extern.  Such as inlinable functions from
!      modules not in this compilation, or thunk aliases.  */
    TemplateInstance *ti = fd->isInstantiated ();
    if (ti && ti->needsCodegen ())
      {
--- 1879,1888 ----
  {
    tree fndecl = get_symbol_decl (fd);
  
!   /* Function has been defined. Whether we intend to send it to object file, or
!      discard it has already been determined by set_linkage_for_decl.  */
!   DECL_EXTERNAL (fndecl) = 0;
! 
    TemplateInstance *ti = fd->isInstantiated ();
    if (ti && ti->needsCodegen ())
      {
*************** start_function (FuncDeclaration *fd)
*** 1845,1858 ****
  	  warning (OPT_Wtemplates, "%s %qs instantiated",
  		   ti->kind (), ti->toPrettyChars (false));
  	}
- 
-       DECL_EXTERNAL (fndecl) = 0;
-     }
-   else
-     {
-       Module *md = fd->getModule ();
-       if (md && md->isRoot ())
- 	DECL_EXTERNAL (fndecl) = 0;
      }
  
    DECL_INITIAL (fndecl) = error_mark_node;
--- 1892,1897 ----
*************** start_function (FuncDeclaration *fd)
*** 1869,1882 ****
    /* Let GCC know the current scope is this function.  */
    current_function_decl = fndecl;
  
!   tree restype = TREE_TYPE (TREE_TYPE (fndecl));
!   tree resdecl = build_decl (make_location_t (fd->loc), RESULT_DECL,
! 			     NULL_TREE, restype);
! 
!   DECL_RESULT (fndecl) = resdecl;
!   DECL_CONTEXT (resdecl) = fndecl;
!   DECL_ARTIFICIAL (resdecl) = 1;
!   DECL_IGNORED_P (resdecl) = 1;
  
    /* Initialize the RTL code for the function.  */
    allocate_struct_function (fndecl, false);
--- 1908,1915 ----
    /* Let GCC know the current scope is this function.  */
    current_function_decl = fndecl;
  
!   /* Build the result decl before calling allocate_struct_function.  */
!   DECL_RESULT (fndecl) = get_fndecl_result (fd);
  
    /* Initialize the RTL code for the function.  */
    allocate_struct_function (fndecl, false);
*************** finish_function (tree old_context)
*** 1943,1948 ****
--- 1976,1985 ----
  
    DECL_SAVED_TREE (fndecl) = bind;
  
+   /* Finish any forward referenced thunks for the function.  */
+   for (tree t = DECL_LANG_THUNKS (fndecl); t; t = DECL_CHAIN (t))
+     finish_thunk (t, fndecl);
+ 
    if (!errorcount && !global.errors)
      {
        /* Dump the D-specific tree IR.  */
*************** set_linkage_for_decl (tree decl)
*** 2375,2390 ****
    if (!TREE_PUBLIC (decl))
      return;
  
    /* Don't need to give private or protected symbols a special linkage.  */
    if ((TREE_PRIVATE (decl) || TREE_PROTECTED (decl))
        && !DECL_INSTANTIATED (decl))
      return;
  
-   /* Functions declared as `pragma(inline, true)' can appear in multiple
-      translation units.  */
-   if (TREE_CODE (decl) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (decl))
-     return d_comdat_linkage (decl);
- 
    /* If all instantiations must go in COMDAT, give them that linkage.
       This also applies to other extern declarations, so that it is possible
       for them to override template declarations.  */
--- 2412,2428 ----
    if (!TREE_PUBLIC (decl))
      return;
  
+   /* Function literals and functions declared as `pragma(inline, true)' can
+      appear in multiple translation units.  */
+   if (TREE_CODE (decl) == FUNCTION_DECL
+       && (DECL_DECLARED_INLINE_P (decl) || DECL_LAMBDA_FUNCTION_P (decl)))
+     return d_comdat_linkage (decl);
+ 
    /* Don't need to give private or protected symbols a special linkage.  */
    if ((TREE_PRIVATE (decl) || TREE_PROTECTED (decl))
        && !DECL_INSTANTIATED (decl))
      return;
  
    /* If all instantiations must go in COMDAT, give them that linkage.
       This also applies to other extern declarations, so that it is possible
       for them to override template declarations.  */
diff -Nrcpad gcc-11.3.0/gcc/d/dmd/expressionsem.c gcc-11.4.0/gcc/d/dmd/expressionsem.c
*** gcc-11.3.0/gcc/d/dmd/expressionsem.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/dmd/expressionsem.c	Mon May 29 08:46:29 2023
*************** public:
*** 6330,6335 ****
--- 6330,6336 ----
          if (tob->ty == Tvector && t1b->ty != Tvector)
          {
              result = new VectorExp(exp->loc, exp->e1, exp->to);
+             result = expressionSemantic(result, sc);
              return;
          }
  
diff -Nrcpad gcc-11.3.0/gcc/d/expr.cc gcc-11.4.0/gcc/d/expr.cc
*** gcc-11.3.0/gcc/d/expr.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/expr.cc	Mon May 29 08:46:29 2023
*************** public:
*** 3034,3047 ****
  
    void visit (VectorExp *e)
    {
-     tree type = build_ctype (e->type);
- 
      /* First handle array literal expressions.  */
      if (e->e1->op == TOKarrayliteral)
        {
  	ArrayLiteralExp *ale = e->e1->isArrayLiteralExp ();
  	vec <constructor_elt, va_gc> *elms = NULL;
  	bool constant_p = true;
  
  	vec_safe_reserve (elms, ale->elements->length);
  	for (size_t i = 0; i < ale->elements->length; i++)
--- 3034,3046 ----
  
    void visit (VectorExp *e)
    {
      /* First handle array literal expressions.  */
      if (e->e1->op == TOKarrayliteral)
        {
  	ArrayLiteralExp *ale = e->e1->isArrayLiteralExp ();
  	vec <constructor_elt, va_gc> *elms = NULL;
  	bool constant_p = true;
+ 	tree type = build_ctype (e->type);
  
  	vec_safe_reserve (elms, ale->elements->length);
  	for (size_t i = 0; i < ale->elements->length; i++)
*************** public:
*** 3061,3069 ****
--- 3060,3075 ----
  	else
  	  this->result_ = build_constructor (type, elms);
        }
+     else if (e->e1->type->toBasetype ()->ty == Tsarray)
+       {
+ 	/* Build a vector representation from a static array.  */
+ 	this->result_ = convert_expr (build_expr (e->e1, this->constp_),
+ 				      e->e1->type, e->type);
+       }
      else
        {
  	/* Build constructor from single value.  */
+ 	tree type = build_ctype (e->type);
  	tree value = d_convert (TREE_TYPE (type),
  				build_expr (e->e1, this->constp_, true));
  	this->result_ = build_vector_from_val (type, value);
diff -Nrcpad gcc-11.3.0/gcc/d/gdc.texi gcc-11.4.0/gcc/d/gdc.texi
*** gcc-11.3.0/gcc/d/gdc.texi	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/gdc.texi	Mon May 29 08:46:29 2023
*************** List information on all language changes
*** 637,645 ****
  @item complex
  List all usages of complex or imaginary types.
  @item dip1000
! Implements @uref{http://wiki.dlang.org/DIP1000} (experimental).
  @item dip25
! Implements @uref{http://wiki.dlang.org/DIP25} (experimental).
  @item field
  List all non-mutable fields which occupy an object instance.
  @item nogc
--- 637,647 ----
  @item complex
  List all usages of complex or imaginary types.
  @item dip1000
! Implements @uref{https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000.md}
! (Scoped pointers).
  @item dip25
! Implements @uref{https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md}
! (Sealed references).
  @item field
  List all non-mutable fields which occupy an object instance.
  @item nogc
diff -Nrcpad gcc-11.3.0/gcc/d/imports.cc gcc-11.4.0/gcc/d/imports.cc
*** gcc-11.3.0/gcc/d/imports.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/imports.cc	Mon May 29 08:46:29 2023
*************** public:
*** 97,108 ****
      tree type = build_ctype (d->type);
      /* Not all kinds of D enums create a TYPE_DECL.  */
      if (TREE_CODE (type) == ENUMERAL_TYPE)
!       d->isym = this->make_import (TYPE_STUB_DECL (type));
    }
  
    void visit (AggregateDeclaration *d)
    {
      tree type = build_ctype (d->type);
      d->isym = this->make_import (TYPE_STUB_DECL (type));
    }
  
--- 97,113 ----
      tree type = build_ctype (d->type);
      /* Not all kinds of D enums create a TYPE_DECL.  */
      if (TREE_CODE (type) == ENUMERAL_TYPE)
!       {
! 	type = TYPE_MAIN_VARIANT (type);
! 	d->isym = this->make_import (TYPE_STUB_DECL (type));
!       }
! 
    }
  
    void visit (AggregateDeclaration *d)
    {
      tree type = build_ctype (d->type);
+     type = TYPE_MAIN_VARIANT (type);
      d->isym = this->make_import (TYPE_STUB_DECL (type));
    }
  
*************** public:
*** 110,115 ****
--- 115,121 ----
    {
      /* Want the RECORD_TYPE, not POINTER_TYPE.  */
      tree type = TREE_TYPE (build_ctype (d->type));
+     type = TYPE_MAIN_VARIANT (type);
      d->isym = this->make_import (TYPE_STUB_DECL (type));
    }
  
*************** public:
*** 157,162 ****
--- 163,182 ----
        }
    }
  
+   /* Build IMPORTED_DECLs for all overloads in a set.  */
+   void visit (OverloadSet *d)
+   {
+     vec<tree, va_gc> *tset = NULL;
+ 
+     vec_alloc (tset, d->a.length);
+ 
+     for (size_t i = 0; i < d->a.length; i++)
+       vec_safe_push (tset, build_import_decl (d->a[i]));
+ 
+     d->isym = build_tree_list_vec (tset);
+     tset->truncate (0);
+   }
+ 
    /* Function aliases are the same as alias symbols.  */
    void visit (FuncAliasDeclaration *d)
    {
diff -Nrcpad gcc-11.3.0/gcc/d/toir.cc gcc-11.4.0/gcc/d/toir.cc
*** gcc-11.3.0/gcc/d/toir.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/toir.cc	Mon May 29 08:46:29 2023
*************** public:
*** 541,546 ****
--- 541,568 ----
      this->do_label (label);
    }
  
+   /* Generate and set a new continue label for the current unrolled loop.  */
+ 
+   void push_unrolled_continue_label (UnrolledLoopStatement *s)
+   {
+     this->push_continue_label (s);
+   }
+ 
+   /* Finish with the continue label for the unrolled loop.  */
+ 
+   void pop_unrolled_continue_label (UnrolledLoopStatement *s)
+   {
+     Statement *stmt = s->getRelatedLabeled ();
+     d_label_entry *ent = d_function_chain->labels->get (stmt);
+     gcc_assert (ent != NULL && ent->bc_label == true);
+ 
+     this->pop_continue_label (TREE_VEC_ELT (ent->label, bc_continue));
+ 
+     /* Remove the continue label from the label htab, as a new one must be
+        inserted at the end of every unrolled loop.  */
+     ent->label = TREE_VEC_ELT (ent->label, bc_break);
+   }
+ 
    /* Visitor interfaces.  */
  
  
*************** public:
*** 1090,1095 ****
--- 1112,1118 ----
  	    /* Generate: (<retval> = expr, return <retval>);  */
  	    tree expr = build_expr_dtor (s->exp);
  	    tree init = stabilize_expr (&expr);
+ 	    expr = convert_for_rvalue (expr, s->exp->type, type);
  	    expr = build_assign (INIT_EXPR, this->func_->shidden, expr);
  	    add_stmt (compound_expr (init, expr));
  	  }
*************** public:
*** 1156,1164 ****
  
  	if (statement != NULL)
  	  {
! 	    tree lcontinue = this->push_continue_label (statement);
  	    this->build_stmt (statement);
! 	    this->pop_continue_label (lcontinue);
  	  }
        }
  
--- 1179,1187 ----
  
  	if (statement != NULL)
  	  {
! 	    this->push_unrolled_continue_label (s);
  	    this->build_stmt (statement);
! 	    this->pop_unrolled_continue_label (s);
  	  }
        }
  
diff -Nrcpad gcc-11.3.0/gcc/d/typeinfo.cc gcc-11.4.0/gcc/d/typeinfo.cc
*** gcc-11.3.0/gcc/d/typeinfo.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/d/typeinfo.cc	Mon May 29 08:46:29 2023
*************** make_internal_typeinfo (tinfo_kind tk, I
*** 179,184 ****
--- 179,185 ----
  
    /* Create the TypeInfo type.  */
    tree type = make_node (RECORD_TYPE);
+   TYPE_ARTIFICIAL (type) = 1;
    finish_builtin_struct (type, ident->toChars (), fields, NULL_TREE);
  
    tinfo_types[tk] = type;
diff -Nrcpad gcc-11.3.0/gcc/doc/cpp.1 gcc-11.4.0/gcc/doc/cpp.1
*** gcc-11.3.0/gcc/doc/cpp.1	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/cpp.1	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "CPP 1"
! .TH CPP 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "CPP 1"
! .TH CPP 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** supported by the system's \f(CW\*(C`icon
*** 489,497 ****
  .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
  .IX Item "-fwide-exec-charset=charset"
  Set the wide execution character set, used for wide string and
! character constants.  The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever
! corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR.  As with
! \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
  by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
  problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
  .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
--- 493,502 ----
  .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
  .IX Item "-fwide-exec-charset=charset"
  Set the wide execution character set, used for wide string and
! character constants.  The default is one of \s-1UTF\-32BE, UTF\-32LE, UTF\-16BE,\s0
! or \s-1UTF\-16LE,\s0 whichever corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR and the
! big-endian or little-endian byte order being used for code generation.  As
! with \fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
  by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
  problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
  .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
*************** time of the source or package and it sho
*** 919,926 ****
  process.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7),
! \&\fIgcc\fR\|(1), and the Info entries for \fIcpp\fR and \fIgcc\fR.
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 1987\-2021 Free Software Foundation, Inc.
--- 924,931 ----
  process.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7),
! \&\fBgcc\fR\|(1), and the Info entries for \fIcpp\fR and \fIgcc\fR.
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 1987\-2021 Free Software Foundation, Inc.
*************** Permission is granted to copy, distribut
*** 929,935 ****
  under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
  any later version published by the Free Software Foundation.  A copy of
  the license is included in the
! man page \fIgfdl\fR\|(7).
  This manual contains no Invariant Sections.  The Front-Cover Texts are
  (a) (see below), and the Back-Cover Texts are (b) (see below).
  .PP
--- 934,940 ----
  under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
  any later version published by the Free Software Foundation.  A copy of
  the license is included in the
! man page \fBgfdl\fR\|(7).
  This manual contains no Invariant Sections.  The Front-Cover Texts are
  (a) (see below), and the Back-Cover Texts are (b) (see below).
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/cpp.info gcc-11.4.0/gcc/doc/cpp.info
*** gcc-11.3.0/gcc/doc/cpp.info	Thu Apr 21 08:20:53 2022
--- gcc-11.4.0/gcc/doc/cpp.info	Mon May 29 09:02:37 2023
***************
*** 1,4 ****
! This is cpp.info, produced by makeinfo version 6.5 from cpp.texi.
  
  Copyright (C) 1987-2021 Free Software Foundation, Inc.
  
--- 1,4 ----
! This is cpp.info, produced by makeinfo version 6.8 from cpp.texi.
  
  Copyright (C) 1987-2021 Free Software Foundation, Inc.
  
*************** single-letter options may _not_ be group
*** 4350,4360 ****
  
  '-fwide-exec-charset=CHARSET'
       Set the wide execution character set, used for wide string and
!      character constants.  The default is UTF-32 or UTF-16, whichever
!      corresponds to the width of 'wchar_t'.  As with '-fexec-charset',
!      CHARSET can be any encoding supported by the system's 'iconv'
!      library routine; however, you will have problems with encodings
!      that do not fit exactly in 'wchar_t'.
  
  '-finput-charset=CHARSET'
       Set the input character set, used for translation from the
--- 4350,4362 ----
  
  '-fwide-exec-charset=CHARSET'
       Set the wide execution character set, used for wide string and
!      character constants.  The default is one of UTF-32BE, UTF-32LE,
!      UTF-16BE, or UTF-16LE, whichever corresponds to the width of
!      'wchar_t' and the big-endian or little-endian byte order being used
!      for code generation.  As with '-fexec-charset', CHARSET can be any
!      encoding supported by the system's 'iconv' library routine;
!      however, you will have problems with encodings that do not fit
!      exactly in 'wchar_t'.
  
  '-finput-charset=CHARSET'
       Set the input character set, used for translation from the
*************** without any initial '-' or '--'.
*** 5276,5362 ****
  [index]
  * Menu:
  
! * A:                                     Invocation.          (line 336)
! * C:                                     Invocation.          (line 345)
! * CC:                                    Invocation.          (line 357)
  * CPATH:                                 Environment Variables.
                                                                (line  15)
  * CPLUS_INCLUDE_PATH:                    Environment Variables.
                                                                (line  17)
  * C_INCLUDE_PATH:                        Environment Variables.
                                                                (line  16)
! * D:                                     Invocation.          (line  44)
! * d:                                     Invocation.          (line 406)
! * dD:                                    Invocation.          (line 425)
  * DEPENDENCIES_OUTPUT:                   Environment Variables.
!                                                               (line  45)
! * dI:                                    Invocation.          (line 435)
! * dM:                                    Invocation.          (line 414)
! * dN:                                    Invocation.          (line 431)
! * dU:                                    Invocation.          (line 439)
! * fdebug-cpp:                            Invocation.          (line 446)
! * fdirectives-only:                      Invocation.          (line 231)
! * fdollars-in-identifiers:               Invocation.          (line 252)
! * fexec-charset:                         Invocation.          (line 299)
! * fextended-identifiers:                 Invocation.          (line 255)
! * finput-charset:                        Invocation.          (line 312)
! * fmacro-prefix-map:                     Invocation.          (line 290)
! * fmax-include-depth:                    Invocation.          (line 264)
! * fno-canonical-system-headers:          Invocation.          (line 260)
! * fno-working-directory:                 Invocation.          (line 322)
! * fpreprocessed:                         Invocation.          (line 218)
! * ftabstop:                              Invocation.          (line 267)
! * ftrack-macro-expansion:                Invocation.          (line 273)
! * fwide-exec-charset:                    Invocation.          (line 304)
! * fworking-directory:                    Invocation.          (line 322)
! * H:                                     Invocation.          (line 399)
! * I:                                     Invocation.          (line 457)
! * I-:                                    Invocation.          (line 511)
! * idirafter:                             Invocation.          (line 457)
! * imacros:                               Invocation.          (line  82)
! * imultilib:                             Invocation.          (line 545)
! * include:                               Invocation.          (line  71)
! * iprefix:                               Invocation.          (line 527)
! * iquote:                                Invocation.          (line 457)
! * isysroot:                              Invocation.          (line 539)
! * isystem:                               Invocation.          (line 457)
! * iwithprefix:                           Invocation.          (line 533)
! * iwithprefixbefore:                     Invocation.          (line 533)
! * M:                                     Invocation.          (line 103)
! * MD:                                    Invocation.          (line 198)
! * MF:                                    Invocation.          (line 137)
! * MG:                                    Invocation.          (line 148)
! * MM:                                    Invocation.          (line 128)
! * MMD:                                   Invocation.          (line 214)
! * Mno-modules:                           Invocation.          (line 158)
! * MP:                                    Invocation.          (line 161)
! * MQ:                                    Invocation.          (line 188)
! * MT:                                    Invocation.          (line 173)
! * nostdinc:                              Invocation.          (line 549)
! * nostdinc++:                            Invocation.          (line 555)
  * OBJC_INCLUDE_PATH:                     Environment Variables.
                                                                (line  18)
! * P:                                     Invocation.          (line 369)
! * pthread:                               Invocation.          (line  96)
! * remap:                                 Invocation.          (line 395)
  * SOURCE_DATE_EPOCH:                     Environment Variables.
!                                                               (line  67)
  * SUNPRO_DEPENDENCIES:                   Environment Variables.
!                                                               (line  61)
! * traditional:                           Invocation.          (line 377)
! * traditional-cpp:                       Invocation.          (line 377)
! * trigraphs:                             Invocation.          (line 386)
! * U:                                     Invocation.          (line  67)
! * undef:                                 Invocation.          (line  91)
! * Wcomment:                              Invocation.          (line 561)
! * Wcomments:                             Invocation.          (line 561)
! * Wendif-labels:                         Invocation.          (line 605)
! * Wexpansion-to-defined:                 Invocation.          (line 580)
! * Wno-endif-labels:                      Invocation.          (line 605)
! * Wno-undef:                             Invocation.          (line 576)
! * Wtrigraphs:                            Invocation.          (line 566)
! * Wundef:                                Invocation.          (line 576)
! * Wunused-macros:                        Invocation.          (line 586)
  
  
  File: cpp.info,  Node: Concept Index,  Prev: Option Index,  Up: Top
--- 5278,5364 ----
  [index]
  * Menu:
  
! * A:                                     Invocation.          (line 337)
! * C:                                     Invocation.          (line 346)
! * CC:                                    Invocation.          (line 358)
  * CPATH:                                 Environment Variables.
                                                                (line  15)
  * CPLUS_INCLUDE_PATH:                    Environment Variables.
                                                                (line  17)
  * C_INCLUDE_PATH:                        Environment Variables.
                                                                (line  16)
! * D:                                     Invocation.          (line  43)
! * d:                                     Invocation.          (line 407)
! * dD:                                    Invocation.          (line 426)
  * DEPENDENCIES_OUTPUT:                   Environment Variables.
!                                                               (line  44)
! * dI:                                    Invocation.          (line 436)
! * dM:                                    Invocation.          (line 415)
! * dN:                                    Invocation.          (line 432)
! * dU:                                    Invocation.          (line 440)
! * fdebug-cpp:                            Invocation.          (line 447)
! * fdirectives-only:                      Invocation.          (line 230)
! * fdollars-in-identifiers:               Invocation.          (line 251)
! * fexec-charset:                         Invocation.          (line 298)
! * fextended-identifiers:                 Invocation.          (line 254)
! * finput-charset:                        Invocation.          (line 313)
! * fmacro-prefix-map:                     Invocation.          (line 289)
! * fmax-include-depth:                    Invocation.          (line 263)
! * fno-canonical-system-headers:          Invocation.          (line 259)
! * fno-working-directory:                 Invocation.          (line 323)
! * fpreprocessed:                         Invocation.          (line 217)
! * ftabstop:                              Invocation.          (line 266)
! * ftrack-macro-expansion:                Invocation.          (line 272)
! * fwide-exec-charset:                    Invocation.          (line 303)
! * fworking-directory:                    Invocation.          (line 323)
! * H:                                     Invocation.          (line 400)
! * I:                                     Invocation.          (line 458)
! * I-:                                    Invocation.          (line 512)
! * idirafter:                             Invocation.          (line 458)
! * imacros:                               Invocation.          (line  81)
! * imultilib:                             Invocation.          (line 546)
! * include:                               Invocation.          (line  70)
! * iprefix:                               Invocation.          (line 528)
! * iquote:                                Invocation.          (line 458)
! * isysroot:                              Invocation.          (line 540)
! * isystem:                               Invocation.          (line 458)
! * iwithprefix:                           Invocation.          (line 534)
! * iwithprefixbefore:                     Invocation.          (line 534)
! * M:                                     Invocation.          (line 102)
! * MD:                                    Invocation.          (line 197)
! * MF:                                    Invocation.          (line 136)
! * MG:                                    Invocation.          (line 147)
! * MM:                                    Invocation.          (line 127)
! * MMD:                                   Invocation.          (line 213)
! * Mno-modules:                           Invocation.          (line 157)
! * MP:                                    Invocation.          (line 160)
! * MQ:                                    Invocation.          (line 187)
! * MT:                                    Invocation.          (line 172)
! * nostdinc:                              Invocation.          (line 550)
! * nostdinc++:                            Invocation.          (line 556)
  * OBJC_INCLUDE_PATH:                     Environment Variables.
                                                                (line  18)
! * P:                                     Invocation.          (line 370)
! * pthread:                               Invocation.          (line  95)
! * remap:                                 Invocation.          (line 396)
  * SOURCE_DATE_EPOCH:                     Environment Variables.
!                                                               (line  66)
  * SUNPRO_DEPENDENCIES:                   Environment Variables.
!                                                               (line  60)
! * traditional:                           Invocation.          (line 378)
! * traditional-cpp:                       Invocation.          (line 378)
! * trigraphs:                             Invocation.          (line 387)
! * U:                                     Invocation.          (line  66)
! * undef:                                 Invocation.          (line  90)
! * Wcomment:                              Invocation.          (line 562)
! * Wcomments:                             Invocation.          (line 562)
! * Wendif-labels:                         Invocation.          (line 606)
! * Wexpansion-to-defined:                 Invocation.          (line 581)
! * Wno-endif-labels:                      Invocation.          (line 606)
! * Wno-undef:                             Invocation.          (line 577)
! * Wtrigraphs:                            Invocation.          (line 567)
! * Wundef:                                Invocation.          (line 577)
! * Wunused-macros:                        Invocation.          (line 587)
  
  
  File: cpp.info,  Node: Concept Index,  Prev: Option Index,  Up: Top
*************** Concept Index
*** 5382,5393 ****
  * assertions, canceling:                 Obsolete Features.   (line  59)
  * backslash-newline:                     Initial processing.  (line  61)
  * block comments:                        Initial processing.  (line  77)
! * C language, traditional:               Invocation.          (line 375)
  * C++ named operators:                   C++ Named Operators. (line   6)
  * character constants:                   Tokenization.        (line  81)
! * character set, execution:              Invocation.          (line 299)
! * character set, input:                  Invocation.          (line 312)
! * character set, wide execution:         Invocation.          (line 304)
  * command line:                          Invocation.          (line   6)
  * commenting out code:                   Deleted Code.        (line   6)
  * comments:                              Initial processing.  (line  77)
--- 5384,5395 ----
  * assertions, canceling:                 Obsolete Features.   (line  59)
  * backslash-newline:                     Initial processing.  (line  61)
  * block comments:                        Initial processing.  (line  77)
! * C language, traditional:               Invocation.          (line 376)
  * C++ named operators:                   C++ Named Operators. (line   6)
  * character constants:                   Tokenization.        (line  81)
! * character set, execution:              Invocation.          (line 298)
! * character set, input:                  Invocation.          (line 313)
! * character set, wide execution:         Invocation.          (line 303)
  * command line:                          Invocation.          (line   6)
  * commenting out code:                   Deleted Code.        (line   6)
  * comments:                              Initial processing.  (line  77)
*************** Concept Index
*** 5401,5410 ****
  * controlling macro:                     Once-Only Headers.   (line  35)
  * defined:                               Defined.             (line   6)
  * dependencies for make as output:       Environment Variables.
!                                                               (line  46)
  * dependencies for make as output <1>:   Environment Variables.
!                                                               (line  62)
! * dependencies, make:                    Invocation.          (line 103)
  * diagnostic:                            Diagnostics.         (line   6)
  * digraphs:                              Tokenization.        (line 100)
  * directive line:                        The preprocessing language.
--- 5403,5412 ----
  * controlling macro:                     Once-Only Headers.   (line  35)
  * defined:                               Defined.             (line   6)
  * dependencies for make as output:       Environment Variables.
!                                                               (line  45)
  * dependencies for make as output <1>:   Environment Variables.
!                                                               (line  61)
! * dependencies, make:                    Invocation.          (line 102)
  * diagnostic:                            Diagnostics.         (line   6)
  * digraphs:                              Tokenization.        (line 100)
  * directive line:                        The preprocessing language.
*************** Concept Index
*** 5443,5449 ****
  * macros in include:                     Computed Includes.   (line   6)
  * macros with arguments:                 Macro Arguments.     (line   6)
  * macros with variable arguments:        Variadic Macros.     (line   6)
! * make:                                  Invocation.          (line 103)
  * manifest constants:                    Object-like Macros.  (line   6)
  * named operators:                       C++ Named Operators. (line   6)
  * newlines in macro arguments:           Newlines in Arguments.
--- 5445,5451 ----
  * macros in include:                     Computed Includes.   (line   6)
  * macros with arguments:                 Macro Arguments.     (line   6)
  * macros with variable arguments:        Variadic Macros.     (line   6)
! * make:                                  Invocation.          (line 102)
  * manifest constants:                    Object-like Macros.  (line   6)
  * named operators:                       C++ Named Operators. (line   6)
  * newlines in macro arguments:           Newlines in Arguments.
*************** Concept Index
*** 5451,5457 ****
  * null directive:                        Other Directives.    (line  15)
  * numbers:                               Tokenization.        (line  58)
  * object-like macro:                     Object-like Macros.  (line   6)
! * options:                               Invocation.          (line  43)
  * options, grouping:                     Invocation.          (line  38)
  * other tokens:                          Tokenization.        (line 114)
  * output format:                         Preprocessor Output. (line  12)
--- 5453,5459 ----
  * null directive:                        Other Directives.    (line  15)
  * numbers:                               Tokenization.        (line  58)
  * object-like macro:                     Object-like Macros.  (line   6)
! * options:                               Invocation.          (line  42)
  * options, grouping:                     Invocation.          (line  38)
  * other tokens:                          Tokenization.        (line 114)
  * output format:                         Preprocessor Output. (line  12)
*************** Concept Index
*** 5498,5504 ****
  * token concatenation:                   Concatenation.       (line   6)
  * token pasting:                         Concatenation.       (line   6)
  * tokens:                                Tokenization.        (line   6)
! * traditional C language:                Invocation.          (line 375)
  * trigraphs:                             Initial processing.  (line  32)
  * undefining macros:                     Undefining and Redefining Macros.
                                                                (line   6)
--- 5500,5506 ----
  * token concatenation:                   Concatenation.       (line   6)
  * token pasting:                         Concatenation.       (line   6)
  * tokens:                                Tokenization.        (line   6)
! * traditional C language:                Invocation.          (line 376)
  * trigraphs:                             Initial processing.  (line  32)
  * undefining macros:                     Undefining and Redefining Macros.
                                                                (line   6)
*************** Node: Obsolete Features163124
*** 5584,5594 ****
  Node: Invocation165968
  Ref: dashMF172003
  Ref: fdollars-in-identifiers176665
! Ref: Wtrigraphs190791
! Node: Environment Variables192846
! Node: GNU Free Documentation License196537
! Node: Index of Directives221682
! Node: Option Index223835
! Node: Concept Index229937
  
  End Tag Table
--- 5586,5601 ----
  Node: Invocation165968
  Ref: dashMF172003
  Ref: fdollars-in-identifiers176665
! Ref: Wtrigraphs190911
! Node: Environment Variables192966
! Node: GNU Free Documentation License196657
! Node: Index of Directives221802
! Node: Option Index223955
! Node: Concept Index230057
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/gcc/doc/cppinternals.info gcc-11.4.0/gcc/doc/cppinternals.info
*** gcc-11.3.0/gcc/doc/cppinternals.info	Thu Apr 21 08:20:52 2022
--- gcc-11.4.0/gcc/doc/cppinternals.info	Mon May 29 09:02:36 2023
***************
*** 1,4 ****
! This is cppinternals.info, produced by makeinfo version 6.5 from
  cppinternals.texi.
  
  INFO-DIR-SECTION Software development
--- 1,4 ----
! This is cppinternals.info, produced by makeinfo version 6.8 from
  cppinternals.texi.
  
  INFO-DIR-SECTION Software development
*************** will be removed, so I'll not discuss it
*** 137,143 ****
     The job of '_cpp_lex_direct' is simply to lex a token.  It is not
  responsible for issues like directive handling, returning lookahead
  tokens directly, multiple-include optimization, or conditional block
! skipping.  It necessarily has a minor ro^le to play in memory management
  of lexed lines.  I discuss these issues in a separate section (*note
  Lexing a line::).
  
--- 137,143 ----
     The job of '_cpp_lex_direct' is simply to lex a token.  It is not
  responsible for issues like directive handling, returning lookahead
  tokens directly, multiple-include optimization, or conditional block
! skipping.  It necessarily has a minor rôle to play in memory management
  of lexed lines.  I discuss these issues in a separate section (*note
  Lexing a line::).
  
*************** Node: Files44873
*** 1039,1041 ****
--- 1039,1046 ----
  Node: Concept Index48339
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/gcc/doc/cppopts.texi gcc-11.4.0/gcc/doc/cppopts.texi
*** gcc-11.3.0/gcc/doc/cppopts.texi	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/doc/cppopts.texi	Mon May 29 08:46:29 2023
*************** supported by the system's @code{iconv} l
*** 318,326 ****
  @opindex fwide-exec-charset
  @cindex character set, wide execution
  Set the wide execution character set, used for wide string and
! character constants.  The default is UTF-32 or UTF-16, whichever
! corresponds to the width of @code{wchar_t}.  As with
! @option{-fexec-charset}, @var{charset} can be any encoding supported
  by the system's @code{iconv} library routine; however, you will have
  problems with encodings that do not fit exactly in @code{wchar_t}.
  
--- 318,327 ----
  @opindex fwide-exec-charset
  @cindex character set, wide execution
  Set the wide execution character set, used for wide string and
! character constants.  The default is one of UTF-32BE, UTF-32LE, UTF-16BE,
! or UTF-16LE, whichever corresponds to the width of @code{wchar_t} and the
! big-endian or little-endian byte order being used for code generation.  As
! with @option{-fexec-charset}, @var{charset} can be any encoding supported
  by the system's @code{iconv} library routine; however, you will have
  problems with encodings that do not fit exactly in @code{wchar_t}.
  
diff -Nrcpad gcc-11.3.0/gcc/doc/extend.texi gcc-11.4.0/gcc/doc/extend.texi
*** gcc-11.3.0/gcc/doc/extend.texi	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/doc/extend.texi	Mon May 29 08:46:29 2023
*************** myprintf (FILE *f, const char *format, .
*** 688,694 ****
  @end smallexample
  @end deftypefn
  
! @deftypefn {Built-in Function} {size_t} __builtin_va_arg_pack_len ()
  This built-in function returns the number of anonymous arguments of
  an inline function.  It can be used only in inline functions that
  are always inlined, never compiled as a separate function, such
--- 688,694 ----
  @end smallexample
  @end deftypefn
  
! @deftypefn {Built-in Function} {int} __builtin_va_arg_pack_len ()
  This built-in function returns the number of anonymous arguments of
  an inline function.  It can be used only in inline functions that
  are always inlined, never compiled as a separate function, such
*************** The following attributes are supported o
*** 2487,2493 ****
  @table @code
  @c Keep this table alphabetized by attribute name.  Treat _ as space.
  
! @itemx access (@var{access-mode}, @var{ref-index})
  @itemx access (@var{access-mode}, @var{ref-index}, @var{size-index})
  
  The @code{access} attribute enables the detection of invalid or unsafe
--- 2487,2493 ----
  @table @code
  @c Keep this table alphabetized by attribute name.  Treat _ as space.
  
! @item access (@var{access-mode}, @var{ref-index})
  @itemx access (@var{access-mode}, @var{ref-index}, @var{size-index})
  
  The @code{access} attribute enables the detection of invalid or unsafe
diff -Nrcpad gcc-11.3.0/gcc/doc/fsf-funding.7 gcc-11.4.0/gcc/doc/fsf-funding.7
*** gcc-11.3.0/gcc/doc/fsf-funding.7	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/fsf-funding.7	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "FSF-FUNDING 7"
! .TH FSF-FUNDING 7 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "FSF-FUNDING 7"
! .TH FSF-FUNDING 7 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** proper thing to do\*(R" when distributin
*** 181,187 ****
  assure a steady flow of resources into making more free software.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7).
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 1994 Free Software Foundation, Inc.
--- 185,191 ----
  assure a steady flow of resources into making more free software.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7).
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 1994 Free Software Foundation, Inc.
diff -Nrcpad gcc-11.3.0/gcc/doc/g++.1 gcc-11.4.0/gcc/doc/g++.1
*** gcc-11.3.0/gcc/doc/g++.1	Thu Apr 21 08:20:55 2022
--- gcc-11.4.0/gcc/doc/g++.1	Mon May 29 09:02:38 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** See \s-1RS/6000\s0 and PowerPC Options.
*** 1400,1406 ****
  \&\-m96bit\-long\-double  \-mlong\-double\-64  \-mlong\-double\-80  \-mlong\-double\-128 
  \&\-mregparm=\fR\fInum\fR  \fB\-msseregparm 
  \&\-mveclibabi=\fR\fItype\fR  \fB\-mvect8\-ret\-in\-mem 
! \&\-mpc32  \-mpc64  \-mpc80  \-mstackrealign 
  \&\-momit\-leaf\-frame\-pointer  \-mno\-red\-zone  \-mno\-tls\-direct\-seg\-refs 
  \&\-mcmodel=\fR\fIcode-model\fR  \fB\-mabi=\fR\fIname\fR  \fB\-maddress\-mode=\fR\fImode\fR 
  \&\fB\-m32  \-m64  \-mx32  \-m16  \-miamcu  \-mlarge\-data\-threshold=\fR\fInum\fR 
--- 1404,1410 ----
  \&\-m96bit\-long\-double  \-mlong\-double\-64  \-mlong\-double\-80  \-mlong\-double\-128 
  \&\-mregparm=\fR\fInum\fR  \fB\-msseregparm 
  \&\-mveclibabi=\fR\fItype\fR  \fB\-mvect8\-ret\-in\-mem 
! \&\-mpc32  \-mpc64  \-mpc80 \-mdaz\-ftz \-mstackrealign 
  \&\-momit\-leaf\-frame\-pointer  \-mno\-red\-zone  \-mno\-tls\-direct\-seg\-refs 
  \&\-mcmodel=\fR\fIcode-model\fR  \fB\-mabi=\fR\fIname\fR  \fB\-maddress\-mode=\fR\fImode\fR 
  \&\fB\-m32  \-m64  \-mx32  \-m16  \-miamcu  \-mlarge\-data\-threshold=\fR\fInum\fR 
*************** This is useful if you need to make sure
*** 4276,4283 ****
  be compiled with older versions of \s-1GCC.\s0
  .IP "\fB\-freplace\-objc\-classes\fR" 4
  .IX Item "-freplace-objc-classes"
! Emit a special marker instructing \fB\f(BIld\fB\|(1)\fR not to statically link in
! the resulting object file, and allow \fB\f(BIdyld\fB\|(1)\fR to load it in at
  run time instead.  This is used in conjunction with the Fix-and-Continue
  debugging mode, where the object file in question may be recompiled and
  dynamically reloaded in the course of program execution, without the need
--- 4280,4287 ----
  be compiled with older versions of \s-1GCC.\s0
  .IP "\fB\-freplace\-objc\-classes\fR" 4
  .IX Item "-freplace-objc-classes"
! Emit a special marker instructing \fB\fBld\fB\|(1)\fR not to statically link in
! the resulting object file, and allow \fB\fBdyld\fB\|(1)\fR to load it in at
  run time instead.  This is used in conjunction with the Fix-and-Continue
  debugging mode, where the object file in question may be recompiled and
  dynamically reloaded in the course of program execution, without the need
*************** example of how this can happen:
*** 6550,6556 ****
  .Sp
  If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is
  always initialized, but \s-1GCC\s0 doesn't know this. To suppress the
! warning, you need to provide a default case with \fIassert\fR\|(0) or
  similar code.
  .Sp
  This option also warns when a non-volatile automatic variable might be
--- 6554,6560 ----
  .Sp
  If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is
  always initialized, but \s-1GCC\s0 doesn't know this. To suppress the
! warning, you need to provide a default case with \fBassert\fR\|(0) or
  similar code.
  .Sp
  This option also warns when a non-volatile automatic variable might be
*************** run-time callbacks.
*** 13178,13184 ****
  Emit special instrumentation for accesses to volatiles.
  .IP "\fBtsan-instrument-func-entry-exit\fR" 4
  .IX Item "tsan-instrument-func-entry-exit"
! Emit instrumentation calls to _\|\fI_tsan_func_entry()\fR and _\|\fI_tsan_func_exit()\fR.
  .IP "\fBmax-fsm-thread-path-insns\fR" 4
  .IX Item "max-fsm-thread-path-insns"
  Maximum number of instructions to copy when duplicating blocks on a
--- 13182,13188 ----
  Emit special instrumentation for accesses to volatiles.
  .IP "\fBtsan-instrument-func-entry-exit\fR" 4
  .IX Item "tsan-instrument-func-entry-exit"
! Emit instrumentation calls to _\|\fB_tsan_func_entry()\fR and _\|\fB_tsan_func_exit()\fR.
  .IP "\fBmax-fsm-thread-path-insns\fR" 4
  .IX Item "max-fsm-thread-path-insns"
  Maximum number of instructions to copy when duplicating blocks on a
*************** supported by the system's \f(CW\*(C`icon
*** 14652,14660 ****
  .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
  .IX Item "-fwide-exec-charset=charset"
  Set the wide execution character set, used for wide string and
! character constants.  The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever
! corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR.  As with
! \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
  by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
  problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
  .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
--- 14656,14665 ----
  .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
  .IX Item "-fwide-exec-charset=charset"
  Set the wide execution character set, used for wide string and
! character constants.  The default is one of \s-1UTF\-32BE, UTF\-32LE, UTF\-16BE,\s0
! or \s-1UTF\-16LE,\s0 whichever corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR and the
! big-endian or little-endian byte order being used for code generation.  As
! with \fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
  by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
  problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
  .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
*************** performance of the code.  Permissible va
*** 17518,17524 ****
  \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR,
  \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR,
  \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR,
! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR, \fBqdf24xx\fR,
  \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR,
  \&\fBocteontx\fR, \fBocteontx81\fR,  \fBocteontx83\fR,
  \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR
--- 17523,17529 ----
  \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR,
  \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR,
  \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR,
! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR,\fBneoverse\-v2\fR, \fBqdf24xx\fR,
  \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR,
  \&\fBocteontx\fR, \fBocteontx81\fR,  \fBocteontx83\fR,
  \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR
*************** performance of the code.  Permissible va
*** 17531,17537 ****
  \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
  \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR,
! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR, \fBnative\fR.
  .Sp
  The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
--- 17536,17543 ----
  \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
  \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR,
! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR,
! \&\fBampere1a\fR, \fBnative\fR.
  .Sp
  The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
*************** are provided for backwards compatibility
*** 21170,21176 ****
  .IP "\fB\-all_load\fR" 4
  .IX Item "-all_load"
  Loads all members of static archive libraries.
! See man \fIld\fR\|(1) for more information.
  .IP "\fB\-arch_errors_fatal\fR" 4
  .IX Item "-arch_errors_fatal"
  Cause the errors having to do with files that have the wrong architecture
--- 21176,21182 ----
  .IP "\fB\-all_load\fR" 4
  .IX Item "-all_load"
  Loads all members of static archive libraries.
! See man \fBld\fR\|(1) for more information.
  .IP "\fB\-arch_errors_fatal\fR" 4
  .IX Item "-arch_errors_fatal"
  Cause the errors having to do with files that have the wrong architecture
*************** bind all undefined references when the f
*** 21182,21192 ****
  .IP "\fB\-bundle\fR" 4
  .IX Item "-bundle"
  Produce a Mach-o bundle format file.
! See man \fIld\fR\|(1) for more information.
  .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4
  .IX Item "-bundle_loader executable"
  This option specifies the \fIexecutable\fR that will load the build
! output file being linked.  See man \fIld\fR\|(1) for more information.
  .IP "\fB\-dynamiclib\fR" 4
  .IX Item "-dynamiclib"
  When passed this option, \s-1GCC\s0 produces a dynamic library instead of
--- 21188,21198 ----
  .IP "\fB\-bundle\fR" 4
  .IX Item "-bundle"
  Produce a Mach-o bundle format file.
! See man \fBld\fR\|(1) for more information.
  .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4
  .IX Item "-bundle_loader executable"
  This option specifies the \fIexecutable\fR that will load the build
! output file being linked.  See man \fBld\fR\|(1) for more information.
  .IP "\fB\-dynamiclib\fR" 4
  .IX Item "-dynamiclib"
  When passed this option, \s-1GCC\s0 produces a dynamic library instead of
*************** libraries assume that extended-precision
*** 29679,29684 ****
--- 29685,29697 ----
  are enabled by default; routines in such libraries could suffer significant
  loss of accuracy, typically through so-called \*(L"catastrophic cancellation\*(R",
  when this option is used to set the precision to less than extended precision.
+ .IP "\fB\-mdaz\-ftz\fR" 4
+ .IX Item "-mdaz-ftz"
+ The flush-to-zero (\s-1FTZ\s0) and denormals-are-zero (\s-1DAZ\s0) flags in the \s-1MXCSR\s0 register
+ are used to control floating-point calculations.SSE and \s-1AVX\s0 instructions
+ including scalar and vector instructions could benefit from enabling the \s-1FTZ\s0
+ and \s-1DAZ\s0 flags when \fB\-mdaz\-ftz\fR is specified. Don't set \s-1FTZ/DAZ\s0 flags
+ when \fB\-mno\-daz\-ftz\fR is specified.
  .IP "\fB\-mstackrealign\fR" 4
  .IX Item "-mstackrealign"
  Realign the stack at entry.  On the x86, the \fB\-mstackrealign\fR
*************** to subtle defects.  Supplying them in ca
*** 31089,31096 ****
  is innocuous.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7),
! \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIdbx\fR\|(1)
  and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR,
  \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR.
  .SH "AUTHOR"
--- 31102,31109 ----
  is innocuous.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7),
! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1)
  and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR,
  \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR.
  .SH "AUTHOR"
*************** any later version published by the Free
*** 31108,31114 ****
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 31121,31127 ----
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/gcc.1 gcc-11.4.0/gcc/doc/gcc.1
*** gcc-11.3.0/gcc/doc/gcc.1	Thu Apr 21 08:20:55 2022
--- gcc-11.4.0/gcc/doc/gcc.1	Mon May 29 09:02:38 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** See \s-1RS/6000\s0 and PowerPC Options.
*** 1400,1406 ****
  \&\-m96bit\-long\-double  \-mlong\-double\-64  \-mlong\-double\-80  \-mlong\-double\-128 
  \&\-mregparm=\fR\fInum\fR  \fB\-msseregparm 
  \&\-mveclibabi=\fR\fItype\fR  \fB\-mvect8\-ret\-in\-mem 
! \&\-mpc32  \-mpc64  \-mpc80  \-mstackrealign 
  \&\-momit\-leaf\-frame\-pointer  \-mno\-red\-zone  \-mno\-tls\-direct\-seg\-refs 
  \&\-mcmodel=\fR\fIcode-model\fR  \fB\-mabi=\fR\fIname\fR  \fB\-maddress\-mode=\fR\fImode\fR 
  \&\fB\-m32  \-m64  \-mx32  \-m16  \-miamcu  \-mlarge\-data\-threshold=\fR\fInum\fR 
--- 1404,1410 ----
  \&\-m96bit\-long\-double  \-mlong\-double\-64  \-mlong\-double\-80  \-mlong\-double\-128 
  \&\-mregparm=\fR\fInum\fR  \fB\-msseregparm 
  \&\-mveclibabi=\fR\fItype\fR  \fB\-mvect8\-ret\-in\-mem 
! \&\-mpc32  \-mpc64  \-mpc80 \-mdaz\-ftz \-mstackrealign 
  \&\-momit\-leaf\-frame\-pointer  \-mno\-red\-zone  \-mno\-tls\-direct\-seg\-refs 
  \&\-mcmodel=\fR\fIcode-model\fR  \fB\-mabi=\fR\fIname\fR  \fB\-maddress\-mode=\fR\fImode\fR 
  \&\fB\-m32  \-m64  \-mx32  \-m16  \-miamcu  \-mlarge\-data\-threshold=\fR\fInum\fR 
*************** This is useful if you need to make sure
*** 4276,4283 ****
  be compiled with older versions of \s-1GCC.\s0
  .IP "\fB\-freplace\-objc\-classes\fR" 4
  .IX Item "-freplace-objc-classes"
! Emit a special marker instructing \fB\f(BIld\fB\|(1)\fR not to statically link in
! the resulting object file, and allow \fB\f(BIdyld\fB\|(1)\fR to load it in at
  run time instead.  This is used in conjunction with the Fix-and-Continue
  debugging mode, where the object file in question may be recompiled and
  dynamically reloaded in the course of program execution, without the need
--- 4280,4287 ----
  be compiled with older versions of \s-1GCC.\s0
  .IP "\fB\-freplace\-objc\-classes\fR" 4
  .IX Item "-freplace-objc-classes"
! Emit a special marker instructing \fB\fBld\fB\|(1)\fR not to statically link in
! the resulting object file, and allow \fB\fBdyld\fB\|(1)\fR to load it in at
  run time instead.  This is used in conjunction with the Fix-and-Continue
  debugging mode, where the object file in question may be recompiled and
  dynamically reloaded in the course of program execution, without the need
*************** example of how this can happen:
*** 6550,6556 ****
  .Sp
  If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is
  always initialized, but \s-1GCC\s0 doesn't know this. To suppress the
! warning, you need to provide a default case with \fIassert\fR\|(0) or
  similar code.
  .Sp
  This option also warns when a non-volatile automatic variable might be
--- 6554,6560 ----
  .Sp
  If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is
  always initialized, but \s-1GCC\s0 doesn't know this. To suppress the
! warning, you need to provide a default case with \fBassert\fR\|(0) or
  similar code.
  .Sp
  This option also warns when a non-volatile automatic variable might be
*************** run-time callbacks.
*** 13178,13184 ****
  Emit special instrumentation for accesses to volatiles.
  .IP "\fBtsan-instrument-func-entry-exit\fR" 4
  .IX Item "tsan-instrument-func-entry-exit"
! Emit instrumentation calls to _\|\fI_tsan_func_entry()\fR and _\|\fI_tsan_func_exit()\fR.
  .IP "\fBmax-fsm-thread-path-insns\fR" 4
  .IX Item "max-fsm-thread-path-insns"
  Maximum number of instructions to copy when duplicating blocks on a
--- 13182,13188 ----
  Emit special instrumentation for accesses to volatiles.
  .IP "\fBtsan-instrument-func-entry-exit\fR" 4
  .IX Item "tsan-instrument-func-entry-exit"
! Emit instrumentation calls to _\|\fB_tsan_func_entry()\fR and _\|\fB_tsan_func_exit()\fR.
  .IP "\fBmax-fsm-thread-path-insns\fR" 4
  .IX Item "max-fsm-thread-path-insns"
  Maximum number of instructions to copy when duplicating blocks on a
*************** supported by the system's \f(CW\*(C`icon
*** 14652,14660 ****
  .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
  .IX Item "-fwide-exec-charset=charset"
  Set the wide execution character set, used for wide string and
! character constants.  The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever
! corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR.  As with
! \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
  by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
  problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
  .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
--- 14656,14665 ----
  .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
  .IX Item "-fwide-exec-charset=charset"
  Set the wide execution character set, used for wide string and
! character constants.  The default is one of \s-1UTF\-32BE, UTF\-32LE, UTF\-16BE,\s0
! or \s-1UTF\-16LE,\s0 whichever corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR and the
! big-endian or little-endian byte order being used for code generation.  As
! with \fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
  by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
  problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
  .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
*************** performance of the code.  Permissible va
*** 17518,17524 ****
  \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR,
  \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR,
  \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR,
! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR, \fBqdf24xx\fR,
  \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR,
  \&\fBocteontx\fR, \fBocteontx81\fR,  \fBocteontx83\fR,
  \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR
--- 17523,17529 ----
  \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR,
  \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR,
  \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR,
! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR,\fBneoverse\-v2\fR, \fBqdf24xx\fR,
  \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR,
  \&\fBocteontx\fR, \fBocteontx81\fR,  \fBocteontx83\fR,
  \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR
*************** performance of the code.  Permissible va
*** 17531,17537 ****
  \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
  \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR,
! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR, \fBnative\fR.
  .Sp
  The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
--- 17536,17543 ----
  \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
  \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR,
! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR,
! \&\fBampere1a\fR, \fBnative\fR.
  .Sp
  The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR,
  \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR,
*************** are provided for backwards compatibility
*** 21170,21176 ****
  .IP "\fB\-all_load\fR" 4
  .IX Item "-all_load"
  Loads all members of static archive libraries.
! See man \fIld\fR\|(1) for more information.
  .IP "\fB\-arch_errors_fatal\fR" 4
  .IX Item "-arch_errors_fatal"
  Cause the errors having to do with files that have the wrong architecture
--- 21176,21182 ----
  .IP "\fB\-all_load\fR" 4
  .IX Item "-all_load"
  Loads all members of static archive libraries.
! See man \fBld\fR\|(1) for more information.
  .IP "\fB\-arch_errors_fatal\fR" 4
  .IX Item "-arch_errors_fatal"
  Cause the errors having to do with files that have the wrong architecture
*************** bind all undefined references when the f
*** 21182,21192 ****
  .IP "\fB\-bundle\fR" 4
  .IX Item "-bundle"
  Produce a Mach-o bundle format file.
! See man \fIld\fR\|(1) for more information.
  .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4
  .IX Item "-bundle_loader executable"
  This option specifies the \fIexecutable\fR that will load the build
! output file being linked.  See man \fIld\fR\|(1) for more information.
  .IP "\fB\-dynamiclib\fR" 4
  .IX Item "-dynamiclib"
  When passed this option, \s-1GCC\s0 produces a dynamic library instead of
--- 21188,21198 ----
  .IP "\fB\-bundle\fR" 4
  .IX Item "-bundle"
  Produce a Mach-o bundle format file.
! See man \fBld\fR\|(1) for more information.
  .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4
  .IX Item "-bundle_loader executable"
  This option specifies the \fIexecutable\fR that will load the build
! output file being linked.  See man \fBld\fR\|(1) for more information.
  .IP "\fB\-dynamiclib\fR" 4
  .IX Item "-dynamiclib"
  When passed this option, \s-1GCC\s0 produces a dynamic library instead of
*************** libraries assume that extended-precision
*** 29679,29684 ****
--- 29685,29697 ----
  are enabled by default; routines in such libraries could suffer significant
  loss of accuracy, typically through so-called \*(L"catastrophic cancellation\*(R",
  when this option is used to set the precision to less than extended precision.
+ .IP "\fB\-mdaz\-ftz\fR" 4
+ .IX Item "-mdaz-ftz"
+ The flush-to-zero (\s-1FTZ\s0) and denormals-are-zero (\s-1DAZ\s0) flags in the \s-1MXCSR\s0 register
+ are used to control floating-point calculations.SSE and \s-1AVX\s0 instructions
+ including scalar and vector instructions could benefit from enabling the \s-1FTZ\s0
+ and \s-1DAZ\s0 flags when \fB\-mdaz\-ftz\fR is specified. Don't set \s-1FTZ/DAZ\s0 flags
+ when \fB\-mno\-daz\-ftz\fR is specified.
  .IP "\fB\-mstackrealign\fR" 4
  .IX Item "-mstackrealign"
  Realign the stack at entry.  On the x86, the \fB\-mstackrealign\fR
*************** to subtle defects.  Supplying them in ca
*** 31089,31096 ****
  is innocuous.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7),
! \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIdbx\fR\|(1)
  and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR,
  \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR.
  .SH "AUTHOR"
--- 31102,31109 ----
  is innocuous.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7),
! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1)
  and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR,
  \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR.
  .SH "AUTHOR"
*************** any later version published by the Free
*** 31108,31114 ****
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 31121,31127 ----
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/gcc.info gcc-11.4.0/gcc/doc/gcc.info
*** gcc-11.3.0/gcc/doc/gcc.info	Thu Apr 21 08:21:00 2022
--- gcc-11.4.0/gcc/doc/gcc.info	Mon May 29 09:02:46 2023
***************
*** 1,4 ****
! This is gcc.info, produced by makeinfo version 6.5 from gcc.texi.
  
  Copyright (C) 1988-2021 Free Software Foundation, Inc.
  
--- 1,4 ----
! This is gcc.info, produced by makeinfo version 6.8 from gcc.texi.
  
  Copyright (C) 1988-2021 Free Software Foundation, Inc.
  
*************** Copies published by the Free Software Fo
*** 53,66 ****
  development.
  
  
! File: gcc.info,  Node: Top,  Next: G++ and GCC
  
  Introduction
  ************
  
  This manual documents how to use the GNU compilers, as well as their
  features and incompatibilities, and how to report bugs.  It corresponds
! to the compilers (GCC) version 11.3.0.  The internals of the GNU
  compilers, including how to port them to new targets and some
  information about how to write front ends for new languages, are
  documented in a separate manual.  *Note Introduction: (gccint)Top.
--- 53,66 ----
  development.
  
  
! File: gcc.info,  Node: Top,  Next: G++ and GCC,  Up: (dir)
  
  Introduction
  ************
  
  This manual documents how to use the GNU compilers, as well as their
  features and incompatibilities, and how to report bugs.  It corresponds
! to the compilers (GCC) version 11.4.0.  The internals of the GNU
  compilers, including how to port them to new targets and some
  information about how to write front ends for new languages, are
  documented in a separate manual.  *Note Introduction: (gccint)Top.
*************** _Machine-Dependent Options_
*** 1732,1738 ****
            -m96bit-long-double  -mlong-double-64  -mlong-double-80  -mlong-double-128
            -mregparm=NUM  -msseregparm
            -mveclibabi=TYPE  -mvect8-ret-in-mem
!           -mpc32  -mpc64  -mpc80  -mstackrealign
            -momit-leaf-frame-pointer  -mno-red-zone  -mno-tls-direct-seg-refs
            -mcmodel=CODE-MODEL  -mabi=NAME  -maddress-mode=MODE
            -m32  -m64  -mx32  -m16  -miamcu  -mlarge-data-threshold=NUM
--- 1732,1738 ----
            -m96bit-long-double  -mlong-double-64  -mlong-double-80  -mlong-double-128
            -mregparm=NUM  -msseregparm
            -mveclibabi=TYPE  -mvect8-ret-in-mem
!           -mpc32  -mpc64  -mpc80 -mdaz-ftz -mstackrealign
            -momit-leaf-frame-pointer  -mno-red-zone  -mno-tls-direct-seg-refs
            -mcmodel=CODE-MODEL  -mabi=NAME  -maddress-mode=MODE
            -m32  -m64  -mx32  -m16  -miamcu  -mlarge-data-threshold=NUM
*************** Options::.  Options to control preproces
*** 14451,14461 ****
  
  '-fwide-exec-charset=CHARSET'
       Set the wide execution character set, used for wide string and
!      character constants.  The default is UTF-32 or UTF-16, whichever
!      corresponds to the width of 'wchar_t'.  As with '-fexec-charset',
!      CHARSET can be any encoding supported by the system's 'iconv'
!      library routine; however, you will have problems with encodings
!      that do not fit exactly in 'wchar_t'.
  
  '-finput-charset=CHARSET'
       Set the input character set, used for translation from the
--- 14451,14463 ----
  
  '-fwide-exec-charset=CHARSET'
       Set the wide execution character set, used for wide string and
!      character constants.  The default is one of UTF-32BE, UTF-32LE,
!      UTF-16BE, or UTF-16LE, whichever corresponds to the width of
!      'wchar_t' and the big-endian or little-endian byte order being used
!      for code generation.  As with '-fexec-charset', CHARSET can be any
!      encoding supported by the system's 'iconv' library routine;
!      however, you will have problems with encodings that do not fit
!      exactly in 'wchar_t'.
  
  '-finput-charset=CHARSET'
       Set the input character set, used for translation from the
*************** These options are defined for AArch64 im
*** 17179,17194 ****
       'cortex-a65ae', 'cortex-a34', 'cortex-a78', 'cortex-a78ae',
       'cortex-a78c', 'ares', 'exynos-m1', 'emag', 'falkor',
       'neoverse-512tvb', 'neoverse-e1', 'neoverse-n1', 'neoverse-n2',
!      'neoverse-v1', 'qdf24xx', 'saphira', 'phecda', 'xgene1', 'vulcan',
!      'octeontx', 'octeontx81', 'octeontx83', 'octeontx2',
!      'octeontx2t98', 'octeontx2t96' 'octeontx2t93', 'octeontx2f95',
!      'octeontx2f95n', 'octeontx2f95mm', 'a64fx', 'thunderx',
!      'thunderxt88', 'thunderxt88p1', 'thunderxt81', 'tsv110',
!      'thunderxt83', 'thunderx2t99', 'thunderx3t110', 'zeus',
       'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53',
       'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53',
       'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55', 'cortex-r82',
!      'cortex-x1', 'ampere1', 'native'.
  
       The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53',
       'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53',
--- 17181,17196 ----
       'cortex-a65ae', 'cortex-a34', 'cortex-a78', 'cortex-a78ae',
       'cortex-a78c', 'ares', 'exynos-m1', 'emag', 'falkor',
       'neoverse-512tvb', 'neoverse-e1', 'neoverse-n1', 'neoverse-n2',
!      'neoverse-v1','neoverse-v2', 'qdf24xx', 'saphira', 'phecda',
!      'xgene1', 'vulcan', 'octeontx', 'octeontx81', 'octeontx83',
!      'octeontx2', 'octeontx2t98', 'octeontx2t96' 'octeontx2t93',
!      'octeontx2f95', 'octeontx2f95n', 'octeontx2f95mm', 'a64fx',
!      'thunderx', 'thunderxt88', 'thunderxt88p1', 'thunderxt81',
!      'tsv110', 'thunderxt83', 'thunderx2t99', 'thunderx3t110', 'zeus',
       'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53',
       'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53',
       'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55', 'cortex-r82',
!      'cortex-x1', 'ampere1', 'ampere1a', 'native'.
  
       The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53',
       'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53',
*************** These options are defined for AVR implem
*** 19275,19280 ****
--- 19277,19283 ----
  
       'avr3'
            "Classic" devices with 16 KiB up to 64 KiB of program memory.
+ 
            MCU = 'at76c711', 'at43usb355'.
  
       'avr31'
*************** These '-m' options are defined for the x
*** 28123,28128 ****
--- 28126,28140 ----
       through so-called "catastrophic cancellation", when this option is
       used to set the precision to less than extended precision.
  
+ '-mdaz-ftz'
+ 
+      The flush-to-zero (FTZ) and denormals-are-zero (DAZ) flags in the
+      MXCSR register are used to control floating-point calculations.SSE
+      and AVX instructions including scalar and vector instructions could
+      benefit from enabling the FTZ and DAZ flags when '-mdaz-ftz' is
+      specified.  Don't set FTZ/DAZ flags when '-mno-daz-ftz' is
+      specified.
+ 
  '-mstackrealign'
       Realign the stack at entry.  On the x86, the '-mstackrealign'
       option generates an alternate prologue and epilogue that realigns
*************** acting as mere forwarders for their argu
*** 31781,31787 ****
              return r + s;
            }
  
!  -- Built-in Function: size_t __builtin_va_arg_pack_len ()
       This built-in function returns the number of anonymous arguments of
       an inline function.  It can be used only in inline functions that
       are always inlined, never compiled as a separate function, such as
--- 31793,31799 ----
              return r + s;
            }
  
!  -- Built-in Function: int __builtin_va_arg_pack_len ()
       This built-in function returns the number of anonymous arguments of
       an inline function.  It can be used only in inline functions that
       are always inlined, never compiled as a separate function, such as
*************** vec_div (vector unsigned long long a, ve
*** 51124,51131 ****
  in doubleword element 'i' of a is divided by the integer in doubleword
  element 'i' of b.  The unique integer quotient is placed into the
  doubleword element 'i' of the vector returned.  If an attempt is made to
! perform any of the divisions 0x8000_0000_0000_0000 ÷ -1 or <anything>
! ÷ 0 then the quotient is undefined.
  
  vector signed int
  vec_dive (vector signed int a, vector signed int b)
--- 51136,51143 ----
  in doubleword element 'i' of a is divided by the integer in doubleword
  element 'i' of b.  The unique integer quotient is placed into the
  doubleword element 'i' of the vector returned.  If an attempt is made to
! perform any of the divisions 0x8000_0000_0000_0000 ÷ -1 or <anything> ÷
! 0 then the quotient is undefined.
  
  vector signed int
  vec_dive (vector signed int a, vector signed int b)
*************** alphabetical order.
*** 60673,60679 ****
  
     * Ralf Corsepius for SH testing and minor bug fixing.
  
!    * Franc,ois-Xavier Coudert for contributions to GNU Fortran.
  
     * Stan Cox for care and feeding of the x86 port and lots of behind
       the scenes hacking.
--- 60685,60691 ----
  
     * Ralf Corsepius for SH testing and minor bug fixing.
  
!    * François-Xavier Coudert for contributions to GNU Fortran.
  
     * Stan Cox for care and feeding of the x86 port and lots of behind
       the scenes hacking.
*************** alphabetical order.
*** 60716,60722 ****
       disbursement, configuration architecture, libio maintenance, and
       early math work.
  
!    * Franc,ois Dumont for his work on libstdc++-v3, especially
       maintaining and improving 'debug-mode' and associative and
       unordered containers.
  
--- 60728,60734 ----
       disbursement, configuration architecture, libio maintenance, and
       early math work.
  
!    * François Dumont for his work on libstdc++-v3, especially
       maintaining and improving 'debug-mode' and associative and
       unordered containers.
  
*************** alphabetical order.
*** 60975,60987 ****
  
     * Weiwen Liu for testing and various bug fixes.
  
!    * Manuel Lo'pez-Iba'n~ez for improving '-Wconversion' and many other
       diagnostics fixes and improvements.
  
     * Dave Love for his ongoing work with the Fortran front end and
       runtime libraries.
  
!    * Martin von Lo"wis for internal consistency checking infrastructure,
       various C++ improvements including namespace support, and tons of
       assistance with libstdc++/compiler merges.
  
--- 60987,60999 ----
  
     * Weiwen Liu for testing and various bug fixes.
  
!    * Manuel López-Ibáñez for improving '-Wconversion' and many other
       diagnostics fixes and improvements.
  
     * Dave Love for his ongoing work with the Fortran front end and
       runtime libraries.
  
!    * Martin von Löwis for internal consistency checking infrastructure,
       various C++ improvements including namespace support, and tons of
       assistance with libstdc++/compiler merges.
  
*************** alphabetical order.
*** 61173,61179 ****
  
     * Craig Rodrigues for processing tons of bug reports.
  
!    * Ola Ro"nnerup for work on mt_alloc.
  
     * Gavin Romig-Koch for lots of behind the scenes MIPS work.
  
--- 61185,61191 ----
  
     * Craig Rodrigues for processing tons of bug reports.
  
!    * Ola Rönnerup for work on mt_alloc.
  
     * Gavin Romig-Koch for lots of behind the scenes MIPS work.
  
*************** alphabetical order.
*** 61187,61193 ****
  
     * Paul Rubin wrote most of the preprocessor.
  
!    * Pe'tur Runo'lfsson for major performance improvements in C++
       formatted I/O and large file support in C++ filebuf.
  
     * Chip Salzenberg for libstdc++ patches and improvements to locales,
--- 61199,61205 ----
  
     * Paul Rubin wrote most of the preprocessor.
  
!    * Pétur Runólfsson for major performance improvements in C++
       formatted I/O and large file support in C++ filebuf.
  
     * Chip Salzenberg for libstdc++ patches and improvements to locales,
*************** alphabetical order.
*** 61208,61214 ****
  
     * William Schelter did most of the work on the Intel 80386 support.
  
!    * Tobias Schlu"ter for work on GNU Fortran.
  
     * Bernd Schmidt for various code generation improvements and major
       work in the reload pass, serving as release manager for GCC 2.95.3,
--- 61220,61226 ----
  
     * William Schelter did most of the work on the Intel 80386 support.
  
!    * Tobias Schlüter for work on GNU Fortran.
  
     * Bernd Schmidt for various code generation improvements and major
       work in the reload pass, serving as release manager for GCC 2.95.3,
*************** contributions to testing:
*** 61705,61711 ****
  
     * Robert A. French
  
!    * Jo"rgen Freyh
  
     * Mark K. Gardner
  
--- 61717,61723 ----
  
     * Robert A. French
  
!    * Jörgen Freyh
  
     * Mark K. Gardner
  
*************** look up both forms.
*** 61841,61847 ****
  * ###:                                   Overall Options.    (line  476)
  * 80387:                                 x86 Options.        (line  580)
  * A:                                     Preprocessor Options.
!                                                              (line  335)
  * allowable_client:                      Darwin Options.     (line  196)
  * all_load:                              Darwin Options.     (line  110)
  * analyzer:                              Static Analyzer Options.
--- 61853,61859 ----
  * ###:                                   Overall Options.    (line  476)
  * 80387:                                 x86 Options.        (line  580)
  * A:                                     Preprocessor Options.
!                                                              (line  337)
  * allowable_client:                      Darwin Options.     (line  196)
  * all_load:                              Darwin Options.     (line  110)
  * analyzer:                              Static Analyzer Options.
*************** look up both forms.
*** 61862,61871 ****
  * bundle_loader:                         Darwin Options.     (line  127)
  * c:                                     Overall Options.    (line  169)
  * C:                                     Preprocessor Options.
!                                                              (line  344)
  * c <1>:                                 Link Options.       (line   20)
  * CC:                                    Preprocessor Options.
!                                                              (line  356)
  * client_name:                           Darwin Options.     (line  196)
  * compatibility_version:                 Darwin Options.     (line  196)
  * coverage:                              Instrumentation Options.
--- 61874,61883 ----
  * bundle_loader:                         Darwin Options.     (line  127)
  * c:                                     Overall Options.    (line  169)
  * C:                                     Preprocessor Options.
!                                                              (line  346)
  * c <1>:                                 Link Options.       (line   20)
  * CC:                                    Preprocessor Options.
!                                                              (line  358)
  * client_name:                           Darwin Options.     (line  196)
  * compatibility_version:                 Darwin Options.     (line  196)
  * coverage:                              Instrumentation Options.
*************** look up both forms.
*** 61874,61899 ****
  * D:                                     Preprocessor Options.
                                                               (line   19)
  * d:                                     Preprocessor Options.
!                                                              (line  410)
  * d <1>:                                 Developer Options.  (line   52)
  * da:                                    Developer Options.  (line  246)
  * dA:                                    Developer Options.  (line  249)
  * dD:                                    Preprocessor Options.
!                                                              (line  434)
  * dD <1>:                                Developer Options.  (line  253)
  * dead_strip:                            Darwin Options.     (line  196)
  * dependency-file:                       Darwin Options.     (line  196)
  * dH:                                    Developer Options.  (line  257)
  * dI:                                    Preprocessor Options.
!                                                              (line  444)
  * dM:                                    Preprocessor Options.
!                                                              (line  419)
  * dN:                                    Preprocessor Options.
!                                                              (line  440)
  * dp:                                    Developer Options.  (line  260)
  * dP:                                    Developer Options.  (line  265)
  * dU:                                    Preprocessor Options.
!                                                              (line  448)
  * dump-analyzer-exploded-nodes:          Static Analyzer Options.
                                                               (line  364)
  * dump-analyzer-exploded-nodes-2:        Static Analyzer Options.
--- 61886,61911 ----
  * D:                                     Preprocessor Options.
                                                               (line   19)
  * d:                                     Preprocessor Options.
!                                                              (line  412)
  * d <1>:                                 Developer Options.  (line   52)
  * da:                                    Developer Options.  (line  246)
  * dA:                                    Developer Options.  (line  249)
  * dD:                                    Preprocessor Options.
!                                                              (line  436)
  * dD <1>:                                Developer Options.  (line  253)
  * dead_strip:                            Darwin Options.     (line  196)
  * dependency-file:                       Darwin Options.     (line  196)
  * dH:                                    Developer Options.  (line  257)
  * dI:                                    Preprocessor Options.
!                                                              (line  446)
  * dM:                                    Preprocessor Options.
!                                                              (line  421)
  * dN:                                    Preprocessor Options.
!                                                              (line  442)
  * dp:                                    Developer Options.  (line  260)
  * dP:                                    Developer Options.  (line  265)
  * dU:                                    Preprocessor Options.
!                                                              (line  450)
  * dump-analyzer-exploded-nodes:          Static Analyzer Options.
                                                               (line  364)
  * dump-analyzer-exploded-nodes-2:        Static Analyzer Options.
*************** look up both forms.
*** 61917,61926 ****
  * E:                                     Overall Options.    (line  190)
  * E <1>:                                 Link Options.       (line   20)
  * e:                                     Link Options.       (line  169)
! * EB:                                    ARC Options.        (line  597)
  * EB <1>:                                C-SKY Options.      (line   29)
  * EB <2>:                                MIPS Options.       (line    7)
! * EL:                                    ARC Options.        (line  606)
  * EL <1>:                                C-SKY Options.      (line   31)
  * EL <2>:                                MIPS Options.       (line   10)
  * entry:                                 Link Options.       (line  169)
--- 61929,61938 ----
  * E:                                     Overall Options.    (line  190)
  * E <1>:                                 Link Options.       (line   20)
  * e:                                     Link Options.       (line  169)
! * EB:                                    ARC Options.        (line  595)
  * EB <1>:                                C-SKY Options.      (line   29)
  * EB <2>:                                MIPS Options.       (line    7)
! * EL:                                    ARC Options.        (line  602)
  * EL <1>:                                C-SKY Options.      (line   31)
  * EL <2>:                                MIPS Options.       (line   10)
  * entry:                                 Link Options.       (line  169)
*************** look up both forms.
*** 61995,62001 ****
                                                               (line  176)
  * fconcepts-ts:                          C++ Dialect Options.
                                                               (line  176)
! * fcond-mismatch:                        C Dialect Options.  (line  408)
  * fconserve-stack:                       Optimize Options.   (line  958)
  * fconstant-string-class:                Objective-C and Objective-C++ Dialect Options.
                                                               (line   30)
--- 62007,62013 ----
                                                               (line  176)
  * fconcepts-ts:                          C++ Dialect Options.
                                                               (line  176)
! * fcond-mismatch:                        C Dialect Options.  (line  406)
  * fconserve-stack:                       Optimize Options.   (line  958)
  * fconstant-string-class:                Objective-C and Objective-C++ Dialect Options.
                                                               (line   30)
*************** look up both forms.
*** 62020,62026 ****
  * fdbg-cnt-list:                         Developer Options.  (line  921)
  * fdce:                                  Optimize Options.   (line  575)
  * fdebug-cpp:                            Preprocessor Options.
!                                                              (line  455)
  * fdebug-prefix-map:                     Debugging Options.  (line  142)
  * fdebug-types-section:                  Debugging Options.  (line  204)
  * fdeclone-ctor-dtor:                    Optimize Options.   (line  598)
--- 62032,62038 ----
  * fdbg-cnt-list:                         Developer Options.  (line  921)
  * fdce:                                  Optimize Options.   (line  575)
  * fdebug-cpp:                            Preprocessor Options.
!                                                              (line  457)
  * fdebug-prefix-map:                     Debugging Options.  (line  142)
  * fdebug-types-section:                  Debugging Options.  (line  204)
  * fdeclone-ctor-dtor:                    Optimize Options.   (line  598)
*************** look up both forms.
*** 62226,62232 ****
                                                               (line  260)
  * fgnu-runtime:                          Objective-C and Objective-C++ Dialect Options.
                                                               (line   39)
! * fgnu-tm:                               C Dialect Options.  (line  365)
  * fgnu-unique:                           Code Gen Options.   (line  162)
  * fgnu89-inline:                         C Dialect Options.  (line  202)
  * fgraphite-identity:                    Optimize Options.   (line 1257)
--- 62238,62244 ----
                                                               (line  260)
  * fgnu-runtime:                          Objective-C and Objective-C++ Dialect Options.
                                                               (line   39)
! * fgnu-tm:                               C Dialect Options.  (line  363)
  * fgnu-unique:                           Code Gen Options.   (line  162)
  * fgnu89-inline:                         C Dialect Options.  (line  202)
  * fgraphite-identity:                    Optimize Options.   (line 1257)
*************** look up both forms.
*** 62253,62259 ****
  * finline-limit:                         Optimize Options.   (line  337)
  * finline-small-functions:               Optimize Options.   (line  284)
  * finput-charset:                        Preprocessor Options.
!                                                              (line  286)
  * finstrument-functions:                 Instrumentation Options.
                                                               (line  792)
  * finstrument-functions <1>:             Common Function Attributes.
--- 62265,62271 ----
  * finline-limit:                         Optimize Options.   (line  337)
  * finline-small-functions:               Optimize Options.   (line  284)
  * finput-charset:                        Preprocessor Options.
!                                                              (line  288)
  * finstrument-functions:                 Instrumentation Options.
                                                               (line  792)
  * finstrument-functions <1>:             Common Function Attributes.
*************** look up both forms.
*** 62301,62309 ****
  * flang-info-module-cmi:                 C++ Dialect Options.
                                                               (line  546)
  * flarge-source-files:                   Preprocessor Options.
!                                                              (line  495)
  * flat_namespace:                        Darwin Options.     (line  196)
! * flax-vector-conversions:               C Dialect Options.  (line  413)
  * fleading-underscore:                   Code Gen Options.   (line  482)
  * flifetime-dse:                         Optimize Options.   (line  668)
  * flinker-output:                        Link Options.       (line   25)
--- 62313,62321 ----
  * flang-info-module-cmi:                 C++ Dialect Options.
                                                               (line  546)
  * flarge-source-files:                   Preprocessor Options.
!                                                              (line  497)
  * flat_namespace:                        Darwin Options.     (line  196)
! * flax-vector-conversions:               C Dialect Options.  (line  411)
  * fleading-underscore:                   Code Gen Options.   (line  482)
  * flifetime-dse:                         Optimize Options.   (line  668)
  * flinker-output:                        Link Options.       (line   25)
*************** look up both forms.
*** 62351,62357 ****
  * fmodulo-sched:                         Optimize Options.   (line  409)
  * fmodulo-sched-allow-regmoves:          Optimize Options.   (line  414)
  * fmove-loop-invariants:                 Optimize Options.   (line 2566)
! * fms-extensions:                        C Dialect Options.  (line  380)
  * fms-extensions <1>:                    C++ Dialect Options.
                                                               (line  324)
  * fms-extensions <2>:                    Unnamed Fields.     (line   36)
--- 62363,62369 ----
  * fmodulo-sched:                         Optimize Options.   (line  409)
  * fmodulo-sched-allow-regmoves:          Optimize Options.   (line  414)
  * fmove-loop-invariants:                 Optimize Options.   (line 2566)
! * fms-extensions:                        C Dialect Options.  (line  378)
  * fms-extensions <1>:                    C++ Dialect Options.
                                                               (line  324)
  * fms-extensions <2>:                    Unnamed Fields.     (line   36)
*************** look up both forms.
*** 62482,62488 ****
                                                               (line   46)
  * fno-show-column:                       Diagnostic Message Formatting Options.
                                                               (line  408)
! * fno-signed-bitfields:                  C Dialect Options.  (line  446)
  * fno-signed-zeros:                      Optimize Options.   (line 2361)
  * fno-stack-limit:                       Instrumentation Options.
                                                               (line  704)
--- 62494,62500 ----
                                                               (line   46)
  * fno-show-column:                       Diagnostic Message Formatting Options.
                                                               (line  408)
! * fno-signed-bitfields:                  C Dialect Options.  (line  444)
  * fno-signed-zeros:                      Optimize Options.   (line 2361)
  * fno-stack-limit:                       Instrumentation Options.
                                                               (line  704)
*************** look up both forms.
*** 62490,62496 ****
                                                               (line  439)
  * fno-toplevel-reorder:                  Optimize Options.   (line 1808)
  * fno-trapping-math:                     Optimize Options.   (line 2371)
! * fno-unsigned-bitfields:                C Dialect Options.  (line  446)
  * fno-use-cxa-get-exception-ptr:         C++ Dialect Options.
                                                               (line  452)
  * fno-var-tracking-assignments:          Debugging Options.  (line  162)
--- 62502,62508 ----
                                                               (line  439)
  * fno-toplevel-reorder:                  Optimize Options.   (line 1808)
  * fno-trapping-math:                     Optimize Options.   (line 2371)
! * fno-unsigned-bitfields:                C Dialect Options.  (line  444)
  * fno-use-cxa-get-exception-ptr:         C++ Dialect Options.
                                                               (line  452)
  * fno-var-tracking-assignments:          Debugging Options.  (line  162)
*************** look up both forms.
*** 62498,62504 ****
  * fno-weak:                              C++ Dialect Options.
                                                               (line  514)
  * fno-working-directory:                 Preprocessor Options.
!                                                              (line  321)
  * fno-writable-relocated-rdata:          x86 Windows Options.
                                                               (line   53)
  * fno-zero-initialized-in-bss:           Optimize Options.   (line  446)
--- 62510,62516 ----
  * fno-weak:                              C++ Dialect Options.
                                                               (line  514)
  * fno-working-directory:                 Preprocessor Options.
!                                                              (line  323)
  * fno-writable-relocated-rdata:          x86 Windows Options.
                                                               (line   53)
  * fno-zero-initialized-in-bss:           Optimize Options.   (line  446)
*************** look up both forms.
*** 62523,62531 ****
                                                               (line  119)
  * fomit-frame-pointer:                   Optimize Options.   (line  249)
  * fopenacc:                              C Dialect Options.  (line  337)
! * fopenacc-dim:                          C Dialect Options.  (line  346)
! * fopenmp:                               C Dialect Options.  (line  352)
! * fopenmp-simd:                          C Dialect Options.  (line  361)
  * foperator-names:                       C++ Dialect Options.
                                                               (line  358)
  * fopt-info:                             Developer Options.  (line  487)
--- 62535,62543 ----
                                                               (line  119)
  * fomit-frame-pointer:                   Optimize Options.   (line  249)
  * fopenacc:                              C Dialect Options.  (line  337)
! * fopenacc-dim:                          C Dialect Options.  (line  345)
! * fopenmp:                               C Dialect Options.  (line  351)
! * fopenmp-simd:                          C Dialect Options.  (line  359)
  * foperator-names:                       C++ Dialect Options.
                                                               (line  358)
  * fopt-info:                             Developer Options.  (line  487)
*************** look up both forms.
*** 62542,62550 ****
  * fpcc-struct-return:                    Code Gen Options.   (line  175)
  * fpcc-struct-return <1>:                Incompatibilities.  (line  170)
  * fpch-deps:                             Preprocessor Options.
!                                                              (line  296)
  * fpch-preprocess:                       Preprocessor Options.
!                                                              (line  304)
  * fpeel-loops:                           Optimize Options.   (line 2558)
  * fpeephole:                             Optimize Options.   (line 1554)
  * fpeephole2:                            Optimize Options.   (line 1554)
--- 62554,62562 ----
  * fpcc-struct-return:                    Code Gen Options.   (line  175)
  * fpcc-struct-return <1>:                Incompatibilities.  (line  170)
  * fpch-deps:                             Preprocessor Options.
!                                                              (line  298)
  * fpch-preprocess:                       Preprocessor Options.
!                                                              (line  306)
  * fpeel-loops:                           Optimize Options.   (line 2558)
  * fpeephole:                             Optimize Options.   (line 1554)
  * fpeephole2:                            Optimize Options.   (line 1554)
*************** look up both forms.
*** 62557,62563 ****
  * fPIC:                                  Code Gen Options.   (line  374)
  * fpie:                                  Code Gen Options.   (line  387)
  * fPIE:                                  Code Gen Options.   (line  387)
! * fplan9-extensions:                     C Dialect Options.  (line  398)
  * fplan9-extensions <1>:                 Unnamed Fields.     (line   43)
  * fplt:                                  Code Gen Options.   (line  396)
  * fplugin:                               Overall Options.    (line  643)
--- 62569,62575 ----
  * fPIC:                                  Code Gen Options.   (line  374)
  * fpie:                                  Code Gen Options.   (line  387)
  * fPIE:                                  Code Gen Options.   (line  387)
! * fplan9-extensions:                     C Dialect Options.  (line  396)
  * fplan9-extensions <1>:                 Unnamed Fields.     (line   43)
  * fplt:                                  Code Gen Options.   (line  396)
  * fplugin:                               Overall Options.    (line  643)
*************** look up both forms.
*** 62732,62740 ****
  * fshrink-wrap:                          Optimize Options.   (line  916)
  * fshrink-wrap-separate:                 Optimize Options.   (line  921)
  * fsignaling-nans:                       Optimize Options.   (line 2406)
! * fsigned-bitfields:                     C Dialect Options.  (line  446)
  * fsigned-bitfields <1>:                 Non-bugs.           (line   57)
! * fsigned-char:                          C Dialect Options.  (line  436)
  * fsigned-char <1>:                      Characters implementation.
                                                               (line   31)
  * fsigned-zeros:                         Optimize Options.   (line 2361)
--- 62744,62752 ----
  * fshrink-wrap:                          Optimize Options.   (line  916)
  * fshrink-wrap-separate:                 Optimize Options.   (line  921)
  * fsignaling-nans:                       Optimize Options.   (line 2406)
! * fsigned-bitfields:                     C Dialect Options.  (line  444)
  * fsigned-bitfields <1>:                 Non-bugs.           (line   57)
! * fsigned-char:                          C Dialect Options.  (line  434)
  * fsigned-char <1>:                      Characters implementation.
                                                               (line   31)
  * fsigned-zeros:                         Optimize Options.   (line 2361)
*************** look up both forms.
*** 62753,62759 ****
  * fsplit-wide-types-early:               Optimize Options.   (line  475)
  * fssa-backprop:                         Optimize Options.   (line 1181)
  * fssa-phiopt:                           Optimize Options.   (line 1187)
! * fsso-struct:                           C Dialect Options.  (line  452)
  * fstack-check:                          Instrumentation Options.
                                                               (line  647)
  * fstack-clash-protection:               Instrumentation Options.
--- 62765,62771 ----
  * fsplit-wide-types-early:               Optimize Options.   (line  475)
  * fssa-backprop:                         Optimize Options.   (line 1181)
  * fssa-phiopt:                           Optimize Options.   (line 1187)
! * fsso-struct:                           C Dialect Options.  (line  450)
  * fstack-check:                          Instrumentation Options.
                                                               (line  647)
  * fstack-clash-protection:               Instrumentation Options.
*************** look up both forms.
*** 62779,62788 ****
  * fstrict-enums:                         C++ Dialect Options.
                                                               (line  409)
  * fstrict-overflow:                      Code Gen Options.   (line  115)
! * fstrict-volatile-bitfields:            Code Gen Options.   (line  593)
  * fstrong-eval-order:                    C++ Dialect Options.
                                                               (line  418)
! * fsync-libcalls:                        Code Gen Options.   (line  625)
  * fsyntax-only:                          Warning Options.    (line   14)
  * ftabstop:                              Preprocessor Options.
                                                               (line  241)
--- 62791,62800 ----
  * fstrict-enums:                         C++ Dialect Options.
                                                               (line  409)
  * fstrict-overflow:                      Code Gen Options.   (line  115)
! * fstrict-volatile-bitfields:            Code Gen Options.   (line  592)
  * fstrong-eval-order:                    C++ Dialect Options.
                                                               (line  418)
! * fsync-libcalls:                        Code Gen Options.   (line  624)
  * fsyntax-only:                          Warning Options.    (line   14)
  * ftabstop:                              Preprocessor Options.
                                                               (line  241)
*************** look up both forms.
*** 62845,62855 ****
  * funroll-all-loops:                     Optimize Options.   (line 2552)
  * funroll-loops:                         Optimize Options.   (line 2542)
  * funsafe-math-optimizations:            Optimize Options.   (line 2304)
! * funsigned-bitfields:                   C Dialect Options.  (line  446)
  * funsigned-bitfields <1>:               Structures unions enumerations and bit-fields implementation.
                                                               (line   17)
  * funsigned-bitfields <2>:               Non-bugs.           (line   57)
! * funsigned-char:                        C Dialect Options.  (line  418)
  * funsigned-char <1>:                    Characters implementation.
                                                               (line   31)
  * funswitch-loops:                       Optimize Options.   (line 2576)
--- 62857,62867 ----
  * funroll-all-loops:                     Optimize Options.   (line 2552)
  * funroll-loops:                         Optimize Options.   (line 2542)
  * funsafe-math-optimizations:            Optimize Options.   (line 2304)
! * funsigned-bitfields:                   C Dialect Options.  (line  444)
  * funsigned-bitfields <1>:               Structures unions enumerations and bit-fields implementation.
                                                               (line   17)
  * funsigned-bitfields <2>:               Non-bugs.           (line   57)
! * funsigned-char:                        C Dialect Options.  (line  416)
  * funsigned-char <1>:                    Characters implementation.
                                                               (line   31)
  * funswitch-loops:                       Optimize Options.   (line 2576)
*************** look up both forms.
*** 62888,62894 ****
  * fwide-exec-charset:                    Preprocessor Options.
                                                               (line  278)
  * fworking-directory:                    Preprocessor Options.
!                                                              (line  321)
  * fwrapv:                                Code Gen Options.   (line   99)
  * fwrapv-pointer:                        Code Gen Options.   (line  109)
  * fwritable-relocated-rdata:             x86 Windows Options.
--- 62900,62906 ----
  * fwide-exec-charset:                    Preprocessor Options.
                                                               (line  278)
  * fworking-directory:                    Preprocessor Options.
!                                                              (line  323)
  * fwrapv:                                Code Gen Options.   (line   99)
  * fwrapv-pointer:                        Code Gen Options.   (line  109)
  * fwritable-relocated-rdata:             x86 Windows Options.
*************** look up both forms.
*** 62898,62904 ****
  * fzero-link:                            Objective-C and Objective-C++ Dialect Options.
                                                               (line  140)
  * g:                                     Debugging Options.  (line   25)
! * G:                                     ARC Options.        (line  416)
  * G <1>:                                 M32R/D Options.     (line   57)
  * G <2>:                                 MIPS Options.       (line  460)
  * G <3>:                                 Nios II Options.    (line    9)
--- 62910,62916 ----
  * fzero-link:                            Objective-C and Objective-C++ Dialect Options.
                                                               (line  140)
  * g:                                     Debugging Options.  (line   25)
! * G:                                     ARC Options.        (line  414)
  * G <1>:                                 M32R/D Options.     (line   57)
  * G <2>:                                 MIPS Options.       (line  460)
  * G <3>:                                 Nios II Options.    (line    9)
*************** look up both forms.
*** 62943,62949 ****
  * gxcoff+:                               Debugging Options.  (line   83)
  * gz:                                    Debugging Options.  (line  329)
  * H:                                     Preprocessor Options.
!                                                              (line  403)
  * headerpad_max_install_names:           Darwin Options.     (line  196)
  * help:                                  Overall Options.    (line  482)
  * I:                                     Directory Options.  (line   13)
--- 62955,62961 ----
  * gxcoff+:                               Debugging Options.  (line   83)
  * gz:                                    Debugging Options.  (line  329)
  * H:                                     Preprocessor Options.
!                                                              (line  405)
  * headerpad_max_install_names:           Darwin Options.     (line  196)
  * help:                                  Overall Options.    (line  482)
  * I:                                     Directory Options.  (line   13)
*************** look up both forms.
*** 62976,62983 ****
  * m1:                                    SH Options.         (line    9)
  * m10:                                   PDP-11 Options.     (line   29)
  * m128bit-long-double:                   x86 Options.        (line  632)
! * m16:                                   x86 Options.        (line 1502)
! * m16-bit:                               CRIS Options.       (line   63)
  * m16-bit <1>:                           NDS32 Options.      (line   51)
  * m1reg-:                                Adapteva Epiphany Options.
                                                               (line  131)
--- 62988,62995 ----
  * m1:                                    SH Options.         (line    9)
  * m10:                                   PDP-11 Options.     (line   29)
  * m128bit-long-double:                   x86 Options.        (line  632)
! * m16:                                   x86 Options.        (line 1511)
! * m16-bit:                               CRIS Options.       (line   62)
  * m16-bit <1>:                           NDS32 Options.      (line   51)
  * m1reg-:                                Adapteva Epiphany Options.
                                                               (line  131)
*************** look up both forms.
*** 62995,63010 ****
  * m32 <1>:                               SPARC Options.      (line  315)
  * m32 <2>:                               TILE-Gx Options.    (line   23)
  * m32 <3>:                               TILEPro Options.    (line   13)
! * m32 <4>:                               x86 Options.        (line 1502)
! * m32-bit:                               CRIS Options.       (line   63)
  * m32bit-doubles:                        RL78 Options.       (line   73)
  * m32bit-doubles <1>:                    RX Options.         (line   10)
  * m32r:                                  M32R/D Options.     (line   15)
  * m32r2:                                 M32R/D Options.     (line    9)
  * m32rx:                                 M32R/D Options.     (line   12)
  * m340:                                  MCore Options.      (line   43)
! * m3dnow:                                x86 Options.        (line  855)
! * m3dnowa:                               x86 Options.        (line  856)
  * m3e:                                   SH Options.         (line   37)
  * m4:                                    SH Options.         (line   51)
  * m4-100:                                SH Options.         (line   54)
--- 63007,63022 ----
  * m32 <1>:                               SPARC Options.      (line  315)
  * m32 <2>:                               TILE-Gx Options.    (line   23)
  * m32 <3>:                               TILEPro Options.    (line   13)
! * m32 <4>:                               x86 Options.        (line 1511)
! * m32-bit:                               CRIS Options.       (line   62)
  * m32bit-doubles:                        RL78 Options.       (line   73)
  * m32bit-doubles <1>:                    RX Options.         (line   10)
  * m32r:                                  M32R/D Options.     (line   15)
  * m32r2:                                 M32R/D Options.     (line    9)
  * m32rx:                                 M32R/D Options.     (line   12)
  * m340:                                  MCore Options.      (line   43)
! * m3dnow:                                x86 Options.        (line  864)
! * m3dnowa:                               x86 Options.        (line  865)
  * m3e:                                   SH Options.         (line   37)
  * m4:                                    SH Options.         (line   51)
  * m4-100:                                SH Options.         (line   54)
*************** look up both forms.
*** 63044,63050 ****
                                                               (line   86)
  * m64 <3>:                               SPARC Options.      (line  315)
  * m64 <4>:                               TILE-Gx Options.    (line   23)
! * m64 <5>:                               x86 Options.        (line 1502)
  * m64bit-doubles:                        RL78 Options.       (line   73)
  * m64bit-doubles <1>:                    RX Options.         (line   10)
  * m68000:                                M680x0 Options.     (line   93)
--- 63056,63062 ----
                                                               (line   86)
  * m64 <3>:                               SPARC Options.      (line  315)
  * m64 <4>:                               TILE-Gx Options.    (line   23)
! * m64 <5>:                               x86 Options.        (line 1511)
  * m64bit-doubles:                        RL78 Options.       (line   73)
  * m64bit-doubles <1>:                    RX Options.         (line   10)
  * m68000:                                M680x0 Options.     (line   93)
*************** look up both forms.
*** 63056,63063 ****
  * m68040:                                M680x0 Options.     (line  117)
  * m68060:                                M680x0 Options.     (line  126)
  * m68881:                                M680x0 Options.     (line  194)
! * m8-bit:                                CRIS Options.       (line   63)
! * m8bit-idiv:                            x86 Options.        (line 1410)
  * m8byte-align:                          V850 Options.       (line  170)
  * m96bit-long-double:                    x86 Options.        (line  632)
  * mA6:                                   ARC Options.        (line   23)
--- 63068,63075 ----
  * m68040:                                M680x0 Options.     (line  117)
  * m68060:                                M680x0 Options.     (line  126)
  * m68881:                                M680x0 Options.     (line  194)
! * m8-bit:                                CRIS Options.       (line   62)
! * m8bit-idiv:                            x86 Options.        (line 1419)
  * m8byte-align:                          V850 Options.       (line  170)
  * m96bit-long-double:                    x86 Options.        (line  632)
  * mA6:                                   ARC Options.        (line   23)
*************** look up both forms.
*** 63068,63074 ****
  * mabi <3>:                              RISC-V Options.     (line   17)
  * mabi <4>:                              RS/6000 and PowerPC Options.
                                                               (line  552)
! * mabi <5>:                              x86 Options.        (line 1103)
  * mabi <6>:                              Xtensa Options.     (line  103)
  * mabi=32:                               MIPS Options.       (line  156)
  * mabi=64:                               MIPS Options.       (line  156)
--- 63080,63086 ----
  * mabi <3>:                              RISC-V Options.     (line   17)
  * mabi <4>:                              RS/6000 and PowerPC Options.
                                                               (line  552)
! * mabi <5>:                              x86 Options.        (line 1112)
  * mabi <6>:                              Xtensa Options.     (line  103)
  * mabi=32:                               MIPS Options.       (line  156)
  * mabi=64:                               MIPS Options.       (line  156)
*************** look up both forms.
*** 63088,63111 ****
  * mabi=o64:                              MIPS Options.       (line  156)
  * mabi=windowed:                         Xtensa Options.     (line  115)
  * mabicalls:                             MIPS Options.       (line  192)
! * mabm:                                  x86 Options.        (line  858)
  * mabort-on-noreturn:                    ARM Options.        (line  751)
  * mabs=2008:                             MIPS Options.       (line  300)
  * mabs=legacy:                           MIPS Options.       (line  300)
! * mabsdata:                              AVR Options.        (line  163)
  * mabsdiff:                              MeP Options.        (line    7)
  * mac0:                                  PDP-11 Options.     (line   16)
  * macc-4:                                FRV Options.        (line  139)
  * macc-8:                                FRV Options.        (line  143)
! * maccumulate-args:                      AVR Options.        (line  170)
  * maccumulate-outgoing-args:             SH Options.         (line  314)
! * maccumulate-outgoing-args <1>:         x86 Options.        (line 1147)
! * maddress-mode=long:                    x86 Options.        (line 1552)
! * maddress-mode=short:                   x86 Options.        (line 1557)
  * mads:                                  RS/6000 and PowerPC Options.
                                                               (line  614)
! * madx:                                  x86 Options.        (line  859)
! * maes:                                  x86 Options.        (line  836)
  * maix-struct-return:                    RS/6000 and PowerPC Options.
                                                               (line  545)
  * maix32:                                RS/6000 and PowerPC Options.
--- 63100,63123 ----
  * mabi=o64:                              MIPS Options.       (line  156)
  * mabi=windowed:                         Xtensa Options.     (line  115)
  * mabicalls:                             MIPS Options.       (line  192)
! * mabm:                                  x86 Options.        (line  867)
  * mabort-on-noreturn:                    ARM Options.        (line  751)
  * mabs=2008:                             MIPS Options.       (line  300)
  * mabs=legacy:                           MIPS Options.       (line  300)
! * mabsdata:                              AVR Options.        (line  162)
  * mabsdiff:                              MeP Options.        (line    7)
  * mac0:                                  PDP-11 Options.     (line   16)
  * macc-4:                                FRV Options.        (line  139)
  * macc-8:                                FRV Options.        (line  143)
! * maccumulate-args:                      AVR Options.        (line  169)
  * maccumulate-outgoing-args:             SH Options.         (line  314)
! * maccumulate-outgoing-args <1>:         x86 Options.        (line 1156)
! * maddress-mode=long:                    x86 Options.        (line 1561)
! * maddress-mode=short:                   x86 Options.        (line 1566)
  * mads:                                  RS/6000 and PowerPC Options.
                                                               (line  614)
! * madx:                                  x86 Options.        (line  868)
! * maes:                                  x86 Options.        (line  845)
  * maix-struct-return:                    RS/6000 and PowerPC Options.
                                                               (line  545)
  * maix32:                                RS/6000 and PowerPC Options.
*************** look up both forms.
*** 63113,63119 ****
  * maix64:                                RS/6000 and PowerPC Options.
                                                               (line  283)
  * malign-300:                            H8/300 Options.     (line   41)
! * malign-call:                           ARC Options.        (line  435)
  * malign-data:                           RISC-V Options.     (line  151)
  * malign-data <1>:                       x86 Options.        (line  672)
  * malign-double:                         x86 Options.        (line  617)
--- 63125,63131 ----
  * maix64:                                RS/6000 and PowerPC Options.
                                                               (line  283)
  * malign-300:                            H8/300 Options.     (line   41)
! * malign-call:                           ARC Options.        (line  433)
  * malign-data:                           RISC-V Options.     (line  151)
  * malign-data <1>:                       x86 Options.        (line  672)
  * malign-double:                         x86 Options.        (line  617)
*************** look up both forms.
*** 63124,63130 ****
                                                               (line  321)
  * malign-power:                          RS/6000 and PowerPC Options.
                                                               (line  321)
! * malign-stringops:                      x86 Options.        (line 1283)
  * mall-opts:                             MeP Options.        (line   11)
  * malloc-cc:                             FRV Options.        (line   31)
  * mallow-string-insns:                   RX Options.         (line  150)
--- 63136,63142 ----
                                                               (line  321)
  * malign-power:                          RS/6000 and PowerPC Options.
                                                               (line  321)
! * malign-stringops:                      x86 Options.        (line 1292)
  * mall-opts:                             MeP Options.        (line   11)
  * malloc-cc:                             FRV Options.        (line   31)
  * mallow-string-insns:                   RX Options.         (line  150)
*************** look up both forms.
*** 63134,63142 ****
  * mam33:                                 MN10300 Options.    (line   17)
  * mam33-2:                               MN10300 Options.    (line   24)
  * mam34:                                 MN10300 Options.    (line   27)
! * mamx-bf16:                             x86 Options.        (line  896)
! * mamx-int8:                             x86 Options.        (line  895)
! * mamx-tile:                             x86 Options.        (line  894)
  * manchor:                               C-SKY Options.      (line  126)
  * mandroid:                              GNU/Linux Options.  (line   26)
  * mannotate-align:                       ARC Options.        (line  382)
--- 63146,63154 ----
  * mam33:                                 MN10300 Options.    (line   17)
  * mam33-2:                               MN10300 Options.    (line   24)
  * mam34:                                 MN10300 Options.    (line   27)
! * mamx-bf16:                             x86 Options.        (line  905)
! * mamx-int8:                             x86 Options.        (line  904)
! * mamx-tile:                             x86 Options.        (line  903)
  * manchor:                               C-SKY Options.      (line  126)
  * mandroid:                              GNU/Linux Options.  (line   26)
  * mannotate-align:                       ARC Options.        (line  382)
*************** look up both forms.
*** 63165,63172 ****
  * march <14>:                            x86 Options.        (line    9)
  * march=:                                C-SKY Options.      (line    9)
  * marclinux:                             ARC Options.        (line  388)
! * marclinux_prof:                        ARC Options.        (line  395)
! * margonaut:                             ARC Options.        (line  593)
  * marm:                                  ARM Options.        (line  823)
  * mas100-syntax:                         RX Options.         (line   76)
  * masm-hex:                              MSP430 Options.     (line    9)
--- 63177,63184 ----
  * march <14>:                            x86 Options.        (line    9)
  * march=:                                C-SKY Options.      (line    9)
  * marclinux:                             ARC Options.        (line  388)
! * marclinux_prof:                        ARC Options.        (line  394)
! * margonaut:                             ARC Options.        (line  591)
  * marm:                                  ARM Options.        (line  823)
  * mas100-syntax:                         RX Options.         (line   76)
  * masm-hex:                              MSP430 Options.     (line    9)
*************** look up both forms.
*** 63175,63207 ****
  * matomic:                               ARC Options.        (line  155)
  * matomic-model=MODEL:                   SH Options.         (line  193)
  * mauto-litpools:                        Xtensa Options.     (line   60)
! * mauto-modify-reg:                      ARC Options.        (line  438)
  * mauto-pic:                             IA-64 Options.      (line   50)
  * maverage:                              MeP Options.        (line   16)
  * mavoid-indexed-addresses:              RS/6000 and PowerPC Options.
                                                               (line  360)
! * mavx:                                  x86 Options.        (line  824)
! * mavx2:                                 x86 Options.        (line  825)
! * mavx256-split-unaligned-load:          x86 Options.        (line 1418)
! * mavx256-split-unaligned-store:         x86 Options.        (line 1418)
! * mavx5124fmaps:                         x86 Options.        (line  888)
! * mavx5124vnniw:                         x86 Options.        (line  891)
! * mavx512bf16:                           x86 Options.        (line  875)
! * mavx512bitalg:                         x86 Options.        (line  880)
! * mavx512bw:                             x86 Options.        (line  831)
! * mavx512cd:                             x86 Options.        (line  829)
! * mavx512dq:                             x86 Options.        (line  832)
! * mavx512er:                             x86 Options.        (line  828)
! * mavx512f:                              x86 Options.        (line  826)
! * mavx512ifma:                           x86 Options.        (line  833)
! * mavx512pf:                             x86 Options.        (line  827)
! * mavx512vbmi:                           x86 Options.        (line  834)
! * mavx512vbmi2:                          x86 Options.        (line  874)
! * mavx512vl:                             x86 Options.        (line  830)
! * mavx512vnni:                           x86 Options.        (line  889)
! * mavx512vp2intersect:                   x86 Options.        (line  887)
! * mavx512vpopcntdq:                      x86 Options.        (line  886)
! * mavxvnni:                              x86 Options.        (line  890)
  * max-vect-align:                        Adapteva Epiphany Options.
                                                               (line  119)
  * mb:                                    SH Options.         (line  126)
--- 63187,63219 ----
  * matomic:                               ARC Options.        (line  155)
  * matomic-model=MODEL:                   SH Options.         (line  193)
  * mauto-litpools:                        Xtensa Options.     (line   60)
! * mauto-modify-reg:                      ARC Options.        (line  436)
  * mauto-pic:                             IA-64 Options.      (line   50)
  * maverage:                              MeP Options.        (line   16)
  * mavoid-indexed-addresses:              RS/6000 and PowerPC Options.
                                                               (line  360)
! * mavx:                                  x86 Options.        (line  833)
! * mavx2:                                 x86 Options.        (line  834)
! * mavx256-split-unaligned-load:          x86 Options.        (line 1427)
! * mavx256-split-unaligned-store:         x86 Options.        (line 1427)
! * mavx5124fmaps:                         x86 Options.        (line  897)
! * mavx5124vnniw:                         x86 Options.        (line  900)
! * mavx512bf16:                           x86 Options.        (line  884)
! * mavx512bitalg:                         x86 Options.        (line  889)
! * mavx512bw:                             x86 Options.        (line  840)
! * mavx512cd:                             x86 Options.        (line  838)
! * mavx512dq:                             x86 Options.        (line  841)
! * mavx512er:                             x86 Options.        (line  837)
! * mavx512f:                              x86 Options.        (line  835)
! * mavx512ifma:                           x86 Options.        (line  842)
! * mavx512pf:                             x86 Options.        (line  836)
! * mavx512vbmi:                           x86 Options.        (line  843)
! * mavx512vbmi2:                          x86 Options.        (line  883)
! * mavx512vl:                             x86 Options.        (line  839)
! * mavx512vnni:                           x86 Options.        (line  898)
! * mavx512vp2intersect:                   x86 Options.        (line  896)
! * mavx512vpopcntdq:                      x86 Options.        (line  895)
! * mavxvnni:                              x86 Options.        (line  899)
  * max-vect-align:                        Adapteva Epiphany Options.
                                                               (line  119)
  * mb:                                    SH Options.         (line  126)
*************** look up both forms.
*** 63209,63223 ****
                                                               (line   35)
  * mbarrel-shift-enabled:                 LM32 Options.       (line    9)
  * mbarrel-shifter:                       ARC Options.        (line   10)
! * mbarrel_shifter:                       ARC Options.        (line  613)
  * mbase-addresses:                       MMIX Options.       (line   53)
  * mbased=:                               MeP Options.        (line   20)
! * mbbit-peephole:                        ARC Options.        (line  441)
  * mbe8:                                  ARM Options.        (line   72)
  * mbig:                                  RS/6000 and PowerPC Options.
                                                               (line  440)
  * mbig-endian:                           AArch64 Options.    (line   20)
! * mbig-endian <1>:                       ARC Options.        (line  596)
  * mbig-endian <2>:                       ARM Options.        (line   67)
  * mbig-endian <3>:                       C6X Options.        (line   13)
  * mbig-endian <4>:                       C-SKY Options.      (line   28)
--- 63221,63235 ----
                                                               (line   35)
  * mbarrel-shift-enabled:                 LM32 Options.       (line    9)
  * mbarrel-shifter:                       ARC Options.        (line   10)
! * mbarrel_shifter:                       ARC Options.        (line  608)
  * mbase-addresses:                       MMIX Options.       (line   53)
  * mbased=:                               MeP Options.        (line   20)
! * mbbit-peephole:                        ARC Options.        (line  439)
  * mbe8:                                  ARM Options.        (line   72)
  * mbig:                                  RS/6000 and PowerPC Options.
                                                               (line  440)
  * mbig-endian:                           AArch64 Options.    (line   20)
! * mbig-endian <1>:                       ARC Options.        (line  594)
  * mbig-endian <2>:                       ARM Options.        (line   67)
  * mbig-endian <3>:                       C6X Options.        (line   13)
  * mbig-endian <4>:                       C-SKY Options.      (line   28)
*************** look up both forms.
*** 63246,63257 ****
                                                               (line  700)
  * mblock-move-inline-limit:              RS/6000 and PowerPC Options.
                                                               (line  688)
! * mbmi:                                  x86 Options.        (line  860)
! * mbmi2:                                 x86 Options.        (line  861)
  * mboard:                                OpenRISC Options.   (line    9)
  * mbranch-cost:                          Adapteva Epiphany Options.
                                                               (line   18)
! * mbranch-cost <1>:                      AVR Options.        (line  185)
  * mbranch-cost <2>:                      MIPS Options.       (line  785)
  * mbranch-cost <3>:                      RISC-V Options.     (line    9)
  * mbranch-cost=:                         C-SKY Options.      (line  159)
--- 63258,63269 ----
                                                               (line  700)
  * mblock-move-inline-limit:              RS/6000 and PowerPC Options.
                                                               (line  688)
! * mbmi:                                  x86 Options.        (line  869)
! * mbmi2:                                 x86 Options.        (line  870)
  * mboard:                                OpenRISC Options.   (line    9)
  * mbranch-cost:                          Adapteva Epiphany Options.
                                                               (line   18)
! * mbranch-cost <1>:                      AVR Options.        (line  184)
  * mbranch-cost <2>:                      MIPS Options.       (line  785)
  * mbranch-cost <3>:                      RISC-V Options.     (line    9)
  * mbranch-cost=:                         C-SKY Options.      (line  159)
*************** look up both forms.
*** 63278,63289 ****
                                                               (line  529)
  * mcall-linux:                           RS/6000 and PowerPC Options.
                                                               (line  525)
! * mcall-ms2sysv-xlogues:                 x86 Options.        (line 1123)
  * mcall-netbsd:                          RS/6000 and PowerPC Options.
                                                               (line  533)
  * mcall-netbsd <1>:                      RS/6000 and PowerPC Options.
                                                               (line  537)
! * mcall-prologues:                       AVR Options.        (line  190)
  * mcall-sysv:                            RS/6000 and PowerPC Options.
                                                               (line  507)
  * mcall-sysv-eabi:                       RS/6000 and PowerPC Options.
--- 63290,63301 ----
                                                               (line  529)
  * mcall-linux:                           RS/6000 and PowerPC Options.
                                                               (line  525)
! * mcall-ms2sysv-xlogues:                 x86 Options.        (line 1132)
  * mcall-netbsd:                          RS/6000 and PowerPC Options.
                                                               (line  533)
  * mcall-netbsd <1>:                      RS/6000 and PowerPC Options.
                                                               (line  537)
! * mcall-prologues:                       AVR Options.        (line  189)
  * mcall-sysv:                            RS/6000 and PowerPC Options.
                                                               (line  507)
  * mcall-sysv-eabi:                       RS/6000 and PowerPC Options.
*************** look up both forms.
*** 63294,63332 ****
  * mcaller-copies:                        HPPA Options.       (line   23)
  * mcaller-super-interworking:            ARM Options.        (line  859)
  * mcallgraph-data:                       MCore Options.      (line   31)
! * mcase-vector-pcrel:                    ARC Options.        (line  450)
  * mcbcond:                               SPARC Options.      (line  260)
  * mcbranch-force-delay-slot:             SH Options.         (line  349)
! * mcc-init:                              CRIS Options.       (line   41)
  * mccrt:                                 C-SKY Options.      (line  155)
  * mcfv4e:                                M680x0 Options.     (line  169)
  * mcheck-zero-division:                  MIPS Options.       (line  570)
  * mcix:                                  DEC Alpha Options.  (line  163)
! * mcld:                                  x86 Options.        (line  951)
! * mcldemote:                             x86 Options.        (line  892)
  * mclear-hwcap:                          Solaris 2 Options.  (line    9)
! * mclflushopt:                           x86 Options.        (line  838)
  * mclip:                                 MeP Options.        (line   35)
! * mclwb:                                 x86 Options.        (line  839)
! * mclzero:                               x86 Options.        (line  872)
  * mcmodel:                               NDS32 Options.      (line   67)
  * mcmodel <1>:                           SPARC Options.      (line  320)
! * mcmodel=kernel:                        x86 Options.        (line 1536)
  * mcmodel=large:                         AArch64 Options.    (line   45)
  * mcmodel=large <1>:                     RS/6000 and PowerPC Options.
                                                               (line  131)
  * mcmodel=large <2>:                     TILE-Gx Options.    (line   14)
! * mcmodel=large <3>:                     x86 Options.        (line 1548)
  * mcmodel=medany:                        RISC-V Options.     (line  129)
  * mcmodel=medium:                        RS/6000 and PowerPC Options.
                                                               (line  126)
! * mcmodel=medium <1>:                    x86 Options.        (line 1541)
  * mcmodel=medlow:                        RISC-V Options.     (line  122)
  * mcmodel=small:                         AArch64 Options.    (line   39)
  * mcmodel=small <1>:                     RS/6000 and PowerPC Options.
                                                               (line  122)
  * mcmodel=small <2>:                     TILE-Gx Options.    (line    9)
! * mcmodel=small <3>:                     x86 Options.        (line 1530)
  * mcmodel=tiny:                          AArch64 Options.    (line   34)
  * mcmov:                                 NDS32 Options.      (line   21)
  * mcmov <1>:                             OpenRISC Options.   (line   45)
--- 63306,63344 ----
  * mcaller-copies:                        HPPA Options.       (line   23)
  * mcaller-super-interworking:            ARM Options.        (line  859)
  * mcallgraph-data:                       MCore Options.      (line   31)
! * mcase-vector-pcrel:                    ARC Options.        (line  448)
  * mcbcond:                               SPARC Options.      (line  260)
  * mcbranch-force-delay-slot:             SH Options.         (line  349)
! * mcc-init:                              CRIS Options.       (line   40)
  * mccrt:                                 C-SKY Options.      (line  155)
  * mcfv4e:                                M680x0 Options.     (line  169)
  * mcheck-zero-division:                  MIPS Options.       (line  570)
  * mcix:                                  DEC Alpha Options.  (line  163)
! * mcld:                                  x86 Options.        (line  960)
! * mcldemote:                             x86 Options.        (line  901)
  * mclear-hwcap:                          Solaris 2 Options.  (line    9)
! * mclflushopt:                           x86 Options.        (line  847)
  * mclip:                                 MeP Options.        (line   35)
! * mclwb:                                 x86 Options.        (line  848)
! * mclzero:                               x86 Options.        (line  881)
  * mcmodel:                               NDS32 Options.      (line   67)
  * mcmodel <1>:                           SPARC Options.      (line  320)
! * mcmodel=kernel:                        x86 Options.        (line 1545)
  * mcmodel=large:                         AArch64 Options.    (line   45)
  * mcmodel=large <1>:                     RS/6000 and PowerPC Options.
                                                               (line  131)
  * mcmodel=large <2>:                     TILE-Gx Options.    (line   14)
! * mcmodel=large <3>:                     x86 Options.        (line 1557)
  * mcmodel=medany:                        RISC-V Options.     (line  129)
  * mcmodel=medium:                        RS/6000 and PowerPC Options.
                                                               (line  126)
! * mcmodel=medium <1>:                    x86 Options.        (line 1550)
  * mcmodel=medlow:                        RISC-V Options.     (line  122)
  * mcmodel=small:                         AArch64 Options.    (line   39)
  * mcmodel=small <1>:                     RS/6000 and PowerPC Options.
                                                               (line  122)
  * mcmodel=small <2>:                     TILE-Gx Options.    (line    9)
! * mcmodel=small <3>:                     x86 Options.        (line 1539)
  * mcmodel=tiny:                          AArch64 Options.    (line   34)
  * mcmov:                                 NDS32 Options.      (line   21)
  * mcmov <1>:                             OpenRISC Options.   (line   45)
*************** look up both forms.
*** 63336,63348 ****
                                                               (line   25)
  * mcmse:                                 ARM Options.        (line  951)
  * mcode-density:                         ARC Options.        (line  163)
! * mcode-density-frame:                   ARC Options.        (line  511)
  * mcode-readable:                        MIPS Options.       (line  530)
  * mcode-region:                          MSP430 Options.     (line  150)
  * mcompact-branches=always:              MIPS Options.       (line  804)
  * mcompact-branches=never:               MIPS Options.       (line  804)
  * mcompact-branches=optimal:             MIPS Options.       (line  804)
! * mcompact-casesi:                       ARC Options.        (line  454)
  * mcompat-align-parm:                    RS/6000 and PowerPC Options.
                                                               (line  899)
  * mcompress:                             FT32 Options.       (line   26)
--- 63348,63360 ----
                                                               (line   25)
  * mcmse:                                 ARM Options.        (line  951)
  * mcode-density:                         ARC Options.        (line  163)
! * mcode-density-frame:                   ARC Options.        (line  509)
  * mcode-readable:                        MIPS Options.       (line  530)
  * mcode-region:                          MSP430 Options.     (line  150)
  * mcompact-branches=always:              MIPS Options.       (line  804)
  * mcompact-branches=never:               MIPS Options.       (line  804)
  * mcompact-branches=optimal:             MIPS Options.       (line  804)
! * mcompact-casesi:                       ARC Options.        (line  452)
  * mcompat-align-parm:                    RS/6000 and PowerPC Options.
                                                               (line  899)
  * mcompress:                             FT32 Options.       (line   26)
*************** look up both forms.
*** 63351,63357 ****
  * mconfig=:                              MeP Options.        (line   39)
  * mconsole:                              x86 Windows Options.
                                                               (line    9)
! * mconst-align:                          CRIS Options.       (line   54)
  * mconst16:                              Xtensa Options.     (line   10)
  * mconstant-gp:                          IA-64 Options.      (line   46)
  * mconstpool:                            C-SKY Options.      (line  143)
--- 63363,63369 ----
  * mconfig=:                              MeP Options.        (line   39)
  * mconsole:                              x86 Windows Options.
                                                               (line    9)
! * mconst-align:                          CRIS Options.       (line   53)
  * mconst16:                              Xtensa Options.     (line   10)
  * mconstant-gp:                          IA-64 Options.      (line   46)
  * mconstpool:                            C-SKY Options.      (line  143)
*************** look up both forms.
*** 63388,63394 ****
  * mcr16c:                                CR16 Options.       (line   14)
  * mcr16cplus:                            CR16 Options.       (line   14)
  * mcrc:                                  MIPS Options.       (line  416)
! * mcrc32:                                x86 Options.        (line 1019)
  * mcrypto:                               RS/6000 and PowerPC Options.
                                                               (line  178)
  * mcsync-anomaly:                        Blackfin Options.   (line   57)
--- 63400,63406 ----
  * mcr16c:                                CR16 Options.       (line   14)
  * mcr16cplus:                            CR16 Options.       (line   14)
  * mcrc:                                  MIPS Options.       (line  416)
! * mcrc32:                                x86 Options.        (line 1028)
  * mcrypto:                               RS/6000 and PowerPC Options.
                                                               (line  178)
  * mcsync-anomaly:                        Blackfin Options.   (line   57)
*************** look up both forms.
*** 63396,63408 ****
  * mctor-dtor:                            NDS32 Options.      (line   81)
  * mcustom-fpu-cfg:                       Nios II Options.    (line  259)
  * mcustom-INSN:                          Nios II Options.    (line  139)
! * mcx16:                                 x86 Options.        (line  992)
  * MD:                                    Preprocessor Options.
                                                               (line  172)
  * mdalign:                               SH Options.         (line  132)
! * mdata-align:                           CRIS Options.       (line   54)
  * mdata-model:                           CR16 Options.       (line   28)
  * mdata-region:                          MSP430 Options.     (line  150)
  * mdc:                                   MeP Options.        (line   62)
  * mdebug:                                M32R/D Options.     (line   69)
  * mdebug <1>:                            S/390 and zSeries Options.
--- 63408,63421 ----
  * mctor-dtor:                            NDS32 Options.      (line   81)
  * mcustom-fpu-cfg:                       Nios II Options.    (line  259)
  * mcustom-INSN:                          Nios II Options.    (line  139)
! * mcx16:                                 x86 Options.        (line 1001)
  * MD:                                    Preprocessor Options.
                                                               (line  172)
  * mdalign:                               SH Options.         (line  132)
! * mdata-align:                           CRIS Options.       (line   53)
  * mdata-model:                           CR16 Options.       (line   28)
  * mdata-region:                          MSP430 Options.     (line  150)
+ * mdaz-ftz:                              x86 Options.        (line  760)
  * mdc:                                   MeP Options.        (line   62)
  * mdebug:                                M32R/D Options.     (line   69)
  * mdebug <1>:                            S/390 and zSeries Options.
*************** look up both forms.
*** 63429,63435 ****
  * mdlmzb:                                RS/6000 and PowerPC Options.
                                                               (line  385)
  * mdmx:                                  MIPS Options.       (line  376)
! * mdouble:                               AVR Options.        (line  195)
  * mdouble <1>:                           FRV Options.        (line   48)
  * mdouble-float:                         C-SKY Options.      (line   58)
  * mdouble-float <1>:                     MIPS Options.       (line  288)
--- 63442,63448 ----
  * mdlmzb:                                RS/6000 and PowerPC Options.
                                                               (line  385)
  * mdmx:                                  MIPS Options.       (line  376)
! * mdouble:                               AVR Options.        (line  194)
  * mdouble <1>:                           FRV Options.        (line   48)
  * mdouble-float:                         C-SKY Options.      (line   58)
  * mdouble-float <1>:                     MIPS Options.       (line  288)
*************** look up both forms.
*** 63437,63450 ****
  * mdpfp:                                 ARC Options.        (line   99)
  * mdpfp-compact:                         ARC Options.        (line  100)
  * mdpfp-fast:                            ARC Options.        (line  104)
! * mdpfp_compact:                         ARC Options.        (line  616)
! * mdpfp_fast:                            ARC Options.        (line  619)
  * mdsp:                                  C-SKY Options.      (line  102)
  * mdsp <1>:                              MIPS Options.       (line  353)
  * mdsp-packa:                            ARC Options.        (line  335)
  * mdspr2:                                MIPS Options.       (line  359)
! * mdsp_packa:                            ARC Options.        (line  622)
! * mdump-tune-features:                   x86 Options.        (line  933)
  * mdvbf:                                 ARC Options.        (line  340)
  * mdwarf2-asm:                           IA-64 Options.      (line   94)
  * mdword:                                FRV Options.        (line   40)
--- 63450,63463 ----
  * mdpfp:                                 ARC Options.        (line   99)
  * mdpfp-compact:                         ARC Options.        (line  100)
  * mdpfp-fast:                            ARC Options.        (line  104)
! * mdpfp_compact:                         ARC Options.        (line  611)
! * mdpfp_fast:                            ARC Options.        (line  614)
  * mdsp:                                  C-SKY Options.      (line  102)
  * mdsp <1>:                              MIPS Options.       (line  353)
  * mdsp-packa:                            ARC Options.        (line  335)
  * mdspr2:                                MIPS Options.       (line  359)
! * mdsp_packa:                            ARC Options.        (line  617)
! * mdump-tune-features:                   x86 Options.        (line  942)
  * mdvbf:                                 ARC Options.        (line  340)
  * mdwarf2-asm:                           IA-64 Options.      (line   94)
  * mdword:                                FRV Options.        (line   40)
*************** look up both forms.
*** 63452,63461 ****
  * mdynamic-no-pic:                       RS/6000 and PowerPC Options.
                                                               (line  445)
  * mea:                                   ARC Options.        (line  112)
! * mEA:                                   ARC Options.        (line  625)
  * meabi:                                 RS/6000 and PowerPC Options.
                                                               (line  633)
! * mearly-cbranchsi:                      ARC Options.        (line  476)
  * mearly-stop-bits:                      IA-64 Options.      (line  100)
  * meb:                                   MeP Options.        (line   68)
  * meb <1>:                               Moxie Options.      (line    7)
--- 63465,63474 ----
  * mdynamic-no-pic:                       RS/6000 and PowerPC Options.
                                                               (line  445)
  * mea:                                   ARC Options.        (line  112)
! * mEA:                                   ARC Options.        (line  620)
  * meabi:                                 RS/6000 and PowerPC Options.
                                                               (line  633)
! * mearly-cbranchsi:                      ARC Options.        (line  474)
  * mearly-stop-bits:                      IA-64 Options.      (line  100)
  * meb:                                   MeP Options.        (line   68)
  * meb <1>:                               Moxie Options.      (line    7)
*************** look up both forms.
*** 63466,63487 ****
  * mel <1>:                               Moxie Options.      (line   11)
  * mel <2>:                               Nios II Options.    (line   90)
  * mel <3>:                               Score Options.      (line   12)
! * melf:                                  CRIS Options.       (line   79)
  * melf <1>:                              MMIX Options.       (line   43)
  * melrw:                                 C-SKY Options.      (line   76)
  * memb:                                  RS/6000 and PowerPC Options.
                                                               (line  628)
  * membedded-data:                        MIPS Options.       (line  517)
  * memregs=:                              M32C Options.       (line   21)
! * menqcmd:                               x86 Options.        (line  883)
  * mep:                                   V850 Options.       (line   16)
  * mepsilon:                              MMIX Options.       (line   15)
  * mesa:                                  S/390 and zSeries Options.
                                                               (line   94)
! * metrax100:                             CRIS Options.       (line   26)
! * metrax4:                               CRIS Options.       (line   26)
  * meva:                                  MIPS Options.       (line  403)
! * mexpand-adddi:                         ARC Options.        (line  479)
  * mexplicit-relocs:                      DEC Alpha Options.  (line  176)
  * mexplicit-relocs <1>:                  MIPS Options.       (line  561)
  * mexr:                                  H8/300 Options.     (line   28)
--- 63479,63500 ----
  * mel <1>:                               Moxie Options.      (line   11)
  * mel <2>:                               Nios II Options.    (line   90)
  * mel <3>:                               Score Options.      (line   12)
! * melf:                                  CRIS Options.       (line   78)
  * melf <1>:                              MMIX Options.       (line   43)
  * melrw:                                 C-SKY Options.      (line   76)
  * memb:                                  RS/6000 and PowerPC Options.
                                                               (line  628)
  * membedded-data:                        MIPS Options.       (line  517)
  * memregs=:                              M32C Options.       (line   21)
! * menqcmd:                               x86 Options.        (line  892)
  * mep:                                   V850 Options.       (line   16)
  * mepsilon:                              MMIX Options.       (line   15)
  * mesa:                                  S/390 and zSeries Options.
                                                               (line   94)
! * metrax100:                             CRIS Options.       (line   25)
! * metrax4:                               CRIS Options.       (line   25)
  * meva:                                  MIPS Options.       (line  403)
! * mexpand-adddi:                         ARC Options.        (line  477)
  * mexplicit-relocs:                      DEC Alpha Options.  (line  176)
  * mexplicit-relocs <1>:                  MIPS Options.       (line  561)
  * mexr:                                  H8/300 Options.     (line   28)
*************** look up both forms.
*** 63492,63498 ****
  * mextern-sdata:                         MIPS Options.       (line  480)
  * MF:                                    Preprocessor Options.
                                                               (line  111)
! * mf16c:                                 x86 Options.        (line  843)
  * mfancy-math-387:                       x86 Options.        (line  607)
  * mfast-fp:                              Blackfin Options.   (line  130)
  * mfast-indirect-calls:                  HPPA Options.       (line   52)
--- 63505,63511 ----
  * mextern-sdata:                         MIPS Options.       (line  480)
  * MF:                                    Preprocessor Options.
                                                               (line  111)
! * mf16c:                                 x86 Options.        (line  852)
  * mfancy-math-387:                       x86 Options.        (line  607)
  * mfast-fp:                              Blackfin Options.   (line  130)
  * mfast-indirect-calls:                  HPPA Options.       (line   52)
*************** look up both forms.
*** 63502,63510 ****
  * mfdivdu:                               C-SKY Options.      (line   64)
  * mfdpic:                                ARM Options.        (line  966)
  * mfdpic <1>:                            FRV Options.        (line   72)
! * mfentry:                               x86 Options.        (line 1357)
! * mfentry-name:                          x86 Options.        (line 1388)
! * mfentry-section:                       x86 Options.        (line 1392)
  * mfix:                                  DEC Alpha Options.  (line  163)
  * mfix-24k:                              MIPS Options.       (line  641)
  * mfix-and-continue:                     Darwin Options.     (line  104)
--- 63515,63523 ----
  * mfdivdu:                               C-SKY Options.      (line   64)
  * mfdpic:                                ARM Options.        (line  966)
  * mfdpic <1>:                            FRV Options.        (line   72)
! * mfentry:                               x86 Options.        (line 1366)
! * mfentry-name:                          x86 Options.        (line 1397)
! * mfentry-section:                       x86 Options.        (line 1401)
  * mfix:                                  DEC Alpha Options.  (line  163)
  * mfix-24k:                              MIPS Options.       (line  641)
  * mfix-and-continue:                     Darwin Options.     (line  104)
*************** look up both forms.
*** 63542,63552 ****
  * mflush-func:                           MIPS Options.       (line  776)
  * mflush-func=NAME:                      M32R/D Options.     (line   93)
  * mflush-trap=NUMBER:                    M32R/D Options.     (line   86)
! * mfma:                                  x86 Options.        (line  844)
! * mfma4:                                 x86 Options.        (line  847)
  * mfmaf:                                 SPARC Options.      (line  267)
  * mfmovd:                                SH Options.         (line  148)
! * mforce-indirect-call:                  x86 Options.        (line 1112)
  * mforce-no-pic:                         Xtensa Options.     (line   41)
  * mfp-exceptions:                        MIPS Options.       (line  824)
  * mfp-mode:                              Adapteva Epiphany Options.
--- 63555,63565 ----
  * mflush-func:                           MIPS Options.       (line  776)
  * mflush-func=NAME:                      M32R/D Options.     (line   93)
  * mflush-trap=NUMBER:                    M32R/D Options.     (line   86)
! * mfma:                                  x86 Options.        (line  853)
! * mfma4:                                 x86 Options.        (line  856)
  * mfmaf:                                 SPARC Options.      (line  267)
  * mfmovd:                                SH Options.         (line  148)
! * mforce-indirect-call:                  x86 Options.        (line 1121)
  * mforce-no-pic:                         Xtensa Options.     (line   41)
  * mfp-exceptions:                        MIPS Options.       (line  824)
  * mfp-mode:                              Adapteva Epiphany Options.
*************** look up both forms.
*** 63571,63589 ****
  * mfpu <4>:                              Visium Options.     (line   19)
  * mfpu=:                                 C-SKY Options.      (line   69)
  * mfpxx:                                 MIPS Options.       (line  264)
! * mfract-convert-truncate:               AVR Options.        (line  286)
  * mframe-header-opt:                     MIPS Options.       (line  885)
  * mfriz:                                 RS/6000 and PowerPC Options.
                                                               (line  870)
  * mfsca:                                 SH Options.         (line  365)
! * mfsgsbase:                             x86 Options.        (line  840)
  * mfsmuld:                               SPARC Options.      (line  274)
  * mfsrra:                                SH Options.         (line  374)
  * mft32b:                                FT32 Options.       (line   23)
  * mfull-regs:                            NDS32 Options.      (line   18)
  * mfull-toc:                             RS/6000 and PowerPC Options.
                                                               (line  256)
! * mfunction-return:                      x86 Options.        (line 1460)
  * mfused-madd:                           IA-64 Options.      (line   88)
  * mfused-madd <1>:                       MIPS Options.       (line  624)
  * mfused-madd <2>:                       RS/6000 and PowerPC Options.
--- 63584,63602 ----
  * mfpu <4>:                              Visium Options.     (line   19)
  * mfpu=:                                 C-SKY Options.      (line   69)
  * mfpxx:                                 MIPS Options.       (line  264)
! * mfract-convert-truncate:               AVR Options.        (line  284)
  * mframe-header-opt:                     MIPS Options.       (line  885)
  * mfriz:                                 RS/6000 and PowerPC Options.
                                                               (line  870)
  * mfsca:                                 SH Options.         (line  365)
! * mfsgsbase:                             x86 Options.        (line  849)
  * mfsmuld:                               SPARC Options.      (line  274)
  * mfsrra:                                SH Options.         (line  374)
  * mft32b:                                FT32 Options.       (line   23)
  * mfull-regs:                            NDS32 Options.      (line   18)
  * mfull-toc:                             RS/6000 and PowerPC Options.
                                                               (line  256)
! * mfunction-return:                      x86 Options.        (line 1469)
  * mfused-madd:                           IA-64 Options.      (line   88)
  * mfused-madd <1>:                       MIPS Options.       (line  624)
  * mfused-madd <2>:                       RS/6000 and PowerPC Options.
*************** look up both forms.
*** 63592,63598 ****
                                                               (line  183)
  * mfused-madd <4>:                       SH Options.         (line  356)
  * mfused-madd <5>:                       Xtensa Options.     (line   19)
! * mfxsr:                                 x86 Options.        (line  863)
  * MG:                                    Preprocessor Options.
                                                               (line  122)
  * mg:                                    VAX Options.        (line   17)
--- 63605,63611 ----
                                                               (line  183)
  * mfused-madd <4>:                       SH Options.         (line  356)
  * mfused-madd <5>:                       Xtensa Options.     (line   19)
! * mfxsr:                                 x86 Options.        (line  872)
  * MG:                                    Preprocessor Options.
                                                               (line  122)
  * mg:                                    VAX Options.        (line   17)
*************** look up both forms.
*** 63600,63611 ****
  * mg13:                                  RL78 Options.       (line   62)
  * mg14:                                  RL78 Options.       (line   62)
  * mgas:                                  HPPA Options.       (line   75)
! * mgas-isr-prologues:                    AVR Options.        (line  203)
  * mgcc-abi:                              V850 Options.       (line  148)
  * mgeneral-regs-only:                    AArch64 Options.    (line   24)
  * mgeneral-regs-only <1>:                ARM Options.        (line   57)
! * mgeneral-regs-only <2>:                x86 Options.        (line 1436)
! * mgfni:                                 x86 Options.        (line  876)
  * mghs:                                  V850 Options.       (line  127)
  * mginv:                                 MIPS Options.       (line  421)
  * mglibc:                                GNU/Linux Options.  (line    9)
--- 63613,63624 ----
  * mg13:                                  RL78 Options.       (line   62)
  * mg14:                                  RL78 Options.       (line   62)
  * mgas:                                  HPPA Options.       (line   75)
! * mgas-isr-prologues:                    AVR Options.        (line  202)
  * mgcc-abi:                              V850 Options.       (line  148)
  * mgeneral-regs-only:                    AArch64 Options.    (line   24)
  * mgeneral-regs-only <1>:                ARM Options.        (line   57)
! * mgeneral-regs-only <2>:                x86 Options.        (line 1445)
! * mgfni:                                 x86 Options.        (line  885)
  * mghs:                                  V850 Options.       (line  127)
  * mginv:                                 MIPS Options.       (line  421)
  * mglibc:                                GNU/Linux Options.  (line    9)
*************** look up both forms.
*** 63651,63664 ****
  * mhard-mul:                             OpenRISC Options.   (line   24)
  * mhard-quad-float:                      SPARC Options.      (line   55)
  * mharden-sls:                           AArch64 Options.    (line  297)
! * mharden-sls <1>:                       x86 Options.        (line 1482)
  * mhardlit:                              MCore Options.      (line   10)
  * mhigh-registers:                       C-SKY Options.      (line  120)
! * mhle:                                  x86 Options.        (line  869)
  * mhotpatch:                             S/390 and zSeries Options.
                                                               (line  218)
  * mhp-ld:                                HPPA Options.       (line  123)
! * mhreset:                               x86 Options.        (line  897)
  * mhtm:                                  RS/6000 and PowerPC Options.
                                                               (line  184)
  * mhtm <1>:                              S/390 and zSeries Options.
--- 63664,63677 ----
  * mhard-mul:                             OpenRISC Options.   (line   24)
  * mhard-quad-float:                      SPARC Options.      (line   55)
  * mharden-sls:                           AArch64 Options.    (line  297)
! * mharden-sls <1>:                       x86 Options.        (line 1491)
  * mhardlit:                              MCore Options.      (line   10)
  * mhigh-registers:                       C-SKY Options.      (line  120)
! * mhle:                                  x86 Options.        (line  878)
  * mhotpatch:                             S/390 and zSeries Options.
                                                               (line  218)
  * mhp-ld:                                HPPA Options.       (line  123)
! * mhreset:                               x86 Options.        (line  906)
  * mhtm:                                  RS/6000 and PowerPC Options.
                                                               (line  184)
  * mhtm <1>:                              S/390 and zSeries Options.
*************** look up both forms.
*** 63667,63673 ****
  * mhw-mul:                               Nios II Options.    (line  124)
  * mhw-mulx:                              Nios II Options.    (line  124)
  * mhwmult=:                              MSP430 Options.     (line   93)
! * miamcu:                                x86 Options.        (line 1502)
  * micplb:                                Blackfin Options.   (line  175)
  * mid-shared-library:                    Blackfin Options.   (line   78)
  * mid-shared-library <1>:                Blackfin Options.   (line   85)
--- 63680,63686 ----
  * mhw-mul:                               Nios II Options.    (line  124)
  * mhw-mulx:                              Nios II Options.    (line  124)
  * mhwmult=:                              MSP430 Options.     (line   93)
! * miamcu:                                x86 Options.        (line 1511)
  * micplb:                                Blackfin Options.   (line  175)
  * mid-shared-library:                    Blackfin Options.   (line   78)
  * mid-shared-library <1>:                Blackfin Options.   (line   85)
*************** look up both forms.
*** 63679,63690 ****
  * milp32:                                IA-64 Options.      (line  121)
  * mimadd:                                MIPS Options.       (line  617)
  * mimpure-text:                          Solaris 2 Options.  (line   15)
! * mincoming-stack-boundary:              x86 Options.        (line  790)
! * mindexed-loads:                        ARC Options.        (line  483)
! * mindirect-branch:                      x86 Options.        (line 1441)
! * mindirect-branch-cs-prefix:            x86 Options.        (line 1489)
! * mindirect-branch-register:             x86 Options.        (line 1479)
! * minline-all-stringops:                 x86 Options.        (line 1288)
  * minline-float-divide-max-throughput:   IA-64 Options.      (line   58)
  * minline-float-divide-min-latency:      IA-64 Options.      (line   54)
  * minline-ic_invalidate:                 SH Options.         (line  174)
--- 63692,63703 ----
  * milp32:                                IA-64 Options.      (line  121)
  * mimadd:                                MIPS Options.       (line  617)
  * mimpure-text:                          Solaris 2 Options.  (line   15)
! * mincoming-stack-boundary:              x86 Options.        (line  799)
! * mindexed-loads:                        ARC Options.        (line  481)
! * mindirect-branch:                      x86 Options.        (line 1450)
! * mindirect-branch-cs-prefix:            x86 Options.        (line 1498)
! * mindirect-branch-register:             x86 Options.        (line 1488)
! * minline-all-stringops:                 x86 Options.        (line 1297)
  * minline-float-divide-max-throughput:   IA-64 Options.      (line   58)
  * minline-float-divide-min-latency:      IA-64 Options.      (line   54)
  * minline-ic_invalidate:                 SH Options.         (line  174)
*************** look up both forms.
*** 63695,63712 ****
  * minline-plt <1>:                       FRV Options.        (line   81)
  * minline-sqrt-max-throughput:           IA-64 Options.      (line   80)
  * minline-sqrt-min-latency:              IA-64 Options.      (line   76)
! * minline-stringops-dynamically:         x86 Options.        (line 1296)
  * minrt:                                 MSP430 Options.     (line  115)
  * minrt <1>:                             PRU Options.        (line    9)
  * minsert-sched-nops:                    RS/6000 and PowerPC Options.
                                                               (line  485)
! * minstrument-return:                    x86 Options.        (line 1376)
  * mint-register:                         RX Options.         (line  100)
  * mint16:                                PDP-11 Options.     (line   33)
  * mint32:                                CR16 Options.       (line   22)
  * mint32 <1>:                            H8/300 Options.     (line   38)
  * mint32 <2>:                            PDP-11 Options.     (line   37)
! * mint8:                                 AVR Options.        (line  213)
  * minterlink-compressed:                 MIPS Options.       (line  135)
  * minterlink-mips16:                     MIPS Options.       (line  147)
  * mio-volatile:                          MeP Options.        (line   74)
--- 63708,63725 ----
  * minline-plt <1>:                       FRV Options.        (line   81)
  * minline-sqrt-max-throughput:           IA-64 Options.      (line   80)
  * minline-sqrt-min-latency:              IA-64 Options.      (line   76)
! * minline-stringops-dynamically:         x86 Options.        (line 1305)
  * minrt:                                 MSP430 Options.     (line  115)
  * minrt <1>:                             PRU Options.        (line    9)
  * minsert-sched-nops:                    RS/6000 and PowerPC Options.
                                                               (line  485)
! * minstrument-return:                    x86 Options.        (line 1385)
  * mint-register:                         RX Options.         (line  100)
  * mint16:                                PDP-11 Options.     (line   33)
  * mint32:                                CR16 Options.       (line   22)
  * mint32 <1>:                            H8/300 Options.     (line   38)
  * mint32 <2>:                            PDP-11 Options.     (line   37)
! * mint8:                                 AVR Options.        (line  211)
  * minterlink-compressed:                 MIPS Options.       (line  135)
  * minterlink-mips16:                     MIPS Options.       (line  147)
  * mio-volatile:                          MeP Options.        (line   74)
*************** look up both forms.
*** 63739,63745 ****
  * mjump-in-delay:                        HPPA Options.       (line   30)
  * mkernel:                               Darwin Options.     (line   82)
  * mkernel <1>:                           eBPF Options.       (line   13)
! * mkl:                                   x86 Options.        (line  898)
  * mknuthdiv:                             MMIX Options.       (line   32)
  * ml:                                    MeP Options.        (line   78)
  * ml <1>:                                SH Options.         (line  129)
--- 63752,63758 ----
  * mjump-in-delay:                        HPPA Options.       (line   30)
  * mkernel:                               Darwin Options.     (line   82)
  * mkernel <1>:                           eBPF Options.       (line   13)
! * mkl:                                   x86 Options.        (line  907)
  * mknuthdiv:                             MMIX Options.       (line   32)
  * ml:                                    MeP Options.        (line   78)
  * ml <1>:                                SH Options.         (line  129)
*************** look up both forms.
*** 63757,63763 ****
  * mlittle:                               RS/6000 and PowerPC Options.
                                                               (line  434)
  * mlittle-endian:                        AArch64 Options.    (line   30)
! * mlittle-endian <1>:                    ARC Options.        (line  605)
  * mlittle-endian <2>:                    ARM Options.        (line   63)
  * mlittle-endian <3>:                    C6X Options.        (line   16)
  * mlittle-endian <4>:                    C-SKY Options.      (line   30)
--- 63770,63776 ----
  * mlittle:                               RS/6000 and PowerPC Options.
                                                               (line  434)
  * mlittle-endian:                        AArch64 Options.    (line   30)
! * mlittle-endian <1>:                    ARC Options.        (line  601)
  * mlittle-endian <2>:                    ARM Options.        (line   63)
  * mlittle-endian <3>:                    C6X Options.        (line   16)
  * mlittle-endian <4>:                    C-SKY Options.      (line   30)
*************** look up both forms.
*** 63779,63792 ****
  * mlock:                                 ARC Options.        (line  345)
  * mlong-calls:                           Adapteva Epiphany Options.
                                                               (line   55)
! * mlong-calls <1>:                       ARC Options.        (line  404)
  * mlong-calls <2>:                       ARM Options.        (line  756)
  * mlong-calls <3>:                       Blackfin Options.   (line  118)
  * mlong-calls <4>:                       FRV Options.        (line  122)
  * mlong-calls <5>:                       HPPA Options.       (line  136)
  * mlong-calls <6>:                       MIPS Options.       (line  603)
  * mlong-calls <7>:                       V850 Options.       (line   10)
! * mlong-double:                          AVR Options.        (line  195)
  * mlong-double-128:                      S/390 and zSeries Options.
                                                               (line   29)
  * mlong-double-128 <1>:                  x86 Options.        (line  658)
--- 63792,63805 ----
  * mlock:                                 ARC Options.        (line  345)
  * mlong-calls:                           Adapteva Epiphany Options.
                                                               (line   55)
! * mlong-calls <1>:                       ARC Options.        (line  402)
  * mlong-calls <2>:                       ARM Options.        (line  756)
  * mlong-calls <3>:                       Blackfin Options.   (line  118)
  * mlong-calls <4>:                       FRV Options.        (line  122)
  * mlong-calls <5>:                       HPPA Options.       (line  136)
  * mlong-calls <6>:                       MIPS Options.       (line  603)
  * mlong-calls <7>:                       V850 Options.       (line   10)
! * mlong-double:                          AVR Options.        (line  194)
  * mlong-double-128:                      S/390 and zSeries Options.
                                                               (line   29)
  * mlong-double-128 <1>:                  x86 Options.        (line  658)
*************** look up both forms.
*** 63813,63828 ****
  * mlow64k:                               Blackfin Options.   (line   67)
  * mlp64:                                 IA-64 Options.      (line  121)
  * mlpc-width:                            ARC Options.        (line  313)
! * mlra:                                  ARC Options.        (line  488)
  * mlra <1>:                              FT32 Options.       (line   16)
  * mlra <2>:                              PDP-11 Options.     (line   52)
  * mlra <3>:                              SPARC Options.      (line  111)
! * mlra-priority-compact:                 ARC Options.        (line  496)
! * mlra-priority-noncompact:              ARC Options.        (line  499)
! * mlra-priority-none:                    ARC Options.        (line  493)
! * mlwp:                                  x86 Options.        (line  854)
  * mlxc1-sxc1:                            MIPS Options.       (line  895)
! * mlzcnt:                                x86 Options.        (line  862)
  * MM:                                    Preprocessor Options.
                                                               (line  102)
  * mm:                                    MeP Options.        (line   84)
--- 63826,63841 ----
  * mlow64k:                               Blackfin Options.   (line   67)
  * mlp64:                                 IA-64 Options.      (line  121)
  * mlpc-width:                            ARC Options.        (line  313)
! * mlra:                                  ARC Options.        (line  486)
  * mlra <1>:                              FT32 Options.       (line   16)
  * mlra <2>:                              PDP-11 Options.     (line   52)
  * mlra <3>:                              SPARC Options.      (line  111)
! * mlra-priority-compact:                 ARC Options.        (line  494)
! * mlra-priority-noncompact:              ARC Options.        (line  497)
! * mlra-priority-none:                    ARC Options.        (line  491)
! * mlwp:                                  x86 Options.        (line  863)
  * mlxc1-sxc1:                            MIPS Options.       (line  895)
! * mlzcnt:                                x86 Options.        (line  871)
  * MM:                                    Preprocessor Options.
                                                               (line  102)
  * mm:                                    MeP Options.        (line   84)
*************** look up both forms.
*** 63830,63847 ****
  * mmac <1>:                              Score Options.      (line   21)
  * mmac-24:                               ARC Options.        (line  354)
  * mmac-d16:                              ARC Options.        (line  350)
! * mmac_24:                               ARC Options.        (line  628)
! * mmac_d16:                              ARC Options.        (line  631)
  * mmad:                                  MIPS Options.       (line  612)
  * mmadd4:                                MIPS Options.       (line  900)
! * mmain-is-OS_task:                      AVR Options.        (line  219)
  * mmainkernel:                           Nvidia PTX Options. (line   18)
  * mmalloc64:                             VMS Options.        (line   17)
! * mmanual-endbr:                         x86 Options.        (line 1117)
  * mmax:                                  DEC Alpha Options.  (line  163)
  * mmax-constant-size:                    RX Options.         (line   82)
  * mmax-inline-shift=:                    MSP430 Options.     (line  134)
! * mmax-stack-frame:                      CRIS Options.       (line   22)
  * mmcount-ra-address:                    MIPS Options.       (line  872)
  * mmcu:                                  AVR Options.        (line    9)
  * mmcu <1>:                              MIPS Options.       (line  399)
--- 63843,63860 ----
  * mmac <1>:                              Score Options.      (line   21)
  * mmac-24:                               ARC Options.        (line  354)
  * mmac-d16:                              ARC Options.        (line  350)
! * mmac_24:                               ARC Options.        (line  623)
! * mmac_d16:                              ARC Options.        (line  626)
  * mmad:                                  MIPS Options.       (line  612)
  * mmadd4:                                MIPS Options.       (line  900)
! * mmain-is-OS_task:                      AVR Options.        (line  217)
  * mmainkernel:                           Nvidia PTX Options. (line   18)
  * mmalloc64:                             VMS Options.        (line   17)
! * mmanual-endbr:                         x86 Options.        (line 1126)
  * mmax:                                  DEC Alpha Options.  (line  163)
  * mmax-constant-size:                    RX Options.         (line   82)
  * mmax-inline-shift=:                    MSP430 Options.     (line  134)
! * mmax-stack-frame:                      CRIS Options.       (line   21)
  * mmcount-ra-address:                    MIPS Options.       (line  872)
  * mmcu:                                  AVR Options.        (line    9)
  * mmcu <1>:                              MIPS Options.       (line  399)
*************** look up both forms.
*** 63850,63886 ****
  * MMD:                                   Preprocessor Options.
                                                               (line  188)
  * mmedia:                                FRV Options.        (line   56)
! * mmedium-calls:                         ARC Options.        (line  408)
  * mmemcpy:                               MicroBlaze Options. (line   13)
  * mmemcpy <1>:                           MIPS Options.       (line  597)
! * mmemcpy-strategy=STRATEGY:             x86 Options.        (line 1318)
  * mmemory-latency:                       DEC Alpha Options.  (line  268)
  * mmemory-model:                         SPARC Options.      (line  348)
! * mmemset-strategy=STRATEGY:             x86 Options.        (line 1330)
  * mmfcrf:                                RS/6000 and PowerPC Options.
                                                               (line   25)
  * mmicromips:                            MIPS Options.       (line  387)
! * mmillicode:                            ARC Options.        (line  502)
  * mminimal-toc:                          RS/6000 and PowerPC Options.
                                                               (line  256)
  * mminmax:                               MeP Options.        (line   87)
! * mmixed-code:                           ARC Options.        (line  516)
  * mmma:                                  RS/6000 and PowerPC Options.
                                                               (line  944)
! * mmmx:                                  x86 Options.        (line  815)
  * mmodel=large:                          M32R/D Options.     (line   33)
  * mmodel=medium:                         M32R/D Options.     (line   27)
  * mmodel=small:                          M32R/D Options.     (line   18)
! * mmovbe:                                x86 Options.        (line 1011)
! * mmovdir64b:                            x86 Options.        (line  882)
! * mmovdiri:                              x86 Options.        (line  881)
  * mmp:                                   C-SKY Options.      (line   87)
  * mmpy:                                  ARC Options.        (line  117)
  * mmpy-option:                           ARC Options.        (line  173)
! * mms-bitfields:                         x86 Options.        (line 1163)
  * mmt:                                   MIPS Options.       (line  395)
  * mmul:                                  RL78 Options.       (line   15)
! * mmul-bug-workaround:                   CRIS Options.       (line   31)
  * mmul.x:                                Moxie Options.      (line   14)
  * mmul32x16:                             ARC Options.        (line  121)
  * mmul64:                                ARC Options.        (line  124)
--- 63863,63899 ----
  * MMD:                                   Preprocessor Options.
                                                               (line  188)
  * mmedia:                                FRV Options.        (line   56)
! * mmedium-calls:                         ARC Options.        (line  406)
  * mmemcpy:                               MicroBlaze Options. (line   13)
  * mmemcpy <1>:                           MIPS Options.       (line  597)
! * mmemcpy-strategy=STRATEGY:             x86 Options.        (line 1327)
  * mmemory-latency:                       DEC Alpha Options.  (line  268)
  * mmemory-model:                         SPARC Options.      (line  348)
! * mmemset-strategy=STRATEGY:             x86 Options.        (line 1339)
  * mmfcrf:                                RS/6000 and PowerPC Options.
                                                               (line   25)
  * mmicromips:                            MIPS Options.       (line  387)
! * mmillicode:                            ARC Options.        (line  500)
  * mminimal-toc:                          RS/6000 and PowerPC Options.
                                                               (line  256)
  * mminmax:                               MeP Options.        (line   87)
! * mmixed-code:                           ARC Options.        (line  514)
  * mmma:                                  RS/6000 and PowerPC Options.
                                                               (line  944)
! * mmmx:                                  x86 Options.        (line  824)
  * mmodel=large:                          M32R/D Options.     (line   33)
  * mmodel=medium:                         M32R/D Options.     (line   27)
  * mmodel=small:                          M32R/D Options.     (line   18)
! * mmovbe:                                x86 Options.        (line 1020)
! * mmovdir64b:                            x86 Options.        (line  891)
! * mmovdiri:                              x86 Options.        (line  890)
  * mmp:                                   C-SKY Options.      (line   87)
  * mmpy:                                  ARC Options.        (line  117)
  * mmpy-option:                           ARC Options.        (line  173)
! * mms-bitfields:                         x86 Options.        (line 1172)
  * mmt:                                   MIPS Options.       (line  395)
  * mmul:                                  RL78 Options.       (line   15)
! * mmul-bug-workaround:                   CRIS Options.       (line   30)
  * mmul.x:                                Moxie Options.      (line   14)
  * mmul32x16:                             ARC Options.        (line  121)
  * mmul64:                                ARC Options.        (line  124)
*************** look up both forms.
*** 63889,63895 ****
                                                               (line  378)
  * mmult:                                 MeP Options.        (line   90)
  * mmult-bug:                             MN10300 Options.    (line    9)
! * mmultcost:                             ARC Options.        (line  578)
  * mmulti-cond-exec:                      FRV Options.        (line  215)
  * mmulticore:                            Blackfin Options.   (line  139)
  * mmultiple:                             RS/6000 and PowerPC Options.
--- 63902,63908 ----
                                                               (line  378)
  * mmult:                                 MeP Options.        (line   90)
  * mmult-bug:                             MN10300 Options.    (line    9)
! * mmultcost:                             ARC Options.        (line  576)
  * mmulti-cond-exec:                      FRV Options.        (line  215)
  * mmulticore:                            Blackfin Options.   (line  139)
  * mmultiple:                             RS/6000 and PowerPC Options.
*************** look up both forms.
*** 63900,63912 ****
                                                               (line  138)
  * mmvme:                                 RS/6000 and PowerPC Options.
                                                               (line  609)
! * mmwait:                                x86 Options.        (line 1025)
! * mmwaitx:                               x86 Options.        (line  871)
  * mn:                                    H8/300 Options.     (line   20)
! * mn-flash:                              AVR Options.        (line  224)
  * mnan=2008:                             MIPS Options.       (line  320)
  * mnan=legacy:                           MIPS Options.       (line  320)
! * mneeded:                               x86 Options.        (line 1563)
  * mneon-for-64bits:                      ARM Options.        (line  913)
  * mnested-cond-exec:                     FRV Options.        (line  230)
  * mnewlib:                               OpenRISC Options.   (line   13)
--- 63913,63925 ----
                                                               (line  138)
  * mmvme:                                 RS/6000 and PowerPC Options.
                                                               (line  609)
! * mmwait:                                x86 Options.        (line 1034)
! * mmwaitx:                               x86 Options.        (line  880)
  * mn:                                    H8/300 Options.     (line   20)
! * mn-flash:                              AVR Options.        (line  222)
  * mnan=2008:                             MIPS Options.       (line  320)
  * mnan=legacy:                           MIPS Options.       (line  320)
! * mneeded:                               x86 Options.        (line 1572)
  * mneon-for-64bits:                      ARM Options.        (line  913)
  * mnested-cond-exec:                     FRV Options.        (line  230)
  * mnewlib:                               OpenRISC Options.   (line   13)
*************** look up both forms.
*** 63919,63925 ****
  * mno-align-double:                      x86 Options.        (line  617)
  * mno-align-int:                         M680x0 Options.     (line  261)
  * mno-align-loops:                       M32R/D Options.     (line   76)
! * mno-align-stringops:                   x86 Options.        (line 1283)
  * mno-allow-string-insns:                RX Options.         (line  150)
  * mno-altivec:                           RS/6000 and PowerPC Options.
                                                               (line  137)
--- 63932,63938 ----
  * mno-align-double:                      x86 Options.        (line  617)
  * mno-align-int:                         M680x0 Options.     (line  261)
  * mno-align-loops:                       M32R/D Options.     (line   76)
! * mno-align-stringops:                   x86 Options.        (line 1292)
  * mno-allow-string-insns:                RX Options.         (line  150)
  * mno-altivec:                           RS/6000 and PowerPC Options.
                                                               (line  137)
*************** look up both forms.
*** 63938,63948 ****
  * mno-bitfield:                          M680x0 Options.     (line  227)
  * mno-branch-likely:                     MIPS Options.       (line  792)
  * mno-branch-predict:                    MMIX Options.       (line   48)
! * mno-brcc:                              ARC Options.        (line  444)
  * mno-bwx:                               DEC Alpha Options.  (line  163)
  * mno-bypass-cache:                      Nios II Options.    (line  103)
  * mno-cache-volatile:                    Nios II Options.    (line  109)
! * mno-call-ms2sysv-xlogues:              x86 Options.        (line 1123)
  * mno-callgraph-data:                    MCore Options.      (line   31)
  * mno-cbcond:                            SPARC Options.      (line  260)
  * mno-check-zero-division:               MIPS Options.       (line  570)
--- 63951,63961 ----
  * mno-bitfield:                          M680x0 Options.     (line  227)
  * mno-branch-likely:                     MIPS Options.       (line  792)
  * mno-branch-predict:                    MMIX Options.       (line   48)
! * mno-brcc:                              ARC Options.        (line  442)
  * mno-bwx:                               DEC Alpha Options.  (line  163)
  * mno-bypass-cache:                      Nios II Options.    (line  103)
  * mno-cache-volatile:                    Nios II Options.    (line  109)
! * mno-call-ms2sysv-xlogues:              x86 Options.        (line 1132)
  * mno-callgraph-data:                    MCore Options.      (line   31)
  * mno-cbcond:                            SPARC Options.      (line  260)
  * mno-check-zero-division:               MIPS Options.       (line  570)
*************** look up both forms.
*** 63951,63960 ****
  * mno-cmov:                              NDS32 Options.      (line   24)
  * mno-cmpb:                              RS/6000 and PowerPC Options.
                                                               (line   25)
! * mno-cond-exec:                         ARC Options.        (line  458)
  * mno-cond-exec <1>:                     FRV Options.        (line  194)
  * mno-cond-move:                         FRV Options.        (line  166)
! * mno-const-align:                       CRIS Options.       (line   54)
  * mno-const16:                           Xtensa Options.     (line   10)
  * mno-crc:                               MIPS Options.       (line  416)
  * mno-crt0:                              MN10300 Options.    (line   43)
--- 63964,63973 ----
  * mno-cmov:                              NDS32 Options.      (line   24)
  * mno-cmpb:                              RS/6000 and PowerPC Options.
                                                               (line   25)
! * mno-cond-exec:                         ARC Options.        (line  456)
  * mno-cond-exec <1>:                     FRV Options.        (line  194)
  * mno-cond-move:                         FRV Options.        (line  166)
! * mno-const-align:                       CRIS Options.       (line   53)
  * mno-const16:                           Xtensa Options.     (line   10)
  * mno-crc:                               MIPS Options.       (line  416)
  * mno-crt0:                              MN10300 Options.    (line   43)
*************** look up both forms.
*** 63963,63972 ****
                                                               (line  178)
  * mno-csync-anomaly:                     Blackfin Options.   (line   63)
  * mno-custom-INSN:                       Nios II Options.    (line  139)
! * mno-data-align:                        CRIS Options.       (line   54)
  * mno-debug:                             S/390 and zSeries Options.
                                                               (line  144)
! * mno-default:                           x86 Options.        (line  947)
  * mno-disable-callt:                     V850 Options.       (line   92)
  * mno-div:                               M680x0 Options.     (line  206)
  * mno-div <1>:                           MCore Options.      (line   15)
--- 63976,63985 ----
                                                               (line  178)
  * mno-csync-anomaly:                     Blackfin Options.   (line   63)
  * mno-custom-INSN:                       Nios II Options.    (line  139)
! * mno-data-align:                        CRIS Options.       (line   53)
  * mno-debug:                             S/390 and zSeries Options.
                                                               (line  144)
! * mno-default:                           x86 Options.        (line  956)
  * mno-disable-callt:                     V850 Options.       (line   92)
  * mno-div:                               M680x0 Options.     (line  206)
  * mno-div <1>:                           MCore Options.      (line   15)
*************** look up both forms.
*** 64062,64068 ****
  * mno-int32:                             PDP-11 Options.     (line   33)
  * mno-interlink-compressed:              MIPS Options.       (line  135)
  * mno-interlink-mips16:                  MIPS Options.       (line  147)
! * mno-interrupts:                        AVR Options.        (line  227)
  * mno-isel:                              RS/6000 and PowerPC Options.
                                                               (line  167)
  * mno-jsr:                               RX Options.         (line  169)
--- 64075,64081 ----
  * mno-int32:                             PDP-11 Options.     (line   33)
  * mno-interlink-compressed:              MIPS Options.       (line  135)
  * mno-interlink-mips16:                  MIPS Options.       (line  147)
! * mno-interrupts:                        AVR Options.        (line  225)
  * mno-isel:                              RS/6000 and PowerPC Options.
                                                               (line  167)
  * mno-jsr:                               RX Options.         (line  169)
*************** look up both forms.
*** 64109,64117 ****
  * Mno-modules:                           Preprocessor Options.
                                                               (line  132)
  * mno-mpy:                               ARC Options.        (line  117)
! * mno-ms-bitfields:                      x86 Options.        (line 1163)
  * mno-mt:                                MIPS Options.       (line  395)
! * mno-mul-bug-workaround:                CRIS Options.       (line   31)
  * mno-muladd:                            FRV Options.        (line   68)
  * mno-mulhw:                             RS/6000 and PowerPC Options.
                                                               (line  378)
--- 64122,64130 ----
  * Mno-modules:                           Preprocessor Options.
                                                               (line  132)
  * mno-mpy:                               ARC Options.        (line  117)
! * mno-ms-bitfields:                      x86 Options.        (line 1172)
  * mno-mt:                                MIPS Options.       (line  395)
! * mno-mul-bug-workaround:                CRIS Options.       (line   30)
  * mno-muladd:                            FRV Options.        (line   68)
  * mno-mulhw:                             RS/6000 and PowerPC Options.
                                                               (line  378)
*************** look up both forms.
*** 64162,64178 ****
  * mno-privileged:                        RS/6000 and PowerPC Options.
                                                               (line  955)
  * mno-prolog-function:                   V850 Options.       (line   23)
! * mno-prologue-epilogue:                 CRIS Options.       (line   70)
  * mno-prototype:                         RS/6000 and PowerPC Options.
                                                               (line  593)
! * mno-push-args:                         x86 Options.        (line 1140)
  * mno-quad-memory:                       RS/6000 and PowerPC Options.
                                                               (line  203)
  * mno-quad-memory-atomic:                RS/6000 and PowerPC Options.
                                                               (line  209)
  * mno-readonly-in-sdata:                 RS/6000 and PowerPC Options.
                                                               (line  684)
! * mno-red-zone:                          x86 Options.        (line 1522)
  * mno-register-names:                    IA-64 Options.      (line   37)
  * mno-regnames:                          RS/6000 and PowerPC Options.
                                                               (line  722)
--- 64175,64191 ----
  * mno-privileged:                        RS/6000 and PowerPC Options.
                                                               (line  955)
  * mno-prolog-function:                   V850 Options.       (line   23)
! * mno-prologue-epilogue:                 CRIS Options.       (line   69)
  * mno-prototype:                         RS/6000 and PowerPC Options.
                                                               (line  593)
! * mno-push-args:                         x86 Options.        (line 1149)
  * mno-quad-memory:                       RS/6000 and PowerPC Options.
                                                               (line  203)
  * mno-quad-memory-atomic:                RS/6000 and PowerPC Options.
                                                               (line  209)
  * mno-readonly-in-sdata:                 RS/6000 and PowerPC Options.
                                                               (line  684)
! * mno-red-zone:                          x86 Options.        (line 1531)
  * mno-register-names:                    IA-64 Options.      (line   37)
  * mno-regnames:                          RS/6000 and PowerPC Options.
                                                               (line  722)
*************** look up both forms.
*** 64200,64206 ****
  * mno-sched-prefer-non-control-spec-insns: IA-64 Options.    (line  178)
  * mno-sched-prefer-non-data-spec-insns:  IA-64 Options.      (line  171)
  * mno-sched-prolog:                      ARM Options.        (line   32)
! * mno-sdata:                             ARC Options.        (line  422)
  * mno-sdata <1>:                         IA-64 Options.      (line   42)
  * mno-sdata <2>:                         RS/6000 and PowerPC Options.
                                                               (line  679)
--- 64213,64219 ----
  * mno-sched-prefer-non-control-spec-insns: IA-64 Options.    (line  178)
  * mno-sched-prefer-non-data-spec-insns:  IA-64 Options.      (line  171)
  * mno-sched-prolog:                      ARM Options.        (line   32)
! * mno-sdata:                             ARC Options.        (line  420)
  * mno-sdata <1>:                         IA-64 Options.      (line   42)
  * mno-sdata <2>:                         RS/6000 and PowerPC Options.
                                                               (line  679)
*************** look up both forms.
*** 64208,64214 ****
  * mno-serialize-volatile:                Xtensa Options.     (line   35)
  * mno-setlb:                             MN10300 Options.    (line   69)
  * mno-short:                             M680x0 Options.     (line  222)
! * mno-side-effects:                      CRIS Options.       (line   45)
  * mno-sim:                               RX Options.         (line   71)
  * mno-single-exit:                       MMIX Options.       (line   65)
  * mno-slow-bytes:                        MCore Options.      (line   35)
--- 64221,64227 ----
  * mno-serialize-volatile:                Xtensa Options.     (line   35)
  * mno-setlb:                             MN10300 Options.    (line   69)
  * mno-short:                             M680x0 Options.     (line  222)
! * mno-side-effects:                      CRIS Options.       (line   44)
  * mno-sim:                               RX Options.         (line   71)
  * mno-single-exit:                       MMIX Options.       (line   65)
  * mno-slow-bytes:                        MCore Options.      (line   35)
*************** look up both forms.
*** 64223,64229 ****
  * mno-split-addresses:                   MIPS Options.       (line  555)
  * mno-split-lohi:                        Adapteva Epiphany Options.
                                                               (line  109)
! * mno-stack-align:                       CRIS Options.       (line   54)
  * mno-stack-bias:                        SPARC Options.      (line  372)
  * mno-std-struct-return:                 SPARC Options.      (line  102)
  * mno-strict-align:                      AArch64 Options.    (line   52)
--- 64236,64242 ----
  * mno-split-addresses:                   MIPS Options.       (line  555)
  * mno-split-lohi:                        Adapteva Epiphany Options.
                                                               (line  109)
! * mno-stack-align:                       CRIS Options.       (line   53)
  * mno-stack-bias:                        SPARC Options.      (line  372)
  * mno-std-struct-return:                 SPARC Options.      (line  102)
  * mno-strict-align:                      AArch64 Options.    (line   52)
*************** look up both forms.
*** 64264,64270 ****
  * mno-vis4b:                             SPARC Options.      (line  251)
  * mno-vliw-branch:                       FRV Options.        (line  208)
  * mno-volatile-asm-stop:                 IA-64 Options.      (line   32)
! * mno-volatile-cache:                    ARC Options.        (line  431)
  * mno-vrsave:                            RS/6000 and PowerPC Options.
                                                               (line  153)
  * mno-vsx:                               RS/6000 and PowerPC Options.
--- 64277,64283 ----
  * mno-vis4b:                             SPARC Options.      (line  251)
  * mno-vliw-branch:                       FRV Options.        (line  208)
  * mno-volatile-asm-stop:                 IA-64 Options.      (line   32)
! * mno-volatile-cache:                    ARC Options.        (line  429)
  * mno-vrsave:                            RS/6000 and PowerPC Options.
                                                               (line  153)
  * mno-vsx:                               RS/6000 and PowerPC Options.
*************** look up both forms.
*** 64289,64295 ****
  * mnomacsave:                            SH Options.         (line  160)
  * mnop-fun-dllimport:                    x86 Windows Options.
                                                               (line   22)
! * mnop-mcount:                           x86 Options.        (line 1370)
  * mnopm:                                 FT32 Options.       (line   29)
  * mnops:                                 Adapteva Epiphany Options.
                                                               (line   26)
--- 64302,64308 ----
  * mnomacsave:                            SH Options.         (line  160)
  * mnop-fun-dllimport:                    x86 Windows Options.
                                                               (line   22)
! * mnop-mcount:                           x86 Options.        (line 1379)
  * mnopm:                                 FT32 Options.       (line   29)
  * mnops:                                 Adapteva Epiphany Options.
                                                               (line   26)
*************** look up both forms.
*** 64297,64303 ****
  * modd-spreg:                            MIPS Options.       (line  293)
  * momit-leaf-frame-pointer:              AArch64 Options.    (line   58)
  * momit-leaf-frame-pointer <1>:          Blackfin Options.   (line   43)
! * momit-leaf-frame-pointer <2>:          x86 Options.        (line 1334)
  * mone-byte-bool:                        Darwin Options.     (line   90)
  * moptimize:                             Nvidia PTX Options. (line   22)
  * moptimize-membar:                      FRV Options.        (line  244)
--- 64310,64316 ----
  * modd-spreg:                            MIPS Options.       (line  293)
  * momit-leaf-frame-pointer:              AArch64 Options.    (line   58)
  * momit-leaf-frame-pointer <1>:          Blackfin Options.   (line   43)
! * momit-leaf-frame-pointer <2>:          x86 Options.        (line 1343)
  * mone-byte-bool:                        Darwin Options.     (line   90)
  * moptimize:                             Nvidia PTX Options. (line   22)
  * moptimize-membar:                      FRV Options.        (line  244)
*************** look up both forms.
*** 64317,64328 ****
  * mpc32:                                 x86 Options.        (line  739)
  * mpc64:                                 x86 Options.        (line  739)
  * mpc80:                                 x86 Options.        (line  739)
! * mpclmul:                               x86 Options.        (line  837)
! * mpconfig:                              x86 Options.        (line  845)
  * mpcrel:                                M680x0 Options.     (line  272)
  * mpcrel <1>:                            RS/6000 and PowerPC Options.
                                                               (line  932)
! * mpdebug:                               CRIS Options.       (line   35)
  * mpe:                                   RS/6000 and PowerPC Options.
                                                               (line  310)
  * mpe-aligned-commons:                   x86 Windows Options.
--- 64330,64341 ----
  * mpc32:                                 x86 Options.        (line  739)
  * mpc64:                                 x86 Options.        (line  739)
  * mpc80:                                 x86 Options.        (line  739)
! * mpclmul:                               x86 Options.        (line  846)
! * mpconfig:                              x86 Options.        (line  854)
  * mpcrel:                                M680x0 Options.     (line  272)
  * mpcrel <1>:                            RS/6000 and PowerPC Options.
                                                               (line  932)
! * mpdebug:                               CRIS Options.       (line   34)
  * mpe:                                   RS/6000 and PowerPC Options.
                                                               (line  310)
  * mpe-aligned-commons:                   x86 Windows Options.
*************** look up both forms.
*** 64331,64337 ****
  * mpic-data-is-text-relative <1>:        MicroBlaze Options. (line   70)
  * mpic-register:                         ARM Options.        (line  786)
  * mpid:                                  RX Options.         (line  117)
! * mpku:                                  x86 Options.        (line  873)
  * mplt:                                  MIPS Options.       (line  219)
  * mpltseq:                               RS/6000 and PowerPC Options.
                                                               (line  765)
--- 64344,64350 ----
  * mpic-data-is-text-relative <1>:        MicroBlaze Options. (line   70)
  * mpic-register:                         ARM Options.        (line  786)
  * mpid:                                  RX Options.         (line  117)
! * mpku:                                  x86 Options.        (line  882)
  * mplt:                                  MIPS Options.       (line  219)
  * mpltseq:                               RS/6000 and PowerPC Options.
                                                               (line  765)
*************** look up both forms.
*** 64340,64346 ****
                                                               (line  878)
  * mpoke-function-name:                   ARM Options.        (line  801)
  * mpopc:                                 SPARC Options.      (line  281)
! * mpopcnt:                               x86 Options.        (line  857)
  * mpopcntb:                              RS/6000 and PowerPC Options.
                                                               (line   25)
  * mpopcntd:                              RS/6000 and PowerPC Options.
--- 64353,64359 ----
                                                               (line  878)
  * mpoke-function-name:                   ARM Options.        (line  801)
  * mpopc:                                 SPARC Options.      (line  281)
! * mpopcnt:                               x86 Options.        (line  866)
  * mpopcntb:                              RS/6000 and PowerPC Options.
                                                               (line   25)
  * mpopcntd:                              RS/6000 and PowerPC Options.
*************** look up both forms.
*** 64360,64423 ****
                                                               (line   25)
  * mpowerpc64:                            RS/6000 and PowerPC Options.
                                                               (line   25)
! * mprefer-avx128:                        x86 Options.        (line  971)
  * mprefer-short-insn-regs:               Adapteva Epiphany Options.
                                                               (line   13)
! * mprefer-vector-width:                  x86 Options.        (line  975)
  * mprefergot:                            SH Options.         (line  268)
  * mpreferred-stack-boundary:             RISC-V Options.     (line   88)
! * mpreferred-stack-boundary <1>:         x86 Options.        (line  769)
! * mprefetchwt1:                          x86 Options.        (line  850)
  * mprefixed:                             RS/6000 and PowerPC Options.
                                                               (line  938)
  * mpretend-cmove:                        SH Options.         (line  383)
! * mprfchw:                               x86 Options.        (line  848)
  * mprint-tune-info:                      ARM Options.        (line  934)
  * mprioritize-restricted-insns:          RS/6000 and PowerPC Options.
                                                               (line  457)
  * mprivileged:                           RS/6000 and PowerPC Options.
                                                               (line  955)
  * mprolog-function:                      V850 Options.       (line   23)
! * mprologue-epilogue:                    CRIS Options.       (line   70)
  * mprototype:                            RS/6000 and PowerPC Options.
                                                               (line  593)
! * mptwrite:                              x86 Options.        (line  841)
  * mpure-code:                            ARM Options.        (line  944)
! * mpush-args:                            x86 Options.        (line 1140)
  * mpushpop:                              C-SKY Options.      (line  130)
  * MQ:                                    Preprocessor Options.
                                                               (line  162)
! * mq-class:                              ARC Options.        (line  521)
  * mquad-memory:                          RS/6000 and PowerPC Options.
                                                               (line  203)
  * mquad-memory-atomic:                   RS/6000 and PowerPC Options.
                                                               (line  209)
  * mr0rel-sec:                            Nios II Options.    (line   76)
  * mr10k-cache-barrier:                   MIPS Options.       (line  714)
! * mRcq:                                  ARC Options.        (line  525)
! * mRcw:                                  ARC Options.        (line  529)
! * mrdpid:                                x86 Options.        (line  849)
! * mrdrnd:                                x86 Options.        (line  842)
! * mrdseed:                               x86 Options.        (line  851)
  * mreadonly-in-sdata:                    RS/6000 and PowerPC Options.
                                                               (line  684)
  * mrecip:                                RS/6000 and PowerPC Options.
                                                               (line  785)
! * mrecip <1>:                            x86 Options.        (line 1030)
  * mrecip-precision:                      RS/6000 and PowerPC Options.
                                                               (line  842)
  * mrecip=opt:                            RS/6000 and PowerPC Options.
                                                               (line  798)
! * mrecip=opt <1>:                        x86 Options.        (line 1052)
! * mrecord-mcount:                        x86 Options.        (line 1364)
! * mrecord-return:                        x86 Options.        (line 1384)
! * mred-zone:                             x86 Options.        (line 1522)
  * mreduced-regs:                         NDS32 Options.      (line   15)
  * mregister-names:                       IA-64 Options.      (line   37)
  * mregnames:                             RS/6000 and PowerPC Options.
                                                               (line  722)
  * mregparm:                              x86 Options.        (line  709)
! * mrelax:                                AVR Options.        (line  231)
  * mrelax <1>:                            H8/300 Options.     (line    9)
  * mrelax <2>:                            MN10300 Options.    (line   46)
  * mrelax <3>:                            MSP430 Options.     (line   88)
--- 64373,64436 ----
                                                               (line   25)
  * mpowerpc64:                            RS/6000 and PowerPC Options.
                                                               (line   25)
! * mprefer-avx128:                        x86 Options.        (line  980)
  * mprefer-short-insn-regs:               Adapteva Epiphany Options.
                                                               (line   13)
! * mprefer-vector-width:                  x86 Options.        (line  984)
  * mprefergot:                            SH Options.         (line  268)
  * mpreferred-stack-boundary:             RISC-V Options.     (line   88)
! * mpreferred-stack-boundary <1>:         x86 Options.        (line  778)
! * mprefetchwt1:                          x86 Options.        (line  859)
  * mprefixed:                             RS/6000 and PowerPC Options.
                                                               (line  938)
  * mpretend-cmove:                        SH Options.         (line  383)
! * mprfchw:                               x86 Options.        (line  857)
  * mprint-tune-info:                      ARM Options.        (line  934)
  * mprioritize-restricted-insns:          RS/6000 and PowerPC Options.
                                                               (line  457)
  * mprivileged:                           RS/6000 and PowerPC Options.
                                                               (line  955)
  * mprolog-function:                      V850 Options.       (line   23)
! * mprologue-epilogue:                    CRIS Options.       (line   69)
  * mprototype:                            RS/6000 and PowerPC Options.
                                                               (line  593)
! * mptwrite:                              x86 Options.        (line  850)
  * mpure-code:                            ARM Options.        (line  944)
! * mpush-args:                            x86 Options.        (line 1149)
  * mpushpop:                              C-SKY Options.      (line  130)
  * MQ:                                    Preprocessor Options.
                                                               (line  162)
! * mq-class:                              ARC Options.        (line  519)
  * mquad-memory:                          RS/6000 and PowerPC Options.
                                                               (line  203)
  * mquad-memory-atomic:                   RS/6000 and PowerPC Options.
                                                               (line  209)
  * mr0rel-sec:                            Nios II Options.    (line   76)
  * mr10k-cache-barrier:                   MIPS Options.       (line  714)
! * mRcq:                                  ARC Options.        (line  523)
! * mRcw:                                  ARC Options.        (line  527)
! * mrdpid:                                x86 Options.        (line  858)
! * mrdrnd:                                x86 Options.        (line  851)
! * mrdseed:                               x86 Options.        (line  860)
  * mreadonly-in-sdata:                    RS/6000 and PowerPC Options.
                                                               (line  684)
  * mrecip:                                RS/6000 and PowerPC Options.
                                                               (line  785)
! * mrecip <1>:                            x86 Options.        (line 1039)
  * mrecip-precision:                      RS/6000 and PowerPC Options.
                                                               (line  842)
  * mrecip=opt:                            RS/6000 and PowerPC Options.
                                                               (line  798)
! * mrecip=opt <1>:                        x86 Options.        (line 1061)
! * mrecord-mcount:                        x86 Options.        (line 1373)
! * mrecord-return:                        x86 Options.        (line 1393)
! * mred-zone:                             x86 Options.        (line 1531)
  * mreduced-regs:                         NDS32 Options.      (line   15)
  * mregister-names:                       IA-64 Options.      (line   37)
  * mregnames:                             RS/6000 and PowerPC Options.
                                                               (line  722)
  * mregparm:                              x86 Options.        (line  709)
! * mrelax:                                AVR Options.        (line  229)
  * mrelax <1>:                            H8/300 Options.     (line    9)
  * mrelax <2>:                            MN10300 Options.    (line   46)
  * mrelax <3>:                            MSP430 Options.     (line   88)
*************** look up both forms.
*** 64439,64445 ****
  * mrgf-banked-regs:                      ARC Options.        (line  304)
  * mrh850-abi:                            V850 Options.       (line  127)
  * mrl78:                                 RL78 Options.       (line   62)
! * mrmw:                                  AVR Options.        (line  245)
  * mrop-protect:                          RS/6000 and PowerPC Options.
                                                               (line  949)
  * mror:                                  OpenRISC Options.   (line   49)
--- 64452,64458 ----
  * mrgf-banked-regs:                      ARC Options.        (line  304)
  * mrh850-abi:                            V850 Options.       (line  127)
  * mrl78:                                 RL78 Options.       (line   62)
! * mrmw:                                  AVR Options.        (line  243)
  * mrop-protect:                          RS/6000 and PowerPC Options.
                                                               (line  949)
  * mror:                                  OpenRISC Options.   (line   49)
*************** look up both forms.
*** 64450,64462 ****
  * mrtd <1>:                              x86 Options.        (line  685)
  * mrtd <2>:                              x86 Function Attributes.
                                                               (line    9)
! * mrtm:                                  x86 Options.        (line  868)
  * mrtp:                                  VxWorks Options.    (line   11)
  * mrtsc:                                 ARC Options.        (line  358)
  * ms:                                    H8/300 Options.     (line   17)
  * ms <1>:                                MeP Options.        (line  100)
  * ms2600:                                H8/300 Options.     (line   24)
! * msahf:                                 x86 Options.        (line 1001)
  * msatur:                                MeP Options.        (line  105)
  * msave-acc-in-interrupts:               RX Options.         (line  109)
  * msave-mduc-in-interrupts:              RL78 Options.       (line   79)
--- 64463,64475 ----
  * mrtd <1>:                              x86 Options.        (line  685)
  * mrtd <2>:                              x86 Function Attributes.
                                                               (line    9)
! * mrtm:                                  x86 Options.        (line  877)
  * mrtp:                                  VxWorks Options.    (line   11)
  * mrtsc:                                 ARC Options.        (line  358)
  * ms:                                    H8/300 Options.     (line   17)
  * ms <1>:                                MeP Options.        (line  100)
  * ms2600:                                H8/300 Options.     (line   24)
! * msahf:                                 x86 Options.        (line 1010)
  * msatur:                                MeP Options.        (line  105)
  * msave-acc-in-interrupts:               RX Options.         (line  109)
  * msave-mduc-in-interrupts:              RL78 Options.       (line   79)
*************** look up both forms.
*** 64489,64495 ****
  * mscore7:                               Score Options.      (line   31)
  * mscore7d:                              Score Options.      (line   35)
  * msda:                                  V850 Options.       (line   40)
! * msdata:                                ARC Options.        (line  422)
  * msdata <1>:                            IA-64 Options.      (line   42)
  * msdata <2>:                            RS/6000 and PowerPC Options.
                                                               (line  666)
--- 64502,64508 ----
  * mscore7:                               Score Options.      (line   31)
  * mscore7d:                              Score Options.      (line   35)
  * msda:                                  V850 Options.       (line   40)
! * msdata:                                ARC Options.        (line  420)
  * msdata <1>:                            IA-64 Options.      (line   42)
  * msdata <2>:                            RS/6000 and PowerPC Options.
                                                               (line  666)
*************** look up both forms.
*** 64517,64536 ****
  * msel-sched-dont-check-control-spec:    IA-64 Options.      (line  207)
  * msep-data:                             Blackfin Options.   (line  107)
  * msep-data <1>:                         Blackfin Options.   (line  113)
! * mserialize:                            x86 Options.        (line  893)
  * mserialize-volatile:                   Xtensa Options.     (line   35)
  * msetlb:                                MN10300 Options.    (line   64)
  * msext:                                 OpenRISC Options.   (line   59)
  * msfimm:                                OpenRISC Options.   (line   63)
! * msgx:                                  x86 Options.        (line  852)
! * msha:                                  x86 Options.        (line  835)
  * mshared-library-id:                    Blackfin Options.   (line  100)
  * mshftimm:                              OpenRISC Options.   (line   68)
  * mshort:                                M680x0 Options.     (line  216)
! * mshort-calls:                          AVR Options.        (line  249)
  * mshorten-memrefs:                      RISC-V Options.     (line  108)
! * mshstk:                                x86 Options.        (line 1015)
! * mside-effects:                         CRIS Options.       (line   45)
  * msign-extend-enabled:                  LM32 Options.       (line   18)
  * msign-return-address:                  AArch64 Options.    (line  276)
  * msilicon-errata:                       MSP430 Options.     (line  159)
--- 64530,64549 ----
  * msel-sched-dont-check-control-spec:    IA-64 Options.      (line  207)
  * msep-data:                             Blackfin Options.   (line  107)
  * msep-data <1>:                         Blackfin Options.   (line  113)
! * mserialize:                            x86 Options.        (line  902)
  * mserialize-volatile:                   Xtensa Options.     (line   35)
  * msetlb:                                MN10300 Options.    (line   64)
  * msext:                                 OpenRISC Options.   (line   59)
  * msfimm:                                OpenRISC Options.   (line   63)
! * msgx:                                  x86 Options.        (line  861)
! * msha:                                  x86 Options.        (line  844)
  * mshared-library-id:                    Blackfin Options.   (line  100)
  * mshftimm:                              OpenRISC Options.   (line   68)
  * mshort:                                M680x0 Options.     (line  216)
! * mshort-calls:                          AVR Options.        (line  247)
  * mshorten-memrefs:                      RISC-V Options.     (line  108)
! * mshstk:                                x86 Options.        (line 1024)
! * mside-effects:                         CRIS Options.       (line   44)
  * msign-extend-enabled:                  LM32 Options.       (line   18)
  * msign-return-address:                  AArch64 Options.    (line  276)
  * msilicon-errata:                       MSP430 Options.     (line  159)
*************** look up both forms.
*** 64557,64564 ****
  * msingle-pic-base <1>:                  RS/6000 and PowerPC Options.
                                                               (line  451)
  * msio:                                  HPPA Options.       (line  105)
! * msize-level:                           ARC Options.        (line  533)
! * mskip-rax-setup:                       x86 Options.        (line 1397)
  * mslow-bytes:                           MCore Options.      (line   35)
  * mslow-flash-data:                      ARM Options.        (line  916)
  * msmall:                                MSP430 Options.     (line   85)
--- 64570,64577 ----
  * msingle-pic-base <1>:                  RS/6000 and PowerPC Options.
                                                               (line  451)
  * msio:                                  HPPA Options.       (line  105)
! * msize-level:                           ARC Options.        (line  531)
! * mskip-rax-setup:                       x86 Options.        (line 1406)
  * mslow-bytes:                           MCore Options.      (line   35)
  * mslow-flash-data:                      ARM Options.        (line  916)
  * msmall:                                MSP430 Options.     (line   85)
*************** look up both forms.
*** 64599,64605 ****
  * msoft-mul:                             OpenRISC Options.   (line   24)
  * msoft-quad-float:                      SPARC Options.      (line   59)
  * msoft-stack:                           Nvidia PTX Options. (line   26)
! * msp8:                                  AVR Options.        (line  256)
  * mspace:                                V850 Options.       (line   30)
  * mspace-regs:                           HPPA Options.       (line   45)
  * mspecld-anomaly:                       Blackfin Options.   (line   48)
--- 64612,64618 ----
  * msoft-mul:                             OpenRISC Options.   (line   24)
  * msoft-quad-float:                      SPARC Options.      (line   59)
  * msoft-stack:                           Nvidia PTX Options. (line   26)
! * msp8:                                  AVR Options.        (line  254)
  * mspace:                                V850 Options.       (line   30)
  * mspace-regs:                           HPPA Options.       (line   45)
  * mspecld-anomaly:                       Blackfin Options.   (line   48)
*************** look up both forms.
*** 64607,64614 ****
  * mspfp:                                 ARC Options.        (line  132)
  * mspfp-compact:                         ARC Options.        (line  133)
  * mspfp-fast:                            ARC Options.        (line  137)
! * mspfp_compact:                         ARC Options.        (line  634)
! * mspfp_fast:                            ARC Options.        (line  637)
  * msplit:                                PDP-11 Options.     (line   40)
  * msplit-addresses:                      MIPS Options.       (line  555)
  * msplit-lohi:                           Adapteva Epiphany Options.
--- 64620,64627 ----
  * mspfp:                                 ARC Options.        (line  132)
  * mspfp-compact:                         ARC Options.        (line  133)
  * mspfp-fast:                            ARC Options.        (line  137)
! * mspfp_compact:                         ARC Options.        (line  629)
! * mspfp_fast:                            ARC Options.        (line  632)
  * msplit:                                PDP-11 Options.     (line   40)
  * msplit-addresses:                      MIPS Options.       (line  555)
  * msplit-lohi:                           Adapteva Epiphany Options.
*************** look up both forms.
*** 64616,64632 ****
  * msplit-vecmove-early:                  Adapteva Epiphany Options.
                                                               (line  126)
  * msram-ecc:                             AMD GCN Options.    (line   25)
! * msse:                                  x86 Options.        (line  816)
! * msse2:                                 x86 Options.        (line  817)
! * msse2avx:                              x86 Options.        (line 1352)
! * msse3:                                 x86 Options.        (line  818)
! * msse4:                                 x86 Options.        (line  820)
! * msse4.1:                               x86 Options.        (line  822)
! * msse4.2:                               x86 Options.        (line  823)
! * msse4a:                                x86 Options.        (line  821)
  * msseregparm:                           x86 Options.        (line  720)
! * mssse3:                                x86 Options.        (line  819)
! * mstack-align:                          CRIS Options.       (line   54)
  * mstack-bias:                           SPARC Options.      (line  372)
  * mstack-check-l1:                       Blackfin Options.   (line   74)
  * mstack-guard:                          S/390 and zSeries Options.
--- 64629,64645 ----
  * msplit-vecmove-early:                  Adapteva Epiphany Options.
                                                               (line  126)
  * msram-ecc:                             AMD GCN Options.    (line   25)
! * msse:                                  x86 Options.        (line  825)
! * msse2:                                 x86 Options.        (line  826)
! * msse2avx:                              x86 Options.        (line 1361)
! * msse3:                                 x86 Options.        (line  827)
! * msse4:                                 x86 Options.        (line  829)
! * msse4.1:                               x86 Options.        (line  831)
! * msse4.2:                               x86 Options.        (line  832)
! * msse4a:                                x86 Options.        (line  830)
  * msseregparm:                           x86 Options.        (line  720)
! * mssse3:                                x86 Options.        (line  828)
! * mstack-align:                          CRIS Options.       (line   53)
  * mstack-bias:                           SPARC Options.      (line  372)
  * mstack-check-l1:                       Blackfin Options.   (line   74)
  * mstack-guard:                          S/390 and zSeries Options.
*************** look up both forms.
*** 64638,64671 ****
  * mstack-protector-guard <1>:            RISC-V Options.     (line  168)
  * mstack-protector-guard <2>:            RS/6000 and PowerPC Options.
                                                               (line  916)
! * mstack-protector-guard <3>:            x86 Options.        (line 1423)
  * mstack-protector-guard-offset:         AArch64 Options.    (line   64)
  * mstack-protector-guard-offset <1>:     RISC-V Options.     (line  168)
  * mstack-protector-guard-offset <2>:     RS/6000 and PowerPC Options.
                                                               (line  916)
! * mstack-protector-guard-offset <3>:     x86 Options.        (line 1423)
  * mstack-protector-guard-reg:            AArch64 Options.    (line   64)
  * mstack-protector-guard-reg <1>:        RISC-V Options.     (line  168)
  * mstack-protector-guard-reg <2>:        RS/6000 and PowerPC Options.
                                                               (line  916)
! * mstack-protector-guard-reg <3>:        x86 Options.        (line 1423)
  * mstack-protector-guard-symbol:         RS/6000 and PowerPC Options.
                                                               (line  916)
  * mstack-size:                           AMD GCN Options.    (line   31)
  * mstack-size <1>:                       C-SKY Options.      (line  150)
  * mstack-size <2>:                       S/390 and zSeries Options.
                                                               (line  202)
! * mstackrealign:                         x86 Options.        (line  760)
  * mstd-struct-return:                    SPARC Options.      (line  102)
  * mstrict-align:                         AArch64 Options.    (line   52)
  * mstrict-align <1>:                     M680x0 Options.     (line  280)
  * mstrict-align <2>:                     RISC-V Options.     (line  117)
  * mstrict-align <3>:                     RS/6000 and PowerPC Options.
                                                               (line  403)
! * mstrict-X:                             AVR Options.        (line  269)
  * mstring-compare-inline-limit:          RS/6000 and PowerPC Options.
                                                               (line  708)
! * mstringop-strategy=ALG:                x86 Options.        (line 1300)
  * mstructure-size-boundary:              ARM Options.        (line  735)
  * msubxc:                                SPARC Options.      (line  288)
  * msv-mode:                              Visium Options.     (line   52)
--- 64651,64684 ----
  * mstack-protector-guard <1>:            RISC-V Options.     (line  168)
  * mstack-protector-guard <2>:            RS/6000 and PowerPC Options.
                                                               (line  916)
! * mstack-protector-guard <3>:            x86 Options.        (line 1432)
  * mstack-protector-guard-offset:         AArch64 Options.    (line   64)
  * mstack-protector-guard-offset <1>:     RISC-V Options.     (line  168)
  * mstack-protector-guard-offset <2>:     RS/6000 and PowerPC Options.
                                                               (line  916)
! * mstack-protector-guard-offset <3>:     x86 Options.        (line 1432)
  * mstack-protector-guard-reg:            AArch64 Options.    (line   64)
  * mstack-protector-guard-reg <1>:        RISC-V Options.     (line  168)
  * mstack-protector-guard-reg <2>:        RS/6000 and PowerPC Options.
                                                               (line  916)
! * mstack-protector-guard-reg <3>:        x86 Options.        (line 1432)
  * mstack-protector-guard-symbol:         RS/6000 and PowerPC Options.
                                                               (line  916)
  * mstack-size:                           AMD GCN Options.    (line   31)
  * mstack-size <1>:                       C-SKY Options.      (line  150)
  * mstack-size <2>:                       S/390 and zSeries Options.
                                                               (line  202)
! * mstackrealign:                         x86 Options.        (line  769)
  * mstd-struct-return:                    SPARC Options.      (line  102)
  * mstrict-align:                         AArch64 Options.    (line   52)
  * mstrict-align <1>:                     M680x0 Options.     (line  280)
  * mstrict-align <2>:                     RISC-V Options.     (line  117)
  * mstrict-align <3>:                     RS/6000 and PowerPC Options.
                                                               (line  403)
! * mstrict-X:                             AVR Options.        (line  267)
  * mstring-compare-inline-limit:          RS/6000 and PowerPC Options.
                                                               (line  708)
! * mstringop-strategy=ALG:                x86 Options.        (line 1309)
  * mstructure-size-boundary:              ARM Options.        (line  735)
  * msubxc:                                SPARC Options.      (line  288)
  * msv-mode:                              Visium Options.     (line   52)
*************** look up both forms.
*** 64682,64707 ****
                                                               (line  147)
  * mtarget-align:                         Xtensa Options.     (line   74)
  * mtas:                                  SH Options.         (line  259)
! * mtbm:                                  x86 Options.        (line  870)
  * mtda:                                  V850 Options.       (line   34)
  * mtelephony:                            ARC Options.        (line  368)
  * mtext-section-literals:                Xtensa Options.     (line   47)
  * mtf:                                   MeP Options.        (line  121)
  * mthread:                               x86 Windows Options.
                                                               (line   26)
! * mthreads:                              x86 Options.        (line 1155)
  * mthumb:                                ARM Options.        (line  823)
  * mthumb-interwork:                      ARM Options.        (line   24)
  * mtiny-printf:                          MSP430 Options.     (line  122)
! * mtiny-stack:                           AVR Options.        (line  283)
  * mtiny=:                                MeP Options.        (line  125)
  * mTLS:                                  FRV Options.        (line   90)
  * mtls:                                  FRV Options.        (line   94)
  * mtls-dialect:                          ARM Options.        (line  875)
! * mtls-dialect <1>:                      x86 Options.        (line 1133)
  * mtls-dialect=desc:                     AArch64 Options.    (line   77)
  * mtls-dialect=traditional:              AArch64 Options.    (line   81)
! * mtls-direct-seg-refs:                  x86 Options.        (line 1342)
  * mtls-markers:                          RS/6000 and PowerPC Options.
                                                               (line  777)
  * mtls-size:                             AArch64 Options.    (line   85)
--- 64695,64720 ----
                                                               (line  147)
  * mtarget-align:                         Xtensa Options.     (line   74)
  * mtas:                                  SH Options.         (line  259)
! * mtbm:                                  x86 Options.        (line  879)
  * mtda:                                  V850 Options.       (line   34)
  * mtelephony:                            ARC Options.        (line  368)
  * mtext-section-literals:                Xtensa Options.     (line   47)
  * mtf:                                   MeP Options.        (line  121)
  * mthread:                               x86 Windows Options.
                                                               (line   26)
! * mthreads:                              x86 Options.        (line 1164)
  * mthumb:                                ARM Options.        (line  823)
  * mthumb-interwork:                      ARM Options.        (line   24)
  * mtiny-printf:                          MSP430 Options.     (line  122)
! * mtiny-stack:                           AVR Options.        (line  281)
  * mtiny=:                                MeP Options.        (line  125)
  * mTLS:                                  FRV Options.        (line   90)
  * mtls:                                  FRV Options.        (line   94)
  * mtls-dialect:                          ARM Options.        (line  875)
! * mtls-dialect <1>:                      x86 Options.        (line 1142)
  * mtls-dialect=desc:                     AArch64 Options.    (line   77)
  * mtls-dialect=traditional:              AArch64 Options.    (line   81)
! * mtls-direct-seg-refs:                  x86 Options.        (line 1351)
  * mtls-markers:                          RS/6000 and PowerPC Options.
                                                               (line  777)
  * mtls-size:                             AArch64 Options.    (line   85)
*************** look up both forms.
*** 64722,64734 ****
                                                               (line  541)
  * mtrap-precision:                       DEC Alpha Options.  (line  109)
  * mtrust:                                C-SKY Options.      (line   99)
! * mtsxldtrk:                             x86 Options.        (line  885)
  * mtune:                                 AArch64 Options.    (line  186)
  * mtune <1>:                             AMD GCN Options.    (line   10)
! * mtune <2>:                             ARC Options.        (line  554)
! * mtune <3>:                             ARC Options.        (line  640)
  * mtune <4>:                             ARM Options.        (line  571)
! * mtune <5>:                             CRIS Options.       (line   16)
  * mtune <6>:                             DEC Alpha Options.  (line  259)
  * mtune <7>:                             IA-64 Options.      (line  116)
  * mtune <8>:                             M680x0 Options.     (line   68)
--- 64735,64747 ----
                                                               (line  541)
  * mtrap-precision:                       DEC Alpha Options.  (line  109)
  * mtrust:                                C-SKY Options.      (line   99)
! * mtsxldtrk:                             x86 Options.        (line  894)
  * mtune:                                 AArch64 Options.    (line  186)
  * mtune <1>:                             AMD GCN Options.    (line   10)
! * mtune <2>:                             ARC Options.        (line  552)
! * mtune <3>:                             ARC Options.        (line  635)
  * mtune <4>:                             ARM Options.        (line  571)
! * mtune <5>:                             CRIS Options.       (line   15)
  * mtune <6>:                             DEC Alpha Options.  (line  259)
  * mtune <7>:                             IA-64 Options.      (line  116)
  * mtune <8>:                             M680x0 Options.     (line   68)
*************** look up both forms.
*** 64742,64759 ****
  * mtune <14>:                            SPARC Options.      (line  199)
  * mtune <15>:                            Visium Options.     (line   47)
  * mtune <16>:                            x86 Options.        (line  458)
! * mtune-ctrl=FEATURE-LIST:               x86 Options.        (line  938)
  * muclibc:                               GNU/Linux Options.  (line   14)
! * muintr:                                x86 Options.        (line  884)
  * muls:                                  Score Options.      (line   18)
! * multcost:                              ARC Options.        (line  645)
  * multcost=NUMBER:                       SH Options.         (line  281)
  * multilib-library-pic:                  FRV Options.        (line  110)
  * multiply-enabled:                      LM32 Options.       (line   15)
  * multiply_defined:                      Darwin Options.     (line  196)
  * multiply_defined_unused:               Darwin Options.     (line  196)
  * multi_module:                          Darwin Options.     (line  196)
! * munalign-prob-threshold:               ARC Options.        (line  582)
  * munaligned-access:                     ARM Options.        (line  900)
  * munaligned-doubles:                    SPARC Options.      (line   73)
  * municode:                              x86 Windows Options.
--- 64755,64772 ----
  * mtune <14>:                            SPARC Options.      (line  199)
  * mtune <15>:                            Visium Options.     (line   47)
  * mtune <16>:                            x86 Options.        (line  458)
! * mtune-ctrl=FEATURE-LIST:               x86 Options.        (line  947)
  * muclibc:                               GNU/Linux Options.  (line   14)
! * muintr:                                x86 Options.        (line  893)
  * muls:                                  Score Options.      (line   18)
! * multcost:                              ARC Options.        (line  640)
  * multcost=NUMBER:                       SH Options.         (line  281)
  * multilib-library-pic:                  FRV Options.        (line  110)
  * multiply-enabled:                      LM32 Options.       (line   15)
  * multiply_defined:                      Darwin Options.     (line  196)
  * multiply_defined_unused:               Darwin Options.     (line  196)
  * multi_module:                          Darwin Options.     (line  196)
! * munalign-prob-threshold:               ARC Options.        (line  580)
  * munaligned-access:                     ARM Options.        (line  900)
  * munaligned-doubles:                    SPARC Options.      (line   73)
  * municode:                              x86 Windows Options.
*************** look up both forms.
*** 64779,64789 ****
  * mv850e3v5:                             V850 Options.       (line   52)
  * mv850es:                               V850 Options.       (line   75)
  * mv8plus:                               SPARC Options.      (line  214)
! * mvaes:                                 x86 Options.        (line  877)
  * mvdsp:                                 C-SKY Options.      (line  104)
  * mveclibabi:                            RS/6000 and PowerPC Options.
                                                               (line  851)
! * mveclibabi <1>:                        x86 Options.        (line 1081)
  * mvect-double:                          Adapteva Epiphany Options.
                                                               (line  115)
  * mvect8-ret-in-mem:                     x86 Options.        (line  730)
--- 64792,64802 ----
  * mv850e3v5:                             V850 Options.       (line   52)
  * mv850es:                               V850 Options.       (line   75)
  * mv8plus:                               SPARC Options.      (line  214)
! * mvaes:                                 x86 Options.        (line  886)
  * mvdsp:                                 C-SKY Options.      (line  104)
  * mveclibabi:                            RS/6000 and PowerPC Options.
                                                               (line  851)
! * mveclibabi <1>:                        x86 Options.        (line 1090)
  * mvect-double:                          Adapteva Epiphany Options.
                                                               (line  115)
  * mvect8-ret-in-mem:                     x86 Options.        (line  730)
*************** look up both forms.
*** 64798,64806 ****
  * mvliw-branch:                          FRV Options.        (line  201)
  * mvms-return-codes:                     VMS Options.        (line    9)
  * mvolatile-asm-stop:                    IA-64 Options.      (line   32)
! * mvolatile-cache:                       ARC Options.        (line  427)
! * mvolatile-cache <1>:                   ARC Options.        (line  431)
! * mvpclmulqdq:                           x86 Options.        (line  879)
  * mvr4130-align:                         MIPS Options.       (line  834)
  * mvrsave:                               RS/6000 and PowerPC Options.
                                                               (line  153)
--- 64811,64819 ----
  * mvliw-branch:                          FRV Options.        (line  201)
  * mvms-return-codes:                     VMS Options.        (line    9)
  * mvolatile-asm-stop:                    IA-64 Options.      (line   32)
! * mvolatile-cache:                       ARC Options.        (line  425)
! * mvolatile-cache <1>:                   ARC Options.        (line  429)
! * mvpclmulqdq:                           x86 Options.        (line  888)
  * mvr4130-align:                         MIPS Options.       (line  834)
  * mvrsave:                               RS/6000 and PowerPC Options.
                                                               (line  153)
*************** look up both forms.
*** 64810,64817 ****
                                                               (line  112)
  * mvxworks:                              RS/6000 and PowerPC Options.
                                                               (line  624)
! * mvzeroupper:                           x86 Options.        (line  965)
! * mwaitpkg:                              x86 Options.        (line  878)
  * mwarn-devices-csv:                     MSP430 Options.     (line  168)
  * mwarn-dynamicstack:                    S/390 and zSeries Options.
                                                               (line  196)
--- 64823,64830 ----
                                                               (line  112)
  * mvxworks:                              RS/6000 and PowerPC Options.
                                                               (line  624)
! * mvzeroupper:                           x86 Options.        (line  974)
! * mwaitpkg:                              x86 Options.        (line  887)
  * mwarn-devices-csv:                     MSP430 Options.     (line  168)
  * mwarn-dynamicstack:                    S/390 and zSeries Options.
                                                               (line  196)
*************** look up both forms.
*** 64819,64833 ****
                                                               (line  188)
  * mwarn-mcu:                             MSP430 Options.     (line   65)
  * mwarn-multiple-fast-interrupts:        RX Options.         (line  143)
! * mwbnoinvd:                             x86 Options.        (line  846)
  * mwide-bitfields:                       MCore Options.      (line   23)
! * mwidekl:                               x86 Options.        (line  899)
  * mwin32:                                x86 Windows Options.
                                                               (line   35)
  * mwindows:                              x86 Windows Options.
                                                               (line   41)
  * mword-relocations:                     ARM Options.        (line  886)
! * mx32:                                  x86 Options.        (line 1502)
  * mxgot:                                 M680x0 Options.     (line  312)
  * mxgot <1>:                             MIPS Options.       (line  229)
  * mxl-barrel-shift:                      MicroBlaze Options. (line   32)
--- 64832,64846 ----
                                                               (line  188)
  * mwarn-mcu:                             MSP430 Options.     (line   65)
  * mwarn-multiple-fast-interrupts:        RX Options.         (line  143)
! * mwbnoinvd:                             x86 Options.        (line  855)
  * mwide-bitfields:                       MCore Options.      (line   23)
! * mwidekl:                               x86 Options.        (line  908)
  * mwin32:                                x86 Windows Options.
                                                               (line   35)
  * mwindows:                              x86 Windows Options.
                                                               (line   41)
  * mword-relocations:                     ARM Options.        (line  886)
! * mx32:                                  x86 Options.        (line 1511)
  * mxgot:                                 M680x0 Options.     (line  312)
  * mxgot <1>:                             MIPS Options.       (line  229)
  * mxl-barrel-shift:                      MicroBlaze Options. (line   32)
*************** look up both forms.
*** 64843,64854 ****
  * mxl-soft-mul:                          MicroBlaze Options. (line   26)
  * mxl-stack-check:                       MicroBlaze Options. (line   41)
  * mxnack:                                AMD GCN Options.    (line   38)
! * mxop:                                  x86 Options.        (line  853)
  * mxpa:                                  MIPS Options.       (line  411)
! * mxsave:                                x86 Options.        (line  864)
! * mxsavec:                               x86 Options.        (line  866)
! * mxsaveopt:                             x86 Options.        (line  865)
! * mxsaves:                               x86 Options.        (line  867)
  * mxy:                                   ARC Options.        (line  373)
  * myellowknife:                          RS/6000 and PowerPC Options.
                                                               (line  619)
--- 64856,64867 ----
  * mxl-soft-mul:                          MicroBlaze Options. (line   26)
  * mxl-stack-check:                       MicroBlaze Options. (line   41)
  * mxnack:                                AMD GCN Options.    (line   38)
! * mxop:                                  x86 Options.        (line  862)
  * mxpa:                                  MIPS Options.       (line  411)
! * mxsave:                                x86 Options.        (line  873)
! * mxsavec:                               x86 Options.        (line  875)
! * mxsaveopt:                             x86 Options.        (line  874)
! * mxsaves:                               x86 Options.        (line  876)
  * mxy:                                   ARC Options.        (line  373)
  * myellowknife:                          RS/6000 and PowerPC Options.
                                                               (line  619)
*************** look up both forms.
*** 64864,64877 ****
                                                               (line  959)
  * no-canonical-prefixes:                 Directory Options.  (line  164)
  * no-integrated-cpp:                     Preprocessor Options.
!                                                              (line  483)
  * no-pie:                                Link Options.       (line  181)
  * no-sysroot-suffix:                     Directory Options.  (line  183)
  * noall_load:                            Darwin Options.     (line  196)
  * nocpp:                                 MIPS Options.       (line  636)
  * nodefaultlibs:                         Link Options.       (line  119)
! * nodevicelib:                           AVR Options.        (line  290)
! * nodevicespecs:                         AVR Options.        (line  293)
  * nofixprebinding:                       Darwin Options.     (line  196)
  * nofpu:                                 RX Options.         (line   17)
  * nolibc:                                Link Options.       (line  131)
--- 64877,64890 ----
                                                               (line  959)
  * no-canonical-prefixes:                 Directory Options.  (line  164)
  * no-integrated-cpp:                     Preprocessor Options.
!                                                              (line  485)
  * no-pie:                                Link Options.       (line  181)
  * no-sysroot-suffix:                     Directory Options.  (line  183)
  * noall_load:                            Darwin Options.     (line  196)
  * nocpp:                                 MIPS Options.       (line  636)
  * nodefaultlibs:                         Link Options.       (line  119)
! * nodevicelib:                           AVR Options.        (line  288)
! * nodevicespecs:                         AVR Options.        (line  291)
  * nofixprebinding:                       Darwin Options.     (line  196)
  * nofpu:                                 RX Options.         (line   17)
  * nolibc:                                Link Options.       (line  131)
*************** look up both forms.
*** 64899,64905 ****
  * p:                                     Instrumentation Options.
                                                               (line   20)
  * P:                                     Preprocessor Options.
!                                                              (line  368)
  * p <1>:                                 Common Function Attributes.
                                                               (line  794)
  * pagezero_size:                         Darwin Options.     (line  196)
--- 64912,64918 ----
  * p:                                     Instrumentation Options.
                                                               (line   20)
  * P:                                     Preprocessor Options.
!                                                              (line  370)
  * p <1>:                                 Common Function Attributes.
                                                               (line  794)
  * pagezero_size:                         Darwin Options.     (line  196)
*************** look up both forms.
*** 64949,64955 ****
  * rdynamic:                              Link Options.       (line  203)
  * read_only_relocs:                      Darwin Options.     (line  196)
  * remap:                                 Preprocessor Options.
!                                                              (line  399)
  * S:                                     Overall Options.    (line  180)
  * S <1>:                                 Link Options.       (line   20)
  * s:                                     Link Options.       (line  210)
--- 64962,64968 ----
  * rdynamic:                              Link Options.       (line  203)
  * read_only_relocs:                      Darwin Options.     (line  196)
  * remap:                                 Preprocessor Options.
!                                                              (line  401)
  * S:                                     Overall Options.    (line  180)
  * S <1>:                                 Link Options.       (line   20)
  * s:                                     Link Options.       (line  210)
*************** look up both forms.
*** 64975,64982 ****
  * shared-libgcc:                         Link Options.       (line  227)
  * short-calls:                           Adapteva Epiphany Options.
                                                               (line   61)
! * sim:                                   CRIS Options.       (line   82)
! * sim2:                                  CRIS Options.       (line   87)
  * single_module:                         Darwin Options.     (line  196)
  * specs:                                 Overall Options.    (line  615)
  * static:                                Link Options.       (line  214)
--- 64988,64995 ----
  * shared-libgcc:                         Link Options.       (line  227)
  * short-calls:                           Adapteva Epiphany Options.
                                                               (line   61)
! * sim:                                   CRIS Options.       (line   81)
! * sim2:                                  CRIS Options.       (line   86)
  * single_module:                         Darwin Options.     (line  196)
  * specs:                                 Overall Options.    (line  615)
  * static:                                Link Options.       (line  214)
*************** look up both forms.
*** 65006,65017 ****
  * tno-android-cc:                        GNU/Linux Options.  (line   36)
  * tno-android-ld:                        GNU/Linux Options.  (line   40)
  * traditional:                           Preprocessor Options.
!                                                              (line  375)
  * traditional <1>:                       Incompatibilities.  (line    6)
  * traditional-cpp:                       Preprocessor Options.
!                                                              (line  375)
  * trigraphs:                             Preprocessor Options.
!                                                              (line  385)
  * twolevel_namespace:                    Darwin Options.     (line  196)
  * U:                                     Preprocessor Options.
                                                               (line   42)
--- 65019,65030 ----
  * tno-android-cc:                        GNU/Linux Options.  (line   36)
  * tno-android-ld:                        GNU/Linux Options.  (line   40)
  * traditional:                           Preprocessor Options.
!                                                              (line  377)
  * traditional <1>:                       Incompatibilities.  (line    6)
  * traditional-cpp:                       Preprocessor Options.
!                                                              (line  377)
  * trigraphs:                             Preprocessor Options.
!                                                              (line  387)
  * twolevel_namespace:                    Darwin Options.     (line  196)
  * U:                                     Preprocessor Options.
                                                               (line   42)
*************** look up both forms.
*** 65033,65039 ****
  * Wabi-tag:                              C++ Dialect Options.
                                                               (line  565)
  * Wabsolute-value:                       Warning Options.    (line 2275)
! * Waddr-space-convert:                   AVR Options.        (line  308)
  * Waddress:                              Warning Options.    (line 2631)
  * Waddress-of-packed-member:             Warning Options.    (line 2644)
  * Waggregate-return:                     Warning Options.    (line 2672)
--- 65046,65052 ----
  * Wabi-tag:                              C++ Dialect Options.
                                                               (line  565)
  * Wabsolute-value:                       Warning Options.    (line 2275)
! * Waddr-space-convert:                   AVR Options.        (line  306)
  * Waddress:                              Warning Options.    (line 2631)
  * Waddress-of-packed-member:             Warning Options.    (line 2644)
  * Waggregate-return:                     Warning Options.    (line 2672)
*************** look up both forms.
*** 65263,65269 ****
  * Wmissing-parameter-type:               Warning Options.    (line 2733)
  * Wmissing-profile:                      Warning Options.    (line  889)
  * Wmissing-prototypes:                   Warning Options.    (line 2741)
! * Wmisspelled-isr:                       AVR Options.        (line  313)
  * Wmultichar:                            Warning Options.    (line 2791)
  * Wmultiple-inheritance:                 C++ Dialect Options.
                                                               (line 1064)
--- 65276,65282 ----
  * Wmissing-parameter-type:               Warning Options.    (line 2733)
  * Wmissing-profile:                      Warning Options.    (line  889)
  * Wmissing-prototypes:                   Warning Options.    (line 2741)
! * Wmisspelled-isr:                       AVR Options.        (line  311)
  * Wmultichar:                            Warning Options.    (line 2791)
  * Wmultiple-inheritance:                 C++ Dialect Options.
                                                               (line 1064)
*************** look up both forms.
*** 65275,65281 ****
  * Wnested-externs:                       Warning Options.    (line 2959)
  * Wno-abi:                               Warning Options.    (line  260)
  * Wno-absolute-value:                    Warning Options.    (line 2275)
! * Wno-addr-space-convert:                AVR Options.        (line  308)
  * Wno-address:                           Warning Options.    (line 2631)
  * Wno-address-of-packed-member:          Warning Options.    (line 2644)
  * Wno-aggregate-return:                  Warning Options.    (line 2672)
--- 65288,65294 ----
  * Wnested-externs:                       Warning Options.    (line 2959)
  * Wno-abi:                               Warning Options.    (line  260)
  * Wno-absolute-value:                    Warning Options.    (line 2275)
! * Wno-addr-space-convert:                AVR Options.        (line  306)
  * Wno-address:                           Warning Options.    (line 2631)
  * Wno-address-of-packed-member:          Warning Options.    (line 2644)
  * Wno-aggregate-return:                  Warning Options.    (line 2672)
*************** look up both forms.
*** 65489,65495 ****
  * Wno-missing-parameter-type:            Warning Options.    (line 2733)
  * Wno-missing-profile:                   Warning Options.    (line  889)
  * Wno-missing-prototypes:                Warning Options.    (line 2741)
! * Wno-misspelled-isr:                    AVR Options.        (line  313)
  * Wno-multichar:                         Warning Options.    (line 2791)
  * Wno-multiple-inheritance:              C++ Dialect Options.
                                                               (line 1064)
--- 65502,65508 ----
  * Wno-missing-parameter-type:            Warning Options.    (line 2733)
  * Wno-missing-profile:                   Warning Options.    (line  889)
  * Wno-missing-prototypes:                Warning Options.    (line 2741)
! * Wno-misspelled-isr:                    AVR Options.        (line  311)
  * Wno-multichar:                         Warning Options.    (line 2791)
  * Wno-multiple-inheritance:              C++ Dialect Options.
                                                               (line 1064)
*************** look up both forms.
*** 65697,65703 ****
  * Woverride-init:                        Warning Options.    (line 2869)
  * Woverride-init-side-effects:           Warning Options.    (line 2877)
  * Wp:                                    Preprocessor Options.
!                                                              (line  463)
  * Wpacked:                               Warning Options.    (line 2882)
  * Wpacked-bitfield-compat:               Warning Options.    (line 2899)
  * Wpacked-not-aligned:                   Warning Options.    (line 2916)
--- 65710,65716 ----
  * Woverride-init:                        Warning Options.    (line 2869)
  * Woverride-init-side-effects:           Warning Options.    (line 2877)
  * Wp:                                    Preprocessor Options.
!                                                              (line  465)
  * Wpacked:                               Warning Options.    (line 2882)
  * Wpacked-bitfield-compat:               Warning Options.    (line 2899)
  * Wpacked-not-aligned:                   Warning Options.    (line 2916)
*************** look up both forms.
*** 65855,65861 ****
  * Xbind-now:                             VxWorks Options.    (line   30)
  * Xlinker:                               Link Options.       (line  317)
  * Xpreprocessor:                         Preprocessor Options.
!                                                              (line  474)
  * Ym:                                    System V Options.   (line   26)
  * YP:                                    System V Options.   (line   22)
  * z:                                     Link Options.       (line  348)
--- 65868,65874 ----
  * Xbind-now:                             VxWorks Options.    (line   30)
  * Xlinker:                               Link Options.       (line  317)
  * Xpreprocessor:                         Preprocessor Options.
!                                                              (line  476)
  * Ym:                                    System V Options.   (line   26)
  * YP:                                    System V Options.   (line   22)
  * z:                                     Link Options.       (line  348)
*************** Keyword Index
*** 66334,66340 ****
  * __far M32C Named Address Spaces:       Named Address Spaces.
                                                               (line  153)
  * __far RL78 Named Address Spaces:       Named Address Spaces.
!                                                              (line  162)
  * __flash AVR Named Address Spaces:      Named Address Spaces.
                                                               (line   44)
  * __flash1 AVR Named Address Spaces:     Named Address Spaces.
--- 66347,66353 ----
  * __far M32C Named Address Spaces:       Named Address Spaces.
                                                               (line  153)
  * __far RL78 Named Address Spaces:       Named Address Spaces.
!                                                              (line  161)
  * __flash AVR Named Address Spaces:      Named Address Spaces.
                                                               (line   44)
  * __flash1 AVR Named Address Spaces:     Named Address Spaces.
*************** Keyword Index
*** 66360,66368 ****
  * __PRETTY_FUNCTION__ identifier:        Function Names.     (line    6)
  * __real__ keyword:                      Complex.            (line   31)
  * __seg_fs x86 named address space:      Named Address Spaces.
!                                                              (line  175)
  * __seg_gs x86 named address space:      Named Address Spaces.
!                                                              (line  175)
  * __STDC_HOSTED__:                       Standards.          (line   13)
  * __sync_add_and_fetch:                  __sync Builtins.    (line   72)
  * __sync_and_and_fetch:                  __sync Builtins.    (line   72)
--- 66373,66381 ----
  * __PRETTY_FUNCTION__ identifier:        Function Names.     (line    6)
  * __real__ keyword:                      Complex.            (line   31)
  * __seg_fs x86 named address space:      Named Address Spaces.
!                                                              (line  174)
  * __seg_gs x86 named address space:      Named Address Spaces.
!                                                              (line  174)
  * __STDC_HOSTED__:                       Standards.          (line   13)
  * __sync_add_and_fetch:                  __sync Builtins.    (line   72)
  * __sync_and_and_fetch:                  __sync Builtins.    (line   72)
*************** Keyword Index
*** 66543,66549 ****
  * C intermediate output, nonexistent:    G++ and GCC.        (line   34)
  * C language extensions:                 C Extensions.       (line    6)
  * C language, traditional:               Preprocessor Options.
!                                                              (line  373)
  * C standard:                            Standards.          (line   13)
  * C standards:                           Standards.          (line   13)
  * c++:                                   Invoking G++.       (line   14)
--- 66556,66562 ----
  * C intermediate output, nonexistent:    G++ and GCC.        (line   34)
  * C language extensions:                 C Extensions.       (line    6)
  * C language, traditional:               Preprocessor Options.
!                                                              (line  375)
  * C standard:                            Standards.          (line   13)
  * C standards:                           Standards.          (line   13)
  * c++:                                   Invoking G++.       (line   14)
*************** Keyword Index
*** 66633,66639 ****
  * character set, execution:              Preprocessor Options.
                                                               (line  273)
  * character set, input:                  Preprocessor Options.
!                                                              (line  286)
  * character set, input normalization:    Warning Options.    (line 2797)
  * character set, wide execution:         Preprocessor Options.
                                                               (line  278)
--- 66646,66652 ----
  * character set, execution:              Preprocessor Options.
                                                               (line  273)
  * character set, input:                  Preprocessor Options.
!                                                              (line  288)
  * character set, input normalization:    Warning Options.    (line 2797)
  * character set, wide execution:         Preprocessor Options.
                                                               (line  278)
*************** Keyword Index
*** 66772,66784 ****
  * declaring static data in C++:          Static Definitions. (line    6)
  * defining static data in C++:           Static Definitions. (line    6)
  * dependencies for make as output:       Environment Variables.
!                                                              (line  173)
  * dependencies for make as output <1>:   Environment Variables.
!                                                              (line  189)
  * dependencies, make:                    Preprocessor Options.
                                                               (line   77)
  * DEPENDENCIES_OUTPUT:                   Environment Variables.
!                                                              (line  172)
  * dependent name lookup:                 Name lookup.        (line    6)
  * deprecated enumerator attribute:       Enumerator Attributes.
                                                               (line   28)
--- 66785,66797 ----
  * declaring static data in C++:          Static Definitions. (line    6)
  * defining static data in C++:           Static Definitions. (line    6)
  * dependencies for make as output:       Environment Variables.
!                                                              (line  172)
  * dependencies for make as output <1>:   Environment Variables.
!                                                              (line  188)
  * dependencies, make:                    Preprocessor Options.
                                                               (line   77)
  * DEPENDENCIES_OUTPUT:                   Environment Variables.
!                                                              (line  171)
  * dependent name lookup:                 Name lookup.        (line    6)
  * deprecated enumerator attribute:       Enumerator Attributes.
                                                               (line   28)
*************** Keyword Index
*** 66840,66846 ****
                                                               (line    9)
  * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes.
                                                               (line    9)
! * EIND:                                  AVR Options.        (line  319)
  * either function attribute, MSP430:     MSP430 Function Attributes.
                                                               (line   57)
  * either variable attribute, MSP430:     MSP430 Variable Attributes.
--- 66853,66859 ----
                                                               (line    9)
  * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes.
                                                               (line    9)
! * EIND:                                  AVR Options.        (line  317)
  * either function attribute, MSP430:     MSP430 Function Attributes.
                                                               (line   57)
  * either variable attribute, MSP430:     MSP430 Variable Attributes.
*************** Keyword Index
*** 67130,67136 ****
  * increment operators:                   Bug Criteria.       (line   17)
  * index:                                 Other Builtins.     (line    6)
  * indirect calls, ARC:                   ARC Function Attributes.
!                                                              (line   27)
  * indirect calls, ARM:                   ARM Function Attributes.
                                                               (line   38)
  * indirect calls, Blackfin:              Blackfin Function Attributes.
--- 67143,67149 ----
  * increment operators:                   Bug Criteria.       (line   17)
  * index:                                 Other Builtins.     (line    6)
  * indirect calls, ARC:                   ARC Function Attributes.
!                                                              (line   26)
  * indirect calls, ARM:                   ARM Function Attributes.
                                                               (line   38)
  * indirect calls, Blackfin:              Blackfin Function Attributes.
*************** Keyword Index
*** 67277,67285 ****
  * j1f:                                   Other Builtins.     (line    6)
  * j1l:                                   Other Builtins.     (line    6)
  * jli_always function attribute, ARC:    ARC Function Attributes.
!                                                              (line   44)
  * jli_fixed function attribute, ARC:     ARC Function Attributes.
!                                                              (line   50)
  * jn:                                    Other Builtins.     (line    6)
  * jnf:                                   Other Builtins.     (line    6)
  * jnl:                                   Other Builtins.     (line    6)
--- 67290,67298 ----
  * j1f:                                   Other Builtins.     (line    6)
  * j1l:                                   Other Builtins.     (line    6)
  * jli_always function attribute, ARC:    ARC Function Attributes.
!                                                              (line   43)
  * jli_fixed function attribute, ARC:     ARC Function Attributes.
!                                                              (line   49)
  * jn:                                    Other Builtins.     (line    6)
  * jnf:                                   Other Builtins.     (line    6)
  * jnl:                                   Other Builtins.     (line    6)
*************** Keyword Index
*** 67396,67402 ****
  * longjmp incompatibilities:             Incompatibilities.  (line   39)
  * longjmp warnings:                      Warning Options.    (line 1334)
  * long_call function attribute, ARC:     ARC Function Attributes.
!                                                              (line   27)
  * long_call function attribute, ARM:     ARM Function Attributes.
                                                               (line   38)
  * long_call function attribute, Epiphany: Epiphany Function Attributes.
--- 67409,67415 ----
  * longjmp incompatibilities:             Incompatibilities.  (line   39)
  * longjmp warnings:                      Warning Options.    (line 1334)
  * long_call function attribute, ARC:     ARC Function Attributes.
!                                                              (line   26)
  * long_call function attribute, ARM:     ARM Function Attributes.
                                                               (line   38)
  * long_call function attribute, Epiphany: Epiphany Function Attributes.
*************** Keyword Index
*** 67438,67444 ****
                                                               (line  234)
  * MCore options:                         MCore Options.      (line    6)
  * medium_call function attribute, ARC:   ARC Function Attributes.
!                                                              (line   27)
  * member fns, automatically inline:      Inline.             (line   68)
  * memchr:                                Other Builtins.     (line    6)
  * memcmp:                                Other Builtins.     (line    6)
--- 67451,67457 ----
                                                               (line  234)
  * MCore options:                         MCore Options.      (line    6)
  * medium_call function attribute, ARC:   ARC Function Attributes.
!                                                              (line   26)
  * member fns, automatically inline:      Inline.             (line   68)
  * memchr:                                Other Builtins.     (line    6)
  * memcmp:                                Other Builtins.     (line    6)
*************** Keyword Index
*** 67501,67507 ****
  * multiprecision arithmetic:             Long Long.          (line    6)
  * n in constraint:                       Simple Constraints. (line   73)
  * naked function attribute, ARC:         ARC Function Attributes.
!                                                              (line   59)
  * naked function attribute, ARM:         ARM Function Attributes.
                                                               (line   48)
  * naked function attribute, AVR:         AVR Function Attributes.
--- 67514,67520 ----
  * multiprecision arithmetic:             Long Long.          (line    6)
  * n in constraint:                       Simple Constraints. (line   73)
  * naked function attribute, ARC:         ARC Function Attributes.
!                                                              (line   58)
  * naked function attribute, ARM:         ARM Function Attributes.
                                                               (line   48)
  * naked function attribute, AVR:         AVR Function Attributes.
*************** Keyword Index
*** 67649,67657 ****
  * omitted middle-operands:               Conditionals.       (line    6)
  * open coding:                           Inline.             (line    6)
  * OpenACC accelerator programming:       C Dialect Options.  (line  337)
! * OpenACC accelerator programming <1>:   C Dialect Options.  (line  346)
! * OpenMP parallel:                       C Dialect Options.  (line  352)
! * OpenMP SIMD:                           C Dialect Options.  (line  361)
  * OpenRISC Options:                      OpenRISC Options.   (line    6)
  * operand constraints, asm:              Constraints.        (line    6)
  * optimize function attribute:           Common Function Attributes.
--- 67662,67670 ----
  * omitted middle-operands:               Conditionals.       (line    6)
  * open coding:                           Inline.             (line    6)
  * OpenACC accelerator programming:       C Dialect Options.  (line  337)
! * OpenACC accelerator programming <1>:   C Dialect Options.  (line  345)
! * OpenMP parallel:                       C Dialect Options.  (line  351)
! * OpenMP SIMD:                           C Dialect Options.  (line  359)
  * OpenRISC Options:                      OpenRISC Options.   (line    6)
  * operand constraints, asm:              Constraints.        (line    6)
  * optimize function attribute:           Common Function Attributes.
*************** Keyword Index
*** 67815,67824 ****
  * r fixed-suffix:                        Fixed-Point.        (line    6)
  * R fixed-suffix:                        Fixed-Point.        (line    6)
  * r in constraint:                       Simple Constraints. (line   64)
! * RAMPD:                                 AVR Options.        (line  430)
! * RAMPX:                                 AVR Options.        (line  430)
! * RAMPY:                                 AVR Options.        (line  430)
! * RAMPZ:                                 AVR Options.        (line  430)
  * range1 GCC_COLORS capability:          Diagnostic Message Formatting Options.
                                                               (line  107)
  * range2 GCC_COLORS capability:          Diagnostic Message Formatting Options.
--- 67828,67837 ----
  * r fixed-suffix:                        Fixed-Point.        (line    6)
  * R fixed-suffix:                        Fixed-Point.        (line    6)
  * r in constraint:                       Simple Constraints. (line   64)
! * RAMPD:                                 AVR Options.        (line  428)
! * RAMPX:                                 AVR Options.        (line  428)
! * RAMPY:                                 AVR Options.        (line  428)
! * RAMPZ:                                 AVR Options.        (line  428)
  * range1 GCC_COLORS capability:          Diagnostic Message Formatting Options.
                                                               (line  107)
  * range2 GCC_COLORS capability:          Diagnostic Message Formatting Options.
*************** Keyword Index
*** 67930,67936 ****
  * section variable attribute:            Common Variable Attributes.
                                                               (line  292)
  * secure_call function attribute, ARC:   ARC Function Attributes.
!                                                              (line   54)
  * selectany variable attribute:          Microsoft Windows Variable Attributes.
                                                               (line   16)
  * sentinel function attribute:           Common Function Attributes.
--- 67943,67949 ----
  * section variable attribute:            Common Variable Attributes.
                                                               (line  292)
  * secure_call function attribute, ARC:   ARC Function Attributes.
!                                                              (line   53)
  * selectany variable attribute:          Microsoft Windows Variable Attributes.
                                                               (line   16)
  * sentinel function attribute:           Common Function Attributes.
*************** Keyword Index
*** 67948,67954 ****
  * shortcall function attribute, PowerPC: PowerPC Function Attributes.
                                                               (line   10)
  * short_call function attribute, ARC:    ARC Function Attributes.
!                                                              (line   27)
  * short_call function attribute, ARM:    ARM Function Attributes.
                                                               (line   38)
  * short_call function attribute, Epiphany: Epiphany Function Attributes.
--- 67961,67967 ----
  * shortcall function attribute, PowerPC: PowerPC Function Attributes.
                                                               (line   10)
  * short_call function attribute, ARC:    ARC Function Attributes.
!                                                              (line   26)
  * short_call function attribute, ARM:    ARM Function Attributes.
                                                               (line   38)
  * short_call function attribute, Epiphany: Epiphany Function Attributes.
*************** Keyword Index
*** 67973,67979 ****
  * significand:                           Other Builtins.     (line    6)
  * significandf:                          Other Builtins.     (line    6)
  * significandl:                          Other Builtins.     (line    6)
! * SIMD:                                  C Dialect Options.  (line  361)
  * simd function attribute:               Common Function Attributes.
                                                               (line 1136)
  * simple constraints:                    Simple Constraints. (line    6)
--- 67986,67992 ----
  * significand:                           Other Builtins.     (line    6)
  * significandf:                          Other Builtins.     (line    6)
  * significandl:                          Other Builtins.     (line    6)
! * SIMD:                                  C Dialect Options.  (line  359)
  * simd function attribute:               Common Function Attributes.
                                                               (line 1136)
  * simple constraints:                    Simple Constraints. (line    6)
*************** Keyword Index
*** 67994,68000 ****
  * snprintf:                              Other Builtins.     (line    6)
  * Solaris 2 options:                     Solaris 2 Options.  (line    6)
  * SOURCE_DATE_EPOCH:                     Environment Variables.
!                                                              (line  194)
  * SPARC options:                         SPARC Options.      (line    6)
  * Spec Files:                            Spec Files.         (line    6)
  * specified registers:                   Explicit Register Variables.
--- 68007,68013 ----
  * snprintf:                              Other Builtins.     (line    6)
  * Solaris 2 options:                     Solaris 2 Options.  (line    6)
  * SOURCE_DATE_EPOCH:                     Environment Variables.
!                                                              (line  193)
  * SPARC options:                         SPARC Options.      (line    6)
  * Spec Files:                            Spec Files.         (line    6)
  * specified registers:                   Explicit Register Variables.
*************** Keyword Index
*** 68062,68068 ****
  * subscripting and function values:      Subscripting.       (line    6)
  * suffixes for C++ source:               Invoking G++.       (line    6)
  * SUNPRO_DEPENDENCIES:                   Environment Variables.
!                                                              (line  188)
  * suppressing warnings:                  Warning Options.    (line    6)
  * surprises in C++:                      C++ Misunderstandings.
                                                               (line    6)
--- 68075,68081 ----
  * subscripting and function values:      Subscripting.       (line    6)
  * suffixes for C++ source:               Invoking G++.       (line    6)
  * SUNPRO_DEPENDENCIES:                   Environment Variables.
!                                                              (line  187)
  * suppressing warnings:                  Warning Options.    (line    6)
  * surprises in C++:                      C++ Misunderstandings.
                                                               (line    6)
*************** Keyword Index
*** 68395,68401 ****
  * towlower:                              Other Builtins.     (line    6)
  * towupper:                              Other Builtins.     (line    6)
  * traditional C language:                Preprocessor Options.
!                                                              (line  373)
  * transparent_union type attribute:      Common Type Attributes.
                                                               (line  357)
  * trapa_handler function attribute, SH:  SH Function Attributes.
--- 68408,68414 ----
  * towlower:                              Other Builtins.     (line    6)
  * towupper:                              Other Builtins.     (line    6)
  * traditional C language:                Preprocessor Options.
!                                                              (line  375)
  * transparent_union type attribute:      Common Type Attributes.
                                                               (line  357)
  * trapa_handler function attribute, SH:  SH Function Attributes.
*************** Keyword Index
*** 68627,68633 ****
  * X in constraint:                       Simple Constraints. (line  122)
  * X3.159-1989:                           Standards.          (line   13)
  * x86 named address spaces:              Named Address Spaces.
!                                                              (line  170)
  * x86 Options:                           x86 Options.        (line    6)
  * x86 Windows Options:                   x86 Windows Options.
                                                               (line    6)
--- 68640,68646 ----
  * X in constraint:                       Simple Constraints. (line  122)
  * X3.159-1989:                           Standards.          (line   13)
  * x86 named address spaces:              Named Address Spaces.
!                                                              (line  169)
  * x86 Options:                           x86 Options.        (line    6)
  * x86 Windows Options:                   x86 Windows Options.
                                                               (line    6)
*************** Keyword Index
*** 68654,69091 ****
  
  Tag Table:
  Node: Top2135
! Node: G++ and GCC4093
! Node: Standards6153
! Node: Invoking GCC20209
! Node: Option Summary25436
! Node: Overall Options82543
! Node: Invoking G++110123
! Node: C Dialect Options111646
! Node: C++ Dialect Options131304
! Node: Objective-C and Objective-C++ Dialect Options189324
! Node: Diagnostic Message Formatting Options201071
! Node: Warning Options229856
! Ref: Wtrigraphs331364
! Node: Static Analyzer Options368951
! Node: Debugging Options385732
! Node: Optimize Options405680
! Ref: Type-punning476019
! Node: Instrumentation Options591425
! Node: Preprocessor Options635072
! Ref: dashMF639919
! Ref: fdollars-in-identifiers644581
! Node: Assembler Options657786
! Node: Link Options658477
! Ref: Link Options-Footnote-1675353
! Node: Directory Options675689
! Node: Code Gen Options684092
! Node: Developer Options712604
! Node: Submodel Options753989
! Node: AArch64 Options755799
! Ref: aarch64-feature-modifiers771121
! Node: Adapteva Epiphany Options776357
! Node: AMD GCN Options782309
! Node: ARC Options783872
! Node: ARM Options805098
! Node: AVR Options846284
! Node: Blackfin Options872806
! Node: C6X Options880698
! Node: CRIS Options882241
! Node: CR16 Options885425
! Node: C-SKY Options886337
! Node: Darwin Options892064
! Node: DEC Alpha Options899505
! Node: eBPF Options911121
! Node: FR30 Options912403
! Node: FT32 Options912963
! Node: FRV Options913909
! Node: GNU/Linux Options920673
! Node: H8/300 Options922054
! Node: HPPA Options923506
! Node: IA-64 Options933038
! Node: LM32 Options941166
! Node: M32C Options941689
! Node: M32R/D Options942962
! Node: M680x0 Options946507
! Node: MCore Options960582
! Node: MeP Options962084
! Node: MicroBlaze Options966044
! Node: MIPS Options969134
! Node: MMIX Options1005673
! Node: MN10300 Options1008150
! Node: Moxie Options1010693
! Node: MSP430 Options1011180
! Node: NDS32 Options1018941
! Node: Nios II Options1021111
! Node: Nvidia PTX Options1034327
! Node: OpenRISC Options1036836
! Node: PDP-11 Options1039356
! Node: picoChip Options1040605
! Node: PowerPC Options1042743
! Node: PRU Options1042963
! Node: RISC-V Options1045172
! Node: RL78 Options1052824
! Node: RS/6000 and PowerPC Options1056599
! Node: RX Options1098115
! Node: S/390 and zSeries Options1106717
! Node: Score Options1117517
! Node: SH Options1118366
! Node: Solaris 2 Options1133506
! Node: SPARC Options1134744
! Node: System V Options1150396
! Node: TILE-Gx Options1151224
! Node: TILEPro Options1152242
! Node: V850 Options1152746
! Node: VAX Options1159433
! Node: Visium Options1159971
! Node: VMS Options1162279
! Node: VxWorks Options1163095
! Node: x86 Options1164247
! Node: x86 Windows Options1230658
! Node: Xstormy16 Options1233463
! Node: Xtensa Options1233757
! Node: zSeries Options1239893
! Node: Spec Files1240089
! Node: Environment Variables1266168
! Node: Precompiled Headers1275601
! Node: C++ Modules1281810
! Ref: C++ Modules-Footnote-11287949
! Node: C++ Module Mapper1288202
! Node: C++ Module Preprocessing1293355
! Node: C++ Compiled Module Interface1295184
! Ref: C++ Compiled Module Interface-Footnote-11298568
! Ref: C++ Compiled Module Interface-Footnote-21298657
! Node: C Implementation1298713
! Node: Translation implementation1300403
! Node: Environment implementation1300994
! Node: Identifiers implementation1301548
! Node: Characters implementation1302634
! Node: Integers implementation1306284
! Node: Floating point implementation1308333
! Node: Arrays and pointers implementation1311396
! Ref: Arrays and pointers implementation-Footnote-11312856
! Node: Hints implementation1312982
! Node: Structures unions enumerations and bit-fields implementation1314477
! Node: Qualifiers implementation1316701
! Node: Declarators implementation1318762
! Node: Statements implementation1319103
! Node: Preprocessing directives implementation1319429
! Node: Library functions implementation1321750
! Node: Architecture implementation1322399
! Node: Locale-specific behavior implementation1324044
! Node: C++ Implementation1324349
! Node: Conditionally-supported behavior1325632
! Node: Exception handling1326249
! Node: C Extensions1326716
! Node: Statement Exprs1331939
! Node: Local Labels1337311
! Node: Labels as Values1340284
! Ref: Labels as Values-Footnote-11342811
! Node: Nested Functions1342996
! Node: Nonlocal Gotos1346950
! Node: Constructing Calls1349216
! Node: Typeof1353931
! Node: Conditionals1357860
! Node: __int1281358749
! Node: Long Long1359274
! Node: Complex1360765
! Node: Floating Types1363533
! Node: Half-Precision1367000
! Node: Decimal Float1369411
! Node: Hex Floats1371265
! Node: Fixed-Point1372339
! Node: Named Address Spaces1375597
! Ref: AVR Named Address Spaces1376278
! Node: Zero Length1382890
! Node: Empty Structures1387071
! Node: Variable Length1387477
! Node: Variadic Macros1390195
! Node: Escaped Newlines1392573
! Node: Subscripting1393434
! Node: Pointer Arith1394159
! Node: Variadic Pointer Args1394736
! Node: Pointers to Arrays1395461
! Node: Initializers1396214
! Node: Compound Literals1396715
! Node: Designated Inits1400282
! Node: Case Ranges1404206
! Node: Cast to Union1404887
! Node: Mixed Labels and Declarations1406621
! Node: Function Attributes1407258
! Node: Common Function Attributes1411725
! Ref: Common Function Attributes-Footnote-11485600
! Node: AArch64 Function Attributes1485917
! Node: AMD GCN Function Attributes1492111
! Node: ARC Function Attributes1495164
! Node: ARM Function Attributes1498101
! Node: AVR Function Attributes1503240
! Node: Blackfin Function Attributes1507775
! Node: BPF Function Attributes1510272
! Node: CR16 Function Attributes1510860
! Node: C-SKY Function Attributes1511379
! Node: Epiphany Function Attributes1512678
! Node: H8/300 Function Attributes1515433
! Node: IA-64 Function Attributes1516631
! Node: M32C Function Attributes1517673
! Node: M32R/D Function Attributes1520011
! Node: m68k Function Attributes1521485
! Node: MCORE Function Attributes1522429
! Node: MeP Function Attributes1523240
! Node: MicroBlaze Function Attributes1524541
! Node: Microsoft Windows Function Attributes1526048
! Node: MIPS Function Attributes1530617
! Node: MSP430 Function Attributes1536235
! Node: NDS32 Function Attributes1540314
! Node: Nios II Function Attributes1542738
! Node: Nvidia PTX Function Attributes1544035
! Node: PowerPC Function Attributes1544650
! Node: RISC-V Function Attributes1551424
! Node: RL78 Function Attributes1552840
! Node: RX Function Attributes1554079
! Node: S/390 Function Attributes1556626
! Node: SH Function Attributes1558454
! Node: Symbian OS Function Attributes1561882
! Node: V850 Function Attributes1562218
! Node: Visium Function Attributes1562763
! Node: x86 Function Attributes1563291
! Node: Xstormy16 Function Attributes1587093
! Node: Variable Attributes1587600
! Node: Common Variable Attributes1589133
! Node: ARC Variable Attributes1609598
! Node: AVR Variable Attributes1609980
! Node: Blackfin Variable Attributes1615142
! Node: H8/300 Variable Attributes1616000
! Node: IA-64 Variable Attributes1617073
! Node: M32R/D Variable Attributes1617824
! Node: MeP Variable Attributes1618607
! Node: Microsoft Windows Variable Attributes1620700
! Node: MSP430 Variable Attributes1623153
! Node: Nvidia PTX Variable Attributes1624367
! Node: PowerPC Variable Attributes1624984
! Node: RL78 Variable Attributes1625541
! Node: V850 Variable Attributes1625960
! Node: x86 Variable Attributes1626593
! Node: Xstormy16 Variable Attributes1627649
! Node: Type Attributes1628219
! Node: Common Type Attributes1629883
! Node: ARC Type Attributes1651640
! Node: ARM Type Attributes1652112
! Node: MeP Type Attributes1652894
! Node: PowerPC Type Attributes1653296
! Node: x86 Type Attributes1654285
! Node: Label Attributes1655277
! Node: Enumerator Attributes1657304
! Node: Statement Attributes1658623
! Node: Attribute Syntax1660106
! Node: Function Prototypes1671364
! Node: C++ Comments1673144
! Node: Dollar Signs1673663
! Node: Character Escapes1674128
! Node: Alignment1674412
! Node: Inline1676065
! Node: Volatiles1680882
! Node: Using Assembly Language with C1683781
! Node: Basic Asm1685018
! Node: Extended Asm1690468
! Ref: Volatile1694582
! Ref: AssemblerTemplate1698695
! Ref: OutputOperands1702935
! Ref: FlagOutputOperands1709898
! Ref: InputOperands1712845
! Ref: Clobbers and Scratch Registers1717113
! Ref: GotoLabels1725754
! Ref: x86Operandmodifiers1729377
! Ref: x86floatingpointasmoperands1734193
! Ref: msp430Operandmodifiers1737522
! Node: Constraints1739180
! Node: Simple Constraints1740286
! Node: Multi-Alternative1747600
! Node: Modifiers1749275
! Node: Machine Constraints1752074
! Node: Asm Labels1808299
! Node: Explicit Register Variables1809919
! Ref: Explicit Reg Vars1810133
! Node: Global Register Variables1810742
! Ref: Global Reg Vars1810950
! Node: Local Register Variables1815732
! Ref: Local Reg Vars1815952
! Node: Size of an asm1819580
! Node: Alternate Keywords1821058
! Node: Incomplete Enums1822563
! Node: Function Names1823320
! Node: Return Address1825224
! Node: Vector Extensions1829811
! Node: Offsetof1839576
! Node: __sync Builtins1840409
! Node: __atomic Builtins1846852
! Node: Integer Overflow Builtins1860477
! Node: x86 specific memory model extensions for transactional memory1866960
! Node: Object Size Checking1868226
! Node: Other Builtins1874482
! Node: Target Builtins1926130
! Node: AArch64 Built-in Functions1927905
! Node: Alpha Built-in Functions1928593
! Node: Altera Nios II Built-in Functions1931641
! Node: ARC Built-in Functions1936010
! Node: ARC SIMD Built-in Functions1941222
! Node: ARM iWMMXt Built-in Functions1950118
! Node: ARM C Language Extensions (ACLE)1957114
! Node: ARM Floating Point Status and Control Intrinsics1958391
! Node: ARM ARMv8-M Security Extensions1958876
! Node: AVR Built-in Functions1960156
! Node: Blackfin Built-in Functions1963917
! Node: BPF Built-in Functions1964535
! Node: FR-V Built-in Functions1965435
! Node: Argument Types1966298
! Node: Directly-mapped Integer Functions1968052
! Node: Directly-mapped Media Functions1969136
! Node: Raw read/write Functions1977342
! Node: Other Built-in Functions1978250
! Node: MIPS DSP Built-in Functions1979436
! Node: MIPS Paired-Single Support1991933
! Node: MIPS Loongson Built-in Functions1993432
! Node: Paired-Single Arithmetic1999954
! Node: Paired-Single Built-in Functions2000902
! Node: MIPS-3D Built-in Functions2003569
! Node: MIPS SIMD Architecture (MSA) Support2008963
! Node: MIPS SIMD Architecture Built-in Functions2011803
! Node: Other MIPS Built-in Functions2038657
! Node: MSP430 Built-in Functions2039666
! Node: NDS32 Built-in Functions2041067
! Node: picoChip Built-in Functions2042360
! Node: Basic PowerPC Built-in Functions2043709
! Node: Basic PowerPC Built-in Functions Available on all Configurations2044567
! Node: Basic PowerPC Built-in Functions Available on ISA 2.052053076
! Node: Basic PowerPC Built-in Functions Available on ISA 2.062057911
! Node: Basic PowerPC Built-in Functions Available on ISA 2.072059991
! Node: Basic PowerPC Built-in Functions Available on ISA 3.02060845
! Node: Basic PowerPC Built-in Functions Available on ISA 3.12067823
! Node: PowerPC AltiVec/VSX Built-in Functions2071036
! Node: PowerPC AltiVec Built-in Functions on ISA 2.052079105
! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062104505
! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072111571
! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02121381
! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.12137098
! Node: PowerPC Hardware Transactional Memory Built-in Functions2170321
! Node: PowerPC Atomic Memory Operation Functions2178836
! Node: PowerPC Matrix-Multiply Assist Built-in Functions2181399
! Node: PRU Built-in Functions2187524
! Node: RISC-V Built-in Functions2188712
! Node: RX Built-in Functions2189123
! Node: S/390 System z Built-in Functions2193125
! Node: SH Built-in Functions2198355
! Node: SPARC VIS Built-in Functions2200083
! Node: TI C6X Built-in Functions2208614
! Node: TILE-Gx Built-in Functions2209645
! Node: TILEPro Built-in Functions2210764
! Node: x86 Built-in Functions2211864
! Node: x86 transactional memory intrinsics2275944
! Node: x86 control-flow protection intrinsics2279211
! Node: Target Format Checks2280982
! Node: Solaris Format Checks2281414
! Node: Darwin Format Checks2281840
! Node: Pragmas2282803
! Node: AArch64 Pragmas2283744
! Node: ARM Pragmas2284201
! Node: M32C Pragmas2284828
! Node: MeP Pragmas2285900
! Node: PRU Pragmas2287952
! Node: RS/6000 and PowerPC Pragmas2288530
! Node: S/390 Pragmas2289270
! Node: Darwin Pragmas2289836
! Node: Solaris Pragmas2290889
! Node: Symbol-Renaming Pragmas2292053
! Node: Structure-Layout Pragmas2293690
! Node: Weak Pragmas2295970
! Node: Diagnostic Pragmas2296705
! Node: Visibility Pragmas2300896
! Node: Push/Pop Macro Pragmas2301581
! Node: Function Specific Option Pragmas2302554
! Node: Loop-Specific Pragmas2304520
! Node: Unnamed Fields2306120
! Node: Thread-Local2308317
! Node: C99 Thread-Local Edits2310423
! Node: C++98 Thread-Local Edits2312421
! Node: Binary constants2315866
! Node: C++ Extensions2316537
! Node: C++ Volatiles2318167
! Node: Restricted Pointers2320515
! Node: Vague Linkage2322106
! Node: C++ Interface2325729
! Ref: C++ Interface-Footnote-12329526
! Node: Template Instantiation2329664
! Node: Bound member functions2335755
! Node: C++ Attributes2337287
! Node: Function Multiversioning2341359
! Node: Type Traits2343166
! Node: C++ Concepts2350116
! Node: Deprecated Features2351622
! Node: Backwards Compatibility2353447
! Node: Objective-C2354519
! Node: GNU Objective-C runtime API2355126
! Node: Modern GNU Objective-C runtime API2356133
! Node: Traditional GNU Objective-C runtime API2358569
! Node: Executing code before main2359296
! Node: What you can and what you cannot do in +load2362040
! Node: Type encoding2364410
! Node: Legacy type encoding2369551
! Node: @encode2370641
! Node: Method signatures2371186
! Node: Garbage Collection2373178
! Node: Constant string objects2375868
! Node: compatibility_alias2378377
! Node: Exceptions2379102
! Node: Synchronization2381812
! Node: Fast enumeration2382996
! Node: Using fast enumeration2383308
! Node: c99-like fast enumeration syntax2384519
! Node: Fast enumeration details2385222
! Node: Fast enumeration protocol2387562
! Node: Messaging with the GNU Objective-C runtime2390714
! Node: Dynamically registering methods2392086
! Node: Forwarding hook2393777
! Node: Compatibility2396817
! Node: Gcov2403373
! Node: Gcov Intro2403908
! Node: Invoking Gcov2406626
! Node: Gcov and Optimization2429492
! Node: Gcov Data Files2433235
! Node: Cross-profiling2434644
! Node: Gcov-tool2436498
! Node: Gcov-tool Intro2436923
! Node: Invoking Gcov-tool2438893
! Node: Gcov-dump2441471
! Node: Gcov-dump Intro2441794
! Node: Invoking Gcov-dump2442061
! Node: lto-dump2442718
! Node: lto-dump Intro2443017
! Node: Invoking lto-dump2443267
! Node: Trouble2444363
! Node: Actual Bugs2445780
! Node: Interoperation2446227
! Node: Incompatibilities2453118
! Node: Fixed Headers2461270
! Node: Standard Libraries2462928
! Node: Disappointments2464300
! Node: C++ Misunderstandings2468659
! Node: Static Definitions2469470
! Node: Name lookup2470523
! Ref: Name lookup-Footnote-12475304
! Node: Temporaries2475493
! Node: Copy Assignment2477469
! Node: Non-bugs2479304
! Node: Warnings and Errors2489810
! Node: Bugs2491572
! Node: Bug Criteria2492039
! Node: Bug Reporting2494249
! Node: Service2494467
! Node: Contributing2495287
! Node: Funding2496028
! Node: GNU Project2498518
! Node: Copying2499164
! Node: GNU Free Documentation License2536672
! Node: Contributors2561790
! Node: Option Index2602763
! Node: Keyword Index2892840
  
  End Tag Table
--- 68667,69109 ----
  
  Tag Table:
  Node: Top2135
! Node: G++ and GCC4105
! Node: Standards6165
! Node: Invoking GCC20221
! Node: Option Summary25448
! Node: Overall Options82564
! Node: Invoking G++110144
! Node: C Dialect Options111667
! Node: C++ Dialect Options131325
! Node: Objective-C and Objective-C++ Dialect Options189345
! Node: Diagnostic Message Formatting Options201092
! Node: Warning Options229877
! Ref: Wtrigraphs331385
! Node: Static Analyzer Options368972
! Node: Debugging Options385753
! Node: Optimize Options405701
! Ref: Type-punning476040
! Node: Instrumentation Options591446
! Node: Preprocessor Options635093
! Ref: dashMF639940
! Ref: fdollars-in-identifiers644602
! Node: Assembler Options657927
! Node: Link Options658618
! Ref: Link Options-Footnote-1675494
! Node: Directory Options675830
! Node: Code Gen Options684233
! Node: Developer Options712745
! Node: Submodel Options754130
! Node: AArch64 Options755940
! Ref: aarch64-feature-modifiers771288
! Node: Adapteva Epiphany Options776524
! Node: AMD GCN Options782476
! Node: ARC Options784039
! Node: ARM Options805265
! Node: AVR Options846451
! Node: Blackfin Options872974
! Node: C6X Options880866
! Node: CRIS Options882409
! Node: CR16 Options885593
! Node: C-SKY Options886505
! Node: Darwin Options892232
! Node: DEC Alpha Options899673
! Node: eBPF Options911289
! Node: FR30 Options912571
! Node: FT32 Options913131
! Node: FRV Options914077
! Node: GNU/Linux Options920841
! Node: H8/300 Options922222
! Node: HPPA Options923674
! Node: IA-64 Options933206
! Node: LM32 Options941334
! Node: M32C Options941857
! Node: M32R/D Options943130
! Node: M680x0 Options946675
! Node: MCore Options960750
! Node: MeP Options962252
! Node: MicroBlaze Options966212
! Node: MIPS Options969302
! Node: MMIX Options1005841
! Node: MN10300 Options1008318
! Node: Moxie Options1010861
! Node: MSP430 Options1011348
! Node: NDS32 Options1019109
! Node: Nios II Options1021279
! Node: Nvidia PTX Options1034495
! Node: OpenRISC Options1037004
! Node: PDP-11 Options1039524
! Node: picoChip Options1040773
! Node: PowerPC Options1042911
! Node: PRU Options1043131
! Node: RISC-V Options1045340
! Node: RL78 Options1052992
! Node: RS/6000 and PowerPC Options1056767
! Node: RX Options1098283
! Node: S/390 and zSeries Options1106885
! Node: Score Options1117685
! Node: SH Options1118534
! Node: Solaris 2 Options1133674
! Node: SPARC Options1134912
! Node: System V Options1150564
! Node: TILE-Gx Options1151392
! Node: TILEPro Options1152410
! Node: V850 Options1152914
! Node: VAX Options1159601
! Node: Visium Options1160139
! Node: VMS Options1162447
! Node: VxWorks Options1163263
! Node: x86 Options1164415
! Node: x86 Windows Options1231205
! Node: Xstormy16 Options1234010
! Node: Xtensa Options1234304
! Node: zSeries Options1240440
! Node: Spec Files1240636
! Node: Environment Variables1266715
! Node: Precompiled Headers1276148
! Node: C++ Modules1282357
! Ref: C++ Modules-Footnote-11288496
! Node: C++ Module Mapper1288749
! Node: C++ Module Preprocessing1293902
! Node: C++ Compiled Module Interface1295731
! Ref: C++ Compiled Module Interface-Footnote-11299115
! Ref: C++ Compiled Module Interface-Footnote-21299204
! Node: C Implementation1299260
! Node: Translation implementation1300950
! Node: Environment implementation1301541
! Node: Identifiers implementation1302095
! Node: Characters implementation1303181
! Node: Integers implementation1306831
! Node: Floating point implementation1308880
! Node: Arrays and pointers implementation1311943
! Ref: Arrays and pointers implementation-Footnote-11313403
! Node: Hints implementation1313529
! Node: Structures unions enumerations and bit-fields implementation1315024
! Node: Qualifiers implementation1317248
! Node: Declarators implementation1319309
! Node: Statements implementation1319650
! Node: Preprocessing directives implementation1319976
! Node: Library functions implementation1322297
! Node: Architecture implementation1322946
! Node: Locale-specific behavior implementation1324591
! Node: C++ Implementation1324896
! Node: Conditionally-supported behavior1326179
! Node: Exception handling1326796
! Node: C Extensions1327263
! Node: Statement Exprs1332486
! Node: Local Labels1337858
! Node: Labels as Values1340831
! Ref: Labels as Values-Footnote-11343358
! Node: Nested Functions1343543
! Node: Nonlocal Gotos1347497
! Node: Constructing Calls1349763
! Node: Typeof1354475
! Node: Conditionals1358404
! Node: __int1281359293
! Node: Long Long1359818
! Node: Complex1361309
! Node: Floating Types1364077
! Node: Half-Precision1367544
! Node: Decimal Float1369955
! Node: Hex Floats1371809
! Node: Fixed-Point1372883
! Node: Named Address Spaces1376141
! Ref: AVR Named Address Spaces1376822
! Node: Zero Length1383434
! Node: Empty Structures1387615
! Node: Variable Length1388021
! Node: Variadic Macros1390739
! Node: Escaped Newlines1393117
! Node: Subscripting1393978
! Node: Pointer Arith1394703
! Node: Variadic Pointer Args1395280
! Node: Pointers to Arrays1396005
! Node: Initializers1396758
! Node: Compound Literals1397259
! Node: Designated Inits1400826
! Node: Case Ranges1404750
! Node: Cast to Union1405431
! Node: Mixed Labels and Declarations1407165
! Node: Function Attributes1407802
! Node: Common Function Attributes1412269
! Ref: Common Function Attributes-Footnote-11486144
! Node: AArch64 Function Attributes1486461
! Node: AMD GCN Function Attributes1492655
! Node: ARC Function Attributes1495708
! Node: ARM Function Attributes1498645
! Node: AVR Function Attributes1503784
! Node: Blackfin Function Attributes1508319
! Node: BPF Function Attributes1510816
! Node: CR16 Function Attributes1511404
! Node: C-SKY Function Attributes1511923
! Node: Epiphany Function Attributes1513222
! Node: H8/300 Function Attributes1515977
! Node: IA-64 Function Attributes1517175
! Node: M32C Function Attributes1518217
! Node: M32R/D Function Attributes1520555
! Node: m68k Function Attributes1522029
! Node: MCORE Function Attributes1522973
! Node: MeP Function Attributes1523784
! Node: MicroBlaze Function Attributes1525085
! Node: Microsoft Windows Function Attributes1526592
! Node: MIPS Function Attributes1531161
! Node: MSP430 Function Attributes1536779
! Node: NDS32 Function Attributes1540858
! Node: Nios II Function Attributes1543282
! Node: Nvidia PTX Function Attributes1544579
! Node: PowerPC Function Attributes1545194
! Node: RISC-V Function Attributes1551968
! Node: RL78 Function Attributes1553384
! Node: RX Function Attributes1554623
! Node: S/390 Function Attributes1557170
! Node: SH Function Attributes1558998
! Node: Symbian OS Function Attributes1562426
! Node: V850 Function Attributes1562762
! Node: Visium Function Attributes1563307
! Node: x86 Function Attributes1563835
! Node: Xstormy16 Function Attributes1587637
! Node: Variable Attributes1588144
! Node: Common Variable Attributes1589677
! Node: ARC Variable Attributes1610142
! Node: AVR Variable Attributes1610524
! Node: Blackfin Variable Attributes1615686
! Node: H8/300 Variable Attributes1616544
! Node: IA-64 Variable Attributes1617617
! Node: M32R/D Variable Attributes1618368
! Node: MeP Variable Attributes1619151
! Node: Microsoft Windows Variable Attributes1621244
! Node: MSP430 Variable Attributes1623697
! Node: Nvidia PTX Variable Attributes1624911
! Node: PowerPC Variable Attributes1625528
! Node: RL78 Variable Attributes1626085
! Node: V850 Variable Attributes1626504
! Node: x86 Variable Attributes1627137
! Node: Xstormy16 Variable Attributes1628193
! Node: Type Attributes1628763
! Node: Common Type Attributes1630427
! Node: ARC Type Attributes1652184
! Node: ARM Type Attributes1652656
! Node: MeP Type Attributes1653438
! Node: PowerPC Type Attributes1653840
! Node: x86 Type Attributes1654829
! Node: Label Attributes1655821
! Node: Enumerator Attributes1657848
! Node: Statement Attributes1659167
! Node: Attribute Syntax1660650
! Node: Function Prototypes1671908
! Node: C++ Comments1673688
! Node: Dollar Signs1674207
! Node: Character Escapes1674672
! Node: Alignment1674956
! Node: Inline1676609
! Node: Volatiles1681426
! Node: Using Assembly Language with C1684325
! Node: Basic Asm1685562
! Node: Extended Asm1691012
! Ref: Volatile1695126
! Ref: AssemblerTemplate1699239
! Ref: OutputOperands1703479
! Ref: FlagOutputOperands1710442
! Ref: InputOperands1713389
! Ref: Clobbers and Scratch Registers1717657
! Ref: GotoLabels1726298
! Ref: x86Operandmodifiers1729921
! Ref: x86floatingpointasmoperands1734737
! Ref: msp430Operandmodifiers1738066
! Node: Constraints1739724
! Node: Simple Constraints1740830
! Node: Multi-Alternative1748144
! Node: Modifiers1749819
! Node: Machine Constraints1752618
! Node: Asm Labels1808843
! Node: Explicit Register Variables1810463
! Ref: Explicit Reg Vars1810677
! Node: Global Register Variables1811286
! Ref: Global Reg Vars1811494
! Node: Local Register Variables1816276
! Ref: Local Reg Vars1816496
! Node: Size of an asm1820124
! Node: Alternate Keywords1821602
! Node: Incomplete Enums1823107
! Node: Function Names1823864
! Node: Return Address1825768
! Node: Vector Extensions1830355
! Node: Offsetof1840120
! Node: __sync Builtins1840953
! Node: __atomic Builtins1847396
! Node: Integer Overflow Builtins1861021
! Node: x86 specific memory model extensions for transactional memory1867504
! Node: Object Size Checking1868770
! Node: Other Builtins1875026
! Node: Target Builtins1926674
! Node: AArch64 Built-in Functions1928449
! Node: Alpha Built-in Functions1929137
! Node: Altera Nios II Built-in Functions1932185
! Node: ARC Built-in Functions1936554
! Node: ARC SIMD Built-in Functions1941766
! Node: ARM iWMMXt Built-in Functions1950662
! Node: ARM C Language Extensions (ACLE)1957658
! Node: ARM Floating Point Status and Control Intrinsics1958935
! Node: ARM ARMv8-M Security Extensions1959420
! Node: AVR Built-in Functions1960700
! Node: Blackfin Built-in Functions1964461
! Node: BPF Built-in Functions1965079
! Node: FR-V Built-in Functions1965979
! Node: Argument Types1966842
! Node: Directly-mapped Integer Functions1968596
! Node: Directly-mapped Media Functions1969680
! Node: Raw read/write Functions1977886
! Node: Other Built-in Functions1978794
! Node: MIPS DSP Built-in Functions1979980
! Node: MIPS Paired-Single Support1992477
! Node: MIPS Loongson Built-in Functions1993976
! Node: Paired-Single Arithmetic2000498
! Node: Paired-Single Built-in Functions2001446
! Node: MIPS-3D Built-in Functions2004113
! Node: MIPS SIMD Architecture (MSA) Support2009507
! Node: MIPS SIMD Architecture Built-in Functions2012347
! Node: Other MIPS Built-in Functions2039201
! Node: MSP430 Built-in Functions2040210
! Node: NDS32 Built-in Functions2041611
! Node: picoChip Built-in Functions2042904
! Node: Basic PowerPC Built-in Functions2044253
! Node: Basic PowerPC Built-in Functions Available on all Configurations2045111
! Node: Basic PowerPC Built-in Functions Available on ISA 2.052053620
! Node: Basic PowerPC Built-in Functions Available on ISA 2.062058455
! Node: Basic PowerPC Built-in Functions Available on ISA 2.072060535
! Node: Basic PowerPC Built-in Functions Available on ISA 3.02061389
! Node: Basic PowerPC Built-in Functions Available on ISA 3.12068367
! Node: PowerPC AltiVec/VSX Built-in Functions2071580
! Node: PowerPC AltiVec Built-in Functions on ISA 2.052079649
! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062105049
! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072112115
! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02121925
! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.12137642
! Node: PowerPC Hardware Transactional Memory Built-in Functions2170865
! Node: PowerPC Atomic Memory Operation Functions2179380
! Node: PowerPC Matrix-Multiply Assist Built-in Functions2181943
! Node: PRU Built-in Functions2188068
! Node: RISC-V Built-in Functions2189256
! Node: RX Built-in Functions2189667
! Node: S/390 System z Built-in Functions2193669
! Node: SH Built-in Functions2198899
! Node: SPARC VIS Built-in Functions2200627
! Node: TI C6X Built-in Functions2209158
! Node: TILE-Gx Built-in Functions2210189
! Node: TILEPro Built-in Functions2211308
! Node: x86 Built-in Functions2212408
! Node: x86 transactional memory intrinsics2276488
! Node: x86 control-flow protection intrinsics2279755
! Node: Target Format Checks2281526
! Node: Solaris Format Checks2281958
! Node: Darwin Format Checks2282384
! Node: Pragmas2283347
! Node: AArch64 Pragmas2284288
! Node: ARM Pragmas2284745
! Node: M32C Pragmas2285372
! Node: MeP Pragmas2286444
! Node: PRU Pragmas2288496
! Node: RS/6000 and PowerPC Pragmas2289074
! Node: S/390 Pragmas2289814
! Node: Darwin Pragmas2290380
! Node: Solaris Pragmas2291433
! Node: Symbol-Renaming Pragmas2292597
! Node: Structure-Layout Pragmas2294234
! Node: Weak Pragmas2296514
! Node: Diagnostic Pragmas2297249
! Node: Visibility Pragmas2301440
! Node: Push/Pop Macro Pragmas2302125
! Node: Function Specific Option Pragmas2303098
! Node: Loop-Specific Pragmas2305064
! Node: Unnamed Fields2306664
! Node: Thread-Local2308861
! Node: C99 Thread-Local Edits2310967
! Node: C++98 Thread-Local Edits2312965
! Node: Binary constants2316410
! Node: C++ Extensions2317081
! Node: C++ Volatiles2318711
! Node: Restricted Pointers2321059
! Node: Vague Linkage2322650
! Node: C++ Interface2326273
! Ref: C++ Interface-Footnote-12330070
! Node: Template Instantiation2330208
! Node: Bound member functions2336299
! Node: C++ Attributes2337831
! Node: Function Multiversioning2341903
! Node: Type Traits2343710
! Node: C++ Concepts2350660
! Node: Deprecated Features2352166
! Node: Backwards Compatibility2353991
! Node: Objective-C2355063
! Node: GNU Objective-C runtime API2355670
! Node: Modern GNU Objective-C runtime API2356677
! Node: Traditional GNU Objective-C runtime API2359113
! Node: Executing code before main2359840
! Node: What you can and what you cannot do in +load2362584
! Node: Type encoding2364954
! Node: Legacy type encoding2370095
! Node: @encode2371185
! Node: Method signatures2371730
! Node: Garbage Collection2373722
! Node: Constant string objects2376412
! Node: compatibility_alias2378921
! Node: Exceptions2379646
! Node: Synchronization2382356
! Node: Fast enumeration2383540
! Node: Using fast enumeration2383852
! Node: c99-like fast enumeration syntax2385063
! Node: Fast enumeration details2385766
! Node: Fast enumeration protocol2388106
! Node: Messaging with the GNU Objective-C runtime2391258
! Node: Dynamically registering methods2392630
! Node: Forwarding hook2394321
! Node: Compatibility2397361
! Node: Gcov2403917
! Node: Gcov Intro2404452
! Node: Invoking Gcov2407170
! Node: Gcov and Optimization2430036
! Node: Gcov Data Files2433779
! Node: Cross-profiling2435188
! Node: Gcov-tool2437042
! Node: Gcov-tool Intro2437467
! Node: Invoking Gcov-tool2439437
! Node: Gcov-dump2442015
! Node: Gcov-dump Intro2442338
! Node: Invoking Gcov-dump2442605
! Node: lto-dump2443262
! Node: lto-dump Intro2443561
! Node: Invoking lto-dump2443811
! Node: Trouble2444907
! Node: Actual Bugs2446324
! Node: Interoperation2446771
! Node: Incompatibilities2453662
! Node: Fixed Headers2461814
! Node: Standard Libraries2463472
! Node: Disappointments2464844
! Node: C++ Misunderstandings2469203
! Node: Static Definitions2470014
! Node: Name lookup2471067
! Ref: Name lookup-Footnote-12475848
! Node: Temporaries2476037
! Node: Copy Assignment2478013
! Node: Non-bugs2479848
! Node: Warnings and Errors2490354
! Node: Bugs2492116
! Node: Bug Criteria2492583
! Node: Bug Reporting2494793
! Node: Service2495011
! Node: Contributing2495831
! Node: Funding2496572
! Node: GNU Project2499062
! Node: Copying2499708
! Node: GNU Free Documentation License2537216
! Node: Contributors2562334
! Node: Option Index2603307
! Node: Keyword Index2893457
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/gcc/doc/gccinstall.info gcc-11.4.0/gcc/doc/gccinstall.info
*** gcc-11.3.0/gcc/doc/gccinstall.info	Thu Apr 21 08:20:53 2022
--- gcc-11.4.0/gcc/doc/gccinstall.info	Mon May 29 09:02:37 2023
***************
*** 1,4 ****
! This is gccinstall.info, produced by makeinfo version 6.5 from
  install.texi.
  
  Copyright (C) 1988-2021 Free Software Foundation, Inc.
--- 1,4 ----
! This is gccinstall.info, produced by makeinfo version 6.8 from
  install.texi.
  
  Copyright (C) 1988-2021 Free Software Foundation, Inc.
*************** Concept Index
*** 4877,4883 ****
  * Menu:
  
  * Binaries:                              Binaries.           (line    6)
! * build_configargs:                      Configuration.      (line 1758)
  * Configuration:                         Configuration.      (line    6)
  * configurations supported by GCC:       Configurations.     (line    6)
  * Downloading GCC:                       Downloading the source.
--- 4877,4883 ----
  * Menu:
  
  * Binaries:                              Binaries.           (line    6)
! * build_configargs:                      Configuration.      (line 1757)
  * Configuration:                         Configuration.      (line    6)
  * configurations supported by GCC:       Configurations.     (line    6)
  * Downloading GCC:                       Downloading the source.
*************** Concept Index
*** 4887,4893 ****
  * FDL, GNU Free Documentation License:   GNU Free Documentation License.
                                                               (line    6)
  * Host specific installation:            Specific.           (line    6)
! * host_configargs:                       Configuration.      (line 1762)
  * Installing GCC: Binaries:              Binaries.           (line    6)
  * Installing GCC: Building:              Building.           (line    6)
  * Installing GCC: Configuration:         Configuration.      (line    6)
--- 4887,4893 ----
  * FDL, GNU Free Documentation License:   GNU Free Documentation License.
                                                               (line    6)
  * Host specific installation:            Specific.           (line    6)
! * host_configargs:                       Configuration.      (line 1761)
  * Installing GCC: Binaries:              Binaries.           (line    6)
  * Installing GCC: Building:              Building.           (line    6)
  * Installing GCC: Configuration:         Configuration.      (line    6)
*************** Concept Index
*** 4897,4903 ****
  * Specific installation notes:           Specific.           (line    6)
  * Target specific installation:          Specific.           (line    6)
  * Target specific installation notes:    Specific.           (line    6)
! * target_configargs:                     Configuration.      (line 1766)
  * Testing:                               Testing.            (line    6)
  * Testsuite:                             Testing.            (line    6)
  
--- 4897,4903 ----
  * Specific installation notes:           Specific.           (line    6)
  * Target specific installation:          Specific.           (line    6)
  * Target specific installation notes:    Specific.           (line    6)
! * target_configargs:                     Configuration.      (line 1765)
  * Testing:                               Testing.            (line    6)
  * Testsuite:                             Testing.            (line    6)
  
*************** Node: GNU Free Documentation License189
*** 5008,5010 ****
--- 5008,5015 ----
  Node: Concept Index214684
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/gcc/doc/gccint.info gcc-11.4.0/gcc/doc/gccint.info
*** gcc-11.3.0/gcc/doc/gccint.info	Thu Apr 21 08:21:01 2022
--- gcc-11.4.0/gcc/doc/gccint.info	Mon May 29 09:02:47 2023
***************
*** 1,4 ****
! This is gccint.info, produced by makeinfo version 6.5 from gccint.texi.
  
  Copyright (C) 1988-2021 Free Software Foundation, Inc.
  
--- 1,4 ----
! This is gccint.info, produced by makeinfo version 6.8 from gccint.texi.
  
  Copyright (C) 1988-2021 Free Software Foundation, Inc.
  
*************** Copies published by the Free Software Fo
*** 47,53 ****
  development.
  
  
! File: gccint.info,  Node: Top,  Next: Contributing
  
  Introduction
  ************
--- 47,53 ----
  development.
  
  
! File: gccint.info,  Node: Top,  Next: Contributing,  Up: (dir)
  
  Introduction
  ************
*************** Introduction
*** 55,61 ****
  This manual documents the internals of the GNU compilers, including how
  to port them to new targets and some information about how to write
  front ends for new languages.  It corresponds to the compilers (GCC)
! version 11.3.0.  The use of the GNU compilers is documented in a
  separate manual.  *Note Introduction: (gcc)Top.
  
   This manual is mainly a reference manual rather than a tutorial.  It
--- 55,61 ----
  This manual documents the internals of the GNU compilers, including how
  to port them to new targets and some information about how to write
  front ends for new languages.  It corresponds to the compilers (GCC)
! version 11.4.0.  The use of the GNU compilers is documented in a
  separate manual.  *Note Introduction: (gcc)Top.
  
   This manual is mainly a reference manual rather than a tutorial.  It
*************** File: gccint.info,  Node: GIMPLE_CALL,
*** 14083,14089 ****
       call needs no further simplification.  All the call flags in
       'call_expr' are copied over to the new 'GIMPLE_CALL'.
  
!  -- GIMPLE function: gcall *gimple_build_call_vec (tree fn, 'vec<tree>'
            args)
       Identical to 'gimple_build_call' but the arguments are stored in a
       'vec<tree>'.
--- 14083,14089 ----
       call needs no further simplification.  All the call flags in
       'call_expr' are copied over to the new 'GIMPLE_CALL'.
  
!  -- GIMPLE function: gcall *gimple_build_call_vec (tree fn, vec<tree>
            args)
       Identical to 'gimple_build_call' but the arguments are stored in a
       'vec<tree>'.
*************** File: gccint.info,  Node: GIMPLE_SWITCH,
*** 14890,14896 ****
  -----------------------
  
   -- GIMPLE function: gswitch *gimple_build_switch (tree index, tree
!           default_label, 'vec'<tree> *args)
       Build a 'GIMPLE_SWITCH' statement.  'INDEX' is the index variable
       to switch on, and 'DEFAULT_LABEL' represents the default label.
       'ARGS' is a vector of 'CASE_LABEL_EXPR' trees that contain the
--- 14890,14896 ----
  -----------------------
  
   -- GIMPLE function: gswitch *gimple_build_switch (tree index, tree
!           default_label, vec<tree> *args)
       Build a 'GIMPLE_SWITCH' statement.  'INDEX' is the index variable
       to switch on, and 'DEFAULT_LABEL' represents the default label.
       'ARGS' is a vector of 'CASE_LABEL_EXPR' trees that contain the
*************** alphabetical order.
*** 48980,48986 ****
  
     * Ralf Corsepius for SH testing and minor bug fixing.
  
!    * Franc,ois-Xavier Coudert for contributions to GNU Fortran.
  
     * Stan Cox for care and feeding of the x86 port and lots of behind
       the scenes hacking.
--- 48980,48986 ----
  
     * Ralf Corsepius for SH testing and minor bug fixing.
  
!    * François-Xavier Coudert for contributions to GNU Fortran.
  
     * Stan Cox for care and feeding of the x86 port and lots of behind
       the scenes hacking.
*************** alphabetical order.
*** 49023,49029 ****
       disbursement, configuration architecture, libio maintenance, and
       early math work.
  
!    * Franc,ois Dumont for his work on libstdc++-v3, especially
       maintaining and improving 'debug-mode' and associative and
       unordered containers.
  
--- 49023,49029 ----
       disbursement, configuration architecture, libio maintenance, and
       early math work.
  
!    * François Dumont for his work on libstdc++-v3, especially
       maintaining and improving 'debug-mode' and associative and
       unordered containers.
  
*************** alphabetical order.
*** 49282,49294 ****
  
     * Weiwen Liu for testing and various bug fixes.
  
!    * Manuel Lo'pez-Iba'n~ez for improving '-Wconversion' and many other
       diagnostics fixes and improvements.
  
     * Dave Love for his ongoing work with the Fortran front end and
       runtime libraries.
  
!    * Martin von Lo"wis for internal consistency checking infrastructure,
       various C++ improvements including namespace support, and tons of
       assistance with libstdc++/compiler merges.
  
--- 49282,49294 ----
  
     * Weiwen Liu for testing and various bug fixes.
  
!    * Manuel López-Ibáñez for improving '-Wconversion' and many other
       diagnostics fixes and improvements.
  
     * Dave Love for his ongoing work with the Fortran front end and
       runtime libraries.
  
!    * Martin von Löwis for internal consistency checking infrastructure,
       various C++ improvements including namespace support, and tons of
       assistance with libstdc++/compiler merges.
  
*************** alphabetical order.
*** 49480,49486 ****
  
     * Craig Rodrigues for processing tons of bug reports.
  
!    * Ola Ro"nnerup for work on mt_alloc.
  
     * Gavin Romig-Koch for lots of behind the scenes MIPS work.
  
--- 49480,49486 ----
  
     * Craig Rodrigues for processing tons of bug reports.
  
!    * Ola Rönnerup for work on mt_alloc.
  
     * Gavin Romig-Koch for lots of behind the scenes MIPS work.
  
*************** alphabetical order.
*** 49494,49500 ****
  
     * Paul Rubin wrote most of the preprocessor.
  
!    * Pe'tur Runo'lfsson for major performance improvements in C++
       formatted I/O and large file support in C++ filebuf.
  
     * Chip Salzenberg for libstdc++ patches and improvements to locales,
--- 49494,49500 ----
  
     * Paul Rubin wrote most of the preprocessor.
  
!    * Pétur Runólfsson for major performance improvements in C++
       formatted I/O and large file support in C++ filebuf.
  
     * Chip Salzenberg for libstdc++ patches and improvements to locales,
*************** alphabetical order.
*** 49515,49521 ****
  
     * William Schelter did most of the work on the Intel 80386 support.
  
!    * Tobias Schlu"ter for work on GNU Fortran.
  
     * Bernd Schmidt for various code generation improvements and major
       work in the reload pass, serving as release manager for GCC 2.95.3,
--- 49515,49521 ----
  
     * William Schelter did most of the work on the Intel 80386 support.
  
!    * Tobias Schlüter for work on GNU Fortran.
  
     * Bernd Schmidt for various code generation improvements and major
       work in the reload pass, serving as release manager for GCC 2.95.3,
*************** contributions to testing:
*** 50012,50018 ****
  
     * Robert A. French
  
!    * Jo"rgen Freyh
  
     * Mark K. Gardner
  
--- 50012,50018 ----
  
     * Robert A. French
  
!    * Jörgen Freyh
  
     * Mark K. Gardner
  
*************** Concept Index
*** 50234,50276 ****
  * __absvsi2:                             Integer library routines.
                                                               (line  105)
  * __addda3:                              Fixed-point fractional library routines.
!                                                              (line   52)
  * __adddf3:                              Soft float library routines.
                                                               (line   22)
  * __adddq3:                              Fixed-point fractional library routines.
!                                                              (line   39)
  * __addha3:                              Fixed-point fractional library routines.
!                                                              (line   49)
  * __addhq3:                              Fixed-point fractional library routines.
!                                                              (line   37)
  * __addqq3:                              Fixed-point fractional library routines.
!                                                              (line   35)
  * __addsa3:                              Fixed-point fractional library routines.
!                                                              (line   51)
  * __addsf3:                              Soft float library routines.
                                                               (line   21)
  * __addsq3:                              Fixed-point fractional library routines.
!                                                              (line   38)
  * __addta3:                              Fixed-point fractional library routines.
!                                                              (line   53)
  * __addtf3:                              Soft float library routines.
                                                               (line   23)
  * __adduda3:                             Fixed-point fractional library routines.
!                                                              (line   59)
  * __addudq3:                             Fixed-point fractional library routines.
!                                                              (line   47)
  * __adduha3:                             Fixed-point fractional library routines.
!                                                              (line   55)
  * __adduhq3:                             Fixed-point fractional library routines.
!                                                              (line   43)
  * __adduqq3:                             Fixed-point fractional library routines.
!                                                              (line   41)
  * __addusa3:                             Fixed-point fractional library routines.
!                                                              (line   57)
  * __addusq3:                             Fixed-point fractional library routines.
!                                                              (line   45)
  * __adduta3:                             Fixed-point fractional library routines.
!                                                              (line   61)
  * __addvdi3:                             Integer library routines.
                                                               (line  110)
  * __addvsi3:                             Integer library routines.
--- 50234,50276 ----
  * __absvsi2:                             Integer library routines.
                                                               (line  105)
  * __addda3:                              Fixed-point fractional library routines.
!                                                              (line   44)
  * __adddf3:                              Soft float library routines.
                                                               (line   22)
  * __adddq3:                              Fixed-point fractional library routines.
!                                                              (line   31)
  * __addha3:                              Fixed-point fractional library routines.
!                                                              (line   41)
  * __addhq3:                              Fixed-point fractional library routines.
!                                                              (line   29)
  * __addqq3:                              Fixed-point fractional library routines.
!                                                              (line   27)
  * __addsa3:                              Fixed-point fractional library routines.
!                                                              (line   43)
  * __addsf3:                              Soft float library routines.
                                                               (line   21)
  * __addsq3:                              Fixed-point fractional library routines.
!                                                              (line   30)
  * __addta3:                              Fixed-point fractional library routines.
!                                                              (line   45)
  * __addtf3:                              Soft float library routines.
                                                               (line   23)
  * __adduda3:                             Fixed-point fractional library routines.
!                                                              (line   51)
  * __addudq3:                             Fixed-point fractional library routines.
!                                                              (line   39)
  * __adduha3:                             Fixed-point fractional library routines.
!                                                              (line   47)
  * __adduhq3:                             Fixed-point fractional library routines.
!                                                              (line   35)
  * __adduqq3:                             Fixed-point fractional library routines.
!                                                              (line   33)
  * __addusa3:                             Fixed-point fractional library routines.
!                                                              (line   49)
  * __addusq3:                             Fixed-point fractional library routines.
!                                                              (line   37)
  * __adduta3:                             Fixed-point fractional library routines.
!                                                              (line   53)
  * __addvdi3:                             Integer library routines.
                                                               (line  110)
  * __addvsi3:                             Integer library routines.
*************** Concept Index
*** 50278,50340 ****
  * __addxf3:                              Soft float library routines.
                                                               (line   25)
  * __ashlda3:                             Fixed-point fractional library routines.
!                                                              (line  358)
  * __ashldi3:                             Integer library routines.
                                                               (line   13)
  * __ashldq3:                             Fixed-point fractional library routines.
!                                                              (line  346)
  * __ashlha3:                             Fixed-point fractional library routines.
!                                                              (line  356)
  * __ashlhq3:                             Fixed-point fractional library routines.
!                                                              (line  344)
  * __ashlqq3:                             Fixed-point fractional library routines.
!                                                              (line  343)
  * __ashlsa3:                             Fixed-point fractional library routines.
!                                                              (line  357)
  * __ashlsi3:                             Integer library routines.
                                                               (line   12)
  * __ashlsq3:                             Fixed-point fractional library routines.
!                                                              (line  345)
  * __ashlta3:                             Fixed-point fractional library routines.
!                                                              (line  359)
  * __ashlti3:                             Integer library routines.
                                                               (line   14)
  * __ashluda3:                            Fixed-point fractional library routines.
!                                                              (line  365)
  * __ashludq3:                            Fixed-point fractional library routines.
!                                                              (line  354)
  * __ashluha3:                            Fixed-point fractional library routines.
!                                                              (line  361)
  * __ashluhq3:                            Fixed-point fractional library routines.
!                                                              (line  350)
  * __ashluqq3:                            Fixed-point fractional library routines.
!                                                              (line  348)
  * __ashlusa3:                            Fixed-point fractional library routines.
!                                                              (line  363)
  * __ashlusq3:                            Fixed-point fractional library routines.
!                                                              (line  352)
  * __ashluta3:                            Fixed-point fractional library routines.
!                                                              (line  367)
  * __ashrda3:                             Fixed-point fractional library routines.
!                                                              (line  378)
  * __ashrdi3:                             Integer library routines.
                                                               (line   18)
  * __ashrdq3:                             Fixed-point fractional library routines.
!                                                              (line  374)
  * __ashrha3:                             Fixed-point fractional library routines.
!                                                              (line  376)
  * __ashrhq3:                             Fixed-point fractional library routines.
!                                                              (line  372)
  * __ashrqq3:                             Fixed-point fractional library routines.
!                                                              (line  371)
  * __ashrsa3:                             Fixed-point fractional library routines.
!                                                              (line  377)
  * __ashrsi3:                             Integer library routines.
                                                               (line   17)
  * __ashrsq3:                             Fixed-point fractional library routines.
!                                                              (line  373)
  * __ashrta3:                             Fixed-point fractional library routines.
!                                                              (line  379)
  * __ashrti3:                             Integer library routines.
                                                               (line   19)
  * __bid_adddd3:                          Decimal float library routines.
--- 50278,50340 ----
  * __addxf3:                              Soft float library routines.
                                                               (line   25)
  * __ashlda3:                             Fixed-point fractional library routines.
!                                                              (line  350)
  * __ashldi3:                             Integer library routines.
                                                               (line   13)
  * __ashldq3:                             Fixed-point fractional library routines.
!                                                              (line  338)
  * __ashlha3:                             Fixed-point fractional library routines.
!                                                              (line  348)
  * __ashlhq3:                             Fixed-point fractional library routines.
!                                                              (line  336)
  * __ashlqq3:                             Fixed-point fractional library routines.
!                                                              (line  335)
  * __ashlsa3:                             Fixed-point fractional library routines.
!                                                              (line  349)
  * __ashlsi3:                             Integer library routines.
                                                               (line   12)
  * __ashlsq3:                             Fixed-point fractional library routines.
!                                                              (line  337)
  * __ashlta3:                             Fixed-point fractional library routines.
!                                                              (line  351)
  * __ashlti3:                             Integer library routines.
                                                               (line   14)
  * __ashluda3:                            Fixed-point fractional library routines.
!                                                              (line  357)
  * __ashludq3:                            Fixed-point fractional library routines.
!                                                              (line  346)
  * __ashluha3:                            Fixed-point fractional library routines.
!                                                              (line  353)
  * __ashluhq3:                            Fixed-point fractional library routines.
!                                                              (line  342)
  * __ashluqq3:                            Fixed-point fractional library routines.
!                                                              (line  340)
  * __ashlusa3:                            Fixed-point fractional library routines.
!                                                              (line  355)
  * __ashlusq3:                            Fixed-point fractional library routines.
!                                                              (line  344)
  * __ashluta3:                            Fixed-point fractional library routines.
!                                                              (line  359)
  * __ashrda3:                             Fixed-point fractional library routines.
!                                                              (line  370)
  * __ashrdi3:                             Integer library routines.
                                                               (line   18)
  * __ashrdq3:                             Fixed-point fractional library routines.
!                                                              (line  366)
  * __ashrha3:                             Fixed-point fractional library routines.
!                                                              (line  368)
  * __ashrhq3:                             Fixed-point fractional library routines.
!                                                              (line  364)
  * __ashrqq3:                             Fixed-point fractional library routines.
!                                                              (line  363)
  * __ashrsa3:                             Fixed-point fractional library routines.
!                                                              (line  369)
  * __ashrsi3:                             Integer library routines.
                                                               (line   17)
  * __ashrsq3:                             Fixed-point fractional library routines.
!                                                              (line  365)
  * __ashrta3:                             Fixed-point fractional library routines.
!                                                              (line  371)
  * __ashrti3:                             Integer library routines.
                                                               (line   19)
  * __bid_adddd3:                          Decimal float library routines.
*************** Concept Index
*** 50533,50579 ****
  * __clzti2:                              Integer library routines.
                                                               (line  131)
  * __cmpda2:                              Fixed-point fractional library routines.
!                                                              (line  458)
  * __cmpdf2:                              Soft float library routines.
                                                               (line  163)
  * __cmpdi2:                              Integer library routines.
                                                               (line   86)
  * __cmpdq2:                              Fixed-point fractional library routines.
!                                                              (line  447)
  * __cmpha2:                              Fixed-point fractional library routines.
!                                                              (line  456)
  * __cmphq2:                              Fixed-point fractional library routines.
!                                                              (line  445)
  * __cmpqq2:                              Fixed-point fractional library routines.
!                                                              (line  444)
  * __cmpsa2:                              Fixed-point fractional library routines.
!                                                              (line  457)
  * __cmpsf2:                              Soft float library routines.
                                                               (line  162)
  * __cmpsq2:                              Fixed-point fractional library routines.
!                                                              (line  446)
  * __cmpta2:                              Fixed-point fractional library routines.
!                                                              (line  459)
  * __cmptf2:                              Soft float library routines.
                                                               (line  164)
  * __cmpti2:                              Integer library routines.
                                                               (line   87)
  * __cmpuda2:                             Fixed-point fractional library routines.
!                                                              (line  464)
  * __cmpudq2:                             Fixed-point fractional library routines.
!                                                              (line  454)
  * __cmpuha2:                             Fixed-point fractional library routines.
!                                                              (line  461)
  * __cmpuhq2:                             Fixed-point fractional library routines.
!                                                              (line  451)
  * __cmpuqq2:                             Fixed-point fractional library routines.
!                                                              (line  449)
  * __cmpusa2:                             Fixed-point fractional library routines.
!                                                              (line  463)
  * __cmpusq2:                             Fixed-point fractional library routines.
!                                                              (line  452)
  * __cmputa2:                             Fixed-point fractional library routines.
!                                                              (line  466)
  * __CTOR_LIST__:                         Initialization.     (line   25)
  * __ctzdi2:                              Integer library routines.
                                                               (line  137)
--- 50533,50579 ----
  * __clzti2:                              Integer library routines.
                                                               (line  131)
  * __cmpda2:                              Fixed-point fractional library routines.
!                                                              (line  450)
  * __cmpdf2:                              Soft float library routines.
                                                               (line  163)
  * __cmpdi2:                              Integer library routines.
                                                               (line   86)
  * __cmpdq2:                              Fixed-point fractional library routines.
!                                                              (line  439)
  * __cmpha2:                              Fixed-point fractional library routines.
!                                                              (line  448)
  * __cmphq2:                              Fixed-point fractional library routines.
!                                                              (line  437)
  * __cmpqq2:                              Fixed-point fractional library routines.
!                                                              (line  436)
  * __cmpsa2:                              Fixed-point fractional library routines.
!                                                              (line  449)
  * __cmpsf2:                              Soft float library routines.
                                                               (line  162)
  * __cmpsq2:                              Fixed-point fractional library routines.
!                                                              (line  438)
  * __cmpta2:                              Fixed-point fractional library routines.
!                                                              (line  451)
  * __cmptf2:                              Soft float library routines.
                                                               (line  164)
  * __cmpti2:                              Integer library routines.
                                                               (line   87)
  * __cmpuda2:                             Fixed-point fractional library routines.
!                                                              (line  456)
  * __cmpudq2:                             Fixed-point fractional library routines.
!                                                              (line  446)
  * __cmpuha2:                             Fixed-point fractional library routines.
!                                                              (line  453)
  * __cmpuhq2:                             Fixed-point fractional library routines.
!                                                              (line  443)
  * __cmpuqq2:                             Fixed-point fractional library routines.
!                                                              (line  441)
  * __cmpusa2:                             Fixed-point fractional library routines.
!                                                              (line  455)
  * __cmpusq2:                             Fixed-point fractional library routines.
!                                                              (line  444)
  * __cmputa2:                             Fixed-point fractional library routines.
!                                                              (line  458)
  * __CTOR_LIST__:                         Initialization.     (line   25)
  * __ctzdi2:                              Integer library routines.
                                                               (line  137)
*************** Concept Index
*** 50582,50588 ****
  * __ctzti2:                              Integer library routines.
                                                               (line  138)
  * __divda3:                              Fixed-point fractional library routines.
!                                                              (line  234)
  * __divdc3:                              Soft float library routines.
                                                               (line  250)
  * __divdf3:                              Soft float library routines.
--- 50582,50588 ----
  * __ctzti2:                              Integer library routines.
                                                               (line  138)
  * __divda3:                              Fixed-point fractional library routines.
!                                                              (line  226)
  * __divdc3:                              Soft float library routines.
                                                               (line  250)
  * __divdf3:                              Soft float library routines.
*************** Concept Index
*** 50590,50604 ****
  * __divdi3:                              Integer library routines.
                                                               (line   24)
  * __divdq3:                              Fixed-point fractional library routines.
!                                                              (line  229)
  * __divha3:                              Fixed-point fractional library routines.
!                                                              (line  231)
  * __divhq3:                              Fixed-point fractional library routines.
!                                                              (line  227)
  * __divqq3:                              Fixed-point fractional library routines.
!                                                              (line  225)
  * __divsa3:                              Fixed-point fractional library routines.
!                                                              (line  233)
  * __divsc3:                              Soft float library routines.
                                                               (line  248)
  * __divsf3:                              Soft float library routines.
--- 50590,50604 ----
  * __divdi3:                              Integer library routines.
                                                               (line   24)
  * __divdq3:                              Fixed-point fractional library routines.
!                                                              (line  221)
  * __divha3:                              Fixed-point fractional library routines.
!                                                              (line  223)
  * __divhq3:                              Fixed-point fractional library routines.
!                                                              (line  219)
  * __divqq3:                              Fixed-point fractional library routines.
!                                                              (line  217)
  * __divsa3:                              Fixed-point fractional library routines.
!                                                              (line  225)
  * __divsc3:                              Soft float library routines.
                                                               (line  248)
  * __divsf3:                              Soft float library routines.
*************** Concept Index
*** 50606,50614 ****
  * __divsi3:                              Integer library routines.
                                                               (line   23)
  * __divsq3:                              Fixed-point fractional library routines.
!                                                              (line  228)
  * __divta3:                              Fixed-point fractional library routines.
!                                                              (line  235)
  * __divtc3:                              Soft float library routines.
                                                               (line  252)
  * __divtf3:                              Soft float library routines.
--- 50606,50614 ----
  * __divsi3:                              Integer library routines.
                                                               (line   23)
  * __divsq3:                              Fixed-point fractional library routines.
!                                                              (line  220)
  * __divta3:                              Fixed-point fractional library routines.
!                                                              (line  227)
  * __divtc3:                              Soft float library routines.
                                                               (line  252)
  * __divtf3:                              Soft float library routines.
*************** Concept Index
*** 50917,52169 ****
  * __floatuntixf:                         Soft float library routines.
                                                               (line  153)
  * __fractdadf:                           Fixed-point fractional library routines.
!                                                              (line  643)
  * __fractdadi:                           Fixed-point fractional library routines.
!                                                              (line  640)
  * __fractdadq:                           Fixed-point fractional library routines.
!                                                              (line  623)
  * __fractdaha2:                          Fixed-point fractional library routines.
!                                                              (line  624)
  * __fractdahi:                           Fixed-point fractional library routines.
!                                                              (line  638)
  * __fractdahq:                           Fixed-point fractional library routines.
!                                                              (line  621)
  * __fractdaqi:                           Fixed-point fractional library routines.
!                                                              (line  637)
  * __fractdaqq:                           Fixed-point fractional library routines.
!                                                              (line  620)
  * __fractdasa2:                          Fixed-point fractional library routines.
!                                                              (line  625)
  * __fractdasf:                           Fixed-point fractional library routines.
!                                                              (line  642)
  * __fractdasi:                           Fixed-point fractional library routines.
!                                                              (line  639)
  * __fractdasq:                           Fixed-point fractional library routines.
!                                                              (line  622)
  * __fractdata2:                          Fixed-point fractional library routines.
!                                                              (line  626)
  * __fractdati:                           Fixed-point fractional library routines.
!                                                              (line  641)
  * __fractdauda:                          Fixed-point fractional library routines.
!                                                              (line  634)
  * __fractdaudq:                          Fixed-point fractional library routines.
!                                                              (line  630)
  * __fractdauha:                          Fixed-point fractional library routines.
!                                                              (line  632)
  * __fractdauhq:                          Fixed-point fractional library routines.
!                                                              (line  628)
  * __fractdauqq:                          Fixed-point fractional library routines.
!                                                              (line  627)
  * __fractdausa:                          Fixed-point fractional library routines.
!                                                              (line  633)
  * __fractdausq:                          Fixed-point fractional library routines.
!                                                              (line  629)
  * __fractdauta:                          Fixed-point fractional library routines.
!                                                              (line  635)
  * __fractdfda:                           Fixed-point fractional library routines.
!                                                              (line 1032)
  * __fractdfdq:                           Fixed-point fractional library routines.
!                                                              (line 1029)
  * __fractdfha:                           Fixed-point fractional library routines.
!                                                              (line 1030)
  * __fractdfhq:                           Fixed-point fractional library routines.
!                                                              (line 1027)
  * __fractdfqq:                           Fixed-point fractional library routines.
!                                                              (line 1026)
  * __fractdfsa:                           Fixed-point fractional library routines.
!                                                              (line 1031)
  * __fractdfsq:                           Fixed-point fractional library routines.
!                                                              (line 1028)
  * __fractdfta:                           Fixed-point fractional library routines.
!                                                              (line 1033)
  * __fractdfuda:                          Fixed-point fractional library routines.
!                                                              (line 1040)
  * __fractdfudq:                          Fixed-point fractional library routines.
!                                                              (line 1037)
  * __fractdfuha:                          Fixed-point fractional library routines.
!                                                              (line 1038)
  * __fractdfuhq:                          Fixed-point fractional library routines.
!                                                              (line 1035)
  * __fractdfuqq:                          Fixed-point fractional library routines.
!                                                              (line 1034)
  * __fractdfusa:                          Fixed-point fractional library routines.
!                                                              (line 1039)
  * __fractdfusq:                          Fixed-point fractional library routines.
!                                                              (line 1036)
  * __fractdfuta:                          Fixed-point fractional library routines.
!                                                              (line 1041)
  * __fractdida:                           Fixed-point fractional library routines.
!                                                              (line  982)
  * __fractdidq:                           Fixed-point fractional library routines.
!                                                              (line  979)
  * __fractdiha:                           Fixed-point fractional library routines.
!                                                              (line  980)
  * __fractdihq:                           Fixed-point fractional library routines.
!                                                              (line  977)
  * __fractdiqq:                           Fixed-point fractional library routines.
!                                                              (line  976)
  * __fractdisa:                           Fixed-point fractional library routines.
!                                                              (line  981)
  * __fractdisq:                           Fixed-point fractional library routines.
!                                                              (line  978)
  * __fractdita:                           Fixed-point fractional library routines.
!                                                              (line  983)
  * __fractdiuda:                          Fixed-point fractional library routines.
!                                                              (line  990)
  * __fractdiudq:                          Fixed-point fractional library routines.
!                                                              (line  987)
  * __fractdiuha:                          Fixed-point fractional library routines.
!                                                              (line  988)
  * __fractdiuhq:                          Fixed-point fractional library routines.
!                                                              (line  985)
  * __fractdiuqq:                          Fixed-point fractional library routines.
!                                                              (line  984)
  * __fractdiusa:                          Fixed-point fractional library routines.
!                                                              (line  989)
  * __fractdiusq:                          Fixed-point fractional library routines.
!                                                              (line  986)
  * __fractdiuta:                          Fixed-point fractional library routines.
!                                                              (line  991)
  * __fractdqda:                           Fixed-point fractional library routines.
!                                                              (line  551)
  * __fractdqdf:                           Fixed-point fractional library routines.
!                                                              (line  573)
  * __fractdqdi:                           Fixed-point fractional library routines.
!                                                              (line  570)
  * __fractdqha:                           Fixed-point fractional library routines.
!                                                              (line  549)
  * __fractdqhi:                           Fixed-point fractional library routines.
!                                                              (line  568)
  * __fractdqhq2:                          Fixed-point fractional library routines.
!                                                              (line  547)
  * __fractdqqi:                           Fixed-point fractional library routines.
!                                                              (line  567)
  * __fractdqqq2:                          Fixed-point fractional library routines.
!                                                              (line  546)
  * __fractdqsa:                           Fixed-point fractional library routines.
!                                                              (line  550)
  * __fractdqsf:                           Fixed-point fractional library routines.
!                                                              (line  572)
  * __fractdqsi:                           Fixed-point fractional library routines.
!                                                              (line  569)
  * __fractdqsq2:                          Fixed-point fractional library routines.
!                                                              (line  548)
  * __fractdqta:                           Fixed-point fractional library routines.
!                                                              (line  552)
  * __fractdqti:                           Fixed-point fractional library routines.
-                                                              (line  571)
- * __fractdquda:                          Fixed-point fractional library routines.
                                                               (line  563)
  * __fractdqudq:                          Fixed-point fractional library routines.
!                                                              (line  558)
  * __fractdquha:                          Fixed-point fractional library routines.
!                                                              (line  560)
  * __fractdquhq:                          Fixed-point fractional library routines.
!                                                              (line  555)
  * __fractdquqq:                          Fixed-point fractional library routines.
!                                                              (line  553)
  * __fractdqusa:                          Fixed-point fractional library routines.
!                                                              (line  562)
  * __fractdqusq:                          Fixed-point fractional library routines.
!                                                              (line  556)
  * __fractdquta:                          Fixed-point fractional library routines.
!                                                              (line  565)
  * __fracthada2:                          Fixed-point fractional library routines.
!                                                              (line  579)
  * __fracthadf:                           Fixed-point fractional library routines.
!                                                              (line  597)
  * __fracthadi:                           Fixed-point fractional library routines.
!                                                              (line  594)
  * __fracthadq:                           Fixed-point fractional library routines.
!                                                              (line  577)
  * __fracthahi:                           Fixed-point fractional library routines.
!                                                              (line  592)
  * __fracthahq:                           Fixed-point fractional library routines.
!                                                              (line  575)
  * __fracthaqi:                           Fixed-point fractional library routines.
!                                                              (line  591)
  * __fracthaqq:                           Fixed-point fractional library routines.
!                                                              (line  574)
  * __fracthasa2:                          Fixed-point fractional library routines.
!                                                              (line  578)
  * __fracthasf:                           Fixed-point fractional library routines.
!                                                              (line  596)
  * __fracthasi:                           Fixed-point fractional library routines.
!                                                              (line  593)
  * __fracthasq:                           Fixed-point fractional library routines.
!                                                              (line  576)
  * __fracthata2:                          Fixed-point fractional library routines.
!                                                              (line  580)
  * __fracthati:                           Fixed-point fractional library routines.
!                                                              (line  595)
  * __fracthauda:                          Fixed-point fractional library routines.
!                                                              (line  588)
  * __fracthaudq:                          Fixed-point fractional library routines.
!                                                              (line  584)
  * __fracthauha:                          Fixed-point fractional library routines.
!                                                              (line  586)
  * __fracthauhq:                          Fixed-point fractional library routines.
!                                                              (line  582)
  * __fracthauqq:                          Fixed-point fractional library routines.
!                                                              (line  581)
  * __fracthausa:                          Fixed-point fractional library routines.
!                                                              (line  587)
  * __fracthausq:                          Fixed-point fractional library routines.
!                                                              (line  583)
  * __fracthauta:                          Fixed-point fractional library routines.
!                                                              (line  589)
  * __fracthida:                           Fixed-point fractional library routines.
!                                                              (line  950)
  * __fracthidq:                           Fixed-point fractional library routines.
!                                                              (line  947)
  * __fracthiha:                           Fixed-point fractional library routines.
!                                                              (line  948)
  * __fracthihq:                           Fixed-point fractional library routines.
!                                                              (line  945)
  * __fracthiqq:                           Fixed-point fractional library routines.
!                                                              (line  944)
  * __fracthisa:                           Fixed-point fractional library routines.
!                                                              (line  949)
  * __fracthisq:                           Fixed-point fractional library routines.
!                                                              (line  946)
  * __fracthita:                           Fixed-point fractional library routines.
!                                                              (line  951)
  * __fracthiuda:                          Fixed-point fractional library routines.
!                                                              (line  958)
  * __fracthiudq:                          Fixed-point fractional library routines.
!                                                              (line  955)
  * __fracthiuha:                          Fixed-point fractional library routines.
!                                                              (line  956)
  * __fracthiuhq:                          Fixed-point fractional library routines.
!                                                              (line  953)
  * __fracthiuqq:                          Fixed-point fractional library routines.
!                                                              (line  952)
  * __fracthiusa:                          Fixed-point fractional library routines.
!                                                              (line  957)
  * __fracthiusq:                          Fixed-point fractional library routines.
!                                                              (line  954)
  * __fracthiuta:                          Fixed-point fractional library routines.
!                                                              (line  959)
  * __fracthqda:                           Fixed-point fractional library routines.
!                                                              (line  505)
  * __fracthqdf:                           Fixed-point fractional library routines.
!                                                              (line  521)
  * __fracthqdi:                           Fixed-point fractional library routines.
!                                                              (line  518)
  * __fracthqdq2:                          Fixed-point fractional library routines.
!                                                              (line  502)
  * __fracthqha:                           Fixed-point fractional library routines.
!                                                              (line  503)
  * __fracthqhi:                           Fixed-point fractional library routines.
!                                                              (line  516)
  * __fracthqqi:                           Fixed-point fractional library routines.
!                                                              (line  515)
  * __fracthqqq2:                          Fixed-point fractional library routines.
!                                                              (line  500)
  * __fracthqsa:                           Fixed-point fractional library routines.
!                                                              (line  504)
  * __fracthqsf:                           Fixed-point fractional library routines.
!                                                              (line  520)
  * __fracthqsi:                           Fixed-point fractional library routines.
!                                                              (line  517)
  * __fracthqsq2:                          Fixed-point fractional library routines.
!                                                              (line  501)
  * __fracthqta:                           Fixed-point fractional library routines.
!                                                              (line  506)
  * __fracthqti:                           Fixed-point fractional library routines.
!                                                              (line  519)
  * __fracthquda:                          Fixed-point fractional library routines.
!                                                              (line  513)
  * __fracthqudq:                          Fixed-point fractional library routines.
!                                                              (line  510)
  * __fracthquha:                          Fixed-point fractional library routines.
!                                                              (line  511)
  * __fracthquhq:                          Fixed-point fractional library routines.
!                                                              (line  508)
  * __fracthquqq:                          Fixed-point fractional library routines.
!                                                              (line  507)
  * __fracthqusa:                          Fixed-point fractional library routines.
!                                                              (line  512)
  * __fracthqusq:                          Fixed-point fractional library routines.
!                                                              (line  509)
  * __fracthquta:                          Fixed-point fractional library routines.
!                                                              (line  514)
  * __fractqida:                           Fixed-point fractional library routines.
!                                                              (line  932)
  * __fractqidq:                           Fixed-point fractional library routines.
!                                                              (line  929)
  * __fractqiha:                           Fixed-point fractional library routines.
!                                                              (line  930)
  * __fractqihq:                           Fixed-point fractional library routines.
!                                                              (line  927)
  * __fractqiqq:                           Fixed-point fractional library routines.
!                                                              (line  926)
  * __fractqisa:                           Fixed-point fractional library routines.
!                                                              (line  931)
  * __fractqisq:                           Fixed-point fractional library routines.
!                                                              (line  928)
  * __fractqita:                           Fixed-point fractional library routines.
!                                                              (line  933)
  * __fractqiuda:                          Fixed-point fractional library routines.
!                                                              (line  941)
  * __fractqiudq:                          Fixed-point fractional library routines.
!                                                              (line  937)
  * __fractqiuha:                          Fixed-point fractional library routines.
!                                                              (line  939)
  * __fractqiuhq:                          Fixed-point fractional library routines.
!                                                              (line  935)
  * __fractqiuqq:                          Fixed-point fractional library routines.
!                                                              (line  934)
  * __fractqiusa:                          Fixed-point fractional library routines.
!                                                              (line  940)
  * __fractqiusq:                          Fixed-point fractional library routines.
!                                                              (line  936)
  * __fractqiuta:                          Fixed-point fractional library routines.
!                                                              (line  942)
  * __fractqqda:                           Fixed-point fractional library routines.
!                                                              (line  481)
  * __fractqqdf:                           Fixed-point fractional library routines.
!                                                              (line  499)
  * __fractqqdi:                           Fixed-point fractional library routines.
!                                                              (line  496)
  * __fractqqdq2:                          Fixed-point fractional library routines.
!                                                              (line  478)
  * __fractqqha:                           Fixed-point fractional library routines.
!                                                              (line  479)
  * __fractqqhi:                           Fixed-point fractional library routines.
!                                                              (line  494)
  * __fractqqhq2:                          Fixed-point fractional library routines.
!                                                              (line  476)
  * __fractqqqi:                           Fixed-point fractional library routines.
!                                                              (line  493)
  * __fractqqsa:                           Fixed-point fractional library routines.
!                                                              (line  480)
  * __fractqqsf:                           Fixed-point fractional library routines.
!                                                              (line  498)
  * __fractqqsi:                           Fixed-point fractional library routines.
!                                                              (line  495)
  * __fractqqsq2:                          Fixed-point fractional library routines.
!                                                              (line  477)
  * __fractqqta:                           Fixed-point fractional library routines.
!                                                              (line  482)
  * __fractqqti:                           Fixed-point fractional library routines.
!                                                              (line  497)
  * __fractqquda:                          Fixed-point fractional library routines.
!                                                              (line  490)
  * __fractqqudq:                          Fixed-point fractional library routines.
!                                                              (line  486)
  * __fractqquha:                          Fixed-point fractional library routines.
!                                                              (line  488)
  * __fractqquhq:                          Fixed-point fractional library routines.
!                                                              (line  484)
  * __fractqquqq:                          Fixed-point fractional library routines.
!                                                              (line  483)
  * __fractqqusa:                          Fixed-point fractional library routines.
!                                                              (line  489)
  * __fractqqusq:                          Fixed-point fractional library routines.
!                                                              (line  485)
  * __fractqquta:                          Fixed-point fractional library routines.
!                                                              (line  491)
  * __fractsada2:                          Fixed-point fractional library routines.
!                                                              (line  603)
  * __fractsadf:                           Fixed-point fractional library routines.
!                                                              (line  619)
  * __fractsadi:                           Fixed-point fractional library routines.
!                                                              (line  616)
  * __fractsadq:                           Fixed-point fractional library routines.
!                                                              (line  601)
  * __fractsaha2:                          Fixed-point fractional library routines.
!                                                              (line  602)
  * __fractsahi:                           Fixed-point fractional library routines.
!                                                              (line  614)
  * __fractsahq:                           Fixed-point fractional library routines.
!                                                              (line  599)
  * __fractsaqi:                           Fixed-point fractional library routines.
!                                                              (line  613)
  * __fractsaqq:                           Fixed-point fractional library routines.
!                                                              (line  598)
  * __fractsasf:                           Fixed-point fractional library routines.
!                                                              (line  618)
  * __fractsasi:                           Fixed-point fractional library routines.
!                                                              (line  615)
  * __fractsasq:                           Fixed-point fractional library routines.
!                                                              (line  600)
  * __fractsata2:                          Fixed-point fractional library routines.
!                                                              (line  604)
  * __fractsati:                           Fixed-point fractional library routines.
!                                                              (line  617)
  * __fractsauda:                          Fixed-point fractional library routines.
!                                                              (line  611)
  * __fractsaudq:                          Fixed-point fractional library routines.
!                                                              (line  608)
  * __fractsauha:                          Fixed-point fractional library routines.
!                                                              (line  609)
  * __fractsauhq:                          Fixed-point fractional library routines.
!                                                              (line  606)
  * __fractsauqq:                          Fixed-point fractional library routines.
!                                                              (line  605)
  * __fractsausa:                          Fixed-point fractional library routines.
!                                                              (line  610)
  * __fractsausq:                          Fixed-point fractional library routines.
!                                                              (line  607)
  * __fractsauta:                          Fixed-point fractional library routines.
!                                                              (line  612)
  * __fractsfda:                           Fixed-point fractional library routines.
!                                                              (line 1016)
  * __fractsfdq:                           Fixed-point fractional library routines.
!                                                              (line 1013)
  * __fractsfha:                           Fixed-point fractional library routines.
!                                                              (line 1014)
  * __fractsfhq:                           Fixed-point fractional library routines.
!                                                              (line 1011)
  * __fractsfqq:                           Fixed-point fractional library routines.
!                                                              (line 1010)
  * __fractsfsa:                           Fixed-point fractional library routines.
!                                                              (line 1015)
  * __fractsfsq:                           Fixed-point fractional library routines.
!                                                              (line 1012)
  * __fractsfta:                           Fixed-point fractional library routines.
!                                                              (line 1017)
  * __fractsfuda:                          Fixed-point fractional library routines.
!                                                              (line 1024)
  * __fractsfudq:                          Fixed-point fractional library routines.
!                                                              (line 1021)
  * __fractsfuha:                          Fixed-point fractional library routines.
!                                                              (line 1022)
  * __fractsfuhq:                          Fixed-point fractional library routines.
!                                                              (line 1019)
  * __fractsfuqq:                          Fixed-point fractional library routines.
!                                                              (line 1018)
  * __fractsfusa:                          Fixed-point fractional library routines.
!                                                              (line 1023)
  * __fractsfusq:                          Fixed-point fractional library routines.
!                                                              (line 1020)
  * __fractsfuta:                          Fixed-point fractional library routines.
!                                                              (line 1025)
  * __fractsida:                           Fixed-point fractional library routines.
!                                                              (line  966)
  * __fractsidq:                           Fixed-point fractional library routines.
!                                                              (line  963)
  * __fractsiha:                           Fixed-point fractional library routines.
!                                                              (line  964)
  * __fractsihq:                           Fixed-point fractional library routines.
!                                                              (line  961)
  * __fractsiqq:                           Fixed-point fractional library routines.
!                                                              (line  960)
  * __fractsisa:                           Fixed-point fractional library routines.
!                                                              (line  965)
  * __fractsisq:                           Fixed-point fractional library routines.
!                                                              (line  962)
  * __fractsita:                           Fixed-point fractional library routines.
!                                                              (line  967)
  * __fractsiuda:                          Fixed-point fractional library routines.
!                                                              (line  974)
  * __fractsiudq:                          Fixed-point fractional library routines.
!                                                              (line  971)
  * __fractsiuha:                          Fixed-point fractional library routines.
!                                                              (line  972)
  * __fractsiuhq:                          Fixed-point fractional library routines.
!                                                              (line  969)
  * __fractsiuqq:                          Fixed-point fractional library routines.
!                                                              (line  968)
  * __fractsiusa:                          Fixed-point fractional library routines.
!                                                              (line  973)
  * __fractsiusq:                          Fixed-point fractional library routines.
!                                                              (line  970)
  * __fractsiuta:                          Fixed-point fractional library routines.
!                                                              (line  975)
  * __fractsqda:                           Fixed-point fractional library routines.
!                                                              (line  527)
  * __fractsqdf:                           Fixed-point fractional library routines.
!                                                              (line  545)
  * __fractsqdi:                           Fixed-point fractional library routines.
!                                                              (line  542)
  * __fractsqdq2:                          Fixed-point fractional library routines.
!                                                              (line  524)
  * __fractsqha:                           Fixed-point fractional library routines.
!                                                              (line  525)
  * __fractsqhi:                           Fixed-point fractional library routines.
!                                                              (line  540)
  * __fractsqhq2:                          Fixed-point fractional library routines.
!                                                              (line  523)
  * __fractsqqi:                           Fixed-point fractional library routines.
!                                                              (line  539)
  * __fractsqqq2:                          Fixed-point fractional library routines.
!                                                              (line  522)
  * __fractsqsa:                           Fixed-point fractional library routines.
!                                                              (line  526)
  * __fractsqsf:                           Fixed-point fractional library routines.
!                                                              (line  544)
  * __fractsqsi:                           Fixed-point fractional library routines.
!                                                              (line  541)
  * __fractsqta:                           Fixed-point fractional library routines.
!                                                              (line  528)
  * __fractsqti:                           Fixed-point fractional library routines.
!                                                              (line  543)
  * __fractsquda:                          Fixed-point fractional library routines.
!                                                              (line  536)
  * __fractsqudq:                          Fixed-point fractional library routines.
!                                                              (line  532)
  * __fractsquha:                          Fixed-point fractional library routines.
!                                                              (line  534)
  * __fractsquhq:                          Fixed-point fractional library routines.
!                                                              (line  530)
  * __fractsquqq:                          Fixed-point fractional library routines.
!                                                              (line  529)
  * __fractsqusa:                          Fixed-point fractional library routines.
!                                                              (line  535)
  * __fractsqusq:                          Fixed-point fractional library routines.
!                                                              (line  531)
  * __fractsquta:                          Fixed-point fractional library routines.
!                                                              (line  537)
  * __fracttada2:                          Fixed-point fractional library routines.
!                                                              (line  650)
  * __fracttadf:                           Fixed-point fractional library routines.
!                                                              (line  671)
  * __fracttadi:                           Fixed-point fractional library routines.
!                                                              (line  668)
  * __fracttadq:                           Fixed-point fractional library routines.
!                                                              (line  647)
  * __fracttaha2:                          Fixed-point fractional library routines.
!                                                              (line  648)
  * __fracttahi:                           Fixed-point fractional library routines.
!                                                              (line  666)
  * __fracttahq:                           Fixed-point fractional library routines.
!                                                              (line  645)
  * __fracttaqi:                           Fixed-point fractional library routines.
!                                                              (line  665)
  * __fracttaqq:                           Fixed-point fractional library routines.
!                                                              (line  644)
  * __fracttasa2:                          Fixed-point fractional library routines.
!                                                              (line  649)
  * __fracttasf:                           Fixed-point fractional library routines.
!                                                              (line  670)
  * __fracttasi:                           Fixed-point fractional library routines.
!                                                              (line  667)
  * __fracttasq:                           Fixed-point fractional library routines.
!                                                              (line  646)
  * __fracttati:                           Fixed-point fractional library routines.
-                                                              (line  669)
- * __fracttauda:                          Fixed-point fractional library routines.
                                                               (line  661)
  * __fracttaudq:                          Fixed-point fractional library routines.
!                                                              (line  656)
  * __fracttauha:                          Fixed-point fractional library routines.
!                                                              (line  658)
  * __fracttauhq:                          Fixed-point fractional library routines.
!                                                              (line  653)
  * __fracttauqq:                          Fixed-point fractional library routines.
!                                                              (line  651)
  * __fracttausa:                          Fixed-point fractional library routines.
!                                                              (line  660)
  * __fracttausq:                          Fixed-point fractional library routines.
!                                                              (line  654)
  * __fracttauta:                          Fixed-point fractional library routines.
!                                                              (line  663)
  * __fracttida:                           Fixed-point fractional library routines.
!                                                              (line  998)
  * __fracttidq:                           Fixed-point fractional library routines.
!                                                              (line  995)
  * __fracttiha:                           Fixed-point fractional library routines.
!                                                              (line  996)
  * __fracttihq:                           Fixed-point fractional library routines.
!                                                              (line  993)
  * __fracttiqq:                           Fixed-point fractional library routines.
!                                                              (line  992)
  * __fracttisa:                           Fixed-point fractional library routines.
!                                                              (line  997)
  * __fracttisq:                           Fixed-point fractional library routines.
!                                                              (line  994)
  * __fracttita:                           Fixed-point fractional library routines.
!                                                              (line  999)
  * __fracttiuda:                          Fixed-point fractional library routines.
!                                                              (line 1007)
  * __fracttiudq:                          Fixed-point fractional library routines.
!                                                              (line 1003)
  * __fracttiuha:                          Fixed-point fractional library routines.
!                                                              (line 1005)
  * __fracttiuhq:                          Fixed-point fractional library routines.
!                                                              (line 1001)
  * __fracttiuqq:                          Fixed-point fractional library routines.
!                                                              (line 1000)
  * __fracttiusa:                          Fixed-point fractional library routines.
!                                                              (line 1006)
  * __fracttiusq:                          Fixed-point fractional library routines.
!                                                              (line 1002)
  * __fracttiuta:                          Fixed-point fractional library routines.
!                                                              (line 1008)
  * __fractudada:                          Fixed-point fractional library routines.
!                                                              (line  865)
  * __fractudadf:                          Fixed-point fractional library routines.
!                                                              (line  888)
  * __fractudadi:                          Fixed-point fractional library routines.
!                                                              (line  885)
  * __fractudadq:                          Fixed-point fractional library routines.
!                                                              (line  861)
  * __fractudaha:                          Fixed-point fractional library routines.
!                                                              (line  863)
  * __fractudahi:                          Fixed-point fractional library routines.
!                                                              (line  883)
  * __fractudahq:                          Fixed-point fractional library routines.
!                                                              (line  859)
  * __fractudaqi:                          Fixed-point fractional library routines.
!                                                              (line  882)
  * __fractudaqq:                          Fixed-point fractional library routines.
!                                                              (line  858)
  * __fractudasa:                          Fixed-point fractional library routines.
!                                                              (line  864)
  * __fractudasf:                          Fixed-point fractional library routines.
!                                                              (line  887)
  * __fractudasi:                          Fixed-point fractional library routines.
!                                                              (line  884)
  * __fractudasq:                          Fixed-point fractional library routines.
!                                                              (line  860)
  * __fractudata:                          Fixed-point fractional library routines.
!                                                              (line  866)
  * __fractudati:                          Fixed-point fractional library routines.
!                                                              (line  886)
  * __fractudaudq:                         Fixed-point fractional library routines.
!                                                              (line  874)
  * __fractudauha2:                        Fixed-point fractional library routines.
!                                                              (line  876)
  * __fractudauhq:                         Fixed-point fractional library routines.
!                                                              (line  870)
  * __fractudauqq:                         Fixed-point fractional library routines.
!                                                              (line  868)
  * __fractudausa2:                        Fixed-point fractional library routines.
!                                                              (line  878)
  * __fractudausq:                         Fixed-point fractional library routines.
!                                                              (line  872)
  * __fractudauta2:                        Fixed-point fractional library routines.
!                                                              (line  880)
  * __fractudqda:                          Fixed-point fractional library routines.
!                                                              (line  772)
  * __fractudqdf:                          Fixed-point fractional library routines.
!                                                              (line  798)
  * __fractudqdi:                          Fixed-point fractional library routines.
!                                                              (line  794)
  * __fractudqdq:                          Fixed-point fractional library routines.
!                                                              (line  767)
  * __fractudqha:                          Fixed-point fractional library routines.
!                                                              (line  769)
  * __fractudqhi:                          Fixed-point fractional library routines.
!                                                              (line  792)
  * __fractudqhq:                          Fixed-point fractional library routines.
!                                                              (line  764)
  * __fractudqqi:                          Fixed-point fractional library routines.
!                                                              (line  790)
  * __fractudqqq:                          Fixed-point fractional library routines.
!                                                              (line  762)
  * __fractudqsa:                          Fixed-point fractional library routines.
!                                                              (line  771)
  * __fractudqsf:                          Fixed-point fractional library routines.
!                                                              (line  797)
  * __fractudqsi:                          Fixed-point fractional library routines.
!                                                              (line  793)
  * __fractudqsq:                          Fixed-point fractional library routines.
!                                                              (line  765)
  * __fractudqta:                          Fixed-point fractional library routines.
!                                                              (line  774)
  * __fractudqti:                          Fixed-point fractional library routines.
!                                                              (line  795)
  * __fractudquda:                         Fixed-point fractional library routines.
!                                                              (line  786)
  * __fractudquha:                         Fixed-point fractional library routines.
!                                                              (line  782)
  * __fractudquhq2:                        Fixed-point fractional library routines.
!                                                              (line  778)
  * __fractudquqq2:                        Fixed-point fractional library routines.
!                                                              (line  776)
  * __fractudqusa:                         Fixed-point fractional library routines.
!                                                              (line  784)
  * __fractudqusq2:                        Fixed-point fractional library routines.
!                                                              (line  780)
  * __fractudquta:                         Fixed-point fractional library routines.
!                                                              (line  788)
  * __fractuhada:                          Fixed-point fractional library routines.
!                                                              (line  806)
  * __fractuhadf:                          Fixed-point fractional library routines.
!                                                              (line  829)
  * __fractuhadi:                          Fixed-point fractional library routines.
!                                                              (line  826)
  * __fractuhadq:                          Fixed-point fractional library routines.
!                                                              (line  802)
  * __fractuhaha:                          Fixed-point fractional library routines.
!                                                              (line  804)
  * __fractuhahi:                          Fixed-point fractional library routines.
!                                                              (line  824)
  * __fractuhahq:                          Fixed-point fractional library routines.
!                                                              (line  800)
  * __fractuhaqi:                          Fixed-point fractional library routines.
!                                                              (line  823)
  * __fractuhaqq:                          Fixed-point fractional library routines.
!                                                              (line  799)
  * __fractuhasa:                          Fixed-point fractional library routines.
!                                                              (line  805)
  * __fractuhasf:                          Fixed-point fractional library routines.
!                                                              (line  828)
  * __fractuhasi:                          Fixed-point fractional library routines.
!                                                              (line  825)
  * __fractuhasq:                          Fixed-point fractional library routines.
!                                                              (line  801)
  * __fractuhata:                          Fixed-point fractional library routines.
!                                                              (line  807)
  * __fractuhati:                          Fixed-point fractional library routines.
-                                                              (line  827)
- * __fractuhauda2:                        Fixed-point fractional library routines.
                                                               (line  819)
  * __fractuhaudq:                         Fixed-point fractional library routines.
!                                                              (line  815)
  * __fractuhauhq:                         Fixed-point fractional library routines.
!                                                              (line  811)
  * __fractuhauqq:                         Fixed-point fractional library routines.
!                                                              (line  809)
  * __fractuhausa2:                        Fixed-point fractional library routines.
!                                                              (line  817)
  * __fractuhausq:                         Fixed-point fractional library routines.
!                                                              (line  813)
  * __fractuhauta2:                        Fixed-point fractional library routines.
!                                                              (line  821)
  * __fractuhqda:                          Fixed-point fractional library routines.
!                                                              (line  709)
  * __fractuhqdf:                          Fixed-point fractional library routines.
!                                                              (line  730)
  * __fractuhqdi:                          Fixed-point fractional library routines.
!                                                              (line  727)
  * __fractuhqdq:                          Fixed-point fractional library routines.
!                                                              (line  706)
  * __fractuhqha:                          Fixed-point fractional library routines.
!                                                              (line  707)
  * __fractuhqhi:                          Fixed-point fractional library routines.
!                                                              (line  725)
  * __fractuhqhq:                          Fixed-point fractional library routines.
!                                                              (line  704)
  * __fractuhqqi:                          Fixed-point fractional library routines.
!                                                              (line  724)
  * __fractuhqqq:                          Fixed-point fractional library routines.
!                                                              (line  703)
  * __fractuhqsa:                          Fixed-point fractional library routines.
!                                                              (line  708)
  * __fractuhqsf:                          Fixed-point fractional library routines.
!                                                              (line  729)
  * __fractuhqsi:                          Fixed-point fractional library routines.
!                                                              (line  726)
  * __fractuhqsq:                          Fixed-point fractional library routines.
!                                                              (line  705)
  * __fractuhqta:                          Fixed-point fractional library routines.
!                                                              (line  710)
  * __fractuhqti:                          Fixed-point fractional library routines.
-                                                              (line  728)
- * __fractuhquda:                         Fixed-point fractional library routines.
                                                               (line  720)
  * __fractuhqudq2:                        Fixed-point fractional library routines.
!                                                              (line  715)
  * __fractuhquha:                         Fixed-point fractional library routines.
!                                                              (line  717)
  * __fractuhquqq2:                        Fixed-point fractional library routines.
!                                                              (line  711)
  * __fractuhqusa:                         Fixed-point fractional library routines.
!                                                              (line  719)
  * __fractuhqusq2:                        Fixed-point fractional library routines.
!                                                              (line  713)
  * __fractuhquta:                         Fixed-point fractional library routines.
!                                                              (line  722)
  * __fractunsdadi:                        Fixed-point fractional library routines.
!                                                              (line 1562)
  * __fractunsdahi:                        Fixed-point fractional library routines.
!                                                              (line 1560)
  * __fractunsdaqi:                        Fixed-point fractional library routines.
!                                                              (line 1559)
  * __fractunsdasi:                        Fixed-point fractional library routines.
!                                                              (line 1561)
  * __fractunsdati:                        Fixed-point fractional library routines.
!                                                              (line 1563)
  * __fractunsdida:                        Fixed-point fractional library routines.
!                                                              (line 1714)
  * __fractunsdidq:                        Fixed-point fractional library routines.
!                                                              (line 1711)
  * __fractunsdiha:                        Fixed-point fractional library routines.
!                                                              (line 1712)
  * __fractunsdihq:                        Fixed-point fractional library routines.
!                                                              (line 1709)
  * __fractunsdiqq:                        Fixed-point fractional library routines.
!                                                              (line 1708)
  * __fractunsdisa:                        Fixed-point fractional library routines.
!                                                              (line 1713)
  * __fractunsdisq:                        Fixed-point fractional library routines.
!                                                              (line 1710)
  * __fractunsdita:                        Fixed-point fractional library routines.
!                                                              (line 1715)
  * __fractunsdiuda:                       Fixed-point fractional library routines.
!                                                              (line 1726)
  * __fractunsdiudq:                       Fixed-point fractional library routines.
!                                                              (line 1721)
  * __fractunsdiuha:                       Fixed-point fractional library routines.
!                                                              (line 1723)
  * __fractunsdiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1718)
  * __fractunsdiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1716)
  * __fractunsdiusa:                       Fixed-point fractional library routines.
!                                                              (line 1725)
  * __fractunsdiusq:                       Fixed-point fractional library routines.
!                                                              (line 1719)
  * __fractunsdiuta:                       Fixed-point fractional library routines.
!                                                              (line 1728)
  * __fractunsdqdi:                        Fixed-point fractional library routines.
!                                                              (line 1546)
  * __fractunsdqhi:                        Fixed-point fractional library routines.
!                                                              (line 1544)
  * __fractunsdqqi:                        Fixed-point fractional library routines.
!                                                              (line 1543)
  * __fractunsdqsi:                        Fixed-point fractional library routines.
!                                                              (line 1545)
  * __fractunsdqti:                        Fixed-point fractional library routines.
!                                                              (line 1547)
  * __fractunshadi:                        Fixed-point fractional library routines.
!                                                              (line 1552)
  * __fractunshahi:                        Fixed-point fractional library routines.
!                                                              (line 1550)
  * __fractunshaqi:                        Fixed-point fractional library routines.
!                                                              (line 1549)
  * __fractunshasi:                        Fixed-point fractional library routines.
!                                                              (line 1551)
  * __fractunshati:                        Fixed-point fractional library routines.
!                                                              (line 1553)
  * __fractunshida:                        Fixed-point fractional library routines.
!                                                              (line 1670)
  * __fractunshidq:                        Fixed-point fractional library routines.
!                                                              (line 1667)
  * __fractunshiha:                        Fixed-point fractional library routines.
!                                                              (line 1668)
  * __fractunshihq:                        Fixed-point fractional library routines.
!                                                              (line 1665)
  * __fractunshiqq:                        Fixed-point fractional library routines.
!                                                              (line 1664)
  * __fractunshisa:                        Fixed-point fractional library routines.
!                                                              (line 1669)
  * __fractunshisq:                        Fixed-point fractional library routines.
!                                                              (line 1666)
  * __fractunshita:                        Fixed-point fractional library routines.
!                                                              (line 1671)
  * __fractunshiuda:                       Fixed-point fractional library routines.
!                                                              (line 1682)
  * __fractunshiudq:                       Fixed-point fractional library routines.
!                                                              (line 1677)
  * __fractunshiuha:                       Fixed-point fractional library routines.
!                                                              (line 1679)
  * __fractunshiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1674)
  * __fractunshiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1672)
  * __fractunshiusa:                       Fixed-point fractional library routines.
!                                                              (line 1681)
  * __fractunshiusq:                       Fixed-point fractional library routines.
!                                                              (line 1675)
  * __fractunshiuta:                       Fixed-point fractional library routines.
!                                                              (line 1684)
  * __fractunshqdi:                        Fixed-point fractional library routines.
!                                                              (line 1536)
  * __fractunshqhi:                        Fixed-point fractional library routines.
!                                                              (line 1534)
  * __fractunshqqi:                        Fixed-point fractional library routines.
!                                                              (line 1533)
  * __fractunshqsi:                        Fixed-point fractional library routines.
!                                                              (line 1535)
  * __fractunshqti:                        Fixed-point fractional library routines.
!                                                              (line 1537)
  * __fractunsqida:                        Fixed-point fractional library routines.
!                                                              (line 1648)
  * __fractunsqidq:                        Fixed-point fractional library routines.
!                                                              (line 1645)
  * __fractunsqiha:                        Fixed-point fractional library routines.
!                                                              (line 1646)
  * __fractunsqihq:                        Fixed-point fractional library routines.
!                                                              (line 1643)
  * __fractunsqiqq:                        Fixed-point fractional library routines.
!                                                              (line 1642)
  * __fractunsqisa:                        Fixed-point fractional library routines.
!                                                              (line 1647)
  * __fractunsqisq:                        Fixed-point fractional library routines.
!                                                              (line 1644)
  * __fractunsqita:                        Fixed-point fractional library routines.
!                                                              (line 1649)
  * __fractunsqiuda:                       Fixed-point fractional library routines.
!                                                              (line 1660)
  * __fractunsqiudq:                       Fixed-point fractional library routines.
!                                                              (line 1655)
  * __fractunsqiuha:                       Fixed-point fractional library routines.
!                                                              (line 1657)
  * __fractunsqiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1652)
  * __fractunsqiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1650)
  * __fractunsqiusa:                       Fixed-point fractional library routines.
!                                                              (line 1659)
  * __fractunsqiusq:                       Fixed-point fractional library routines.
!                                                              (line 1653)
  * __fractunsqiuta:                       Fixed-point fractional library routines.
!                                                              (line 1662)
  * __fractunsqqdi:                        Fixed-point fractional library routines.
!                                                              (line 1531)
  * __fractunsqqhi:                        Fixed-point fractional library routines.
!                                                              (line 1529)
  * __fractunsqqqi:                        Fixed-point fractional library routines.
!                                                              (line 1528)
  * __fractunsqqsi:                        Fixed-point fractional library routines.
!                                                              (line 1530)
  * __fractunsqqti:                        Fixed-point fractional library routines.
!                                                              (line 1532)
  * __fractunssadi:                        Fixed-point fractional library routines.
!                                                              (line 1557)
  * __fractunssahi:                        Fixed-point fractional library routines.
!                                                              (line 1555)
  * __fractunssaqi:                        Fixed-point fractional library routines.
!                                                              (line 1554)
  * __fractunssasi:                        Fixed-point fractional library routines.
!                                                              (line 1556)
  * __fractunssati:                        Fixed-point fractional library routines.
!                                                              (line 1558)
  * __fractunssida:                        Fixed-point fractional library routines.
!                                                              (line 1692)
  * __fractunssidq:                        Fixed-point fractional library routines.
!                                                              (line 1689)
  * __fractunssiha:                        Fixed-point fractional library routines.
!                                                              (line 1690)
  * __fractunssihq:                        Fixed-point fractional library routines.
!                                                              (line 1687)
  * __fractunssiqq:                        Fixed-point fractional library routines.
!                                                              (line 1686)
  * __fractunssisa:                        Fixed-point fractional library routines.
!                                                              (line 1691)
  * __fractunssisq:                        Fixed-point fractional library routines.
!                                                              (line 1688)
  * __fractunssita:                        Fixed-point fractional library routines.
!                                                              (line 1693)
  * __fractunssiuda:                       Fixed-point fractional library routines.
!                                                              (line 1704)
  * __fractunssiudq:                       Fixed-point fractional library routines.
!                                                              (line 1699)
  * __fractunssiuha:                       Fixed-point fractional library routines.
!                                                              (line 1701)
  * __fractunssiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1696)
  * __fractunssiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1694)
  * __fractunssiusa:                       Fixed-point fractional library routines.
!                                                              (line 1703)
  * __fractunssiusq:                       Fixed-point fractional library routines.
!                                                              (line 1697)
  * __fractunssiuta:                       Fixed-point fractional library routines.
!                                                              (line 1706)
  * __fractunssqdi:                        Fixed-point fractional library routines.
!                                                              (line 1541)
  * __fractunssqhi:                        Fixed-point fractional library routines.
!                                                              (line 1539)
  * __fractunssqqi:                        Fixed-point fractional library routines.
!                                                              (line 1538)
  * __fractunssqsi:                        Fixed-point fractional library routines.
!                                                              (line 1540)
  * __fractunssqti:                        Fixed-point fractional library routines.
!                                                              (line 1542)
  * __fractunstadi:                        Fixed-point fractional library routines.
!                                                              (line 1567)
  * __fractunstahi:                        Fixed-point fractional library routines.
!                                                              (line 1565)
  * __fractunstaqi:                        Fixed-point fractional library routines.
!                                                              (line 1564)
  * __fractunstasi:                        Fixed-point fractional library routines.
!                                                              (line 1566)
  * __fractunstati:                        Fixed-point fractional library routines.
!                                                              (line 1568)
  * __fractunstida:                        Fixed-point fractional library routines.
!                                                              (line 1737)
  * __fractunstidq:                        Fixed-point fractional library routines.
!                                                              (line 1733)
  * __fractunstiha:                        Fixed-point fractional library routines.
!                                                              (line 1735)
  * __fractunstihq:                        Fixed-point fractional library routines.
!                                                              (line 1731)
  * __fractunstiqq:                        Fixed-point fractional library routines.
!                                                              (line 1730)
  * __fractunstisa:                        Fixed-point fractional library routines.
!                                                              (line 1736)
  * __fractunstisq:                        Fixed-point fractional library routines.
!                                                              (line 1732)
  * __fractunstita:                        Fixed-point fractional library routines.
!                                                              (line 1738)
  * __fractunstiuda:                       Fixed-point fractional library routines.
!                                                              (line 1752)
  * __fractunstiudq:                       Fixed-point fractional library routines.
!                                                              (line 1746)
  * __fractunstiuha:                       Fixed-point fractional library routines.
!                                                              (line 1748)
  * __fractunstiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1742)
  * __fractunstiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1740)
  * __fractunstiusa:                       Fixed-point fractional library routines.
!                                                              (line 1750)
  * __fractunstiusq:                       Fixed-point fractional library routines.
!                                                              (line 1744)
  * __fractunstiuta:                       Fixed-point fractional library routines.
!                                                              (line 1754)
  * __fractunsudadi:                       Fixed-point fractional library routines.
!                                                              (line 1628)
  * __fractunsudahi:                       Fixed-point fractional library routines.
!                                                              (line 1624)
  * __fractunsudaqi:                       Fixed-point fractional library routines.
!                                                              (line 1622)
  * __fractunsudasi:                       Fixed-point fractional library routines.
!                                                              (line 1626)
  * __fractunsudati:                       Fixed-point fractional library routines.
!                                                              (line 1630)
  * __fractunsudqdi:                       Fixed-point fractional library routines.
!                                                              (line 1602)
  * __fractunsudqhi:                       Fixed-point fractional library routines.
!                                                              (line 1598)
  * __fractunsudqqi:                       Fixed-point fractional library routines.
!                                                              (line 1596)
  * __fractunsudqsi:                       Fixed-point fractional library routines.
!                                                              (line 1600)
  * __fractunsudqti:                       Fixed-point fractional library routines.
!                                                              (line 1604)
  * __fractunsuhadi:                       Fixed-point fractional library routines.
!                                                              (line 1612)
  * __fractunsuhahi:                       Fixed-point fractional library routines.
!                                                              (line 1608)
  * __fractunsuhaqi:                       Fixed-point fractional library routines.
!                                                              (line 1606)
  * __fractunsuhasi:                       Fixed-point fractional library routines.
!                                                              (line 1610)
  * __fractunsuhati:                       Fixed-point fractional library routines.
!                                                              (line 1614)
  * __fractunsuhqdi:                       Fixed-point fractional library routines.
!                                                              (line 1583)
  * __fractunsuhqhi:                       Fixed-point fractional library routines.
!                                                              (line 1581)
  * __fractunsuhqqi:                       Fixed-point fractional library routines.
!                                                              (line 1580)
  * __fractunsuhqsi:                       Fixed-point fractional library routines.
!                                                              (line 1582)
  * __fractunsuhqti:                       Fixed-point fractional library routines.
-                                                              (line 1584)
- * __fractunsuqqdi:                       Fixed-point fractional library routines.
                                                               (line 1576)
  * __fractunsuqqhi:                       Fixed-point fractional library routines.
!                                                              (line 1572)
  * __fractunsuqqqi:                       Fixed-point fractional library routines.
!                                                              (line 1570)
  * __fractunsuqqsi:                       Fixed-point fractional library routines.
!                                                              (line 1574)
  * __fractunsuqqti:                       Fixed-point fractional library routines.
!                                                              (line 1578)
  * __fractunsusadi:                       Fixed-point fractional library routines.
!                                                              (line 1619)
  * __fractunsusahi:                       Fixed-point fractional library routines.
!                                                              (line 1617)
  * __fractunsusaqi:                       Fixed-point fractional library routines.
!                                                              (line 1616)
  * __fractunsusasi:                       Fixed-point fractional library routines.
!                                                              (line 1618)
  * __fractunsusati:                       Fixed-point fractional library routines.
!                                                              (line 1620)
  * __fractunsusqdi:                       Fixed-point fractional library routines.
!                                                              (line 1592)
  * __fractunsusqhi:                       Fixed-point fractional library routines.
!                                                              (line 1588)
  * __fractunsusqqi:                       Fixed-point fractional library routines.
!                                                              (line 1586)
  * __fractunsusqsi:                       Fixed-point fractional library routines.
!                                                              (line 1590)
  * __fractunsusqti:                       Fixed-point fractional library routines.
!                                                              (line 1594)
  * __fractunsutadi:                       Fixed-point fractional library routines.
!                                                              (line 1638)
  * __fractunsutahi:                       Fixed-point fractional library routines.
!                                                              (line 1634)
  * __fractunsutaqi:                       Fixed-point fractional library routines.
!                                                              (line 1632)
  * __fractunsutasi:                       Fixed-point fractional library routines.
!                                                              (line 1636)
  * __fractunsutati:                       Fixed-point fractional library routines.
!                                                              (line 1640)
  * __fractuqqda:                          Fixed-point fractional library routines.
!                                                              (line  679)
  * __fractuqqdf:                          Fixed-point fractional library routines.
!                                                              (line  702)
  * __fractuqqdi:                          Fixed-point fractional library routines.
!                                                              (line  699)
  * __fractuqqdq:                          Fixed-point fractional library routines.
!                                                              (line  675)
  * __fractuqqha:                          Fixed-point fractional library routines.
!                                                              (line  677)
  * __fractuqqhi:                          Fixed-point fractional library routines.
!                                                              (line  697)
  * __fractuqqhq:                          Fixed-point fractional library routines.
!                                                              (line  673)
  * __fractuqqqi:                          Fixed-point fractional library routines.
!                                                              (line  696)
  * __fractuqqqq:                          Fixed-point fractional library routines.
!                                                              (line  672)
  * __fractuqqsa:                          Fixed-point fractional library routines.
!                                                              (line  678)
  * __fractuqqsf:                          Fixed-point fractional library routines.
!                                                              (line  701)
  * __fractuqqsi:                          Fixed-point fractional library routines.
!                                                              (line  698)
  * __fractuqqsq:                          Fixed-point fractional library routines.
!                                                              (line  674)
  * __fractuqqta:                          Fixed-point fractional library routines.
!                                                              (line  680)
  * __fractuqqti:                          Fixed-point fractional library routines.
-                                                              (line  700)
- * __fractuqquda:                         Fixed-point fractional library routines.
                                                               (line  692)
  * __fractuqqudq2:                        Fixed-point fractional library routines.
!                                                              (line  686)
  * __fractuqquha:                         Fixed-point fractional library routines.
!                                                              (line  688)
  * __fractuqquhq2:                        Fixed-point fractional library routines.
!                                                              (line  682)
  * __fractuqqusa:                         Fixed-point fractional library routines.
!                                                              (line  690)
  * __fractuqqusq2:                        Fixed-point fractional library routines.
!                                                              (line  684)
  * __fractuqquta:                         Fixed-point fractional library routines.
!                                                              (line  694)
  * __fractusada:                          Fixed-point fractional library routines.
!                                                              (line  836)
  * __fractusadf:                          Fixed-point fractional library routines.
!                                                              (line  857)
  * __fractusadi:                          Fixed-point fractional library routines.
!                                                              (line  854)
  * __fractusadq:                          Fixed-point fractional library routines.
!                                                              (line  833)
  * __fractusaha:                          Fixed-point fractional library routines.
!                                                              (line  834)
  * __fractusahi:                          Fixed-point fractional library routines.
!                                                              (line  852)
  * __fractusahq:                          Fixed-point fractional library routines.
!                                                              (line  831)
  * __fractusaqi:                          Fixed-point fractional library routines.
!                                                              (line  851)
  * __fractusaqq:                          Fixed-point fractional library routines.
!                                                              (line  830)
  * __fractusasa:                          Fixed-point fractional library routines.
!                                                              (line  835)
  * __fractusasf:                          Fixed-point fractional library routines.
!                                                              (line  856)
  * __fractusasi:                          Fixed-point fractional library routines.
!                                                              (line  853)
  * __fractusasq:                          Fixed-point fractional library routines.
!                                                              (line  832)
  * __fractusata:                          Fixed-point fractional library routines.
!                                                              (line  837)
  * __fractusati:                          Fixed-point fractional library routines.
-                                                              (line  855)
- * __fractusauda2:                        Fixed-point fractional library routines.
                                                               (line  847)
  * __fractusaudq:                         Fixed-point fractional library routines.
!                                                              (line  843)
  * __fractusauha2:                        Fixed-point fractional library routines.
!                                                              (line  845)
  * __fractusauhq:                         Fixed-point fractional library routines.
!                                                              (line  840)
  * __fractusauqq:                         Fixed-point fractional library routines.
!                                                              (line  838)
  * __fractusausq:                         Fixed-point fractional library routines.
!                                                              (line  841)
  * __fractusauta2:                        Fixed-point fractional library routines.
!                                                              (line  849)
  * __fractusqda:                          Fixed-point fractional library routines.
!                                                              (line  738)
  * __fractusqdf:                          Fixed-point fractional library routines.
!                                                              (line  761)
  * __fractusqdi:                          Fixed-point fractional library routines.
!                                                              (line  758)
  * __fractusqdq:                          Fixed-point fractional library routines.
!                                                              (line  734)
  * __fractusqha:                          Fixed-point fractional library routines.
!                                                              (line  736)
  * __fractusqhi:                          Fixed-point fractional library routines.
!                                                              (line  756)
  * __fractusqhq:                          Fixed-point fractional library routines.
!                                                              (line  732)
  * __fractusqqi:                          Fixed-point fractional library routines.
!                                                              (line  755)
  * __fractusqqq:                          Fixed-point fractional library routines.
!                                                              (line  731)
  * __fractusqsa:                          Fixed-point fractional library routines.
!                                                              (line  737)
  * __fractusqsf:                          Fixed-point fractional library routines.
!                                                              (line  760)
  * __fractusqsi:                          Fixed-point fractional library routines.
!                                                              (line  757)
  * __fractusqsq:                          Fixed-point fractional library routines.
!                                                              (line  733)
  * __fractusqta:                          Fixed-point fractional library routines.
!                                                              (line  739)
  * __fractusqti:                          Fixed-point fractional library routines.
-                                                              (line  759)
- * __fractusquda:                         Fixed-point fractional library routines.
                                                               (line  751)
  * __fractusqudq2:                        Fixed-point fractional library routines.
!                                                              (line  745)
  * __fractusquha:                         Fixed-point fractional library routines.
!                                                              (line  747)
  * __fractusquhq2:                        Fixed-point fractional library routines.
!                                                              (line  743)
  * __fractusquqq2:                        Fixed-point fractional library routines.
!                                                              (line  741)
  * __fractusqusa:                         Fixed-point fractional library routines.
!                                                              (line  749)
  * __fractusquta:                         Fixed-point fractional library routines.
!                                                              (line  753)
  * __fractutada:                          Fixed-point fractional library routines.
!                                                              (line  899)
  * __fractutadf:                          Fixed-point fractional library routines.
!                                                              (line  925)
  * __fractutadi:                          Fixed-point fractional library routines.
!                                                              (line  921)
  * __fractutadq:                          Fixed-point fractional library routines.
!                                                              (line  894)
  * __fractutaha:                          Fixed-point fractional library routines.
!                                                              (line  896)
  * __fractutahi:                          Fixed-point fractional library routines.
!                                                              (line  919)
  * __fractutahq:                          Fixed-point fractional library routines.
!                                                              (line  891)
  * __fractutaqi:                          Fixed-point fractional library routines.
!                                                              (line  917)
  * __fractutaqq:                          Fixed-point fractional library routines.
!                                                              (line  889)
  * __fractutasa:                          Fixed-point fractional library routines.
!                                                              (line  898)
  * __fractutasf:                          Fixed-point fractional library routines.
!                                                              (line  924)
  * __fractutasi:                          Fixed-point fractional library routines.
!                                                              (line  920)
  * __fractutasq:                          Fixed-point fractional library routines.
!                                                              (line  892)
  * __fractutata:                          Fixed-point fractional library routines.
!                                                              (line  901)
  * __fractutati:                          Fixed-point fractional library routines.
!                                                              (line  922)
  * __fractutauda2:                        Fixed-point fractional library routines.
!                                                              (line  915)
  * __fractutaudq:                         Fixed-point fractional library routines.
!                                                              (line  909)
  * __fractutauha2:                        Fixed-point fractional library routines.
!                                                              (line  911)
  * __fractutauhq:                         Fixed-point fractional library routines.
!                                                              (line  905)
  * __fractutauqq:                         Fixed-point fractional library routines.
!                                                              (line  903)
  * __fractutausa2:                        Fixed-point fractional library routines.
!                                                              (line  913)
  * __fractutausq:                         Fixed-point fractional library routines.
!                                                              (line  907)
  * __gedf2:                               Soft float library routines.
                                                               (line  205)
  * __gesf2:                               Soft float library routines.
--- 50917,52169 ----
  * __floatuntixf:                         Soft float library routines.
                                                               (line  153)
  * __fractdadf:                           Fixed-point fractional library routines.
!                                                              (line  635)
  * __fractdadi:                           Fixed-point fractional library routines.
!                                                              (line  632)
  * __fractdadq:                           Fixed-point fractional library routines.
!                                                              (line  615)
  * __fractdaha2:                          Fixed-point fractional library routines.
!                                                              (line  616)
  * __fractdahi:                           Fixed-point fractional library routines.
!                                                              (line  630)
  * __fractdahq:                           Fixed-point fractional library routines.
!                                                              (line  613)
  * __fractdaqi:                           Fixed-point fractional library routines.
!                                                              (line  629)
  * __fractdaqq:                           Fixed-point fractional library routines.
!                                                              (line  612)
  * __fractdasa2:                          Fixed-point fractional library routines.
!                                                              (line  617)
  * __fractdasf:                           Fixed-point fractional library routines.
!                                                              (line  634)
  * __fractdasi:                           Fixed-point fractional library routines.
!                                                              (line  631)
  * __fractdasq:                           Fixed-point fractional library routines.
!                                                              (line  614)
  * __fractdata2:                          Fixed-point fractional library routines.
!                                                              (line  618)
  * __fractdati:                           Fixed-point fractional library routines.
!                                                              (line  633)
  * __fractdauda:                          Fixed-point fractional library routines.
!                                                              (line  626)
  * __fractdaudq:                          Fixed-point fractional library routines.
!                                                              (line  622)
  * __fractdauha:                          Fixed-point fractional library routines.
!                                                              (line  624)
  * __fractdauhq:                          Fixed-point fractional library routines.
!                                                              (line  620)
  * __fractdauqq:                          Fixed-point fractional library routines.
!                                                              (line  619)
  * __fractdausa:                          Fixed-point fractional library routines.
!                                                              (line  625)
  * __fractdausq:                          Fixed-point fractional library routines.
!                                                              (line  621)
  * __fractdauta:                          Fixed-point fractional library routines.
!                                                              (line  627)
  * __fractdfda:                           Fixed-point fractional library routines.
!                                                              (line 1024)
  * __fractdfdq:                           Fixed-point fractional library routines.
!                                                              (line 1021)
  * __fractdfha:                           Fixed-point fractional library routines.
!                                                              (line 1022)
  * __fractdfhq:                           Fixed-point fractional library routines.
!                                                              (line 1019)
  * __fractdfqq:                           Fixed-point fractional library routines.
!                                                              (line 1018)
  * __fractdfsa:                           Fixed-point fractional library routines.
!                                                              (line 1023)
  * __fractdfsq:                           Fixed-point fractional library routines.
!                                                              (line 1020)
  * __fractdfta:                           Fixed-point fractional library routines.
!                                                              (line 1025)
  * __fractdfuda:                          Fixed-point fractional library routines.
!                                                              (line 1032)
  * __fractdfudq:                          Fixed-point fractional library routines.
!                                                              (line 1029)
  * __fractdfuha:                          Fixed-point fractional library routines.
!                                                              (line 1030)
  * __fractdfuhq:                          Fixed-point fractional library routines.
!                                                              (line 1027)
  * __fractdfuqq:                          Fixed-point fractional library routines.
!                                                              (line 1026)
  * __fractdfusa:                          Fixed-point fractional library routines.
!                                                              (line 1031)
  * __fractdfusq:                          Fixed-point fractional library routines.
!                                                              (line 1028)
  * __fractdfuta:                          Fixed-point fractional library routines.
!                                                              (line 1033)
  * __fractdida:                           Fixed-point fractional library routines.
!                                                              (line  974)
  * __fractdidq:                           Fixed-point fractional library routines.
!                                                              (line  971)
  * __fractdiha:                           Fixed-point fractional library routines.
!                                                              (line  972)
  * __fractdihq:                           Fixed-point fractional library routines.
!                                                              (line  969)
  * __fractdiqq:                           Fixed-point fractional library routines.
!                                                              (line  968)
  * __fractdisa:                           Fixed-point fractional library routines.
!                                                              (line  973)
  * __fractdisq:                           Fixed-point fractional library routines.
!                                                              (line  970)
  * __fractdita:                           Fixed-point fractional library routines.
!                                                              (line  975)
  * __fractdiuda:                          Fixed-point fractional library routines.
!                                                              (line  982)
  * __fractdiudq:                          Fixed-point fractional library routines.
!                                                              (line  979)
  * __fractdiuha:                          Fixed-point fractional library routines.
!                                                              (line  980)
  * __fractdiuhq:                          Fixed-point fractional library routines.
!                                                              (line  977)
  * __fractdiuqq:                          Fixed-point fractional library routines.
!                                                              (line  976)
  * __fractdiusa:                          Fixed-point fractional library routines.
!                                                              (line  981)
  * __fractdiusq:                          Fixed-point fractional library routines.
!                                                              (line  978)
  * __fractdiuta:                          Fixed-point fractional library routines.
!                                                              (line  983)
  * __fractdqda:                           Fixed-point fractional library routines.
!                                                              (line  543)
  * __fractdqdf:                           Fixed-point fractional library routines.
!                                                              (line  565)
  * __fractdqdi:                           Fixed-point fractional library routines.
!                                                              (line  562)
  * __fractdqha:                           Fixed-point fractional library routines.
!                                                              (line  541)
  * __fractdqhi:                           Fixed-point fractional library routines.
!                                                              (line  560)
  * __fractdqhq2:                          Fixed-point fractional library routines.
!                                                              (line  539)
  * __fractdqqi:                           Fixed-point fractional library routines.
!                                                              (line  559)
  * __fractdqqq2:                          Fixed-point fractional library routines.
!                                                              (line  538)
  * __fractdqsa:                           Fixed-point fractional library routines.
!                                                              (line  542)
  * __fractdqsf:                           Fixed-point fractional library routines.
!                                                              (line  564)
  * __fractdqsi:                           Fixed-point fractional library routines.
!                                                              (line  561)
  * __fractdqsq2:                          Fixed-point fractional library routines.
!                                                              (line  540)
  * __fractdqta:                           Fixed-point fractional library routines.
!                                                              (line  544)
  * __fractdqti:                           Fixed-point fractional library routines.
                                                               (line  563)
+ * __fractdquda:                          Fixed-point fractional library routines.
+                                                              (line  555)
  * __fractdqudq:                          Fixed-point fractional library routines.
!                                                              (line  550)
  * __fractdquha:                          Fixed-point fractional library routines.
!                                                              (line  552)
  * __fractdquhq:                          Fixed-point fractional library routines.
!                                                              (line  547)
  * __fractdquqq:                          Fixed-point fractional library routines.
!                                                              (line  545)
  * __fractdqusa:                          Fixed-point fractional library routines.
!                                                              (line  554)
  * __fractdqusq:                          Fixed-point fractional library routines.
!                                                              (line  548)
  * __fractdquta:                          Fixed-point fractional library routines.
!                                                              (line  557)
  * __fracthada2:                          Fixed-point fractional library routines.
!                                                              (line  571)
  * __fracthadf:                           Fixed-point fractional library routines.
!                                                              (line  589)
  * __fracthadi:                           Fixed-point fractional library routines.
!                                                              (line  586)
  * __fracthadq:                           Fixed-point fractional library routines.
!                                                              (line  569)
  * __fracthahi:                           Fixed-point fractional library routines.
!                                                              (line  584)
  * __fracthahq:                           Fixed-point fractional library routines.
!                                                              (line  567)
  * __fracthaqi:                           Fixed-point fractional library routines.
!                                                              (line  583)
  * __fracthaqq:                           Fixed-point fractional library routines.
!                                                              (line  566)
  * __fracthasa2:                          Fixed-point fractional library routines.
!                                                              (line  570)
  * __fracthasf:                           Fixed-point fractional library routines.
!                                                              (line  588)
  * __fracthasi:                           Fixed-point fractional library routines.
!                                                              (line  585)
  * __fracthasq:                           Fixed-point fractional library routines.
!                                                              (line  568)
  * __fracthata2:                          Fixed-point fractional library routines.
!                                                              (line  572)
  * __fracthati:                           Fixed-point fractional library routines.
!                                                              (line  587)
  * __fracthauda:                          Fixed-point fractional library routines.
!                                                              (line  580)
  * __fracthaudq:                          Fixed-point fractional library routines.
!                                                              (line  576)
  * __fracthauha:                          Fixed-point fractional library routines.
!                                                              (line  578)
  * __fracthauhq:                          Fixed-point fractional library routines.
!                                                              (line  574)
  * __fracthauqq:                          Fixed-point fractional library routines.
!                                                              (line  573)
  * __fracthausa:                          Fixed-point fractional library routines.
!                                                              (line  579)
  * __fracthausq:                          Fixed-point fractional library routines.
!                                                              (line  575)
  * __fracthauta:                          Fixed-point fractional library routines.
!                                                              (line  581)
  * __fracthida:                           Fixed-point fractional library routines.
!                                                              (line  942)
  * __fracthidq:                           Fixed-point fractional library routines.
!                                                              (line  939)
  * __fracthiha:                           Fixed-point fractional library routines.
!                                                              (line  940)
  * __fracthihq:                           Fixed-point fractional library routines.
!                                                              (line  937)
  * __fracthiqq:                           Fixed-point fractional library routines.
!                                                              (line  936)
  * __fracthisa:                           Fixed-point fractional library routines.
!                                                              (line  941)
  * __fracthisq:                           Fixed-point fractional library routines.
!                                                              (line  938)
  * __fracthita:                           Fixed-point fractional library routines.
!                                                              (line  943)
  * __fracthiuda:                          Fixed-point fractional library routines.
!                                                              (line  950)
  * __fracthiudq:                          Fixed-point fractional library routines.
!                                                              (line  947)
  * __fracthiuha:                          Fixed-point fractional library routines.
!                                                              (line  948)
  * __fracthiuhq:                          Fixed-point fractional library routines.
!                                                              (line  945)
  * __fracthiuqq:                          Fixed-point fractional library routines.
!                                                              (line  944)
  * __fracthiusa:                          Fixed-point fractional library routines.
!                                                              (line  949)
  * __fracthiusq:                          Fixed-point fractional library routines.
!                                                              (line  946)
  * __fracthiuta:                          Fixed-point fractional library routines.
!                                                              (line  951)
  * __fracthqda:                           Fixed-point fractional library routines.
!                                                              (line  497)
  * __fracthqdf:                           Fixed-point fractional library routines.
!                                                              (line  513)
  * __fracthqdi:                           Fixed-point fractional library routines.
!                                                              (line  510)
  * __fracthqdq2:                          Fixed-point fractional library routines.
!                                                              (line  494)
  * __fracthqha:                           Fixed-point fractional library routines.
!                                                              (line  495)
  * __fracthqhi:                           Fixed-point fractional library routines.
!                                                              (line  508)
  * __fracthqqi:                           Fixed-point fractional library routines.
!                                                              (line  507)
  * __fracthqqq2:                          Fixed-point fractional library routines.
!                                                              (line  492)
  * __fracthqsa:                           Fixed-point fractional library routines.
!                                                              (line  496)
  * __fracthqsf:                           Fixed-point fractional library routines.
!                                                              (line  512)
  * __fracthqsi:                           Fixed-point fractional library routines.
!                                                              (line  509)
  * __fracthqsq2:                          Fixed-point fractional library routines.
!                                                              (line  493)
  * __fracthqta:                           Fixed-point fractional library routines.
!                                                              (line  498)
  * __fracthqti:                           Fixed-point fractional library routines.
!                                                              (line  511)
  * __fracthquda:                          Fixed-point fractional library routines.
!                                                              (line  505)
  * __fracthqudq:                          Fixed-point fractional library routines.
!                                                              (line  502)
  * __fracthquha:                          Fixed-point fractional library routines.
!                                                              (line  503)
  * __fracthquhq:                          Fixed-point fractional library routines.
!                                                              (line  500)
  * __fracthquqq:                          Fixed-point fractional library routines.
!                                                              (line  499)
  * __fracthqusa:                          Fixed-point fractional library routines.
!                                                              (line  504)
  * __fracthqusq:                          Fixed-point fractional library routines.
!                                                              (line  501)
  * __fracthquta:                          Fixed-point fractional library routines.
!                                                              (line  506)
  * __fractqida:                           Fixed-point fractional library routines.
!                                                              (line  924)
  * __fractqidq:                           Fixed-point fractional library routines.
!                                                              (line  921)
  * __fractqiha:                           Fixed-point fractional library routines.
!                                                              (line  922)
  * __fractqihq:                           Fixed-point fractional library routines.
!                                                              (line  919)
  * __fractqiqq:                           Fixed-point fractional library routines.
!                                                              (line  918)
  * __fractqisa:                           Fixed-point fractional library routines.
!                                                              (line  923)
  * __fractqisq:                           Fixed-point fractional library routines.
!                                                              (line  920)
  * __fractqita:                           Fixed-point fractional library routines.
!                                                              (line  925)
  * __fractqiuda:                          Fixed-point fractional library routines.
!                                                              (line  933)
  * __fractqiudq:                          Fixed-point fractional library routines.
!                                                              (line  929)
  * __fractqiuha:                          Fixed-point fractional library routines.
!                                                              (line  931)
  * __fractqiuhq:                          Fixed-point fractional library routines.
!                                                              (line  927)
  * __fractqiuqq:                          Fixed-point fractional library routines.
!                                                              (line  926)
  * __fractqiusa:                          Fixed-point fractional library routines.
!                                                              (line  932)
  * __fractqiusq:                          Fixed-point fractional library routines.
!                                                              (line  928)
  * __fractqiuta:                          Fixed-point fractional library routines.
!                                                              (line  934)
  * __fractqqda:                           Fixed-point fractional library routines.
!                                                              (line  473)
  * __fractqqdf:                           Fixed-point fractional library routines.
!                                                              (line  491)
  * __fractqqdi:                           Fixed-point fractional library routines.
!                                                              (line  488)
  * __fractqqdq2:                          Fixed-point fractional library routines.
!                                                              (line  470)
  * __fractqqha:                           Fixed-point fractional library routines.
!                                                              (line  471)
  * __fractqqhi:                           Fixed-point fractional library routines.
!                                                              (line  486)
  * __fractqqhq2:                          Fixed-point fractional library routines.
!                                                              (line  468)
  * __fractqqqi:                           Fixed-point fractional library routines.
!                                                              (line  485)
  * __fractqqsa:                           Fixed-point fractional library routines.
!                                                              (line  472)
  * __fractqqsf:                           Fixed-point fractional library routines.
!                                                              (line  490)
  * __fractqqsi:                           Fixed-point fractional library routines.
!                                                              (line  487)
  * __fractqqsq2:                          Fixed-point fractional library routines.
!                                                              (line  469)
  * __fractqqta:                           Fixed-point fractional library routines.
!                                                              (line  474)
  * __fractqqti:                           Fixed-point fractional library routines.
!                                                              (line  489)
  * __fractqquda:                          Fixed-point fractional library routines.
!                                                              (line  482)
  * __fractqqudq:                          Fixed-point fractional library routines.
!                                                              (line  478)
  * __fractqquha:                          Fixed-point fractional library routines.
!                                                              (line  480)
  * __fractqquhq:                          Fixed-point fractional library routines.
!                                                              (line  476)
  * __fractqquqq:                          Fixed-point fractional library routines.
!                                                              (line  475)
  * __fractqqusa:                          Fixed-point fractional library routines.
!                                                              (line  481)
  * __fractqqusq:                          Fixed-point fractional library routines.
!                                                              (line  477)
  * __fractqquta:                          Fixed-point fractional library routines.
!                                                              (line  483)
  * __fractsada2:                          Fixed-point fractional library routines.
!                                                              (line  595)
  * __fractsadf:                           Fixed-point fractional library routines.
!                                                              (line  611)
  * __fractsadi:                           Fixed-point fractional library routines.
!                                                              (line  608)
  * __fractsadq:                           Fixed-point fractional library routines.
!                                                              (line  593)
  * __fractsaha2:                          Fixed-point fractional library routines.
!                                                              (line  594)
  * __fractsahi:                           Fixed-point fractional library routines.
!                                                              (line  606)
  * __fractsahq:                           Fixed-point fractional library routines.
!                                                              (line  591)
  * __fractsaqi:                           Fixed-point fractional library routines.
!                                                              (line  605)
  * __fractsaqq:                           Fixed-point fractional library routines.
!                                                              (line  590)
  * __fractsasf:                           Fixed-point fractional library routines.
!                                                              (line  610)
  * __fractsasi:                           Fixed-point fractional library routines.
!                                                              (line  607)
  * __fractsasq:                           Fixed-point fractional library routines.
!                                                              (line  592)
  * __fractsata2:                          Fixed-point fractional library routines.
!                                                              (line  596)
  * __fractsati:                           Fixed-point fractional library routines.
!                                                              (line  609)
  * __fractsauda:                          Fixed-point fractional library routines.
!                                                              (line  603)
  * __fractsaudq:                          Fixed-point fractional library routines.
!                                                              (line  600)
  * __fractsauha:                          Fixed-point fractional library routines.
!                                                              (line  601)
  * __fractsauhq:                          Fixed-point fractional library routines.
!                                                              (line  598)
  * __fractsauqq:                          Fixed-point fractional library routines.
!                                                              (line  597)
  * __fractsausa:                          Fixed-point fractional library routines.
!                                                              (line  602)
  * __fractsausq:                          Fixed-point fractional library routines.
!                                                              (line  599)
  * __fractsauta:                          Fixed-point fractional library routines.
!                                                              (line  604)
  * __fractsfda:                           Fixed-point fractional library routines.
!                                                              (line 1008)
  * __fractsfdq:                           Fixed-point fractional library routines.
!                                                              (line 1005)
  * __fractsfha:                           Fixed-point fractional library routines.
!                                                              (line 1006)
  * __fractsfhq:                           Fixed-point fractional library routines.
!                                                              (line 1003)
  * __fractsfqq:                           Fixed-point fractional library routines.
!                                                              (line 1002)
  * __fractsfsa:                           Fixed-point fractional library routines.
!                                                              (line 1007)
  * __fractsfsq:                           Fixed-point fractional library routines.
!                                                              (line 1004)
  * __fractsfta:                           Fixed-point fractional library routines.
!                                                              (line 1009)
  * __fractsfuda:                          Fixed-point fractional library routines.
!                                                              (line 1016)
  * __fractsfudq:                          Fixed-point fractional library routines.
!                                                              (line 1013)
  * __fractsfuha:                          Fixed-point fractional library routines.
!                                                              (line 1014)
  * __fractsfuhq:                          Fixed-point fractional library routines.
!                                                              (line 1011)
  * __fractsfuqq:                          Fixed-point fractional library routines.
!                                                              (line 1010)
  * __fractsfusa:                          Fixed-point fractional library routines.
!                                                              (line 1015)
  * __fractsfusq:                          Fixed-point fractional library routines.
!                                                              (line 1012)
  * __fractsfuta:                          Fixed-point fractional library routines.
!                                                              (line 1017)
  * __fractsida:                           Fixed-point fractional library routines.
!                                                              (line  958)
  * __fractsidq:                           Fixed-point fractional library routines.
!                                                              (line  955)
  * __fractsiha:                           Fixed-point fractional library routines.
!                                                              (line  956)
  * __fractsihq:                           Fixed-point fractional library routines.
!                                                              (line  953)
  * __fractsiqq:                           Fixed-point fractional library routines.
!                                                              (line  952)
  * __fractsisa:                           Fixed-point fractional library routines.
!                                                              (line  957)
  * __fractsisq:                           Fixed-point fractional library routines.
!                                                              (line  954)
  * __fractsita:                           Fixed-point fractional library routines.
!                                                              (line  959)
  * __fractsiuda:                          Fixed-point fractional library routines.
!                                                              (line  966)
  * __fractsiudq:                          Fixed-point fractional library routines.
!                                                              (line  963)
  * __fractsiuha:                          Fixed-point fractional library routines.
!                                                              (line  964)
  * __fractsiuhq:                          Fixed-point fractional library routines.
!                                                              (line  961)
  * __fractsiuqq:                          Fixed-point fractional library routines.
!                                                              (line  960)
  * __fractsiusa:                          Fixed-point fractional library routines.
!                                                              (line  965)
  * __fractsiusq:                          Fixed-point fractional library routines.
!                                                              (line  962)
  * __fractsiuta:                          Fixed-point fractional library routines.
!                                                              (line  967)
  * __fractsqda:                           Fixed-point fractional library routines.
!                                                              (line  519)
  * __fractsqdf:                           Fixed-point fractional library routines.
!                                                              (line  537)
  * __fractsqdi:                           Fixed-point fractional library routines.
!                                                              (line  534)
  * __fractsqdq2:                          Fixed-point fractional library routines.
!                                                              (line  516)
  * __fractsqha:                           Fixed-point fractional library routines.
!                                                              (line  517)
  * __fractsqhi:                           Fixed-point fractional library routines.
!                                                              (line  532)
  * __fractsqhq2:                          Fixed-point fractional library routines.
!                                                              (line  515)
  * __fractsqqi:                           Fixed-point fractional library routines.
!                                                              (line  531)
  * __fractsqqq2:                          Fixed-point fractional library routines.
!                                                              (line  514)
  * __fractsqsa:                           Fixed-point fractional library routines.
!                                                              (line  518)
  * __fractsqsf:                           Fixed-point fractional library routines.
!                                                              (line  536)
  * __fractsqsi:                           Fixed-point fractional library routines.
!                                                              (line  533)
  * __fractsqta:                           Fixed-point fractional library routines.
!                                                              (line  520)
  * __fractsqti:                           Fixed-point fractional library routines.
!                                                              (line  535)
  * __fractsquda:                          Fixed-point fractional library routines.
!                                                              (line  528)
  * __fractsqudq:                          Fixed-point fractional library routines.
!                                                              (line  524)
  * __fractsquha:                          Fixed-point fractional library routines.
!                                                              (line  526)
  * __fractsquhq:                          Fixed-point fractional library routines.
!                                                              (line  522)
  * __fractsquqq:                          Fixed-point fractional library routines.
!                                                              (line  521)
  * __fractsqusa:                          Fixed-point fractional library routines.
!                                                              (line  527)
  * __fractsqusq:                          Fixed-point fractional library routines.
!                                                              (line  523)
  * __fractsquta:                          Fixed-point fractional library routines.
!                                                              (line  529)
  * __fracttada2:                          Fixed-point fractional library routines.
!                                                              (line  642)
  * __fracttadf:                           Fixed-point fractional library routines.
!                                                              (line  663)
  * __fracttadi:                           Fixed-point fractional library routines.
!                                                              (line  660)
  * __fracttadq:                           Fixed-point fractional library routines.
!                                                              (line  639)
  * __fracttaha2:                          Fixed-point fractional library routines.
!                                                              (line  640)
  * __fracttahi:                           Fixed-point fractional library routines.
!                                                              (line  658)
  * __fracttahq:                           Fixed-point fractional library routines.
!                                                              (line  637)
  * __fracttaqi:                           Fixed-point fractional library routines.
!                                                              (line  657)
  * __fracttaqq:                           Fixed-point fractional library routines.
!                                                              (line  636)
  * __fracttasa2:                          Fixed-point fractional library routines.
!                                                              (line  641)
  * __fracttasf:                           Fixed-point fractional library routines.
!                                                              (line  662)
  * __fracttasi:                           Fixed-point fractional library routines.
!                                                              (line  659)
  * __fracttasq:                           Fixed-point fractional library routines.
!                                                              (line  638)
  * __fracttati:                           Fixed-point fractional library routines.
                                                               (line  661)
+ * __fracttauda:                          Fixed-point fractional library routines.
+                                                              (line  653)
  * __fracttaudq:                          Fixed-point fractional library routines.
!                                                              (line  648)
  * __fracttauha:                          Fixed-point fractional library routines.
!                                                              (line  650)
  * __fracttauhq:                          Fixed-point fractional library routines.
!                                                              (line  645)
  * __fracttauqq:                          Fixed-point fractional library routines.
!                                                              (line  643)
  * __fracttausa:                          Fixed-point fractional library routines.
!                                                              (line  652)
  * __fracttausq:                          Fixed-point fractional library routines.
!                                                              (line  646)
  * __fracttauta:                          Fixed-point fractional library routines.
!                                                              (line  655)
  * __fracttida:                           Fixed-point fractional library routines.
!                                                              (line  990)
  * __fracttidq:                           Fixed-point fractional library routines.
!                                                              (line  987)
  * __fracttiha:                           Fixed-point fractional library routines.
!                                                              (line  988)
  * __fracttihq:                           Fixed-point fractional library routines.
!                                                              (line  985)
  * __fracttiqq:                           Fixed-point fractional library routines.
!                                                              (line  984)
  * __fracttisa:                           Fixed-point fractional library routines.
!                                                              (line  989)
  * __fracttisq:                           Fixed-point fractional library routines.
!                                                              (line  986)
  * __fracttita:                           Fixed-point fractional library routines.
!                                                              (line  991)
  * __fracttiuda:                          Fixed-point fractional library routines.
!                                                              (line  999)
  * __fracttiudq:                          Fixed-point fractional library routines.
!                                                              (line  995)
  * __fracttiuha:                          Fixed-point fractional library routines.
!                                                              (line  997)
  * __fracttiuhq:                          Fixed-point fractional library routines.
!                                                              (line  993)
  * __fracttiuqq:                          Fixed-point fractional library routines.
!                                                              (line  992)
  * __fracttiusa:                          Fixed-point fractional library routines.
!                                                              (line  998)
  * __fracttiusq:                          Fixed-point fractional library routines.
!                                                              (line  994)
  * __fracttiuta:                          Fixed-point fractional library routines.
!                                                              (line 1000)
  * __fractudada:                          Fixed-point fractional library routines.
!                                                              (line  857)
  * __fractudadf:                          Fixed-point fractional library routines.
!                                                              (line  880)
  * __fractudadi:                          Fixed-point fractional library routines.
!                                                              (line  877)
  * __fractudadq:                          Fixed-point fractional library routines.
!                                                              (line  853)
  * __fractudaha:                          Fixed-point fractional library routines.
!                                                              (line  855)
  * __fractudahi:                          Fixed-point fractional library routines.
!                                                              (line  875)
  * __fractudahq:                          Fixed-point fractional library routines.
!                                                              (line  851)
  * __fractudaqi:                          Fixed-point fractional library routines.
!                                                              (line  874)
  * __fractudaqq:                          Fixed-point fractional library routines.
!                                                              (line  850)
  * __fractudasa:                          Fixed-point fractional library routines.
!                                                              (line  856)
  * __fractudasf:                          Fixed-point fractional library routines.
!                                                              (line  879)
  * __fractudasi:                          Fixed-point fractional library routines.
!                                                              (line  876)
  * __fractudasq:                          Fixed-point fractional library routines.
!                                                              (line  852)
  * __fractudata:                          Fixed-point fractional library routines.
!                                                              (line  858)
  * __fractudati:                          Fixed-point fractional library routines.
!                                                              (line  878)
  * __fractudaudq:                         Fixed-point fractional library routines.
!                                                              (line  866)
  * __fractudauha2:                        Fixed-point fractional library routines.
!                                                              (line  868)
  * __fractudauhq:                         Fixed-point fractional library routines.
!                                                              (line  862)
  * __fractudauqq:                         Fixed-point fractional library routines.
!                                                              (line  860)
  * __fractudausa2:                        Fixed-point fractional library routines.
!                                                              (line  870)
  * __fractudausq:                         Fixed-point fractional library routines.
!                                                              (line  864)
  * __fractudauta2:                        Fixed-point fractional library routines.
!                                                              (line  872)
  * __fractudqda:                          Fixed-point fractional library routines.
!                                                              (line  764)
  * __fractudqdf:                          Fixed-point fractional library routines.
!                                                              (line  790)
  * __fractudqdi:                          Fixed-point fractional library routines.
!                                                              (line  786)
  * __fractudqdq:                          Fixed-point fractional library routines.
!                                                              (line  759)
  * __fractudqha:                          Fixed-point fractional library routines.
!                                                              (line  761)
  * __fractudqhi:                          Fixed-point fractional library routines.
!                                                              (line  784)
  * __fractudqhq:                          Fixed-point fractional library routines.
!                                                              (line  756)
  * __fractudqqi:                          Fixed-point fractional library routines.
!                                                              (line  782)
  * __fractudqqq:                          Fixed-point fractional library routines.
!                                                              (line  754)
  * __fractudqsa:                          Fixed-point fractional library routines.
!                                                              (line  763)
  * __fractudqsf:                          Fixed-point fractional library routines.
!                                                              (line  789)
  * __fractudqsi:                          Fixed-point fractional library routines.
!                                                              (line  785)
  * __fractudqsq:                          Fixed-point fractional library routines.
!                                                              (line  757)
  * __fractudqta:                          Fixed-point fractional library routines.
!                                                              (line  766)
  * __fractudqti:                          Fixed-point fractional library routines.
!                                                              (line  787)
  * __fractudquda:                         Fixed-point fractional library routines.
!                                                              (line  778)
  * __fractudquha:                         Fixed-point fractional library routines.
!                                                              (line  774)
  * __fractudquhq2:                        Fixed-point fractional library routines.
!                                                              (line  770)
  * __fractudquqq2:                        Fixed-point fractional library routines.
!                                                              (line  768)
  * __fractudqusa:                         Fixed-point fractional library routines.
!                                                              (line  776)
  * __fractudqusq2:                        Fixed-point fractional library routines.
!                                                              (line  772)
  * __fractudquta:                         Fixed-point fractional library routines.
!                                                              (line  780)
  * __fractuhada:                          Fixed-point fractional library routines.
!                                                              (line  798)
  * __fractuhadf:                          Fixed-point fractional library routines.
!                                                              (line  821)
  * __fractuhadi:                          Fixed-point fractional library routines.
!                                                              (line  818)
  * __fractuhadq:                          Fixed-point fractional library routines.
!                                                              (line  794)
  * __fractuhaha:                          Fixed-point fractional library routines.
!                                                              (line  796)
  * __fractuhahi:                          Fixed-point fractional library routines.
!                                                              (line  816)
  * __fractuhahq:                          Fixed-point fractional library routines.
!                                                              (line  792)
  * __fractuhaqi:                          Fixed-point fractional library routines.
!                                                              (line  815)
  * __fractuhaqq:                          Fixed-point fractional library routines.
!                                                              (line  791)
  * __fractuhasa:                          Fixed-point fractional library routines.
!                                                              (line  797)
  * __fractuhasf:                          Fixed-point fractional library routines.
!                                                              (line  820)
  * __fractuhasi:                          Fixed-point fractional library routines.
!                                                              (line  817)
  * __fractuhasq:                          Fixed-point fractional library routines.
!                                                              (line  793)
  * __fractuhata:                          Fixed-point fractional library routines.
!                                                              (line  799)
  * __fractuhati:                          Fixed-point fractional library routines.
                                                               (line  819)
+ * __fractuhauda2:                        Fixed-point fractional library routines.
+                                                              (line  811)
  * __fractuhaudq:                         Fixed-point fractional library routines.
!                                                              (line  807)
  * __fractuhauhq:                         Fixed-point fractional library routines.
!                                                              (line  803)
  * __fractuhauqq:                         Fixed-point fractional library routines.
!                                                              (line  801)
  * __fractuhausa2:                        Fixed-point fractional library routines.
!                                                              (line  809)
  * __fractuhausq:                         Fixed-point fractional library routines.
!                                                              (line  805)
  * __fractuhauta2:                        Fixed-point fractional library routines.
!                                                              (line  813)
  * __fractuhqda:                          Fixed-point fractional library routines.
!                                                              (line  701)
  * __fractuhqdf:                          Fixed-point fractional library routines.
!                                                              (line  722)
  * __fractuhqdi:                          Fixed-point fractional library routines.
!                                                              (line  719)
  * __fractuhqdq:                          Fixed-point fractional library routines.
!                                                              (line  698)
  * __fractuhqha:                          Fixed-point fractional library routines.
!                                                              (line  699)
  * __fractuhqhi:                          Fixed-point fractional library routines.
!                                                              (line  717)
  * __fractuhqhq:                          Fixed-point fractional library routines.
!                                                              (line  696)
  * __fractuhqqi:                          Fixed-point fractional library routines.
!                                                              (line  716)
  * __fractuhqqq:                          Fixed-point fractional library routines.
!                                                              (line  695)
  * __fractuhqsa:                          Fixed-point fractional library routines.
!                                                              (line  700)
  * __fractuhqsf:                          Fixed-point fractional library routines.
!                                                              (line  721)
  * __fractuhqsi:                          Fixed-point fractional library routines.
!                                                              (line  718)
  * __fractuhqsq:                          Fixed-point fractional library routines.
!                                                              (line  697)
  * __fractuhqta:                          Fixed-point fractional library routines.
!                                                              (line  702)
  * __fractuhqti:                          Fixed-point fractional library routines.
                                                               (line  720)
+ * __fractuhquda:                         Fixed-point fractional library routines.
+                                                              (line  712)
  * __fractuhqudq2:                        Fixed-point fractional library routines.
!                                                              (line  707)
  * __fractuhquha:                         Fixed-point fractional library routines.
!                                                              (line  709)
  * __fractuhquqq2:                        Fixed-point fractional library routines.
!                                                              (line  703)
  * __fractuhqusa:                         Fixed-point fractional library routines.
!                                                              (line  711)
  * __fractuhqusq2:                        Fixed-point fractional library routines.
!                                                              (line  705)
  * __fractuhquta:                         Fixed-point fractional library routines.
!                                                              (line  714)
  * __fractunsdadi:                        Fixed-point fractional library routines.
!                                                              (line 1554)
  * __fractunsdahi:                        Fixed-point fractional library routines.
!                                                              (line 1552)
  * __fractunsdaqi:                        Fixed-point fractional library routines.
!                                                              (line 1551)
  * __fractunsdasi:                        Fixed-point fractional library routines.
!                                                              (line 1553)
  * __fractunsdati:                        Fixed-point fractional library routines.
!                                                              (line 1555)
  * __fractunsdida:                        Fixed-point fractional library routines.
!                                                              (line 1706)
  * __fractunsdidq:                        Fixed-point fractional library routines.
!                                                              (line 1703)
  * __fractunsdiha:                        Fixed-point fractional library routines.
!                                                              (line 1704)
  * __fractunsdihq:                        Fixed-point fractional library routines.
!                                                              (line 1701)
  * __fractunsdiqq:                        Fixed-point fractional library routines.
!                                                              (line 1700)
  * __fractunsdisa:                        Fixed-point fractional library routines.
!                                                              (line 1705)
  * __fractunsdisq:                        Fixed-point fractional library routines.
!                                                              (line 1702)
  * __fractunsdita:                        Fixed-point fractional library routines.
!                                                              (line 1707)
  * __fractunsdiuda:                       Fixed-point fractional library routines.
!                                                              (line 1718)
  * __fractunsdiudq:                       Fixed-point fractional library routines.
!                                                              (line 1713)
  * __fractunsdiuha:                       Fixed-point fractional library routines.
!                                                              (line 1715)
  * __fractunsdiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1710)
  * __fractunsdiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1708)
  * __fractunsdiusa:                       Fixed-point fractional library routines.
!                                                              (line 1717)
  * __fractunsdiusq:                       Fixed-point fractional library routines.
!                                                              (line 1711)
  * __fractunsdiuta:                       Fixed-point fractional library routines.
!                                                              (line 1720)
  * __fractunsdqdi:                        Fixed-point fractional library routines.
!                                                              (line 1538)
  * __fractunsdqhi:                        Fixed-point fractional library routines.
!                                                              (line 1536)
  * __fractunsdqqi:                        Fixed-point fractional library routines.
!                                                              (line 1535)
  * __fractunsdqsi:                        Fixed-point fractional library routines.
!                                                              (line 1537)
  * __fractunsdqti:                        Fixed-point fractional library routines.
!                                                              (line 1539)
  * __fractunshadi:                        Fixed-point fractional library routines.
!                                                              (line 1544)
  * __fractunshahi:                        Fixed-point fractional library routines.
!                                                              (line 1542)
  * __fractunshaqi:                        Fixed-point fractional library routines.
!                                                              (line 1541)
  * __fractunshasi:                        Fixed-point fractional library routines.
!                                                              (line 1543)
  * __fractunshati:                        Fixed-point fractional library routines.
!                                                              (line 1545)
  * __fractunshida:                        Fixed-point fractional library routines.
!                                                              (line 1662)
  * __fractunshidq:                        Fixed-point fractional library routines.
!                                                              (line 1659)
  * __fractunshiha:                        Fixed-point fractional library routines.
!                                                              (line 1660)
  * __fractunshihq:                        Fixed-point fractional library routines.
!                                                              (line 1657)
  * __fractunshiqq:                        Fixed-point fractional library routines.
!                                                              (line 1656)
  * __fractunshisa:                        Fixed-point fractional library routines.
!                                                              (line 1661)
  * __fractunshisq:                        Fixed-point fractional library routines.
!                                                              (line 1658)
  * __fractunshita:                        Fixed-point fractional library routines.
!                                                              (line 1663)
  * __fractunshiuda:                       Fixed-point fractional library routines.
!                                                              (line 1674)
  * __fractunshiudq:                       Fixed-point fractional library routines.
!                                                              (line 1669)
  * __fractunshiuha:                       Fixed-point fractional library routines.
!                                                              (line 1671)
  * __fractunshiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1666)
  * __fractunshiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1664)
  * __fractunshiusa:                       Fixed-point fractional library routines.
!                                                              (line 1673)
  * __fractunshiusq:                       Fixed-point fractional library routines.
!                                                              (line 1667)
  * __fractunshiuta:                       Fixed-point fractional library routines.
!                                                              (line 1676)
  * __fractunshqdi:                        Fixed-point fractional library routines.
!                                                              (line 1528)
  * __fractunshqhi:                        Fixed-point fractional library routines.
!                                                              (line 1526)
  * __fractunshqqi:                        Fixed-point fractional library routines.
!                                                              (line 1525)
  * __fractunshqsi:                        Fixed-point fractional library routines.
!                                                              (line 1527)
  * __fractunshqti:                        Fixed-point fractional library routines.
!                                                              (line 1529)
  * __fractunsqida:                        Fixed-point fractional library routines.
!                                                              (line 1640)
  * __fractunsqidq:                        Fixed-point fractional library routines.
!                                                              (line 1637)
  * __fractunsqiha:                        Fixed-point fractional library routines.
!                                                              (line 1638)
  * __fractunsqihq:                        Fixed-point fractional library routines.
!                                                              (line 1635)
  * __fractunsqiqq:                        Fixed-point fractional library routines.
!                                                              (line 1634)
  * __fractunsqisa:                        Fixed-point fractional library routines.
!                                                              (line 1639)
  * __fractunsqisq:                        Fixed-point fractional library routines.
!                                                              (line 1636)
  * __fractunsqita:                        Fixed-point fractional library routines.
!                                                              (line 1641)
  * __fractunsqiuda:                       Fixed-point fractional library routines.
!                                                              (line 1652)
  * __fractunsqiudq:                       Fixed-point fractional library routines.
!                                                              (line 1647)
  * __fractunsqiuha:                       Fixed-point fractional library routines.
!                                                              (line 1649)
  * __fractunsqiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1644)
  * __fractunsqiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1642)
  * __fractunsqiusa:                       Fixed-point fractional library routines.
!                                                              (line 1651)
  * __fractunsqiusq:                       Fixed-point fractional library routines.
!                                                              (line 1645)
  * __fractunsqiuta:                       Fixed-point fractional library routines.
!                                                              (line 1654)
  * __fractunsqqdi:                        Fixed-point fractional library routines.
!                                                              (line 1523)
  * __fractunsqqhi:                        Fixed-point fractional library routines.
!                                                              (line 1521)
  * __fractunsqqqi:                        Fixed-point fractional library routines.
!                                                              (line 1520)
  * __fractunsqqsi:                        Fixed-point fractional library routines.
!                                                              (line 1522)
  * __fractunsqqti:                        Fixed-point fractional library routines.
!                                                              (line 1524)
  * __fractunssadi:                        Fixed-point fractional library routines.
!                                                              (line 1549)
  * __fractunssahi:                        Fixed-point fractional library routines.
!                                                              (line 1547)
  * __fractunssaqi:                        Fixed-point fractional library routines.
!                                                              (line 1546)
  * __fractunssasi:                        Fixed-point fractional library routines.
!                                                              (line 1548)
  * __fractunssati:                        Fixed-point fractional library routines.
!                                                              (line 1550)
  * __fractunssida:                        Fixed-point fractional library routines.
!                                                              (line 1684)
  * __fractunssidq:                        Fixed-point fractional library routines.
!                                                              (line 1681)
  * __fractunssiha:                        Fixed-point fractional library routines.
!                                                              (line 1682)
  * __fractunssihq:                        Fixed-point fractional library routines.
!                                                              (line 1679)
  * __fractunssiqq:                        Fixed-point fractional library routines.
!                                                              (line 1678)
  * __fractunssisa:                        Fixed-point fractional library routines.
!                                                              (line 1683)
  * __fractunssisq:                        Fixed-point fractional library routines.
!                                                              (line 1680)
  * __fractunssita:                        Fixed-point fractional library routines.
!                                                              (line 1685)
  * __fractunssiuda:                       Fixed-point fractional library routines.
!                                                              (line 1696)
  * __fractunssiudq:                       Fixed-point fractional library routines.
!                                                              (line 1691)
  * __fractunssiuha:                       Fixed-point fractional library routines.
!                                                              (line 1693)
  * __fractunssiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1688)
  * __fractunssiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1686)
  * __fractunssiusa:                       Fixed-point fractional library routines.
!                                                              (line 1695)
  * __fractunssiusq:                       Fixed-point fractional library routines.
!                                                              (line 1689)
  * __fractunssiuta:                       Fixed-point fractional library routines.
!                                                              (line 1698)
  * __fractunssqdi:                        Fixed-point fractional library routines.
!                                                              (line 1533)
  * __fractunssqhi:                        Fixed-point fractional library routines.
!                                                              (line 1531)
  * __fractunssqqi:                        Fixed-point fractional library routines.
!                                                              (line 1530)
  * __fractunssqsi:                        Fixed-point fractional library routines.
!                                                              (line 1532)
  * __fractunssqti:                        Fixed-point fractional library routines.
!                                                              (line 1534)
  * __fractunstadi:                        Fixed-point fractional library routines.
!                                                              (line 1559)
  * __fractunstahi:                        Fixed-point fractional library routines.
!                                                              (line 1557)
  * __fractunstaqi:                        Fixed-point fractional library routines.
!                                                              (line 1556)
  * __fractunstasi:                        Fixed-point fractional library routines.
!                                                              (line 1558)
  * __fractunstati:                        Fixed-point fractional library routines.
!                                                              (line 1560)
  * __fractunstida:                        Fixed-point fractional library routines.
!                                                              (line 1729)
  * __fractunstidq:                        Fixed-point fractional library routines.
!                                                              (line 1725)
  * __fractunstiha:                        Fixed-point fractional library routines.
!                                                              (line 1727)
  * __fractunstihq:                        Fixed-point fractional library routines.
!                                                              (line 1723)
  * __fractunstiqq:                        Fixed-point fractional library routines.
!                                                              (line 1722)
  * __fractunstisa:                        Fixed-point fractional library routines.
!                                                              (line 1728)
  * __fractunstisq:                        Fixed-point fractional library routines.
!                                                              (line 1724)
  * __fractunstita:                        Fixed-point fractional library routines.
!                                                              (line 1730)
  * __fractunstiuda:                       Fixed-point fractional library routines.
!                                                              (line 1744)
  * __fractunstiudq:                       Fixed-point fractional library routines.
!                                                              (line 1738)
  * __fractunstiuha:                       Fixed-point fractional library routines.
!                                                              (line 1740)
  * __fractunstiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1734)
  * __fractunstiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1732)
  * __fractunstiusa:                       Fixed-point fractional library routines.
!                                                              (line 1742)
  * __fractunstiusq:                       Fixed-point fractional library routines.
!                                                              (line 1736)
  * __fractunstiuta:                       Fixed-point fractional library routines.
!                                                              (line 1746)
  * __fractunsudadi:                       Fixed-point fractional library routines.
!                                                              (line 1620)
  * __fractunsudahi:                       Fixed-point fractional library routines.
!                                                              (line 1616)
  * __fractunsudaqi:                       Fixed-point fractional library routines.
!                                                              (line 1614)
  * __fractunsudasi:                       Fixed-point fractional library routines.
!                                                              (line 1618)
  * __fractunsudati:                       Fixed-point fractional library routines.
!                                                              (line 1622)
  * __fractunsudqdi:                       Fixed-point fractional library routines.
!                                                              (line 1594)
  * __fractunsudqhi:                       Fixed-point fractional library routines.
!                                                              (line 1590)
  * __fractunsudqqi:                       Fixed-point fractional library routines.
!                                                              (line 1588)
  * __fractunsudqsi:                       Fixed-point fractional library routines.
!                                                              (line 1592)
  * __fractunsudqti:                       Fixed-point fractional library routines.
!                                                              (line 1596)
  * __fractunsuhadi:                       Fixed-point fractional library routines.
!                                                              (line 1604)
  * __fractunsuhahi:                       Fixed-point fractional library routines.
!                                                              (line 1600)
  * __fractunsuhaqi:                       Fixed-point fractional library routines.
!                                                              (line 1598)
  * __fractunsuhasi:                       Fixed-point fractional library routines.
!                                                              (line 1602)
  * __fractunsuhati:                       Fixed-point fractional library routines.
!                                                              (line 1606)
  * __fractunsuhqdi:                       Fixed-point fractional library routines.
!                                                              (line 1575)
  * __fractunsuhqhi:                       Fixed-point fractional library routines.
!                                                              (line 1573)
  * __fractunsuhqqi:                       Fixed-point fractional library routines.
!                                                              (line 1572)
  * __fractunsuhqsi:                       Fixed-point fractional library routines.
!                                                              (line 1574)
  * __fractunsuhqti:                       Fixed-point fractional library routines.
                                                               (line 1576)
+ * __fractunsuqqdi:                       Fixed-point fractional library routines.
+                                                              (line 1568)
  * __fractunsuqqhi:                       Fixed-point fractional library routines.
!                                                              (line 1564)
  * __fractunsuqqqi:                       Fixed-point fractional library routines.
!                                                              (line 1562)
  * __fractunsuqqsi:                       Fixed-point fractional library routines.
!                                                              (line 1566)
  * __fractunsuqqti:                       Fixed-point fractional library routines.
!                                                              (line 1570)
  * __fractunsusadi:                       Fixed-point fractional library routines.
!                                                              (line 1611)
  * __fractunsusahi:                       Fixed-point fractional library routines.
!                                                              (line 1609)
  * __fractunsusaqi:                       Fixed-point fractional library routines.
!                                                              (line 1608)
  * __fractunsusasi:                       Fixed-point fractional library routines.
!                                                              (line 1610)
  * __fractunsusati:                       Fixed-point fractional library routines.
!                                                              (line 1612)
  * __fractunsusqdi:                       Fixed-point fractional library routines.
!                                                              (line 1584)
  * __fractunsusqhi:                       Fixed-point fractional library routines.
!                                                              (line 1580)
  * __fractunsusqqi:                       Fixed-point fractional library routines.
!                                                              (line 1578)
  * __fractunsusqsi:                       Fixed-point fractional library routines.
!                                                              (line 1582)
  * __fractunsusqti:                       Fixed-point fractional library routines.
!                                                              (line 1586)
  * __fractunsutadi:                       Fixed-point fractional library routines.
!                                                              (line 1630)
  * __fractunsutahi:                       Fixed-point fractional library routines.
!                                                              (line 1626)
  * __fractunsutaqi:                       Fixed-point fractional library routines.
!                                                              (line 1624)
  * __fractunsutasi:                       Fixed-point fractional library routines.
!                                                              (line 1628)
  * __fractunsutati:                       Fixed-point fractional library routines.
!                                                              (line 1632)
  * __fractuqqda:                          Fixed-point fractional library routines.
!                                                              (line  671)
  * __fractuqqdf:                          Fixed-point fractional library routines.
!                                                              (line  694)
  * __fractuqqdi:                          Fixed-point fractional library routines.
!                                                              (line  691)
  * __fractuqqdq:                          Fixed-point fractional library routines.
!                                                              (line  667)
  * __fractuqqha:                          Fixed-point fractional library routines.
!                                                              (line  669)
  * __fractuqqhi:                          Fixed-point fractional library routines.
!                                                              (line  689)
  * __fractuqqhq:                          Fixed-point fractional library routines.
!                                                              (line  665)
  * __fractuqqqi:                          Fixed-point fractional library routines.
!                                                              (line  688)
  * __fractuqqqq:                          Fixed-point fractional library routines.
!                                                              (line  664)
  * __fractuqqsa:                          Fixed-point fractional library routines.
!                                                              (line  670)
  * __fractuqqsf:                          Fixed-point fractional library routines.
!                                                              (line  693)
  * __fractuqqsi:                          Fixed-point fractional library routines.
!                                                              (line  690)
  * __fractuqqsq:                          Fixed-point fractional library routines.
!                                                              (line  666)
  * __fractuqqta:                          Fixed-point fractional library routines.
!                                                              (line  672)
  * __fractuqqti:                          Fixed-point fractional library routines.
                                                               (line  692)
+ * __fractuqquda:                         Fixed-point fractional library routines.
+                                                              (line  684)
  * __fractuqqudq2:                        Fixed-point fractional library routines.
!                                                              (line  678)
  * __fractuqquha:                         Fixed-point fractional library routines.
!                                                              (line  680)
  * __fractuqquhq2:                        Fixed-point fractional library routines.
!                                                              (line  674)
  * __fractuqqusa:                         Fixed-point fractional library routines.
!                                                              (line  682)
  * __fractuqqusq2:                        Fixed-point fractional library routines.
!                                                              (line  676)
  * __fractuqquta:                         Fixed-point fractional library routines.
!                                                              (line  686)
  * __fractusada:                          Fixed-point fractional library routines.
!                                                              (line  828)
  * __fractusadf:                          Fixed-point fractional library routines.
!                                                              (line  849)
  * __fractusadi:                          Fixed-point fractional library routines.
!                                                              (line  846)
  * __fractusadq:                          Fixed-point fractional library routines.
!                                                              (line  825)
  * __fractusaha:                          Fixed-point fractional library routines.
!                                                              (line  826)
  * __fractusahi:                          Fixed-point fractional library routines.
!                                                              (line  844)
  * __fractusahq:                          Fixed-point fractional library routines.
!                                                              (line  823)
  * __fractusaqi:                          Fixed-point fractional library routines.
!                                                              (line  843)
  * __fractusaqq:                          Fixed-point fractional library routines.
!                                                              (line  822)
  * __fractusasa:                          Fixed-point fractional library routines.
!                                                              (line  827)
  * __fractusasf:                          Fixed-point fractional library routines.
!                                                              (line  848)
  * __fractusasi:                          Fixed-point fractional library routines.
!                                                              (line  845)
  * __fractusasq:                          Fixed-point fractional library routines.
!                                                              (line  824)
  * __fractusata:                          Fixed-point fractional library routines.
!                                                              (line  829)
  * __fractusati:                          Fixed-point fractional library routines.
                                                               (line  847)
+ * __fractusauda2:                        Fixed-point fractional library routines.
+                                                              (line  839)
  * __fractusaudq:                         Fixed-point fractional library routines.
!                                                              (line  835)
  * __fractusauha2:                        Fixed-point fractional library routines.
!                                                              (line  837)
  * __fractusauhq:                         Fixed-point fractional library routines.
!                                                              (line  832)
  * __fractusauqq:                         Fixed-point fractional library routines.
!                                                              (line  830)
  * __fractusausq:                         Fixed-point fractional library routines.
!                                                              (line  833)
  * __fractusauta2:                        Fixed-point fractional library routines.
!                                                              (line  841)
  * __fractusqda:                          Fixed-point fractional library routines.
!                                                              (line  730)
  * __fractusqdf:                          Fixed-point fractional library routines.
!                                                              (line  753)
  * __fractusqdi:                          Fixed-point fractional library routines.
!                                                              (line  750)
  * __fractusqdq:                          Fixed-point fractional library routines.
!                                                              (line  726)
  * __fractusqha:                          Fixed-point fractional library routines.
!                                                              (line  728)
  * __fractusqhi:                          Fixed-point fractional library routines.
!                                                              (line  748)
  * __fractusqhq:                          Fixed-point fractional library routines.
!                                                              (line  724)
  * __fractusqqi:                          Fixed-point fractional library routines.
!                                                              (line  747)
  * __fractusqqq:                          Fixed-point fractional library routines.
!                                                              (line  723)
  * __fractusqsa:                          Fixed-point fractional library routines.
!                                                              (line  729)
  * __fractusqsf:                          Fixed-point fractional library routines.
!                                                              (line  752)
  * __fractusqsi:                          Fixed-point fractional library routines.
!                                                              (line  749)
  * __fractusqsq:                          Fixed-point fractional library routines.
!                                                              (line  725)
  * __fractusqta:                          Fixed-point fractional library routines.
!                                                              (line  731)
  * __fractusqti:                          Fixed-point fractional library routines.
                                                               (line  751)
+ * __fractusquda:                         Fixed-point fractional library routines.
+                                                              (line  743)
  * __fractusqudq2:                        Fixed-point fractional library routines.
!                                                              (line  737)
  * __fractusquha:                         Fixed-point fractional library routines.
!                                                              (line  739)
  * __fractusquhq2:                        Fixed-point fractional library routines.
!                                                              (line  735)
  * __fractusquqq2:                        Fixed-point fractional library routines.
!                                                              (line  733)
  * __fractusqusa:                         Fixed-point fractional library routines.
!                                                              (line  741)
  * __fractusquta:                         Fixed-point fractional library routines.
!                                                              (line  745)
  * __fractutada:                          Fixed-point fractional library routines.
!                                                              (line  891)
  * __fractutadf:                          Fixed-point fractional library routines.
!                                                              (line  917)
  * __fractutadi:                          Fixed-point fractional library routines.
!                                                              (line  913)
  * __fractutadq:                          Fixed-point fractional library routines.
!                                                              (line  886)
  * __fractutaha:                          Fixed-point fractional library routines.
!                                                              (line  888)
  * __fractutahi:                          Fixed-point fractional library routines.
!                                                              (line  911)
  * __fractutahq:                          Fixed-point fractional library routines.
!                                                              (line  883)
  * __fractutaqi:                          Fixed-point fractional library routines.
!                                                              (line  909)
  * __fractutaqq:                          Fixed-point fractional library routines.
!                                                              (line  881)
  * __fractutasa:                          Fixed-point fractional library routines.
!                                                              (line  890)
  * __fractutasf:                          Fixed-point fractional library routines.
!                                                              (line  916)
  * __fractutasi:                          Fixed-point fractional library routines.
!                                                              (line  912)
  * __fractutasq:                          Fixed-point fractional library routines.
!                                                              (line  884)
  * __fractutata:                          Fixed-point fractional library routines.
!                                                              (line  893)
  * __fractutati:                          Fixed-point fractional library routines.
!                                                              (line  914)
  * __fractutauda2:                        Fixed-point fractional library routines.
!                                                              (line  907)
  * __fractutaudq:                         Fixed-point fractional library routines.
!                                                              (line  901)
  * __fractutauha2:                        Fixed-point fractional library routines.
!                                                              (line  903)
  * __fractutauhq:                         Fixed-point fractional library routines.
!                                                              (line  897)
  * __fractutauqq:                         Fixed-point fractional library routines.
!                                                              (line  895)
  * __fractutausa2:                        Fixed-point fractional library routines.
!                                                              (line  905)
  * __fractutausq:                         Fixed-point fractional library routines.
!                                                              (line  899)
  * __gedf2:                               Soft float library routines.
                                                               (line  205)
  * __gesf2:                               Soft float library routines.
*************** Concept Index
*** 52189,52209 ****
  * __lshrti3:                             Integer library routines.
                                                               (line   31)
  * __lshruda3:                            Fixed-point fractional library routines.
!                                                              (line  396)
  * __lshrudq3:                            Fixed-point fractional library routines.
!                                                              (line  390)
  * __lshruha3:                            Fixed-point fractional library routines.
!                                                              (line  392)
  * __lshruhq3:                            Fixed-point fractional library routines.
!                                                              (line  386)
  * __lshruqq3:                            Fixed-point fractional library routines.
!                                                              (line  384)
  * __lshrusa3:                            Fixed-point fractional library routines.
!                                                              (line  394)
  * __lshrusq3:                            Fixed-point fractional library routines.
!                                                              (line  388)
  * __lshruta3:                            Fixed-point fractional library routines.
!                                                              (line  398)
  * __ltdf2:                               Soft float library routines.
                                                               (line  211)
  * __ltsf2:                               Soft float library routines.
--- 52189,52209 ----
  * __lshrti3:                             Integer library routines.
                                                               (line   31)
  * __lshruda3:                            Fixed-point fractional library routines.
!                                                              (line  388)
  * __lshrudq3:                            Fixed-point fractional library routines.
!                                                              (line  382)
  * __lshruha3:                            Fixed-point fractional library routines.
!                                                              (line  384)
  * __lshruhq3:                            Fixed-point fractional library routines.
!                                                              (line  378)
  * __lshruqq3:                            Fixed-point fractional library routines.
!                                                              (line  376)
  * __lshrusa3:                            Fixed-point fractional library routines.
!                                                              (line  386)
  * __lshrusq3:                            Fixed-point fractional library routines.
!                                                              (line  380)
  * __lshruta3:                            Fixed-point fractional library routines.
!                                                              (line  390)
  * __ltdf2:                               Soft float library routines.
                                                               (line  211)
  * __ltsf2:                               Soft float library routines.
*************** Concept Index
*** 52224,52230 ****
  * __morestack_segments:                  Miscellaneous routines.
                                                               (line   44)
  * __mulda3:                              Fixed-point fractional library routines.
!                                                              (line  178)
  * __muldc3:                              Soft float library routines.
                                                               (line  239)
  * __muldf3:                              Soft float library routines.
--- 52224,52230 ----
  * __morestack_segments:                  Miscellaneous routines.
                                                               (line   44)
  * __mulda3:                              Fixed-point fractional library routines.
!                                                              (line  170)
  * __muldc3:                              Soft float library routines.
                                                               (line  239)
  * __muldf3:                              Soft float library routines.
*************** Concept Index
*** 52232,52246 ****
  * __muldi3:                              Integer library routines.
                                                               (line   42)
  * __muldq3:                              Fixed-point fractional library routines.
!                                                              (line  165)
  * __mulha3:                              Fixed-point fractional library routines.
!                                                              (line  175)
  * __mulhq3:                              Fixed-point fractional library routines.
!                                                              (line  163)
  * __mulqq3:                              Fixed-point fractional library routines.
!                                                              (line  161)
  * __mulsa3:                              Fixed-point fractional library routines.
!                                                              (line  177)
  * __mulsc3:                              Soft float library routines.
                                                               (line  237)
  * __mulsf3:                              Soft float library routines.
--- 52232,52246 ----
  * __muldi3:                              Integer library routines.
                                                               (line   42)
  * __muldq3:                              Fixed-point fractional library routines.
!                                                              (line  157)
  * __mulha3:                              Fixed-point fractional library routines.
!                                                              (line  167)
  * __mulhq3:                              Fixed-point fractional library routines.
!                                                              (line  155)
  * __mulqq3:                              Fixed-point fractional library routines.
!                                                              (line  153)
  * __mulsa3:                              Fixed-point fractional library routines.
!                                                              (line  169)
  * __mulsc3:                              Soft float library routines.
                                                               (line  237)
  * __mulsf3:                              Soft float library routines.
*************** Concept Index
*** 52248,52256 ****
  * __mulsi3:                              Integer library routines.
                                                               (line   41)
  * __mulsq3:                              Fixed-point fractional library routines.
!                                                              (line  164)
  * __multa3:                              Fixed-point fractional library routines.
!                                                              (line  179)
  * __multc3:                              Soft float library routines.
                                                               (line  241)
  * __multf3:                              Soft float library routines.
--- 52248,52256 ----
  * __mulsi3:                              Integer library routines.
                                                               (line   41)
  * __mulsq3:                              Fixed-point fractional library routines.
!                                                              (line  156)
  * __multa3:                              Fixed-point fractional library routines.
!                                                              (line  171)
  * __multc3:                              Soft float library routines.
                                                               (line  241)
  * __multf3:                              Soft float library routines.
*************** Concept Index
*** 52258,52278 ****
  * __multi3:                              Integer library routines.
                                                               (line   43)
  * __muluda3:                             Fixed-point fractional library routines.
!                                                              (line  185)
  * __muludq3:                             Fixed-point fractional library routines.
!                                                              (line  173)
  * __muluha3:                             Fixed-point fractional library routines.
!                                                              (line  181)
  * __muluhq3:                             Fixed-point fractional library routines.
!                                                              (line  169)
  * __muluqq3:                             Fixed-point fractional library routines.
!                                                              (line  167)
  * __mulusa3:                             Fixed-point fractional library routines.
!                                                              (line  183)
  * __mulusq3:                             Fixed-point fractional library routines.
!                                                              (line  171)
  * __muluta3:                             Fixed-point fractional library routines.
!                                                              (line  187)
  * __mulvdi3:                             Integer library routines.
                                                               (line  114)
  * __mulvsi3:                             Integer library routines.
--- 52258,52278 ----
  * __multi3:                              Integer library routines.
                                                               (line   43)
  * __muluda3:                             Fixed-point fractional library routines.
!                                                              (line  177)
  * __muludq3:                             Fixed-point fractional library routines.
!                                                              (line  165)
  * __muluha3:                             Fixed-point fractional library routines.
!                                                              (line  173)
  * __muluhq3:                             Fixed-point fractional library routines.
!                                                              (line  161)
  * __muluqq3:                             Fixed-point fractional library routines.
!                                                              (line  159)
  * __mulusa3:                             Fixed-point fractional library routines.
!                                                              (line  175)
  * __mulusq3:                             Fixed-point fractional library routines.
!                                                              (line  163)
  * __muluta3:                             Fixed-point fractional library routines.
!                                                              (line  179)
  * __mulvdi3:                             Integer library routines.
                                                               (line  114)
  * __mulvsi3:                             Integer library routines.
*************** Concept Index
*** 52284,52330 ****
  * __nedf2:                               Soft float library routines.
                                                               (line  199)
  * __negda2:                              Fixed-point fractional library routines.
!                                                              (line  306)
  * __negdf2:                              Soft float library routines.
                                                               (line   55)
  * __negdi2:                              Integer library routines.
                                                               (line   46)
  * __negdq2:                              Fixed-point fractional library routines.
!                                                              (line  296)
  * __negha2:                              Fixed-point fractional library routines.
!                                                              (line  304)
  * __neghq2:                              Fixed-point fractional library routines.
!                                                              (line  294)
  * __negqq2:                              Fixed-point fractional library routines.
!                                                              (line  293)
  * __negsa2:                              Fixed-point fractional library routines.
!                                                              (line  305)
  * __negsf2:                              Soft float library routines.
                                                               (line   54)
  * __negsq2:                              Fixed-point fractional library routines.
!                                                              (line  295)
  * __negta2:                              Fixed-point fractional library routines.
!                                                              (line  307)
  * __negtf2:                              Soft float library routines.
                                                               (line   56)
  * __negti2:                              Integer library routines.
                                                               (line   47)
  * __neguda2:                             Fixed-point fractional library routines.
!                                                              (line  311)
  * __negudq2:                             Fixed-point fractional library routines.
!                                                              (line  302)
  * __neguha2:                             Fixed-point fractional library routines.
!                                                              (line  308)
  * __neguhq2:                             Fixed-point fractional library routines.
!                                                              (line  299)
  * __neguqq2:                             Fixed-point fractional library routines.
!                                                              (line  297)
  * __negusa2:                             Fixed-point fractional library routines.
!                                                              (line  310)
  * __negusq2:                             Fixed-point fractional library routines.
!                                                              (line  300)
  * __neguta2:                             Fixed-point fractional library routines.
!                                                              (line  313)
  * __negvdi2:                             Integer library routines.
                                                               (line  118)
  * __negvsi2:                             Integer library routines.
--- 52284,52330 ----
  * __nedf2:                               Soft float library routines.
                                                               (line  199)
  * __negda2:                              Fixed-point fractional library routines.
!                                                              (line  298)
  * __negdf2:                              Soft float library routines.
                                                               (line   55)
  * __negdi2:                              Integer library routines.
                                                               (line   46)
  * __negdq2:                              Fixed-point fractional library routines.
!                                                              (line  288)
  * __negha2:                              Fixed-point fractional library routines.
!                                                              (line  296)
  * __neghq2:                              Fixed-point fractional library routines.
!                                                              (line  286)
  * __negqq2:                              Fixed-point fractional library routines.
!                                                              (line  285)
  * __negsa2:                              Fixed-point fractional library routines.
!                                                              (line  297)
  * __negsf2:                              Soft float library routines.
                                                               (line   54)
  * __negsq2:                              Fixed-point fractional library routines.
!                                                              (line  287)
  * __negta2:                              Fixed-point fractional library routines.
!                                                              (line  299)
  * __negtf2:                              Soft float library routines.
                                                               (line   56)
  * __negti2:                              Integer library routines.
                                                               (line   47)
  * __neguda2:                             Fixed-point fractional library routines.
!                                                              (line  303)
  * __negudq2:                             Fixed-point fractional library routines.
!                                                              (line  294)
  * __neguha2:                             Fixed-point fractional library routines.
!                                                              (line  300)
  * __neguhq2:                             Fixed-point fractional library routines.
!                                                              (line  291)
  * __neguqq2:                             Fixed-point fractional library routines.
!                                                              (line  289)
  * __negusa2:                             Fixed-point fractional library routines.
!                                                              (line  302)
  * __negusq2:                             Fixed-point fractional library routines.
!                                                              (line  292)
  * __neguta2:                             Fixed-point fractional library routines.
!                                                              (line  305)
  * __negvdi2:                             Integer library routines.
                                                               (line  118)
  * __negvsi2:                             Integer library routines.
*************** Concept Index
*** 52356,53358 ****
  * __powixf2:                             Soft float library routines.
                                                               (line  234)
  * __satfractdadq:                        Fixed-point fractional library routines.
!                                                              (line 1160)
  * __satfractdaha2:                       Fixed-point fractional library routines.
!                                                              (line 1161)
  * __satfractdahq:                        Fixed-point fractional library routines.
!                                                              (line 1158)
  * __satfractdaqq:                        Fixed-point fractional library routines.
!                                                              (line 1157)
  * __satfractdasa2:                       Fixed-point fractional library routines.
!                                                              (line 1162)
  * __satfractdasq:                        Fixed-point fractional library routines.
!                                                              (line 1159)
  * __satfractdata2:                       Fixed-point fractional library routines.
!                                                              (line 1163)
  * __satfractdauda:                       Fixed-point fractional library routines.
!                                                              (line 1173)
  * __satfractdaudq:                       Fixed-point fractional library routines.
!                                                              (line 1168)
  * __satfractdauha:                       Fixed-point fractional library routines.
!                                                              (line 1170)
  * __satfractdauhq:                       Fixed-point fractional library routines.
!                                                              (line 1166)
  * __satfractdauqq:                       Fixed-point fractional library routines.
!                                                              (line 1164)
  * __satfractdausa:                       Fixed-point fractional library routines.
!                                                              (line 1172)
  * __satfractdausq:                       Fixed-point fractional library routines.
!                                                              (line 1167)
  * __satfractdauta:                       Fixed-point fractional library routines.
!                                                              (line 1174)
  * __satfractdfda:                        Fixed-point fractional library routines.
!                                                              (line 1513)
  * __satfractdfdq:                        Fixed-point fractional library routines.
!                                                              (line 1510)
  * __satfractdfha:                        Fixed-point fractional library routines.
!                                                              (line 1511)
  * __satfractdfhq:                        Fixed-point fractional library routines.
!                                                              (line 1508)
  * __satfractdfqq:                        Fixed-point fractional library routines.
!                                                              (line 1507)
  * __satfractdfsa:                        Fixed-point fractional library routines.
!                                                              (line 1512)
  * __satfractdfsq:                        Fixed-point fractional library routines.
!                                                              (line 1509)
  * __satfractdfta:                        Fixed-point fractional library routines.
!                                                              (line 1514)
  * __satfractdfuda:                       Fixed-point fractional library routines.
!                                                              (line 1522)
  * __satfractdfudq:                       Fixed-point fractional library routines.
!                                                              (line 1518)
  * __satfractdfuha:                       Fixed-point fractional library routines.
!                                                              (line 1520)
  * __satfractdfuhq:                       Fixed-point fractional library routines.
!                                                              (line 1516)
  * __satfractdfuqq:                       Fixed-point fractional library routines.
!                                                              (line 1515)
  * __satfractdfusa:                       Fixed-point fractional library routines.
!                                                              (line 1521)
  * __satfractdfusq:                       Fixed-point fractional library routines.
!                                                              (line 1517)
  * __satfractdfuta:                       Fixed-point fractional library routines.
!                                                              (line 1523)
  * __satfractdida:                        Fixed-point fractional library routines.
!                                                              (line 1463)
  * __satfractdidq:                        Fixed-point fractional library routines.
!                                                              (line 1460)
  * __satfractdiha:                        Fixed-point fractional library routines.
!                                                              (line 1461)
  * __satfractdihq:                        Fixed-point fractional library routines.
!                                                              (line 1458)
  * __satfractdiqq:                        Fixed-point fractional library routines.
!                                                              (line 1457)
  * __satfractdisa:                        Fixed-point fractional library routines.
!                                                              (line 1462)
  * __satfractdisq:                        Fixed-point fractional library routines.
!                                                              (line 1459)
  * __satfractdita:                        Fixed-point fractional library routines.
!                                                              (line 1464)
  * __satfractdiuda:                       Fixed-point fractional library routines.
!                                                              (line 1471)
  * __satfractdiudq:                       Fixed-point fractional library routines.
!                                                              (line 1468)
  * __satfractdiuha:                       Fixed-point fractional library routines.
!                                                              (line 1469)
  * __satfractdiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1466)
  * __satfractdiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1465)
  * __satfractdiusa:                       Fixed-point fractional library routines.
!                                                              (line 1470)
  * __satfractdiusq:                       Fixed-point fractional library routines.
!                                                              (line 1467)
  * __satfractdiuta:                       Fixed-point fractional library routines.
!                                                              (line 1472)
  * __satfractdqda:                        Fixed-point fractional library routines.
!                                                              (line 1105)
  * __satfractdqha:                        Fixed-point fractional library routines.
!                                                              (line 1103)
  * __satfractdqhq2:                       Fixed-point fractional library routines.
!                                                              (line 1101)
  * __satfractdqqq2:                       Fixed-point fractional library routines.
!                                                              (line 1100)
  * __satfractdqsa:                        Fixed-point fractional library routines.
!                                                              (line 1104)
  * __satfractdqsq2:                       Fixed-point fractional library routines.
!                                                              (line 1102)
  * __satfractdqta:                        Fixed-point fractional library routines.
!                                                              (line 1106)
  * __satfractdquda:                       Fixed-point fractional library routines.
!                                                              (line 1117)
  * __satfractdqudq:                       Fixed-point fractional library routines.
!                                                              (line 1112)
  * __satfractdquha:                       Fixed-point fractional library routines.
!                                                              (line 1114)
  * __satfractdquhq:                       Fixed-point fractional library routines.
!                                                              (line 1109)
  * __satfractdquqq:                       Fixed-point fractional library routines.
!                                                              (line 1107)
  * __satfractdqusa:                       Fixed-point fractional library routines.
!                                                              (line 1116)
  * __satfractdqusq:                       Fixed-point fractional library routines.
!                                                              (line 1110)
  * __satfractdquta:                       Fixed-point fractional library routines.
!                                                              (line 1119)
  * __satfracthada2:                       Fixed-point fractional library routines.
!                                                              (line 1126)
  * __satfracthadq:                        Fixed-point fractional library routines.
!                                                              (line 1124)
  * __satfracthahq:                        Fixed-point fractional library routines.
!                                                              (line 1122)
  * __satfracthaqq:                        Fixed-point fractional library routines.
!                                                              (line 1121)
  * __satfracthasa2:                       Fixed-point fractional library routines.
!                                                              (line 1125)
  * __satfracthasq:                        Fixed-point fractional library routines.
!                                                              (line 1123)
  * __satfracthata2:                       Fixed-point fractional library routines.
!                                                              (line 1127)
  * __satfracthauda:                       Fixed-point fractional library routines.
!                                                              (line 1138)
  * __satfracthaudq:                       Fixed-point fractional library routines.
!                                                              (line 1133)
  * __satfracthauha:                       Fixed-point fractional library routines.
!                                                              (line 1135)
  * __satfracthauhq:                       Fixed-point fractional library routines.
!                                                              (line 1130)
  * __satfracthauqq:                       Fixed-point fractional library routines.
!                                                              (line 1128)
  * __satfracthausa:                       Fixed-point fractional library routines.
!                                                              (line 1137)
  * __satfracthausq:                       Fixed-point fractional library routines.
!                                                              (line 1131)
  * __satfracthauta:                       Fixed-point fractional library routines.
!                                                              (line 1140)
  * __satfracthida:                        Fixed-point fractional library routines.
!                                                              (line 1431)
  * __satfracthidq:                        Fixed-point fractional library routines.
!                                                              (line 1428)
  * __satfracthiha:                        Fixed-point fractional library routines.
!                                                              (line 1429)
  * __satfracthihq:                        Fixed-point fractional library routines.
!                                                              (line 1426)
  * __satfracthiqq:                        Fixed-point fractional library routines.
!                                                              (line 1425)
  * __satfracthisa:                        Fixed-point fractional library routines.
!                                                              (line 1430)
  * __satfracthisq:                        Fixed-point fractional library routines.
!                                                              (line 1427)
  * __satfracthita:                        Fixed-point fractional library routines.
!                                                              (line 1432)
  * __satfracthiuda:                       Fixed-point fractional library routines.
!                                                              (line 1439)
  * __satfracthiudq:                       Fixed-point fractional library routines.
!                                                              (line 1436)
  * __satfracthiuha:                       Fixed-point fractional library routines.
!                                                              (line 1437)
  * __satfracthiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1434)
  * __satfracthiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1433)
  * __satfracthiusa:                       Fixed-point fractional library routines.
!                                                              (line 1438)
  * __satfracthiusq:                       Fixed-point fractional library routines.
!                                                              (line 1435)
  * __satfracthiuta:                       Fixed-point fractional library routines.
!                                                              (line 1440)
  * __satfracthqda:                        Fixed-point fractional library routines.
!                                                              (line 1071)
  * __satfracthqdq2:                       Fixed-point fractional library routines.
!                                                              (line 1068)
  * __satfracthqha:                        Fixed-point fractional library routines.
!                                                              (line 1069)
  * __satfracthqqq2:                       Fixed-point fractional library routines.
!                                                              (line 1066)
  * __satfracthqsa:                        Fixed-point fractional library routines.
!                                                              (line 1070)
  * __satfracthqsq2:                       Fixed-point fractional library routines.
!                                                              (line 1067)
  * __satfracthqta:                        Fixed-point fractional library routines.
!                                                              (line 1072)
  * __satfracthquda:                       Fixed-point fractional library routines.
!                                                              (line 1079)
  * __satfracthqudq:                       Fixed-point fractional library routines.
!                                                              (line 1076)
  * __satfracthquha:                       Fixed-point fractional library routines.
!                                                              (line 1077)
  * __satfracthquhq:                       Fixed-point fractional library routines.
!                                                              (line 1074)
  * __satfracthquqq:                       Fixed-point fractional library routines.
!                                                              (line 1073)
  * __satfracthqusa:                       Fixed-point fractional library routines.
!                                                              (line 1078)
  * __satfracthqusq:                       Fixed-point fractional library routines.
!                                                              (line 1075)
  * __satfracthquta:                       Fixed-point fractional library routines.
!                                                              (line 1080)
  * __satfractqida:                        Fixed-point fractional library routines.
!                                                              (line 1409)
  * __satfractqidq:                        Fixed-point fractional library routines.
!                                                              (line 1406)
  * __satfractqiha:                        Fixed-point fractional library routines.
!                                                              (line 1407)
  * __satfractqihq:                        Fixed-point fractional library routines.
!                                                              (line 1404)
  * __satfractqiqq:                        Fixed-point fractional library routines.
!                                                              (line 1403)
  * __satfractqisa:                        Fixed-point fractional library routines.
!                                                              (line 1408)
  * __satfractqisq:                        Fixed-point fractional library routines.
!                                                              (line 1405)
  * __satfractqita:                        Fixed-point fractional library routines.
!                                                              (line 1410)
  * __satfractqiuda:                       Fixed-point fractional library routines.
!                                                              (line 1421)
  * __satfractqiudq:                       Fixed-point fractional library routines.
!                                                              (line 1416)
  * __satfractqiuha:                       Fixed-point fractional library routines.
!                                                              (line 1418)
  * __satfractqiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1413)
  * __satfractqiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1411)
  * __satfractqiusa:                       Fixed-point fractional library routines.
!                                                              (line 1420)
  * __satfractqiusq:                       Fixed-point fractional library routines.
!                                                              (line 1414)
  * __satfractqiuta:                       Fixed-point fractional library routines.
!                                                              (line 1423)
  * __satfractqqda:                        Fixed-point fractional library routines.
!                                                              (line 1050)
  * __satfractqqdq2:                       Fixed-point fractional library routines.
!                                                              (line 1047)
  * __satfractqqha:                        Fixed-point fractional library routines.
!                                                              (line 1048)
  * __satfractqqhq2:                       Fixed-point fractional library routines.
!                                                              (line 1045)
  * __satfractqqsa:                        Fixed-point fractional library routines.
!                                                              (line 1049)
  * __satfractqqsq2:                       Fixed-point fractional library routines.
!                                                              (line 1046)
  * __satfractqqta:                        Fixed-point fractional library routines.
!                                                              (line 1051)
  * __satfractqquda:                       Fixed-point fractional library routines.
!                                                              (line 1062)
  * __satfractqqudq:                       Fixed-point fractional library routines.
!                                                              (line 1057)
  * __satfractqquha:                       Fixed-point fractional library routines.
!                                                              (line 1059)
  * __satfractqquhq:                       Fixed-point fractional library routines.
!                                                              (line 1054)
  * __satfractqquqq:                       Fixed-point fractional library routines.
!                                                              (line 1052)
  * __satfractqqusa:                       Fixed-point fractional library routines.
!                                                              (line 1061)
  * __satfractqqusq:                       Fixed-point fractional library routines.
!                                                              (line 1055)
  * __satfractqquta:                       Fixed-point fractional library routines.
!                                                              (line 1064)
  * __satfractsada2:                       Fixed-point fractional library routines.
!                                                              (line 1147)
  * __satfractsadq:                        Fixed-point fractional library routines.
!                                                              (line 1145)
  * __satfractsaha2:                       Fixed-point fractional library routines.
!                                                              (line 1146)
  * __satfractsahq:                        Fixed-point fractional library routines.
!                                                              (line 1143)
  * __satfractsaqq:                        Fixed-point fractional library routines.
!                                                              (line 1142)
  * __satfractsasq:                        Fixed-point fractional library routines.
!                                                              (line 1144)
  * __satfractsata2:                       Fixed-point fractional library routines.
!                                                              (line 1148)
  * __satfractsauda:                       Fixed-point fractional library routines.
!                                                              (line 1155)
  * __satfractsaudq:                       Fixed-point fractional library routines.
!                                                              (line 1152)
  * __satfractsauha:                       Fixed-point fractional library routines.
!                                                              (line 1153)
  * __satfractsauhq:                       Fixed-point fractional library routines.
!                                                              (line 1150)
  * __satfractsauqq:                       Fixed-point fractional library routines.
!                                                              (line 1149)
  * __satfractsausa:                       Fixed-point fractional library routines.
!                                                              (line 1154)
  * __satfractsausq:                       Fixed-point fractional library routines.
!                                                              (line 1151)
  * __satfractsauta:                       Fixed-point fractional library routines.
!                                                              (line 1156)
  * __satfractsfda:                        Fixed-point fractional library routines.
!                                                              (line 1497)
  * __satfractsfdq:                        Fixed-point fractional library routines.
!                                                              (line 1494)
  * __satfractsfha:                        Fixed-point fractional library routines.
!                                                              (line 1495)
  * __satfractsfhq:                        Fixed-point fractional library routines.
!                                                              (line 1492)
  * __satfractsfqq:                        Fixed-point fractional library routines.
!                                                              (line 1491)
  * __satfractsfsa:                        Fixed-point fractional library routines.
!                                                              (line 1496)
  * __satfractsfsq:                        Fixed-point fractional library routines.
!                                                              (line 1493)
  * __satfractsfta:                        Fixed-point fractional library routines.
!                                                              (line 1498)
  * __satfractsfuda:                       Fixed-point fractional library routines.
!                                                              (line 1505)
  * __satfractsfudq:                       Fixed-point fractional library routines.
!                                                              (line 1502)
  * __satfractsfuha:                       Fixed-point fractional library routines.
!                                                              (line 1503)
  * __satfractsfuhq:                       Fixed-point fractional library routines.
!                                                              (line 1500)
  * __satfractsfuqq:                       Fixed-point fractional library routines.
!                                                              (line 1499)
  * __satfractsfusa:                       Fixed-point fractional library routines.
!                                                              (line 1504)
  * __satfractsfusq:                       Fixed-point fractional library routines.
!                                                              (line 1501)
  * __satfractsfuta:                       Fixed-point fractional library routines.
!                                                              (line 1506)
  * __satfractsida:                        Fixed-point fractional library routines.
!                                                              (line 1447)
  * __satfractsidq:                        Fixed-point fractional library routines.
!                                                              (line 1444)
  * __satfractsiha:                        Fixed-point fractional library routines.
!                                                              (line 1445)
  * __satfractsihq:                        Fixed-point fractional library routines.
!                                                              (line 1442)
  * __satfractsiqq:                        Fixed-point fractional library routines.
!                                                              (line 1441)
  * __satfractsisa:                        Fixed-point fractional library routines.
!                                                              (line 1446)
  * __satfractsisq:                        Fixed-point fractional library routines.
!                                                              (line 1443)
  * __satfractsita:                        Fixed-point fractional library routines.
!                                                              (line 1448)
  * __satfractsiuda:                       Fixed-point fractional library routines.
!                                                              (line 1455)
  * __satfractsiudq:                       Fixed-point fractional library routines.
!                                                              (line 1452)
  * __satfractsiuha:                       Fixed-point fractional library routines.
!                                                              (line 1453)
  * __satfractsiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1450)
  * __satfractsiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1449)
  * __satfractsiusa:                       Fixed-point fractional library routines.
!                                                              (line 1454)
  * __satfractsiusq:                       Fixed-point fractional library routines.
!                                                              (line 1451)
  * __satfractsiuta:                       Fixed-point fractional library routines.
!                                                              (line 1456)
  * __satfractsqda:                        Fixed-point fractional library routines.
!                                                              (line 1086)
  * __satfractsqdq2:                       Fixed-point fractional library routines.
!                                                              (line 1083)
  * __satfractsqha:                        Fixed-point fractional library routines.
!                                                              (line 1084)
  * __satfractsqhq2:                       Fixed-point fractional library routines.
!                                                              (line 1082)
  * __satfractsqqq2:                       Fixed-point fractional library routines.
!                                                              (line 1081)
  * __satfractsqsa:                        Fixed-point fractional library routines.
!                                                              (line 1085)
  * __satfractsqta:                        Fixed-point fractional library routines.
!                                                              (line 1087)
  * __satfractsquda:                       Fixed-point fractional library routines.
!                                                              (line 1097)
  * __satfractsqudq:                       Fixed-point fractional library routines.
!                                                              (line 1092)
  * __satfractsquha:                       Fixed-point fractional library routines.
!                                                              (line 1094)
  * __satfractsquhq:                       Fixed-point fractional library routines.
!                                                              (line 1090)
  * __satfractsquqq:                       Fixed-point fractional library routines.
!                                                              (line 1088)
  * __satfractsqusa:                       Fixed-point fractional library routines.
!                                                              (line 1096)
  * __satfractsqusq:                       Fixed-point fractional library routines.
!                                                              (line 1091)
  * __satfractsquta:                       Fixed-point fractional library routines.
!                                                              (line 1098)
  * __satfracttada2:                       Fixed-point fractional library routines.
!                                                              (line 1182)
  * __satfracttadq:                        Fixed-point fractional library routines.
!                                                              (line 1179)
  * __satfracttaha2:                       Fixed-point fractional library routines.
!                                                              (line 1180)
  * __satfracttahq:                        Fixed-point fractional library routines.
!                                                              (line 1177)
  * __satfracttaqq:                        Fixed-point fractional library routines.
!                                                              (line 1176)
  * __satfracttasa2:                       Fixed-point fractional library routines.
!                                                              (line 1181)
  * __satfracttasq:                        Fixed-point fractional library routines.
!                                                              (line 1178)
  * __satfracttauda:                       Fixed-point fractional library routines.
!                                                              (line 1193)
  * __satfracttaudq:                       Fixed-point fractional library routines.
!                                                              (line 1188)
  * __satfracttauha:                       Fixed-point fractional library routines.
!                                                              (line 1190)
  * __satfracttauhq:                       Fixed-point fractional library routines.
!                                                              (line 1185)
  * __satfracttauqq:                       Fixed-point fractional library routines.
!                                                              (line 1183)
  * __satfracttausa:                       Fixed-point fractional library routines.
!                                                              (line 1192)
  * __satfracttausq:                       Fixed-point fractional library routines.
!                                                              (line 1186)
  * __satfracttauta:                       Fixed-point fractional library routines.
!                                                              (line 1195)
  * __satfracttida:                        Fixed-point fractional library routines.
!                                                              (line 1479)
  * __satfracttidq:                        Fixed-point fractional library routines.
!                                                              (line 1476)
  * __satfracttiha:                        Fixed-point fractional library routines.
!                                                              (line 1477)
  * __satfracttihq:                        Fixed-point fractional library routines.
!                                                              (line 1474)
  * __satfracttiqq:                        Fixed-point fractional library routines.
!                                                              (line 1473)
  * __satfracttisa:                        Fixed-point fractional library routines.
!                                                              (line 1478)
  * __satfracttisq:                        Fixed-point fractional library routines.
!                                                              (line 1475)
  * __satfracttita:                        Fixed-point fractional library routines.
!                                                              (line 1480)
  * __satfracttiuda:                       Fixed-point fractional library routines.
!                                                              (line 1488)
  * __satfracttiudq:                       Fixed-point fractional library routines.
!                                                              (line 1484)
  * __satfracttiuha:                       Fixed-point fractional library routines.
!                                                              (line 1486)
  * __satfracttiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1482)
  * __satfracttiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1481)
  * __satfracttiusa:                       Fixed-point fractional library routines.
!                                                              (line 1487)
  * __satfracttiusq:                       Fixed-point fractional library routines.
!                                                              (line 1483)
  * __satfracttiuta:                       Fixed-point fractional library routines.
!                                                              (line 1489)
  * __satfractudada:                       Fixed-point fractional library routines.
!                                                              (line 1358)
  * __satfractudadq:                       Fixed-point fractional library routines.
!                                                              (line 1353)
  * __satfractudaha:                       Fixed-point fractional library routines.
!                                                              (line 1355)
  * __satfractudahq:                       Fixed-point fractional library routines.
!                                                              (line 1351)
  * __satfractudaqq:                       Fixed-point fractional library routines.
!                                                              (line 1349)
  * __satfractudasa:                       Fixed-point fractional library routines.
!                                                              (line 1357)
  * __satfractudasq:                       Fixed-point fractional library routines.
!                                                              (line 1352)
  * __satfractudata:                       Fixed-point fractional library routines.
!                                                              (line 1359)
  * __satfractudaudq:                      Fixed-point fractional library routines.
!                                                              (line 1367)
  * __satfractudauha2:                     Fixed-point fractional library routines.
!                                                              (line 1369)
  * __satfractudauhq:                      Fixed-point fractional library routines.
!                                                              (line 1363)
  * __satfractudauqq:                      Fixed-point fractional library routines.
!                                                              (line 1361)
  * __satfractudausa2:                     Fixed-point fractional library routines.
!                                                              (line 1371)
  * __satfractudausq:                      Fixed-point fractional library routines.
!                                                              (line 1365)
  * __satfractudauta2:                     Fixed-point fractional library routines.
!                                                              (line 1373)
  * __satfractudqda:                       Fixed-point fractional library routines.
!                                                              (line 1282)
  * __satfractudqdq:                       Fixed-point fractional library routines.
!                                                              (line 1277)
  * __satfractudqha:                       Fixed-point fractional library routines.
!                                                              (line 1279)
  * __satfractudqhq:                       Fixed-point fractional library routines.
!                                                              (line 1274)
  * __satfractudqqq:                       Fixed-point fractional library routines.
!                                                              (line 1272)
  * __satfractudqsa:                       Fixed-point fractional library routines.
!                                                              (line 1281)
  * __satfractudqsq:                       Fixed-point fractional library routines.
!                                                              (line 1275)
  * __satfractudqta:                       Fixed-point fractional library routines.
!                                                              (line 1284)
  * __satfractudquda:                      Fixed-point fractional library routines.
!                                                              (line 1296)
  * __satfractudquha:                      Fixed-point fractional library routines.
!                                                              (line 1292)
  * __satfractudquhq2:                     Fixed-point fractional library routines.
!                                                              (line 1288)
  * __satfractudquqq2:                     Fixed-point fractional library routines.
!                                                              (line 1286)
  * __satfractudqusa:                      Fixed-point fractional library routines.
!                                                              (line 1294)
  * __satfractudqusq2:                     Fixed-point fractional library routines.
!                                                              (line 1290)
  * __satfractudquta:                      Fixed-point fractional library routines.
!                                                              (line 1298)
  * __satfractuhada:                       Fixed-point fractional library routines.
!                                                              (line 1310)
  * __satfractuhadq:                       Fixed-point fractional library routines.
!                                                              (line 1305)
  * __satfractuhaha:                       Fixed-point fractional library routines.
!                                                              (line 1307)
  * __satfractuhahq:                       Fixed-point fractional library routines.
!                                                              (line 1302)
  * __satfractuhaqq:                       Fixed-point fractional library routines.
!                                                              (line 1300)
  * __satfractuhasa:                       Fixed-point fractional library routines.
!                                                              (line 1309)
  * __satfractuhasq:                       Fixed-point fractional library routines.
!                                                              (line 1303)
  * __satfractuhata:                       Fixed-point fractional library routines.
!                                                              (line 1312)
  * __satfractuhauda2:                     Fixed-point fractional library routines.
!                                                              (line 1324)
  * __satfractuhaudq:                      Fixed-point fractional library routines.
!                                                              (line 1320)
  * __satfractuhauhq:                      Fixed-point fractional library routines.
!                                                              (line 1316)
  * __satfractuhauqq:                      Fixed-point fractional library routines.
!                                                              (line 1314)
  * __satfractuhausa2:                     Fixed-point fractional library routines.
!                                                              (line 1322)
  * __satfractuhausq:                      Fixed-point fractional library routines.
!                                                              (line 1318)
  * __satfractuhauta2:                     Fixed-point fractional library routines.
!                                                              (line 1326)
  * __satfractuhqda:                       Fixed-point fractional library routines.
!                                                              (line 1231)
  * __satfractuhqdq:                       Fixed-point fractional library routines.
!                                                              (line 1228)
  * __satfractuhqha:                       Fixed-point fractional library routines.
!                                                              (line 1229)
  * __satfractuhqhq:                       Fixed-point fractional library routines.
!                                                              (line 1226)
  * __satfractuhqqq:                       Fixed-point fractional library routines.
!                                                              (line 1225)
  * __satfractuhqsa:                       Fixed-point fractional library routines.
!                                                              (line 1230)
  * __satfractuhqsq:                       Fixed-point fractional library routines.
!                                                              (line 1227)
  * __satfractuhqta:                       Fixed-point fractional library routines.
!                                                              (line 1232)
  * __satfractuhquda:                      Fixed-point fractional library routines.
!                                                              (line 1242)
  * __satfractuhqudq2:                     Fixed-point fractional library routines.
!                                                              (line 1237)
  * __satfractuhquha:                      Fixed-point fractional library routines.
!                                                              (line 1239)
  * __satfractuhquqq2:                     Fixed-point fractional library routines.
!                                                              (line 1233)
  * __satfractuhqusa:                      Fixed-point fractional library routines.
!                                                              (line 1241)
  * __satfractuhqusq2:                     Fixed-point fractional library routines.
!                                                              (line 1235)
  * __satfractuhquta:                      Fixed-point fractional library routines.
!                                                              (line 1244)
  * __satfractunsdida:                     Fixed-point fractional library routines.
!                                                              (line 1841)
  * __satfractunsdidq:                     Fixed-point fractional library routines.
!                                                              (line 1837)
  * __satfractunsdiha:                     Fixed-point fractional library routines.
!                                                              (line 1839)
  * __satfractunsdihq:                     Fixed-point fractional library routines.
!                                                              (line 1835)
  * __satfractunsdiqq:                     Fixed-point fractional library routines.
!                                                              (line 1834)
  * __satfractunsdisa:                     Fixed-point fractional library routines.
!                                                              (line 1840)
  * __satfractunsdisq:                     Fixed-point fractional library routines.
!                                                              (line 1836)
  * __satfractunsdita:                     Fixed-point fractional library routines.
!                                                              (line 1842)
  * __satfractunsdiuda:                    Fixed-point fractional library routines.
!                                                              (line 1856)
  * __satfractunsdiudq:                    Fixed-point fractional library routines.
!                                                              (line 1850)
  * __satfractunsdiuha:                    Fixed-point fractional library routines.
!                                                              (line 1852)
  * __satfractunsdiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1846)
  * __satfractunsdiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1844)
  * __satfractunsdiusa:                    Fixed-point fractional library routines.
!                                                              (line 1854)
  * __satfractunsdiusq:                    Fixed-point fractional library routines.
!                                                              (line 1848)
  * __satfractunsdiuta:                    Fixed-point fractional library routines.
!                                                              (line 1858)
  * __satfractunshida:                     Fixed-point fractional library routines.
!                                                              (line 1793)
  * __satfractunshidq:                     Fixed-point fractional library routines.
!                                                              (line 1789)
  * __satfractunshiha:                     Fixed-point fractional library routines.
!                                                              (line 1791)
  * __satfractunshihq:                     Fixed-point fractional library routines.
!                                                              (line 1787)
  * __satfractunshiqq:                     Fixed-point fractional library routines.
!                                                              (line 1786)
  * __satfractunshisa:                     Fixed-point fractional library routines.
!                                                              (line 1792)
  * __satfractunshisq:                     Fixed-point fractional library routines.
!                                                              (line 1788)
  * __satfractunshita:                     Fixed-point fractional library routines.
!                                                              (line 1794)
  * __satfractunshiuda:                    Fixed-point fractional library routines.
!                                                              (line 1808)
  * __satfractunshiudq:                    Fixed-point fractional library routines.
!                                                              (line 1802)
  * __satfractunshiuha:                    Fixed-point fractional library routines.
!                                                              (line 1804)
  * __satfractunshiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1798)
  * __satfractunshiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1796)
  * __satfractunshiusa:                    Fixed-point fractional library routines.
!                                                              (line 1806)
  * __satfractunshiusq:                    Fixed-point fractional library routines.
!                                                              (line 1800)
  * __satfractunshiuta:                    Fixed-point fractional library routines.
!                                                              (line 1810)
  * __satfractunsqida:                     Fixed-point fractional library routines.
!                                                              (line 1767)
  * __satfractunsqidq:                     Fixed-point fractional library routines.
!                                                              (line 1763)
  * __satfractunsqiha:                     Fixed-point fractional library routines.
!                                                              (line 1765)
  * __satfractunsqihq:                     Fixed-point fractional library routines.
!                                                              (line 1761)
  * __satfractunsqiqq:                     Fixed-point fractional library routines.
!                                                              (line 1760)
  * __satfractunsqisa:                     Fixed-point fractional library routines.
!                                                              (line 1766)
  * __satfractunsqisq:                     Fixed-point fractional library routines.
!                                                              (line 1762)
  * __satfractunsqita:                     Fixed-point fractional library routines.
!                                                              (line 1768)
  * __satfractunsqiuda:                    Fixed-point fractional library routines.
!                                                              (line 1782)
  * __satfractunsqiudq:                    Fixed-point fractional library routines.
!                                                              (line 1776)
  * __satfractunsqiuha:                    Fixed-point fractional library routines.
!                                                              (line 1778)
  * __satfractunsqiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1772)
  * __satfractunsqiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1770)
  * __satfractunsqiusa:                    Fixed-point fractional library routines.
!                                                              (line 1780)
  * __satfractunsqiusq:                    Fixed-point fractional library routines.
!                                                              (line 1774)
  * __satfractunsqiuta:                    Fixed-point fractional library routines.
!                                                              (line 1784)
  * __satfractunssida:                     Fixed-point fractional library routines.
!                                                              (line 1818)
  * __satfractunssidq:                     Fixed-point fractional library routines.
!                                                              (line 1815)
  * __satfractunssiha:                     Fixed-point fractional library routines.
!                                                              (line 1816)
  * __satfractunssihq:                     Fixed-point fractional library routines.
!                                                              (line 1813)
  * __satfractunssiqq:                     Fixed-point fractional library routines.
!                                                              (line 1812)
  * __satfractunssisa:                     Fixed-point fractional library routines.
!                                                              (line 1817)
  * __satfractunssisq:                     Fixed-point fractional library routines.
!                                                              (line 1814)
  * __satfractunssita:                     Fixed-point fractional library routines.
!                                                              (line 1819)
  * __satfractunssiuda:                    Fixed-point fractional library routines.
!                                                              (line 1830)
  * __satfractunssiudq:                    Fixed-point fractional library routines.
!                                                              (line 1825)
  * __satfractunssiuha:                    Fixed-point fractional library routines.
!                                                              (line 1827)
  * __satfractunssiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1822)
  * __satfractunssiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1820)
  * __satfractunssiusa:                    Fixed-point fractional library routines.
!                                                              (line 1829)
  * __satfractunssiusq:                    Fixed-point fractional library routines.
!                                                              (line 1823)
  * __satfractunssiuta:                    Fixed-point fractional library routines.
!                                                              (line 1832)
  * __satfractunstida:                     Fixed-point fractional library routines.
!                                                              (line 1870)
  * __satfractunstidq:                     Fixed-point fractional library routines.
!                                                              (line 1865)
  * __satfractunstiha:                     Fixed-point fractional library routines.
!                                                              (line 1867)
  * __satfractunstihq:                     Fixed-point fractional library routines.
!                                                              (line 1862)
  * __satfractunstiqq:                     Fixed-point fractional library routines.
!                                                              (line 1860)
  * __satfractunstisa:                     Fixed-point fractional library routines.
!                                                              (line 1869)
  * __satfractunstisq:                     Fixed-point fractional library routines.
!                                                              (line 1863)
  * __satfractunstita:                     Fixed-point fractional library routines.
!                                                              (line 1872)
  * __satfractunstiuda:                    Fixed-point fractional library routines.
!                                                              (line 1886)
  * __satfractunstiudq:                    Fixed-point fractional library routines.
!                                                              (line 1880)
  * __satfractunstiuha:                    Fixed-point fractional library routines.
!                                                              (line 1882)
  * __satfractunstiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1876)
  * __satfractunstiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1874)
  * __satfractunstiusa:                    Fixed-point fractional library routines.
!                                                              (line 1884)
  * __satfractunstiusq:                    Fixed-point fractional library routines.
!                                                              (line 1878)
  * __satfractunstiuta:                    Fixed-point fractional library routines.
!                                                              (line 1888)
  * __satfractuqqda:                       Fixed-point fractional library routines.
!                                                              (line 1207)
  * __satfractuqqdq:                       Fixed-point fractional library routines.
!                                                              (line 1202)
  * __satfractuqqha:                       Fixed-point fractional library routines.
!                                                              (line 1204)
  * __satfractuqqhq:                       Fixed-point fractional library routines.
!                                                              (line 1199)
  * __satfractuqqqq:                       Fixed-point fractional library routines.
!                                                              (line 1197)
  * __satfractuqqsa:                       Fixed-point fractional library routines.
!                                                              (line 1206)
  * __satfractuqqsq:                       Fixed-point fractional library routines.
!                                                              (line 1200)
  * __satfractuqqta:                       Fixed-point fractional library routines.
!                                                              (line 1209)
  * __satfractuqquda:                      Fixed-point fractional library routines.
!                                                              (line 1221)
  * __satfractuqqudq2:                     Fixed-point fractional library routines.
!                                                              (line 1215)
  * __satfractuqquha:                      Fixed-point fractional library routines.
!                                                              (line 1217)
  * __satfractuqquhq2:                     Fixed-point fractional library routines.
!                                                              (line 1211)
  * __satfractuqqusa:                      Fixed-point fractional library routines.
!                                                              (line 1219)
  * __satfractuqqusq2:                     Fixed-point fractional library routines.
!                                                              (line 1213)
  * __satfractuqquta:                      Fixed-point fractional library routines.
!                                                              (line 1223)
  * __satfractusada:                       Fixed-point fractional library routines.
!                                                              (line 1334)
  * __satfractusadq:                       Fixed-point fractional library routines.
!                                                              (line 1331)
  * __satfractusaha:                       Fixed-point fractional library routines.
!                                                              (line 1332)
  * __satfractusahq:                       Fixed-point fractional library routines.
!                                                              (line 1329)
  * __satfractusaqq:                       Fixed-point fractional library routines.
!                                                              (line 1328)
  * __satfractusasa:                       Fixed-point fractional library routines.
!                                                              (line 1333)
  * __satfractusasq:                       Fixed-point fractional library routines.
!                                                              (line 1330)
  * __satfractusata:                       Fixed-point fractional library routines.
!                                                              (line 1335)
  * __satfractusauda2:                     Fixed-point fractional library routines.
!                                                              (line 1345)
  * __satfractusaudq:                      Fixed-point fractional library routines.
!                                                              (line 1341)
  * __satfractusauha2:                     Fixed-point fractional library routines.
!                                                              (line 1343)
  * __satfractusauhq:                      Fixed-point fractional library routines.
!                                                              (line 1338)
  * __satfractusauqq:                      Fixed-point fractional library routines.
!                                                              (line 1336)
  * __satfractusausq:                      Fixed-point fractional library routines.
!                                                              (line 1339)
  * __satfractusauta2:                     Fixed-point fractional library routines.
!                                                              (line 1347)
  * __satfractusqda:                       Fixed-point fractional library routines.
!                                                              (line 1255)
  * __satfractusqdq:                       Fixed-point fractional library routines.
!                                                              (line 1250)
  * __satfractusqha:                       Fixed-point fractional library routines.
!                                                              (line 1252)
  * __satfractusqhq:                       Fixed-point fractional library routines.
!                                                              (line 1248)
  * __satfractusqqq:                       Fixed-point fractional library routines.
!                                                              (line 1246)
  * __satfractusqsa:                       Fixed-point fractional library routines.
!                                                              (line 1254)
  * __satfractusqsq:                       Fixed-point fractional library routines.
!                                                              (line 1249)
  * __satfractusqta:                       Fixed-point fractional library routines.
!                                                              (line 1256)
  * __satfractusquda:                      Fixed-point fractional library routines.
!                                                              (line 1268)
  * __satfractusqudq2:                     Fixed-point fractional library routines.
!                                                              (line 1262)
  * __satfractusquha:                      Fixed-point fractional library routines.
!                                                              (line 1264)
  * __satfractusquhq2:                     Fixed-point fractional library routines.
!                                                              (line 1260)
  * __satfractusquqq2:                     Fixed-point fractional library routines.
!                                                              (line 1258)
  * __satfractusqusa:                      Fixed-point fractional library routines.
!                                                              (line 1266)
  * __satfractusquta:                      Fixed-point fractional library routines.
!                                                              (line 1270)
  * __satfractutada:                       Fixed-point fractional library routines.
!                                                              (line 1385)
  * __satfractutadq:                       Fixed-point fractional library routines.
!                                                              (line 1380)
  * __satfractutaha:                       Fixed-point fractional library routines.
!                                                              (line 1382)
  * __satfractutahq:                       Fixed-point fractional library routines.
!                                                              (line 1377)
  * __satfractutaqq:                       Fixed-point fractional library routines.
!                                                              (line 1375)
  * __satfractutasa:                       Fixed-point fractional library routines.
!                                                              (line 1384)
  * __satfractutasq:                       Fixed-point fractional library routines.
!                                                              (line 1378)
  * __satfractutata:                       Fixed-point fractional library routines.
!                                                              (line 1387)
  * __satfractutauda2:                     Fixed-point fractional library routines.
!                                                              (line 1401)
  * __satfractutaudq:                      Fixed-point fractional library routines.
!                                                              (line 1395)
  * __satfractutauha2:                     Fixed-point fractional library routines.
!                                                              (line 1397)
  * __satfractutauhq:                      Fixed-point fractional library routines.
!                                                              (line 1391)
  * __satfractutauqq:                      Fixed-point fractional library routines.
!                                                              (line 1389)
  * __satfractutausa2:                     Fixed-point fractional library routines.
!                                                              (line 1399)
  * __satfractutausq:                      Fixed-point fractional library routines.
!                                                              (line 1393)
  * __splitstack_find:                     Miscellaneous routines.
                                                               (line   15)
  * __ssaddda3:                            Fixed-point fractional library routines.
!                                                              (line   74)
  * __ssadddq3:                            Fixed-point fractional library routines.
!                                                              (line   69)
  * __ssaddha3:                            Fixed-point fractional library routines.
!                                                              (line   71)
  * __ssaddhq3:                            Fixed-point fractional library routines.
!                                                              (line   67)
  * __ssaddqq3:                            Fixed-point fractional library routines.
!                                                              (line   65)
  * __ssaddsa3:                            Fixed-point fractional library routines.
!                                                              (line   73)
  * __ssaddsq3:                            Fixed-point fractional library routines.
!                                                              (line   68)
  * __ssaddta3:                            Fixed-point fractional library routines.
!                                                              (line   75)
  * __ssashlda3:                           Fixed-point fractional library routines.
!                                                              (line  409)
  * __ssashldq3:                           Fixed-point fractional library routines.
!                                                              (line  405)
  * __ssashlha3:                           Fixed-point fractional library routines.
!                                                              (line  407)
  * __ssashlhq3:                           Fixed-point fractional library routines.
!                                                              (line  403)
  * __ssashlsa3:                           Fixed-point fractional library routines.
!                                                              (line  408)
  * __ssashlsq3:                           Fixed-point fractional library routines.
!                                                              (line  404)
  * __ssashlta3:                           Fixed-point fractional library routines.
!                                                              (line  410)
  * __ssdivda3:                            Fixed-point fractional library routines.
!                                                              (line  268)
  * __ssdivdq3:                            Fixed-point fractional library routines.
!                                                              (line  263)
  * __ssdivha3:                            Fixed-point fractional library routines.
!                                                              (line  265)
  * __ssdivhq3:                            Fixed-point fractional library routines.
!                                                              (line  261)
  * __ssdivqq3:                            Fixed-point fractional library routines.
!                                                              (line  259)
  * __ssdivsa3:                            Fixed-point fractional library routines.
!                                                              (line  267)
  * __ssdivsq3:                            Fixed-point fractional library routines.
!                                                              (line  262)
  * __ssdivta3:                            Fixed-point fractional library routines.
!                                                              (line  269)
  * __ssmulda3:                            Fixed-point fractional library routines.
!                                                              (line  200)
  * __ssmuldq3:                            Fixed-point fractional library routines.
!                                                              (line  195)
  * __ssmulha3:                            Fixed-point fractional library routines.
!                                                              (line  197)
  * __ssmulhq3:                            Fixed-point fractional library routines.
!                                                              (line  193)
  * __ssmulqq3:                            Fixed-point fractional library routines.
!                                                              (line  191)
  * __ssmulsa3:                            Fixed-point fractional library routines.
!                                                              (line  199)
  * __ssmulsq3:                            Fixed-point fractional library routines.
!                                                              (line  194)
  * __ssmulta3:                            Fixed-point fractional library routines.
!                                                              (line  201)
  * __ssnegda2:                            Fixed-point fractional library routines.
!                                                              (line  323)
  * __ssnegdq2:                            Fixed-point fractional library routines.
!                                                              (line  320)
  * __ssnegha2:                            Fixed-point fractional library routines.
!                                                              (line  321)
  * __ssneghq2:                            Fixed-point fractional library routines.
!                                                              (line  318)
  * __ssnegqq2:                            Fixed-point fractional library routines.
!                                                              (line  317)
  * __ssnegsa2:                            Fixed-point fractional library routines.
!                                                              (line  322)
  * __ssnegsq2:                            Fixed-point fractional library routines.
!                                                              (line  319)
  * __ssnegta2:                            Fixed-point fractional library routines.
!                                                              (line  324)
  * __sssubda3:                            Fixed-point fractional library routines.
!                                                              (line  136)
  * __sssubdq3:                            Fixed-point fractional library routines.
!                                                              (line  131)
  * __sssubha3:                            Fixed-point fractional library routines.
!                                                              (line  133)
  * __sssubhq3:                            Fixed-point fractional library routines.
!                                                              (line  129)
  * __sssubqq3:                            Fixed-point fractional library routines.
!                                                              (line  127)
  * __sssubsa3:                            Fixed-point fractional library routines.
!                                                              (line  135)
  * __sssubsq3:                            Fixed-point fractional library routines.
!                                                              (line  130)
  * __sssubta3:                            Fixed-point fractional library routines.
!                                                              (line  137)
  * __subda3:                              Fixed-point fractional library routines.
!                                                              (line  114)
  * __subdf3:                              Soft float library routines.
                                                               (line   30)
  * __subdq3:                              Fixed-point fractional library routines.
!                                                              (line  101)
  * __subha3:                              Fixed-point fractional library routines.
!                                                              (line  111)
  * __subhq3:                              Fixed-point fractional library routines.
!                                                              (line   99)
  * __subqq3:                              Fixed-point fractional library routines.
!                                                              (line   97)
  * __subsa3:                              Fixed-point fractional library routines.
!                                                              (line  113)
  * __subsf3:                              Soft float library routines.
                                                               (line   29)
  * __subsq3:                              Fixed-point fractional library routines.
!                                                              (line  100)
  * __subta3:                              Fixed-point fractional library routines.
!                                                              (line  115)
  * __subtf3:                              Soft float library routines.
                                                               (line   31)
  * __subuda3:                             Fixed-point fractional library routines.
!                                                              (line  121)
  * __subudq3:                             Fixed-point fractional library routines.
!                                                              (line  109)
  * __subuha3:                             Fixed-point fractional library routines.
!                                                              (line  117)
  * __subuhq3:                             Fixed-point fractional library routines.
!                                                              (line  105)
  * __subuqq3:                             Fixed-point fractional library routines.
!                                                              (line  103)
  * __subusa3:                             Fixed-point fractional library routines.
!                                                              (line  119)
  * __subusq3:                             Fixed-point fractional library routines.
!                                                              (line  107)
  * __subuta3:                             Fixed-point fractional library routines.
!                                                              (line  123)
  * __subvdi3:                             Integer library routines.
                                                               (line  122)
  * __subvsi3:                             Integer library routines.
--- 52356,53358 ----
  * __powixf2:                             Soft float library routines.
                                                               (line  234)
  * __satfractdadq:                        Fixed-point fractional library routines.
!                                                              (line 1152)
  * __satfractdaha2:                       Fixed-point fractional library routines.
!                                                              (line 1153)
  * __satfractdahq:                        Fixed-point fractional library routines.
!                                                              (line 1150)
  * __satfractdaqq:                        Fixed-point fractional library routines.
!                                                              (line 1149)
  * __satfractdasa2:                       Fixed-point fractional library routines.
!                                                              (line 1154)
  * __satfractdasq:                        Fixed-point fractional library routines.
!                                                              (line 1151)
  * __satfractdata2:                       Fixed-point fractional library routines.
!                                                              (line 1155)
  * __satfractdauda:                       Fixed-point fractional library routines.
!                                                              (line 1165)
  * __satfractdaudq:                       Fixed-point fractional library routines.
!                                                              (line 1160)
  * __satfractdauha:                       Fixed-point fractional library routines.
!                                                              (line 1162)
  * __satfractdauhq:                       Fixed-point fractional library routines.
!                                                              (line 1158)
  * __satfractdauqq:                       Fixed-point fractional library routines.
!                                                              (line 1156)
  * __satfractdausa:                       Fixed-point fractional library routines.
!                                                              (line 1164)
  * __satfractdausq:                       Fixed-point fractional library routines.
!                                                              (line 1159)
  * __satfractdauta:                       Fixed-point fractional library routines.
!                                                              (line 1166)
  * __satfractdfda:                        Fixed-point fractional library routines.
!                                                              (line 1505)
  * __satfractdfdq:                        Fixed-point fractional library routines.
!                                                              (line 1502)
  * __satfractdfha:                        Fixed-point fractional library routines.
!                                                              (line 1503)
  * __satfractdfhq:                        Fixed-point fractional library routines.
!                                                              (line 1500)
  * __satfractdfqq:                        Fixed-point fractional library routines.
!                                                              (line 1499)
  * __satfractdfsa:                        Fixed-point fractional library routines.
!                                                              (line 1504)
  * __satfractdfsq:                        Fixed-point fractional library routines.
!                                                              (line 1501)
  * __satfractdfta:                        Fixed-point fractional library routines.
!                                                              (line 1506)
  * __satfractdfuda:                       Fixed-point fractional library routines.
!                                                              (line 1514)
  * __satfractdfudq:                       Fixed-point fractional library routines.
!                                                              (line 1510)
  * __satfractdfuha:                       Fixed-point fractional library routines.
!                                                              (line 1512)
  * __satfractdfuhq:                       Fixed-point fractional library routines.
!                                                              (line 1508)
  * __satfractdfuqq:                       Fixed-point fractional library routines.
!                                                              (line 1507)
  * __satfractdfusa:                       Fixed-point fractional library routines.
!                                                              (line 1513)
  * __satfractdfusq:                       Fixed-point fractional library routines.
!                                                              (line 1509)
  * __satfractdfuta:                       Fixed-point fractional library routines.
!                                                              (line 1515)
  * __satfractdida:                        Fixed-point fractional library routines.
!                                                              (line 1455)
  * __satfractdidq:                        Fixed-point fractional library routines.
!                                                              (line 1452)
  * __satfractdiha:                        Fixed-point fractional library routines.
!                                                              (line 1453)
  * __satfractdihq:                        Fixed-point fractional library routines.
!                                                              (line 1450)
  * __satfractdiqq:                        Fixed-point fractional library routines.
!                                                              (line 1449)
  * __satfractdisa:                        Fixed-point fractional library routines.
!                                                              (line 1454)
  * __satfractdisq:                        Fixed-point fractional library routines.
!                                                              (line 1451)
  * __satfractdita:                        Fixed-point fractional library routines.
!                                                              (line 1456)
  * __satfractdiuda:                       Fixed-point fractional library routines.
!                                                              (line 1463)
  * __satfractdiudq:                       Fixed-point fractional library routines.
!                                                              (line 1460)
  * __satfractdiuha:                       Fixed-point fractional library routines.
!                                                              (line 1461)
  * __satfractdiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1458)
  * __satfractdiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1457)
  * __satfractdiusa:                       Fixed-point fractional library routines.
!                                                              (line 1462)
  * __satfractdiusq:                       Fixed-point fractional library routines.
!                                                              (line 1459)
  * __satfractdiuta:                       Fixed-point fractional library routines.
!                                                              (line 1464)
  * __satfractdqda:                        Fixed-point fractional library routines.
!                                                              (line 1097)
  * __satfractdqha:                        Fixed-point fractional library routines.
!                                                              (line 1095)
  * __satfractdqhq2:                       Fixed-point fractional library routines.
!                                                              (line 1093)
  * __satfractdqqq2:                       Fixed-point fractional library routines.
!                                                              (line 1092)
  * __satfractdqsa:                        Fixed-point fractional library routines.
!                                                              (line 1096)
  * __satfractdqsq2:                       Fixed-point fractional library routines.
!                                                              (line 1094)
  * __satfractdqta:                        Fixed-point fractional library routines.
!                                                              (line 1098)
  * __satfractdquda:                       Fixed-point fractional library routines.
!                                                              (line 1109)
  * __satfractdqudq:                       Fixed-point fractional library routines.
!                                                              (line 1104)
  * __satfractdquha:                       Fixed-point fractional library routines.
!                                                              (line 1106)
  * __satfractdquhq:                       Fixed-point fractional library routines.
!                                                              (line 1101)
  * __satfractdquqq:                       Fixed-point fractional library routines.
!                                                              (line 1099)
  * __satfractdqusa:                       Fixed-point fractional library routines.
!                                                              (line 1108)
  * __satfractdqusq:                       Fixed-point fractional library routines.
!                                                              (line 1102)
  * __satfractdquta:                       Fixed-point fractional library routines.
!                                                              (line 1111)
  * __satfracthada2:                       Fixed-point fractional library routines.
!                                                              (line 1118)
  * __satfracthadq:                        Fixed-point fractional library routines.
!                                                              (line 1116)
  * __satfracthahq:                        Fixed-point fractional library routines.
!                                                              (line 1114)
  * __satfracthaqq:                        Fixed-point fractional library routines.
!                                                              (line 1113)
  * __satfracthasa2:                       Fixed-point fractional library routines.
!                                                              (line 1117)
  * __satfracthasq:                        Fixed-point fractional library routines.
!                                                              (line 1115)
  * __satfracthata2:                       Fixed-point fractional library routines.
!                                                              (line 1119)
  * __satfracthauda:                       Fixed-point fractional library routines.
!                                                              (line 1130)
  * __satfracthaudq:                       Fixed-point fractional library routines.
!                                                              (line 1125)
  * __satfracthauha:                       Fixed-point fractional library routines.
!                                                              (line 1127)
  * __satfracthauhq:                       Fixed-point fractional library routines.
!                                                              (line 1122)
  * __satfracthauqq:                       Fixed-point fractional library routines.
!                                                              (line 1120)
  * __satfracthausa:                       Fixed-point fractional library routines.
!                                                              (line 1129)
  * __satfracthausq:                       Fixed-point fractional library routines.
!                                                              (line 1123)
  * __satfracthauta:                       Fixed-point fractional library routines.
!                                                              (line 1132)
  * __satfracthida:                        Fixed-point fractional library routines.
!                                                              (line 1423)
  * __satfracthidq:                        Fixed-point fractional library routines.
!                                                              (line 1420)
  * __satfracthiha:                        Fixed-point fractional library routines.
!                                                              (line 1421)
  * __satfracthihq:                        Fixed-point fractional library routines.
!                                                              (line 1418)
  * __satfracthiqq:                        Fixed-point fractional library routines.
!                                                              (line 1417)
  * __satfracthisa:                        Fixed-point fractional library routines.
!                                                              (line 1422)
  * __satfracthisq:                        Fixed-point fractional library routines.
!                                                              (line 1419)
  * __satfracthita:                        Fixed-point fractional library routines.
!                                                              (line 1424)
  * __satfracthiuda:                       Fixed-point fractional library routines.
!                                                              (line 1431)
  * __satfracthiudq:                       Fixed-point fractional library routines.
!                                                              (line 1428)
  * __satfracthiuha:                       Fixed-point fractional library routines.
!                                                              (line 1429)
  * __satfracthiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1426)
  * __satfracthiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1425)
  * __satfracthiusa:                       Fixed-point fractional library routines.
!                                                              (line 1430)
  * __satfracthiusq:                       Fixed-point fractional library routines.
!                                                              (line 1427)
  * __satfracthiuta:                       Fixed-point fractional library routines.
!                                                              (line 1432)
  * __satfracthqda:                        Fixed-point fractional library routines.
!                                                              (line 1063)
  * __satfracthqdq2:                       Fixed-point fractional library routines.
!                                                              (line 1060)
  * __satfracthqha:                        Fixed-point fractional library routines.
!                                                              (line 1061)
  * __satfracthqqq2:                       Fixed-point fractional library routines.
!                                                              (line 1058)
  * __satfracthqsa:                        Fixed-point fractional library routines.
!                                                              (line 1062)
  * __satfracthqsq2:                       Fixed-point fractional library routines.
!                                                              (line 1059)
  * __satfracthqta:                        Fixed-point fractional library routines.
!                                                              (line 1064)
  * __satfracthquda:                       Fixed-point fractional library routines.
!                                                              (line 1071)
  * __satfracthqudq:                       Fixed-point fractional library routines.
!                                                              (line 1068)
  * __satfracthquha:                       Fixed-point fractional library routines.
!                                                              (line 1069)
  * __satfracthquhq:                       Fixed-point fractional library routines.
!                                                              (line 1066)
  * __satfracthquqq:                       Fixed-point fractional library routines.
!                                                              (line 1065)
  * __satfracthqusa:                       Fixed-point fractional library routines.
!                                                              (line 1070)
  * __satfracthqusq:                       Fixed-point fractional library routines.
!                                                              (line 1067)
  * __satfracthquta:                       Fixed-point fractional library routines.
!                                                              (line 1072)
  * __satfractqida:                        Fixed-point fractional library routines.
!                                                              (line 1401)
  * __satfractqidq:                        Fixed-point fractional library routines.
!                                                              (line 1398)
  * __satfractqiha:                        Fixed-point fractional library routines.
!                                                              (line 1399)
  * __satfractqihq:                        Fixed-point fractional library routines.
!                                                              (line 1396)
  * __satfractqiqq:                        Fixed-point fractional library routines.
!                                                              (line 1395)
  * __satfractqisa:                        Fixed-point fractional library routines.
!                                                              (line 1400)
  * __satfractqisq:                        Fixed-point fractional library routines.
!                                                              (line 1397)
  * __satfractqita:                        Fixed-point fractional library routines.
!                                                              (line 1402)
  * __satfractqiuda:                       Fixed-point fractional library routines.
!                                                              (line 1413)
  * __satfractqiudq:                       Fixed-point fractional library routines.
!                                                              (line 1408)
  * __satfractqiuha:                       Fixed-point fractional library routines.
!                                                              (line 1410)
  * __satfractqiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1405)
  * __satfractqiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1403)
  * __satfractqiusa:                       Fixed-point fractional library routines.
!                                                              (line 1412)
  * __satfractqiusq:                       Fixed-point fractional library routines.
!                                                              (line 1406)
  * __satfractqiuta:                       Fixed-point fractional library routines.
!                                                              (line 1415)
  * __satfractqqda:                        Fixed-point fractional library routines.
!                                                              (line 1042)
  * __satfractqqdq2:                       Fixed-point fractional library routines.
!                                                              (line 1039)
  * __satfractqqha:                        Fixed-point fractional library routines.
!                                                              (line 1040)
  * __satfractqqhq2:                       Fixed-point fractional library routines.
!                                                              (line 1037)
  * __satfractqqsa:                        Fixed-point fractional library routines.
!                                                              (line 1041)
  * __satfractqqsq2:                       Fixed-point fractional library routines.
!                                                              (line 1038)
  * __satfractqqta:                        Fixed-point fractional library routines.
!                                                              (line 1043)
  * __satfractqquda:                       Fixed-point fractional library routines.
!                                                              (line 1054)
  * __satfractqqudq:                       Fixed-point fractional library routines.
!                                                              (line 1049)
  * __satfractqquha:                       Fixed-point fractional library routines.
!                                                              (line 1051)
  * __satfractqquhq:                       Fixed-point fractional library routines.
!                                                              (line 1046)
  * __satfractqquqq:                       Fixed-point fractional library routines.
!                                                              (line 1044)
  * __satfractqqusa:                       Fixed-point fractional library routines.
!                                                              (line 1053)
  * __satfractqqusq:                       Fixed-point fractional library routines.
!                                                              (line 1047)
  * __satfractqquta:                       Fixed-point fractional library routines.
!                                                              (line 1056)
  * __satfractsada2:                       Fixed-point fractional library routines.
!                                                              (line 1139)
  * __satfractsadq:                        Fixed-point fractional library routines.
!                                                              (line 1137)
  * __satfractsaha2:                       Fixed-point fractional library routines.
!                                                              (line 1138)
  * __satfractsahq:                        Fixed-point fractional library routines.
!                                                              (line 1135)
  * __satfractsaqq:                        Fixed-point fractional library routines.
!                                                              (line 1134)
  * __satfractsasq:                        Fixed-point fractional library routines.
!                                                              (line 1136)
  * __satfractsata2:                       Fixed-point fractional library routines.
!                                                              (line 1140)
  * __satfractsauda:                       Fixed-point fractional library routines.
!                                                              (line 1147)
  * __satfractsaudq:                       Fixed-point fractional library routines.
!                                                              (line 1144)
  * __satfractsauha:                       Fixed-point fractional library routines.
!                                                              (line 1145)
  * __satfractsauhq:                       Fixed-point fractional library routines.
!                                                              (line 1142)
  * __satfractsauqq:                       Fixed-point fractional library routines.
!                                                              (line 1141)
  * __satfractsausa:                       Fixed-point fractional library routines.
!                                                              (line 1146)
  * __satfractsausq:                       Fixed-point fractional library routines.
!                                                              (line 1143)
  * __satfractsauta:                       Fixed-point fractional library routines.
!                                                              (line 1148)
  * __satfractsfda:                        Fixed-point fractional library routines.
!                                                              (line 1489)
  * __satfractsfdq:                        Fixed-point fractional library routines.
!                                                              (line 1486)
  * __satfractsfha:                        Fixed-point fractional library routines.
!                                                              (line 1487)
  * __satfractsfhq:                        Fixed-point fractional library routines.
!                                                              (line 1484)
  * __satfractsfqq:                        Fixed-point fractional library routines.
!                                                              (line 1483)
  * __satfractsfsa:                        Fixed-point fractional library routines.
!                                                              (line 1488)
  * __satfractsfsq:                        Fixed-point fractional library routines.
!                                                              (line 1485)
  * __satfractsfta:                        Fixed-point fractional library routines.
!                                                              (line 1490)
  * __satfractsfuda:                       Fixed-point fractional library routines.
!                                                              (line 1497)
  * __satfractsfudq:                       Fixed-point fractional library routines.
!                                                              (line 1494)
  * __satfractsfuha:                       Fixed-point fractional library routines.
!                                                              (line 1495)
  * __satfractsfuhq:                       Fixed-point fractional library routines.
!                                                              (line 1492)
  * __satfractsfuqq:                       Fixed-point fractional library routines.
!                                                              (line 1491)
  * __satfractsfusa:                       Fixed-point fractional library routines.
!                                                              (line 1496)
  * __satfractsfusq:                       Fixed-point fractional library routines.
!                                                              (line 1493)
  * __satfractsfuta:                       Fixed-point fractional library routines.
!                                                              (line 1498)
  * __satfractsida:                        Fixed-point fractional library routines.
!                                                              (line 1439)
  * __satfractsidq:                        Fixed-point fractional library routines.
!                                                              (line 1436)
  * __satfractsiha:                        Fixed-point fractional library routines.
!                                                              (line 1437)
  * __satfractsihq:                        Fixed-point fractional library routines.
!                                                              (line 1434)
  * __satfractsiqq:                        Fixed-point fractional library routines.
!                                                              (line 1433)
  * __satfractsisa:                        Fixed-point fractional library routines.
!                                                              (line 1438)
  * __satfractsisq:                        Fixed-point fractional library routines.
!                                                              (line 1435)
  * __satfractsita:                        Fixed-point fractional library routines.
!                                                              (line 1440)
  * __satfractsiuda:                       Fixed-point fractional library routines.
!                                                              (line 1447)
  * __satfractsiudq:                       Fixed-point fractional library routines.
!                                                              (line 1444)
  * __satfractsiuha:                       Fixed-point fractional library routines.
!                                                              (line 1445)
  * __satfractsiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1442)
  * __satfractsiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1441)
  * __satfractsiusa:                       Fixed-point fractional library routines.
!                                                              (line 1446)
  * __satfractsiusq:                       Fixed-point fractional library routines.
!                                                              (line 1443)
  * __satfractsiuta:                       Fixed-point fractional library routines.
!                                                              (line 1448)
  * __satfractsqda:                        Fixed-point fractional library routines.
!                                                              (line 1078)
  * __satfractsqdq2:                       Fixed-point fractional library routines.
!                                                              (line 1075)
  * __satfractsqha:                        Fixed-point fractional library routines.
!                                                              (line 1076)
  * __satfractsqhq2:                       Fixed-point fractional library routines.
!                                                              (line 1074)
  * __satfractsqqq2:                       Fixed-point fractional library routines.
!                                                              (line 1073)
  * __satfractsqsa:                        Fixed-point fractional library routines.
!                                                              (line 1077)
  * __satfractsqta:                        Fixed-point fractional library routines.
!                                                              (line 1079)
  * __satfractsquda:                       Fixed-point fractional library routines.
!                                                              (line 1089)
  * __satfractsqudq:                       Fixed-point fractional library routines.
!                                                              (line 1084)
  * __satfractsquha:                       Fixed-point fractional library routines.
!                                                              (line 1086)
  * __satfractsquhq:                       Fixed-point fractional library routines.
!                                                              (line 1082)
  * __satfractsquqq:                       Fixed-point fractional library routines.
!                                                              (line 1080)
  * __satfractsqusa:                       Fixed-point fractional library routines.
!                                                              (line 1088)
  * __satfractsqusq:                       Fixed-point fractional library routines.
!                                                              (line 1083)
  * __satfractsquta:                       Fixed-point fractional library routines.
!                                                              (line 1090)
  * __satfracttada2:                       Fixed-point fractional library routines.
!                                                              (line 1174)
  * __satfracttadq:                        Fixed-point fractional library routines.
!                                                              (line 1171)
  * __satfracttaha2:                       Fixed-point fractional library routines.
!                                                              (line 1172)
  * __satfracttahq:                        Fixed-point fractional library routines.
!                                                              (line 1169)
  * __satfracttaqq:                        Fixed-point fractional library routines.
!                                                              (line 1168)
  * __satfracttasa2:                       Fixed-point fractional library routines.
!                                                              (line 1173)
  * __satfracttasq:                        Fixed-point fractional library routines.
!                                                              (line 1170)
  * __satfracttauda:                       Fixed-point fractional library routines.
!                                                              (line 1185)
  * __satfracttaudq:                       Fixed-point fractional library routines.
!                                                              (line 1180)
  * __satfracttauha:                       Fixed-point fractional library routines.
!                                                              (line 1182)
  * __satfracttauhq:                       Fixed-point fractional library routines.
!                                                              (line 1177)
  * __satfracttauqq:                       Fixed-point fractional library routines.
!                                                              (line 1175)
  * __satfracttausa:                       Fixed-point fractional library routines.
!                                                              (line 1184)
  * __satfracttausq:                       Fixed-point fractional library routines.
!                                                              (line 1178)
  * __satfracttauta:                       Fixed-point fractional library routines.
!                                                              (line 1187)
  * __satfracttida:                        Fixed-point fractional library routines.
!                                                              (line 1471)
  * __satfracttidq:                        Fixed-point fractional library routines.
!                                                              (line 1468)
  * __satfracttiha:                        Fixed-point fractional library routines.
!                                                              (line 1469)
  * __satfracttihq:                        Fixed-point fractional library routines.
!                                                              (line 1466)
  * __satfracttiqq:                        Fixed-point fractional library routines.
!                                                              (line 1465)
  * __satfracttisa:                        Fixed-point fractional library routines.
!                                                              (line 1470)
  * __satfracttisq:                        Fixed-point fractional library routines.
!                                                              (line 1467)
  * __satfracttita:                        Fixed-point fractional library routines.
!                                                              (line 1472)
  * __satfracttiuda:                       Fixed-point fractional library routines.
!                                                              (line 1480)
  * __satfracttiudq:                       Fixed-point fractional library routines.
!                                                              (line 1476)
  * __satfracttiuha:                       Fixed-point fractional library routines.
!                                                              (line 1478)
  * __satfracttiuhq:                       Fixed-point fractional library routines.
!                                                              (line 1474)
  * __satfracttiuqq:                       Fixed-point fractional library routines.
!                                                              (line 1473)
  * __satfracttiusa:                       Fixed-point fractional library routines.
!                                                              (line 1479)
  * __satfracttiusq:                       Fixed-point fractional library routines.
!                                                              (line 1475)
  * __satfracttiuta:                       Fixed-point fractional library routines.
!                                                              (line 1481)
  * __satfractudada:                       Fixed-point fractional library routines.
!                                                              (line 1350)
  * __satfractudadq:                       Fixed-point fractional library routines.
!                                                              (line 1345)
  * __satfractudaha:                       Fixed-point fractional library routines.
!                                                              (line 1347)
  * __satfractudahq:                       Fixed-point fractional library routines.
!                                                              (line 1343)
  * __satfractudaqq:                       Fixed-point fractional library routines.
!                                                              (line 1341)
  * __satfractudasa:                       Fixed-point fractional library routines.
!                                                              (line 1349)
  * __satfractudasq:                       Fixed-point fractional library routines.
!                                                              (line 1344)
  * __satfractudata:                       Fixed-point fractional library routines.
!                                                              (line 1351)
  * __satfractudaudq:                      Fixed-point fractional library routines.
!                                                              (line 1359)
  * __satfractudauha2:                     Fixed-point fractional library routines.
!                                                              (line 1361)
  * __satfractudauhq:                      Fixed-point fractional library routines.
!                                                              (line 1355)
  * __satfractudauqq:                      Fixed-point fractional library routines.
!                                                              (line 1353)
  * __satfractudausa2:                     Fixed-point fractional library routines.
!                                                              (line 1363)
  * __satfractudausq:                      Fixed-point fractional library routines.
!                                                              (line 1357)
  * __satfractudauta2:                     Fixed-point fractional library routines.
!                                                              (line 1365)
  * __satfractudqda:                       Fixed-point fractional library routines.
!                                                              (line 1274)
  * __satfractudqdq:                       Fixed-point fractional library routines.
!                                                              (line 1269)
  * __satfractudqha:                       Fixed-point fractional library routines.
!                                                              (line 1271)
  * __satfractudqhq:                       Fixed-point fractional library routines.
!                                                              (line 1266)
  * __satfractudqqq:                       Fixed-point fractional library routines.
!                                                              (line 1264)
  * __satfractudqsa:                       Fixed-point fractional library routines.
!                                                              (line 1273)
  * __satfractudqsq:                       Fixed-point fractional library routines.
!                                                              (line 1267)
  * __satfractudqta:                       Fixed-point fractional library routines.
!                                                              (line 1276)
  * __satfractudquda:                      Fixed-point fractional library routines.
!                                                              (line 1288)
  * __satfractudquha:                      Fixed-point fractional library routines.
!                                                              (line 1284)
  * __satfractudquhq2:                     Fixed-point fractional library routines.
!                                                              (line 1280)
  * __satfractudquqq2:                     Fixed-point fractional library routines.
!                                                              (line 1278)
  * __satfractudqusa:                      Fixed-point fractional library routines.
!                                                              (line 1286)
  * __satfractudqusq2:                     Fixed-point fractional library routines.
!                                                              (line 1282)
  * __satfractudquta:                      Fixed-point fractional library routines.
!                                                              (line 1290)
  * __satfractuhada:                       Fixed-point fractional library routines.
!                                                              (line 1302)
  * __satfractuhadq:                       Fixed-point fractional library routines.
!                                                              (line 1297)
  * __satfractuhaha:                       Fixed-point fractional library routines.
!                                                              (line 1299)
  * __satfractuhahq:                       Fixed-point fractional library routines.
!                                                              (line 1294)
  * __satfractuhaqq:                       Fixed-point fractional library routines.
!                                                              (line 1292)
  * __satfractuhasa:                       Fixed-point fractional library routines.
!                                                              (line 1301)
  * __satfractuhasq:                       Fixed-point fractional library routines.
!                                                              (line 1295)
  * __satfractuhata:                       Fixed-point fractional library routines.
!                                                              (line 1304)
  * __satfractuhauda2:                     Fixed-point fractional library routines.
!                                                              (line 1316)
  * __satfractuhaudq:                      Fixed-point fractional library routines.
!                                                              (line 1312)
  * __satfractuhauhq:                      Fixed-point fractional library routines.
!                                                              (line 1308)
  * __satfractuhauqq:                      Fixed-point fractional library routines.
!                                                              (line 1306)
  * __satfractuhausa2:                     Fixed-point fractional library routines.
!                                                              (line 1314)
  * __satfractuhausq:                      Fixed-point fractional library routines.
!                                                              (line 1310)
  * __satfractuhauta2:                     Fixed-point fractional library routines.
!                                                              (line 1318)
  * __satfractuhqda:                       Fixed-point fractional library routines.
!                                                              (line 1223)
  * __satfractuhqdq:                       Fixed-point fractional library routines.
!                                                              (line 1220)
  * __satfractuhqha:                       Fixed-point fractional library routines.
!                                                              (line 1221)
  * __satfractuhqhq:                       Fixed-point fractional library routines.
!                                                              (line 1218)
  * __satfractuhqqq:                       Fixed-point fractional library routines.
!                                                              (line 1217)
  * __satfractuhqsa:                       Fixed-point fractional library routines.
!                                                              (line 1222)
  * __satfractuhqsq:                       Fixed-point fractional library routines.
!                                                              (line 1219)
  * __satfractuhqta:                       Fixed-point fractional library routines.
!                                                              (line 1224)
  * __satfractuhquda:                      Fixed-point fractional library routines.
!                                                              (line 1234)
  * __satfractuhqudq2:                     Fixed-point fractional library routines.
!                                                              (line 1229)
  * __satfractuhquha:                      Fixed-point fractional library routines.
!                                                              (line 1231)
  * __satfractuhquqq2:                     Fixed-point fractional library routines.
!                                                              (line 1225)
  * __satfractuhqusa:                      Fixed-point fractional library routines.
!                                                              (line 1233)
  * __satfractuhqusq2:                     Fixed-point fractional library routines.
!                                                              (line 1227)
  * __satfractuhquta:                      Fixed-point fractional library routines.
!                                                              (line 1236)
  * __satfractunsdida:                     Fixed-point fractional library routines.
!                                                              (line 1833)
  * __satfractunsdidq:                     Fixed-point fractional library routines.
!                                                              (line 1829)
  * __satfractunsdiha:                     Fixed-point fractional library routines.
!                                                              (line 1831)
  * __satfractunsdihq:                     Fixed-point fractional library routines.
!                                                              (line 1827)
  * __satfractunsdiqq:                     Fixed-point fractional library routines.
!                                                              (line 1826)
  * __satfractunsdisa:                     Fixed-point fractional library routines.
!                                                              (line 1832)
  * __satfractunsdisq:                     Fixed-point fractional library routines.
!                                                              (line 1828)
  * __satfractunsdita:                     Fixed-point fractional library routines.
!                                                              (line 1834)
  * __satfractunsdiuda:                    Fixed-point fractional library routines.
!                                                              (line 1848)
  * __satfractunsdiudq:                    Fixed-point fractional library routines.
!                                                              (line 1842)
  * __satfractunsdiuha:                    Fixed-point fractional library routines.
!                                                              (line 1844)
  * __satfractunsdiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1838)
  * __satfractunsdiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1836)
  * __satfractunsdiusa:                    Fixed-point fractional library routines.
!                                                              (line 1846)
  * __satfractunsdiusq:                    Fixed-point fractional library routines.
!                                                              (line 1840)
  * __satfractunsdiuta:                    Fixed-point fractional library routines.
!                                                              (line 1850)
  * __satfractunshida:                     Fixed-point fractional library routines.
!                                                              (line 1785)
  * __satfractunshidq:                     Fixed-point fractional library routines.
!                                                              (line 1781)
  * __satfractunshiha:                     Fixed-point fractional library routines.
!                                                              (line 1783)
  * __satfractunshihq:                     Fixed-point fractional library routines.
!                                                              (line 1779)
  * __satfractunshiqq:                     Fixed-point fractional library routines.
!                                                              (line 1778)
  * __satfractunshisa:                     Fixed-point fractional library routines.
!                                                              (line 1784)
  * __satfractunshisq:                     Fixed-point fractional library routines.
!                                                              (line 1780)
  * __satfractunshita:                     Fixed-point fractional library routines.
!                                                              (line 1786)
  * __satfractunshiuda:                    Fixed-point fractional library routines.
!                                                              (line 1800)
  * __satfractunshiudq:                    Fixed-point fractional library routines.
!                                                              (line 1794)
  * __satfractunshiuha:                    Fixed-point fractional library routines.
!                                                              (line 1796)
  * __satfractunshiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1790)
  * __satfractunshiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1788)
  * __satfractunshiusa:                    Fixed-point fractional library routines.
!                                                              (line 1798)
  * __satfractunshiusq:                    Fixed-point fractional library routines.
!                                                              (line 1792)
  * __satfractunshiuta:                    Fixed-point fractional library routines.
!                                                              (line 1802)
  * __satfractunsqida:                     Fixed-point fractional library routines.
!                                                              (line 1759)
  * __satfractunsqidq:                     Fixed-point fractional library routines.
!                                                              (line 1755)
  * __satfractunsqiha:                     Fixed-point fractional library routines.
!                                                              (line 1757)
  * __satfractunsqihq:                     Fixed-point fractional library routines.
!                                                              (line 1753)
  * __satfractunsqiqq:                     Fixed-point fractional library routines.
!                                                              (line 1752)
  * __satfractunsqisa:                     Fixed-point fractional library routines.
!                                                              (line 1758)
  * __satfractunsqisq:                     Fixed-point fractional library routines.
!                                                              (line 1754)
  * __satfractunsqita:                     Fixed-point fractional library routines.
!                                                              (line 1760)
  * __satfractunsqiuda:                    Fixed-point fractional library routines.
!                                                              (line 1774)
  * __satfractunsqiudq:                    Fixed-point fractional library routines.
!                                                              (line 1768)
  * __satfractunsqiuha:                    Fixed-point fractional library routines.
!                                                              (line 1770)
  * __satfractunsqiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1764)
  * __satfractunsqiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1762)
  * __satfractunsqiusa:                    Fixed-point fractional library routines.
!                                                              (line 1772)
  * __satfractunsqiusq:                    Fixed-point fractional library routines.
!                                                              (line 1766)
  * __satfractunsqiuta:                    Fixed-point fractional library routines.
!                                                              (line 1776)
  * __satfractunssida:                     Fixed-point fractional library routines.
!                                                              (line 1810)
  * __satfractunssidq:                     Fixed-point fractional library routines.
!                                                              (line 1807)
  * __satfractunssiha:                     Fixed-point fractional library routines.
!                                                              (line 1808)
  * __satfractunssihq:                     Fixed-point fractional library routines.
!                                                              (line 1805)
  * __satfractunssiqq:                     Fixed-point fractional library routines.
!                                                              (line 1804)
  * __satfractunssisa:                     Fixed-point fractional library routines.
!                                                              (line 1809)
  * __satfractunssisq:                     Fixed-point fractional library routines.
!                                                              (line 1806)
  * __satfractunssita:                     Fixed-point fractional library routines.
!                                                              (line 1811)
  * __satfractunssiuda:                    Fixed-point fractional library routines.
!                                                              (line 1822)
  * __satfractunssiudq:                    Fixed-point fractional library routines.
!                                                              (line 1817)
  * __satfractunssiuha:                    Fixed-point fractional library routines.
!                                                              (line 1819)
  * __satfractunssiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1814)
  * __satfractunssiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1812)
  * __satfractunssiusa:                    Fixed-point fractional library routines.
!                                                              (line 1821)
  * __satfractunssiusq:                    Fixed-point fractional library routines.
!                                                              (line 1815)
  * __satfractunssiuta:                    Fixed-point fractional library routines.
!                                                              (line 1824)
  * __satfractunstida:                     Fixed-point fractional library routines.
!                                                              (line 1862)
  * __satfractunstidq:                     Fixed-point fractional library routines.
!                                                              (line 1857)
  * __satfractunstiha:                     Fixed-point fractional library routines.
!                                                              (line 1859)
  * __satfractunstihq:                     Fixed-point fractional library routines.
!                                                              (line 1854)
  * __satfractunstiqq:                     Fixed-point fractional library routines.
!                                                              (line 1852)
  * __satfractunstisa:                     Fixed-point fractional library routines.
!                                                              (line 1861)
  * __satfractunstisq:                     Fixed-point fractional library routines.
!                                                              (line 1855)
  * __satfractunstita:                     Fixed-point fractional library routines.
!                                                              (line 1864)
  * __satfractunstiuda:                    Fixed-point fractional library routines.
!                                                              (line 1878)
  * __satfractunstiudq:                    Fixed-point fractional library routines.
!                                                              (line 1872)
  * __satfractunstiuha:                    Fixed-point fractional library routines.
!                                                              (line 1874)
  * __satfractunstiuhq:                    Fixed-point fractional library routines.
!                                                              (line 1868)
  * __satfractunstiuqq:                    Fixed-point fractional library routines.
!                                                              (line 1866)
  * __satfractunstiusa:                    Fixed-point fractional library routines.
!                                                              (line 1876)
  * __satfractunstiusq:                    Fixed-point fractional library routines.
!                                                              (line 1870)
  * __satfractunstiuta:                    Fixed-point fractional library routines.
!                                                              (line 1880)
  * __satfractuqqda:                       Fixed-point fractional library routines.
!                                                              (line 1199)
  * __satfractuqqdq:                       Fixed-point fractional library routines.
!                                                              (line 1194)
  * __satfractuqqha:                       Fixed-point fractional library routines.
!                                                              (line 1196)
  * __satfractuqqhq:                       Fixed-point fractional library routines.
!                                                              (line 1191)
  * __satfractuqqqq:                       Fixed-point fractional library routines.
!                                                              (line 1189)
  * __satfractuqqsa:                       Fixed-point fractional library routines.
!                                                              (line 1198)
  * __satfractuqqsq:                       Fixed-point fractional library routines.
!                                                              (line 1192)
  * __satfractuqqta:                       Fixed-point fractional library routines.
!                                                              (line 1201)
  * __satfractuqquda:                      Fixed-point fractional library routines.
!                                                              (line 1213)
  * __satfractuqqudq2:                     Fixed-point fractional library routines.
!                                                              (line 1207)
  * __satfractuqquha:                      Fixed-point fractional library routines.
!                                                              (line 1209)
  * __satfractuqquhq2:                     Fixed-point fractional library routines.
!                                                              (line 1203)
  * __satfractuqqusa:                      Fixed-point fractional library routines.
!                                                              (line 1211)
  * __satfractuqqusq2:                     Fixed-point fractional library routines.
!                                                              (line 1205)
  * __satfractuqquta:                      Fixed-point fractional library routines.
!                                                              (line 1215)
  * __satfractusada:                       Fixed-point fractional library routines.
!                                                              (line 1326)
  * __satfractusadq:                       Fixed-point fractional library routines.
!                                                              (line 1323)
  * __satfractusaha:                       Fixed-point fractional library routines.
!                                                              (line 1324)
  * __satfractusahq:                       Fixed-point fractional library routines.
!                                                              (line 1321)
  * __satfractusaqq:                       Fixed-point fractional library routines.
!                                                              (line 1320)
  * __satfractusasa:                       Fixed-point fractional library routines.
!                                                              (line 1325)
  * __satfractusasq:                       Fixed-point fractional library routines.
!                                                              (line 1322)
  * __satfractusata:                       Fixed-point fractional library routines.
!                                                              (line 1327)
  * __satfractusauda2:                     Fixed-point fractional library routines.
!                                                              (line 1337)
  * __satfractusaudq:                      Fixed-point fractional library routines.
!                                                              (line 1333)
  * __satfractusauha2:                     Fixed-point fractional library routines.
!                                                              (line 1335)
  * __satfractusauhq:                      Fixed-point fractional library routines.
!                                                              (line 1330)
  * __satfractusauqq:                      Fixed-point fractional library routines.
!                                                              (line 1328)
  * __satfractusausq:                      Fixed-point fractional library routines.
!                                                              (line 1331)
  * __satfractusauta2:                     Fixed-point fractional library routines.
!                                                              (line 1339)
  * __satfractusqda:                       Fixed-point fractional library routines.
!                                                              (line 1247)
  * __satfractusqdq:                       Fixed-point fractional library routines.
!                                                              (line 1242)
  * __satfractusqha:                       Fixed-point fractional library routines.
!                                                              (line 1244)
  * __satfractusqhq:                       Fixed-point fractional library routines.
!                                                              (line 1240)
  * __satfractusqqq:                       Fixed-point fractional library routines.
!                                                              (line 1238)
  * __satfractusqsa:                       Fixed-point fractional library routines.
!                                                              (line 1246)
  * __satfractusqsq:                       Fixed-point fractional library routines.
!                                                              (line 1241)
  * __satfractusqta:                       Fixed-point fractional library routines.
!                                                              (line 1248)
  * __satfractusquda:                      Fixed-point fractional library routines.
!                                                              (line 1260)
  * __satfractusqudq2:                     Fixed-point fractional library routines.
!                                                              (line 1254)
  * __satfractusquha:                      Fixed-point fractional library routines.
!                                                              (line 1256)
  * __satfractusquhq2:                     Fixed-point fractional library routines.
!                                                              (line 1252)
  * __satfractusquqq2:                     Fixed-point fractional library routines.
!                                                              (line 1250)
  * __satfractusqusa:                      Fixed-point fractional library routines.
!                                                              (line 1258)
  * __satfractusquta:                      Fixed-point fractional library routines.
!                                                              (line 1262)
  * __satfractutada:                       Fixed-point fractional library routines.
!                                                              (line 1377)
  * __satfractutadq:                       Fixed-point fractional library routines.
!                                                              (line 1372)
  * __satfractutaha:                       Fixed-point fractional library routines.
!                                                              (line 1374)
  * __satfractutahq:                       Fixed-point fractional library routines.
!                                                              (line 1369)
  * __satfractutaqq:                       Fixed-point fractional library routines.
!                                                              (line 1367)
  * __satfractutasa:                       Fixed-point fractional library routines.
!                                                              (line 1376)
  * __satfractutasq:                       Fixed-point fractional library routines.
!                                                              (line 1370)
  * __satfractutata:                       Fixed-point fractional library routines.
!                                                              (line 1379)
  * __satfractutauda2:                     Fixed-point fractional library routines.
!                                                              (line 1393)
  * __satfractutaudq:                      Fixed-point fractional library routines.
!                                                              (line 1387)
  * __satfractutauha2:                     Fixed-point fractional library routines.
!                                                              (line 1389)
  * __satfractutauhq:                      Fixed-point fractional library routines.
!                                                              (line 1383)
  * __satfractutauqq:                      Fixed-point fractional library routines.
!                                                              (line 1381)
  * __satfractutausa2:                     Fixed-point fractional library routines.
!                                                              (line 1391)
  * __satfractutausq:                      Fixed-point fractional library routines.
!                                                              (line 1385)
  * __splitstack_find:                     Miscellaneous routines.
                                                               (line   15)
  * __ssaddda3:                            Fixed-point fractional library routines.
!                                                              (line   66)
  * __ssadddq3:                            Fixed-point fractional library routines.
!                                                              (line   61)
  * __ssaddha3:                            Fixed-point fractional library routines.
!                                                              (line   63)
  * __ssaddhq3:                            Fixed-point fractional library routines.
!                                                              (line   59)
  * __ssaddqq3:                            Fixed-point fractional library routines.
!                                                              (line   57)
  * __ssaddsa3:                            Fixed-point fractional library routines.
!                                                              (line   65)
  * __ssaddsq3:                            Fixed-point fractional library routines.
!                                                              (line   60)
  * __ssaddta3:                            Fixed-point fractional library routines.
!                                                              (line   67)
  * __ssashlda3:                           Fixed-point fractional library routines.
!                                                              (line  401)
  * __ssashldq3:                           Fixed-point fractional library routines.
!                                                              (line  397)
  * __ssashlha3:                           Fixed-point fractional library routines.
!                                                              (line  399)
  * __ssashlhq3:                           Fixed-point fractional library routines.
!                                                              (line  395)
  * __ssashlsa3:                           Fixed-point fractional library routines.
!                                                              (line  400)
  * __ssashlsq3:                           Fixed-point fractional library routines.
!                                                              (line  396)
  * __ssashlta3:                           Fixed-point fractional library routines.
!                                                              (line  402)
  * __ssdivda3:                            Fixed-point fractional library routines.
!                                                              (line  260)
  * __ssdivdq3:                            Fixed-point fractional library routines.
!                                                              (line  255)
  * __ssdivha3:                            Fixed-point fractional library routines.
!                                                              (line  257)
  * __ssdivhq3:                            Fixed-point fractional library routines.
!                                                              (line  253)
  * __ssdivqq3:                            Fixed-point fractional library routines.
!                                                              (line  251)
  * __ssdivsa3:                            Fixed-point fractional library routines.
!                                                              (line  259)
  * __ssdivsq3:                            Fixed-point fractional library routines.
!                                                              (line  254)
  * __ssdivta3:                            Fixed-point fractional library routines.
!                                                              (line  261)
  * __ssmulda3:                            Fixed-point fractional library routines.
!                                                              (line  192)
  * __ssmuldq3:                            Fixed-point fractional library routines.
!                                                              (line  187)
  * __ssmulha3:                            Fixed-point fractional library routines.
!                                                              (line  189)
  * __ssmulhq3:                            Fixed-point fractional library routines.
!                                                              (line  185)
  * __ssmulqq3:                            Fixed-point fractional library routines.
!                                                              (line  183)
  * __ssmulsa3:                            Fixed-point fractional library routines.
!                                                              (line  191)
  * __ssmulsq3:                            Fixed-point fractional library routines.
!                                                              (line  186)
  * __ssmulta3:                            Fixed-point fractional library routines.
!                                                              (line  193)
  * __ssnegda2:                            Fixed-point fractional library routines.
!                                                              (line  315)
  * __ssnegdq2:                            Fixed-point fractional library routines.
!                                                              (line  312)
  * __ssnegha2:                            Fixed-point fractional library routines.
!                                                              (line  313)
  * __ssneghq2:                            Fixed-point fractional library routines.
!                                                              (line  310)
  * __ssnegqq2:                            Fixed-point fractional library routines.
!                                                              (line  309)
  * __ssnegsa2:                            Fixed-point fractional library routines.
!                                                              (line  314)
  * __ssnegsq2:                            Fixed-point fractional library routines.
!                                                              (line  311)
  * __ssnegta2:                            Fixed-point fractional library routines.
!                                                              (line  316)
  * __sssubda3:                            Fixed-point fractional library routines.
!                                                              (line  128)
  * __sssubdq3:                            Fixed-point fractional library routines.
!                                                              (line  123)
  * __sssubha3:                            Fixed-point fractional library routines.
!                                                              (line  125)
  * __sssubhq3:                            Fixed-point fractional library routines.
!                                                              (line  121)
  * __sssubqq3:                            Fixed-point fractional library routines.
!                                                              (line  119)
  * __sssubsa3:                            Fixed-point fractional library routines.
!                                                              (line  127)
  * __sssubsq3:                            Fixed-point fractional library routines.
!                                                              (line  122)
  * __sssubta3:                            Fixed-point fractional library routines.
!                                                              (line  129)
  * __subda3:                              Fixed-point fractional library routines.
!                                                              (line  106)
  * __subdf3:                              Soft float library routines.
                                                               (line   30)
  * __subdq3:                              Fixed-point fractional library routines.
!                                                              (line   93)
  * __subha3:                              Fixed-point fractional library routines.
!                                                              (line  103)
  * __subhq3:                              Fixed-point fractional library routines.
!                                                              (line   91)
  * __subqq3:                              Fixed-point fractional library routines.
!                                                              (line   89)
  * __subsa3:                              Fixed-point fractional library routines.
!                                                              (line  105)
  * __subsf3:                              Soft float library routines.
                                                               (line   29)
  * __subsq3:                              Fixed-point fractional library routines.
!                                                              (line   92)
  * __subta3:                              Fixed-point fractional library routines.
!                                                              (line  107)
  * __subtf3:                              Soft float library routines.
                                                               (line   31)
  * __subuda3:                             Fixed-point fractional library routines.
!                                                              (line  113)
  * __subudq3:                             Fixed-point fractional library routines.
!                                                              (line  101)
  * __subuha3:                             Fixed-point fractional library routines.
!                                                              (line  109)
  * __subuhq3:                             Fixed-point fractional library routines.
!                                                              (line   97)
  * __subuqq3:                             Fixed-point fractional library routines.
!                                                              (line   95)
  * __subusa3:                             Fixed-point fractional library routines.
!                                                              (line  111)
  * __subusq3:                             Fixed-point fractional library routines.
!                                                              (line   99)
  * __subuta3:                             Fixed-point fractional library routines.
!                                                              (line  115)
  * __subvdi3:                             Integer library routines.
                                                               (line  122)
  * __subvsi3:                             Integer library routines.
*************** Concept Index
*** 53384,53404 ****
  * __udivti3:                             Integer library routines.
                                                               (line   54)
  * __udivuda3:                            Fixed-point fractional library routines.
!                                                              (line  252)
  * __udivudq3:                            Fixed-point fractional library routines.
!                                                              (line  246)
  * __udivuha3:                            Fixed-point fractional library routines.
!                                                              (line  248)
  * __udivuhq3:                            Fixed-point fractional library routines.
!                                                              (line  242)
  * __udivuqq3:                            Fixed-point fractional library routines.
!                                                              (line  240)
  * __udivusa3:                            Fixed-point fractional library routines.
!                                                              (line  250)
  * __udivusq3:                            Fixed-point fractional library routines.
!                                                              (line  244)
  * __udivuta3:                            Fixed-point fractional library routines.
!                                                              (line  254)
  * __umoddi3:                             Integer library routines.
                                                               (line   69)
  * __umodsi3:                             Integer library routines.
--- 53384,53404 ----
  * __udivti3:                             Integer library routines.
                                                               (line   54)
  * __udivuda3:                            Fixed-point fractional library routines.
!                                                              (line  244)
  * __udivudq3:                            Fixed-point fractional library routines.
!                                                              (line  238)
  * __udivuha3:                            Fixed-point fractional library routines.
!                                                              (line  240)
  * __udivuhq3:                            Fixed-point fractional library routines.
!                                                              (line  234)
  * __udivuqq3:                            Fixed-point fractional library routines.
!                                                              (line  232)
  * __udivusa3:                            Fixed-point fractional library routines.
!                                                              (line  242)
  * __udivusq3:                            Fixed-point fractional library routines.
!                                                              (line  236)
  * __udivuta3:                            Fixed-point fractional library routines.
!                                                              (line  246)
  * __umoddi3:                             Integer library routines.
                                                               (line   69)
  * __umodsi3:                             Integer library routines.
*************** Concept Index
*** 53412,53512 ****
  * __unordtf2:                            Soft float library routines.
                                                               (line  173)
  * __usadduda3:                           Fixed-point fractional library routines.
!                                                              (line   91)
  * __usaddudq3:                           Fixed-point fractional library routines.
!                                                              (line   85)
  * __usadduha3:                           Fixed-point fractional library routines.
!                                                              (line   87)
  * __usadduhq3:                           Fixed-point fractional library routines.
!                                                              (line   81)
  * __usadduqq3:                           Fixed-point fractional library routines.
!                                                              (line   79)
  * __usaddusa3:                           Fixed-point fractional library routines.
!                                                              (line   89)
  * __usaddusq3:                           Fixed-point fractional library routines.
!                                                              (line   83)
  * __usadduta3:                           Fixed-point fractional library routines.
!                                                              (line   93)
  * __usashluda3:                          Fixed-point fractional library routines.
!                                                              (line  427)
  * __usashludq3:                          Fixed-point fractional library routines.
!                                                              (line  421)
  * __usashluha3:                          Fixed-point fractional library routines.
!                                                              (line  423)
  * __usashluhq3:                          Fixed-point fractional library routines.
!                                                              (line  417)
  * __usashluqq3:                          Fixed-point fractional library routines.
!                                                              (line  415)
  * __usashlusa3:                          Fixed-point fractional library routines.
!                                                              (line  425)
  * __usashlusq3:                          Fixed-point fractional library routines.
!                                                              (line  419)
  * __usashluta3:                          Fixed-point fractional library routines.
!                                                              (line  429)
  * __usdivuda3:                           Fixed-point fractional library routines.
!                                                              (line  286)
  * __usdivudq3:                           Fixed-point fractional library routines.
!                                                              (line  280)
  * __usdivuha3:                           Fixed-point fractional library routines.
!                                                              (line  282)
  * __usdivuhq3:                           Fixed-point fractional library routines.
!                                                              (line  276)
  * __usdivuqq3:                           Fixed-point fractional library routines.
!                                                              (line  274)
  * __usdivusa3:                           Fixed-point fractional library routines.
!                                                              (line  284)
  * __usdivusq3:                           Fixed-point fractional library routines.
!                                                              (line  278)
  * __usdivuta3:                           Fixed-point fractional library routines.
!                                                              (line  288)
  * __usmuluda3:                           Fixed-point fractional library routines.
!                                                              (line  218)
  * __usmuludq3:                           Fixed-point fractional library routines.
!                                                              (line  212)
  * __usmuluha3:                           Fixed-point fractional library routines.
!                                                              (line  214)
  * __usmuluhq3:                           Fixed-point fractional library routines.
!                                                              (line  208)
  * __usmuluqq3:                           Fixed-point fractional library routines.
!                                                              (line  206)
  * __usmulusa3:                           Fixed-point fractional library routines.
!                                                              (line  216)
  * __usmulusq3:                           Fixed-point fractional library routines.
!                                                              (line  210)
  * __usmuluta3:                           Fixed-point fractional library routines.
!                                                              (line  220)
  * __usneguda2:                           Fixed-point fractional library routines.
!                                                              (line  337)
  * __usnegudq2:                           Fixed-point fractional library routines.
!                                                              (line  332)
  * __usneguha2:                           Fixed-point fractional library routines.
!                                                              (line  334)
  * __usneguhq2:                           Fixed-point fractional library routines.
!                                                              (line  329)
  * __usneguqq2:                           Fixed-point fractional library routines.
!                                                              (line  327)
  * __usnegusa2:                           Fixed-point fractional library routines.
!                                                              (line  336)
  * __usnegusq2:                           Fixed-point fractional library routines.
!                                                              (line  330)
  * __usneguta2:                           Fixed-point fractional library routines.
!                                                              (line  339)
  * __ussubuda3:                           Fixed-point fractional library routines.
!                                                              (line  154)
  * __ussubudq3:                           Fixed-point fractional library routines.
!                                                              (line  148)
  * __ussubuha3:                           Fixed-point fractional library routines.
!                                                              (line  150)
  * __ussubuhq3:                           Fixed-point fractional library routines.
!                                                              (line  144)
  * __ussubuqq3:                           Fixed-point fractional library routines.
!                                                              (line  142)
  * __ussubusa3:                           Fixed-point fractional library routines.
!                                                              (line  152)
  * __ussubusq3:                           Fixed-point fractional library routines.
!                                                              (line  146)
  * __ussubuta3:                           Fixed-point fractional library routines.
!                                                              (line  156)
  * abort:                                 Portability.        (line   20)
  * abs:                                   Arithmetic.         (line  200)
  * abs and attributes:                    Expressions.        (line   83)
--- 53412,53512 ----
  * __unordtf2:                            Soft float library routines.
                                                               (line  173)
  * __usadduda3:                           Fixed-point fractional library routines.
!                                                              (line   83)
  * __usaddudq3:                           Fixed-point fractional library routines.
!                                                              (line   77)
  * __usadduha3:                           Fixed-point fractional library routines.
!                                                              (line   79)
  * __usadduhq3:                           Fixed-point fractional library routines.
!                                                              (line   73)
  * __usadduqq3:                           Fixed-point fractional library routines.
!                                                              (line   71)
  * __usaddusa3:                           Fixed-point fractional library routines.
!                                                              (line   81)
  * __usaddusq3:                           Fixed-point fractional library routines.
!                                                              (line   75)
  * __usadduta3:                           Fixed-point fractional library routines.
!                                                              (line   85)
  * __usashluda3:                          Fixed-point fractional library routines.
!                                                              (line  419)
  * __usashludq3:                          Fixed-point fractional library routines.
!                                                              (line  413)
  * __usashluha3:                          Fixed-point fractional library routines.
!                                                              (line  415)
  * __usashluhq3:                          Fixed-point fractional library routines.
!                                                              (line  409)
  * __usashluqq3:                          Fixed-point fractional library routines.
!                                                              (line  407)
  * __usashlusa3:                          Fixed-point fractional library routines.
!                                                              (line  417)
  * __usashlusq3:                          Fixed-point fractional library routines.
!                                                              (line  411)
  * __usashluta3:                          Fixed-point fractional library routines.
!                                                              (line  421)
  * __usdivuda3:                           Fixed-point fractional library routines.
!                                                              (line  278)
  * __usdivudq3:                           Fixed-point fractional library routines.
!                                                              (line  272)
  * __usdivuha3:                           Fixed-point fractional library routines.
!                                                              (line  274)
  * __usdivuhq3:                           Fixed-point fractional library routines.
!                                                              (line  268)
  * __usdivuqq3:                           Fixed-point fractional library routines.
!                                                              (line  266)
  * __usdivusa3:                           Fixed-point fractional library routines.
!                                                              (line  276)
  * __usdivusq3:                           Fixed-point fractional library routines.
!                                                              (line  270)
  * __usdivuta3:                           Fixed-point fractional library routines.
!                                                              (line  280)
  * __usmuluda3:                           Fixed-point fractional library routines.
!                                                              (line  210)
  * __usmuludq3:                           Fixed-point fractional library routines.
!                                                              (line  204)
  * __usmuluha3:                           Fixed-point fractional library routines.
!                                                              (line  206)
  * __usmuluhq3:                           Fixed-point fractional library routines.
!                                                              (line  200)
  * __usmuluqq3:                           Fixed-point fractional library routines.
!                                                              (line  198)
  * __usmulusa3:                           Fixed-point fractional library routines.
!                                                              (line  208)
  * __usmulusq3:                           Fixed-point fractional library routines.
!                                                              (line  202)
  * __usmuluta3:                           Fixed-point fractional library routines.
!                                                              (line  212)
  * __usneguda2:                           Fixed-point fractional library routines.
!                                                              (line  329)
  * __usnegudq2:                           Fixed-point fractional library routines.
!                                                              (line  324)
  * __usneguha2:                           Fixed-point fractional library routines.
!                                                              (line  326)
  * __usneguhq2:                           Fixed-point fractional library routines.
!                                                              (line  321)
  * __usneguqq2:                           Fixed-point fractional library routines.
!                                                              (line  319)
  * __usnegusa2:                           Fixed-point fractional library routines.
!                                                              (line  328)
  * __usnegusq2:                           Fixed-point fractional library routines.
!                                                              (line  322)
  * __usneguta2:                           Fixed-point fractional library routines.
!                                                              (line  331)
  * __ussubuda3:                           Fixed-point fractional library routines.
!                                                              (line  146)
  * __ussubudq3:                           Fixed-point fractional library routines.
!                                                              (line  140)
  * __ussubuha3:                           Fixed-point fractional library routines.
!                                                              (line  142)
  * __ussubuhq3:                           Fixed-point fractional library routines.
!                                                              (line  136)
  * __ussubuqq3:                           Fixed-point fractional library routines.
!                                                              (line  134)
  * __ussubusa3:                           Fixed-point fractional library routines.
!                                                              (line  144)
  * __ussubusq3:                           Fixed-point fractional library routines.
!                                                              (line  138)
  * __ussubuta3:                           Fixed-point fractional library routines.
!                                                              (line  148)
  * abort:                                 Portability.        (line   20)
  * abs:                                   Arithmetic.         (line  200)
  * abs and attributes:                    Expressions.        (line   83)
*************** Concept Index
*** 53677,53683 ****
  * AS_NEEDS_DASH_FOR_PIPED_INPUT:         Driver.             (line   88)
  * atan2M3 instruction pattern:           Standard Names.     (line 1099)
  * atanM2 instruction pattern:            Standard Names.     (line 1010)
! * atomic:                                GTY Options.        (line  197)
  * atomic_addMODE instruction pattern:    Standard Names.     (line 2583)
  * atomic_add_fetchMODE instruction pattern: Standard Names.  (line 2612)
  * atomic_andMODE instruction pattern:    Standard Names.     (line 2583)
--- 53677,53683 ----
  * AS_NEEDS_DASH_FOR_PIPED_INPUT:         Driver.             (line   88)
  * atan2M3 instruction pattern:           Standard Names.     (line 1099)
  * atanM2 instruction pattern:            Standard Names.     (line 1010)
! * atomic:                                GTY Options.        (line  196)
  * atomic_addMODE instruction pattern:    Standard Names.     (line 2583)
  * atomic_add_fetchMODE instruction pattern: Standard Names.  (line 2612)
  * atomic_andMODE instruction pattern:    Standard Names.     (line 2583)
*************** Concept Index
*** 56503,56509 ****
                                                               (line    6)
  * source code, location information:     Guidelines for Diagnostics.
                                                               (line  183)
! * special:                               GTY Options.        (line  238)
  * special predicates:                    Predicates.         (line   31)
  * SPECS:                                 Target Fragment.    (line  194)
  * speculation_barrier instruction pattern: Standard Names.   (line 2381)
--- 56503,56509 ----
                                                               (line    6)
  * source code, location information:     Guidelines for Diagnostics.
                                                               (line  183)
! * special:                               GTY Options.        (line  237)
  * special predicates:                    Predicates.         (line   31)
  * SPECS:                                 Target Fragment.    (line  194)
  * speculation_barrier instruction pattern: Standard Names.   (line 2381)
*************** Concept Index
*** 57618,57624 ****
  * use:                                   Side Effects.       (line  168)
  * used:                                  Flags.              (line  325)
  * used, in symbol_ref:                   Flags.              (line  211)
! * user:                                  GTY Options.        (line  245)
  * user experience guidelines:            User Experience Guidelines.
                                                               (line    6)
  * user gc:                               User GC.            (line    6)
--- 57618,57624 ----
  * use:                                   Side Effects.       (line  168)
  * used:                                  Flags.              (line  325)
  * used, in symbol_ref:                   Flags.              (line  211)
! * user:                                  GTY Options.        (line  244)
  * user experience guidelines:            User Experience Guidelines.
                                                               (line    6)
  * user gc:                               User GC.            (line    6)
*************** Concept Index
*** 57866,58324 ****
  
  Tag Table:
  Node: Top1789
! Node: Contributing5163
! Node: Portability5893
! Node: Interface7681
! Node: Libgcc10722
! Node: Integer library routines12549
! Node: Soft float library routines19517
! Node: Decimal float library routines31455
! Node: Fixed-point fractional library routines47213
! Node: Exception handling routines147609
! Node: Miscellaneous routines148716
! Node: Languages150836
! Node: Source Tree152383
! Node: Configure Terms152965
! Node: Top Level155921
! Node: gcc Directory159506
! Node: Subdirectories160458
! Node: Configuration162626
! Node: Config Fragments163346
! Node: System Config164571
! Node: Configuration Files165507
! Node: Build168123
! Node: Makefile168535
! Ref: Makefile-Footnote-1175310
! Ref: Makefile-Footnote-2175457
! Node: Library Files175531
! Node: Headers176093
! Node: Documentation178176
! Node: Texinfo Manuals179035
! Node: Man Page Generation181364
! Node: Miscellaneous Docs183277
! Node: Front End184664
! Node: Front End Directory188343
! Node: Front End Config189659
! Node: Front End Makefile192495
! Node: Back End196263
! Node: Testsuites201149
! Node: Test Idioms202138
! Node: Test Directives205536
! Node: Directives206063
! Node: Selectors217838
! Node: Effective-Target Keywords219194
! Ref: arm_fp_ok232067
! Ref: arm_fp_dp_ok232234
! Ref: arm_neon_ok233267
! Ref: arm_neon_ok_no_float_abi233436
! Ref: arm_neonv2_ok233603
! Ref: arm_fp16_ok233770
! Ref: arm_neon_fp16_ok234112
! Ref: arm_vfp3_ok235044
! Ref: arm_arch_v8a_hard_ok235187
! Ref: arm_v8_1a_neon_ok235937
! Ref: arm_v8_2a_fp16_scalar_ok236365
! Ref: arm_v8_2a_fp16_neon_ok236816
! Ref: arm_v8_2a_dotprod_neon_ok237291
! Ref: arm_fp16fml_neon_ok237711
! Ref: arm_coproc1_ok240211
! Ref: arm_coproc2_ok240337
! Ref: arm_coproc3_ok240565
! Ref: arm_simd32_ok240932
! Ref: arm_qbit_ok241110
! Ref: arm_dsp_ok241299
! Ref: arm_softfp_ok241476
! Ref: arm_hard_ok241549
! Ref: arm_v8_1_lob_ok241624
! Ref: stack_size_et255920
! Node: Add Options258409
! Ref: arm_fp16_ieee259647
! Ref: arm_fp16_alternative259902
! Ref: stack_size_ao262466
! Node: Require Support262828
! Node: Final Actions265730
! Node: Ada Tests275699
! Node: C Tests276862
! Node: LTO Testing281234
! Node: gcov Testing282877
! Node: profopt Testing285847
! Node: compat Testing287562
! Node: Torture Tests291802
! Node: GIMPLE Tests293436
! Node: RTL Tests294678
! Node: Options295984
! Node: Option file format296425
! Node: Option properties303414
! Node: Passes319500
! Node: Parsing pass320373
! Node: Gimplification pass323901
! Node: Pass manager325734
! Node: IPA passes327575
! Node: Small IPA passes328468
! Node: Regular IPA passes331905
! Node: Late IPA passes336683
! Node: Tree SSA passes337642
! Node: RTL passes359249
! Node: Optimization info371513
! Node: Dump setup372332
! Node: Optimization groups373461
! Node: Dump files and streams374440
! Node: Dump output verbosity375638
! Node: Dump types376694
! Node: Dump examples379036
! Node: poly_int380517
! Node: Overview of poly_int381997
! Node: Consequences of using poly_int384601
! Node: Comparisons involving poly_int386236
! Node: Comparison functions for poly_int387874
! Node: Properties of the poly_int comparisons389081
! Node: Comparing potentially-unordered poly_ints391523
! Node: Comparing ordered poly_ints392434
! Node: Checking for a poly_int marker value394458
! Node: Range checks on poly_ints395307
! Node: Sorting poly_ints397961
! Node: Arithmetic on poly_ints398734
! Node: Using poly_int with C++ arithmetic operators399535
! Node: wi arithmetic on poly_ints401066
! Node: Division of poly_ints401918
! Node: Other poly_int arithmetic403425
! Node: Alignment of poly_ints404831
! Node: Computing bounds on poly_ints408108
! Node: Converting poly_ints409497
! Node: Miscellaneous poly_int routines413044
! Node: Guidelines for using poly_int413684
! Node: GENERIC418616
! Node: Deficiencies420438
! Node: Tree overview420679
! Node: Macros and Functions424803
! Node: Identifiers425628
! Node: Containers427237
! Node: Types428394
! Node: Declarations440805
! Node: Working with declarations441300
! Node: Internal structure446904
! Node: Current structure hierarchy447288
! Node: Adding new DECL node types449381
! Node: Attributes453665
! Node: Expression trees454909
! Node: Constant expressions456663
! Node: Storage References462755
! Node: Unary and Binary Expressions466274
! Node: Vectors487176
! Node: Statements495666
! Node: Basic Statements496198
! Node: Blocks500973
! Node: Statement Sequences502674
! Node: Empty Statements503007
! Node: Jumps503581
! Node: Cleanups504234
! Node: OpenMP506275
! Node: OpenACC512120
! Node: Functions513237
! Node: Function Basics513708
! Node: Function Properties517392
! Node: Language-dependent trees520173
! Node: C and C++ Trees521060
! Node: Types for C++523945
! Node: Namespaces528915
! Node: Classes532021
! Node: Functions for C++536929
! Node: Statements for C and C++543186
! Node: C++ Expressions551693
! Node: GIMPLE553204
! Node: Tuple representation556869
! Node: Class hierarchy of GIMPLE statements563829
! Node: GIMPLE instruction set568817
! Node: GIMPLE Exception Handling570449
! Node: Temporaries572361
! Ref: Temporaries-Footnote-1573679
! Node: Operands573744
! Node: Compound Expressions574505
! Node: Compound Lvalues574739
! Node: Conditional Expressions575501
! Node: Logical Operators576160
! Node: Manipulating GIMPLE statements583522
! Node: Tuple specific accessors589458
! Node: GIMPLE_ASM590237
! Node: GIMPLE_ASSIGN592620
! Node: GIMPLE_BIND597324
! Node: GIMPLE_CALL599138
! Node: GIMPLE_CATCH603281
! Node: GIMPLE_COND604431
! Node: GIMPLE_DEBUG607226
! Node: GIMPLE_EH_FILTER611824
! Node: GIMPLE_LABEL613387
! Node: GIMPLE_GOTO614000
! Node: GIMPLE_NOP614523
! Node: GIMPLE_OMP_ATOMIC_LOAD614885
! Node: GIMPLE_OMP_ATOMIC_STORE615881
! Node: GIMPLE_OMP_CONTINUE616580
! Node: GIMPLE_OMP_CRITICAL618059
! Node: GIMPLE_OMP_FOR619053
! Node: GIMPLE_OMP_MASTER622469
! Node: GIMPLE_OMP_ORDERED622847
! Node: GIMPLE_OMP_PARALLEL623241
! Node: GIMPLE_OMP_RETURN626010
! Node: GIMPLE_OMP_SECTION626655
! Node: GIMPLE_OMP_SECTIONS627315
! Node: GIMPLE_OMP_SINGLE628925
! Node: GIMPLE_PHI629871
! Node: GIMPLE_RESX631150
! Node: GIMPLE_RETURN631869
! Node: GIMPLE_SWITCH632443
! Node: GIMPLE_TRY634318
! Node: GIMPLE_WITH_CLEANUP_EXPR636090
! Node: GIMPLE sequences636969
! Node: Sequence iterators640175
! Node: Adding a new GIMPLE statement code648632
! Node: Statement and operand traversals649977
! Node: Tree SSA652569
! Node: Annotations654357
! Node: SSA Operands654762
! Node: SSA668565
! Node: Alias analysis678271
! Node: Memory model682045
! Node: RTL683404
! Node: RTL Objects685646
! Node: RTL Classes689530
! Node: Accessors694829
! Node: Special Accessors697002
! Node: Flags702789
! Node: Machine Modes718052
! Node: Constants735676
! Node: Regs and Memory747475
! Node: Arithmetic766873
! Node: Comparisons777048
! Node: Bit-Fields781340
! Node: Vector Operations782891
! Node: Conversions784995
! Node: RTL Declarations789493
! Node: Side Effects790337
! Node: Incdec807346
! Node: Assembler810682
! Node: Debug Information812227
! Node: Insns814154
! Node: Calls842010
! Node: RTL SSA844603
! Node: Using RTL SSA845994
! Node: RTL SSA Instructions847911
! Ref: RTL SSA Instructions-Footnote-1849297
! Node: RTL SSA Basic Blocks849431
! Ref: real RTL SSA insns849899
! Ref: RTL SSA Basic Blocks-Footnote-1852121
! Node: RTL SSA Resources852255
! Node: RTL SSA Accesses853372
! Ref: RTL SSA Accesses-Footnote-1855073
! Node: RTL SSA Phi Nodes855216
! Node: RTL SSA Access Lists857220
! Node: Changing RTL Instructions861501
! Node: Changing One RTL SSA Instruction862110
! Node: Changing Multiple RTL SSA Instructions867045
! Node: Sharing871288
! Node: Reading RTL874485
! Node: Control Flow875476
! Node: Basic Blocks877244
! Node: Edges882698
! Node: Profile information891317
! Node: Maintaining the CFG896001
! Node: Liveness information901769
! Node: Loop Analysis and Representation903895
! Node: Loop representation904931
! Node: Loop querying912297
! Node: Loop manipulation915118
! Node: LCSSA917454
! Node: Scalar evolutions919523
! Node: loop-iv922767
! Node: Number of iterations924689
! Node: Dependency analysis928770
! Node: Machine Desc935121
! Node: Overview937684
! Node: Patterns939724
! Node: Example944691
! Node: RTL Template946152
! Node: Output Template956808
! Node: Output Statement960989
! Node: Predicates965328
! Node: Machine-Independent Predicates968246
! Node: Defining Predicates973190
! Node: Constraints979153
! Node: Simple Constraints980622
! Node: Multi-Alternative993462
! Node: Class Preferences996671
! Node: Modifiers997563
! Node: Machine Constraints1002297
! Node: Disable Insn Alternatives1064401
! Node: Define Constraints1067893
! Node: C Constraint Interface1076482
! Node: Standard Names1079609
! Ref: shift patterns1117829
! Ref: prologue instruction pattern1177973
! Ref: window_save instruction pattern1178466
! Ref: epilogue instruction pattern1178743
! Node: Pattern Ordering1200719
! Node: Dependent Patterns1201955
! Node: Jump Patterns1203575
! Ref: Jump Patterns-Footnote-11205720
! Node: Looping Patterns1205768
! Node: Insn Canonicalizations1211407
! Node: Expander Definitions1216614
! Node: Insn Splitting1224828
! Node: Including Patterns1239858
! Node: Peephole Definitions1241642
! Node: define_peephole1242895
! Node: define_peephole21249225
! Node: Insn Attributes1253314
! Node: Defining Attributes1254496
! Ref: define_enum_attr1257988
! Node: Expressions1259024
! Node: Tagging Insns1265774
! Node: Attr Example1270127
! Node: Insn Lengths1272500
! Node: Constant Attributes1275908
! Node: Mnemonic Attribute1277084
! Node: Delay Slots1278603
! Node: Processor pipeline description1281826
! Ref: Processor pipeline description-Footnote-11300638
! Node: Conditional Execution1300962
! Node: Define Subst1304445
! Node: Define Subst Example1306480
! Node: Define Subst Pattern Matching1309475
! Node: Define Subst Output Template1310701
! Node: Constant Definitions1313024
! Ref: define_enum1316806
! Node: Iterators1317294
! Node: Mode Iterators1317939
! Node: Defining Mode Iterators1318917
! Node: Substitutions1320411
! Node: Examples1322653
! Node: Code Iterators1324101
! Node: Int Iterators1327231
! Node: Subst Iterators1329695
! Node: Parameterized Names1331415
! Node: Target Macros1335433
! Node: Target Structure1338496
! Node: Driver1340988
! Node: Run-time Target1359958
! Node: Per-Function Data1369491
! Node: Storage Layout1372255
! Node: Type Layout1399909
! Node: Registers1413250
! Node: Register Basics1414224
! Node: Allocation Order1421786
! Node: Values in Registers1424270
! Node: Leaf Functions1431746
! Node: Stack Registers1434605
! Node: Register Classes1435877
! Node: Stack and Calling1470659
! Node: Frame Layout1471265
! Node: Exception Handling1483100
! Node: Stack Checking1489310
! Node: Frame Registers1494935
! Node: Elimination1503486
! Node: Stack Arguments1507342
! Node: Register Arguments1514538
! Node: Scalar Return1539399
! Node: Aggregate Return1545855
! Node: Caller Saves1550409
! Node: Function Entry1551151
! Node: Profiling1562703
! Node: Tail Calls1564813
! Node: Shrink-wrapping separate components1566723
! Node: Stack Smashing Protection1569764
! Node: Miscellaneous Register Hooks1572253
! Node: Varargs1573118
! Node: Trampolines1582518
! Node: Library Calls1592015
! Node: Addressing Modes1597101
! Node: Anchored Addresses1626494
! Node: Condition Code1629137
! Node: CC0 Condition Codes1631464
! Node: MODE_CC Condition Codes1634710
! Node: Costs1641536
! Node: Scheduling1663498
! Node: Sections1687420
! Node: PIC1703785
! Node: Assembler Format1705844
! Node: File Framework1706982
! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1714581
! Node: Data Output1716256
! Node: Uninitialized Data1724544
! Node: Label Output1729558
! Node: Initialization1754169
! Node: Macros for Initialization1760130
! Node: Instruction Output1767281
! Node: Dispatch Tables1777910
! Node: Exception Region Output1783661
! Node: Alignment Output1790743
! Node: Debugging Info1794430
! Node: All Debuggers1795084
! Node: DBX Options1797856
! Node: DBX Hooks1803294
! Node: File Names and DBX1804603
! Node: DWARF1806707
! Node: VMS Debug1812522
! Node: Floating Point1813101
! Node: Mode Switching1815856
! Node: Target Attributes1820293
! Node: Emulated TLS1829769
! Node: MIPS Coprocessors1833159
! Node: PCH Target1834318
! Node: C++ ABI1836160
! Node: D Language and ABI1840952
! Node: Named Address Spaces1843895
! Node: Misc1849822
! Ref: TARGET_SHIFT_TRUNCATION_MASK1857693
! Node: Host Config1916779
! Node: Host Common1917848
! Node: Filesystem1920222
! Node: Host Misc1924337
! Node: Fragments1926786
! Node: Target Fragment1927981
! Node: Host Fragment1938793
! Node: Collect21939033
! Node: Header Dirs1941669
! Node: Type Information1943092
! Node: GTY Options1946368
! Node: Inheritance and GTY1957627
! Ref: Inheritance and GTY-Footnote-11959192
! Node: User GC1959462
! Node: GGC Roots1963201
! Node: Files1963914
! Node: Invoking the garbage collector1966621
! Node: Troubleshooting1968126
! Node: Plugins1969201
! Node: Plugins loading1970330
! Node: Plugin API1971429
! Node: Plugins pass1979296
! Node: Plugins GC1981267
! Node: Plugins description1982984
! Node: Plugins attr1983520
! Node: Plugins recording1985800
! Node: Plugins gate1986650
! Node: Plugins tracking1987241
! Node: Plugins building1987829
! Node: LTO1991330
! Node: LTO Overview1992202
! Node: LTO object file layout1998029
! Node: IPA2002659
! Node: WHOPR2011709
! Node: Internal flags2016269
! Node: Match and Simplify2017680
! Node: GIMPLE API2018642
! Node: The Language2021437
! Node: Static Analyzer2033936
! Node: Analyzer Internals2034201
! Node: Debugging the Analyzer2050088
! Node: User Experience Guidelines2052525
! Node: Guidelines for Diagnostics2053461
! Ref: input_location_example2061636
! Node: Guidelines for Options2071321
! Node: Funding2071498
! Node: GNU Project2074005
! Node: Copying2074654
! Node: GNU Free Documentation License2112165
! Node: Contributors2137286
! Node: Option Index2178262
! Node: Concept Index2179139
  
  End Tag Table
--- 57866,58329 ----
  
  Tag Table:
  Node: Top1789
! Node: Contributing5175
! Node: Portability5905
! Node: Interface7693
! Node: Libgcc10734
! Node: Integer library routines12561
! Node: Soft float library routines19529
! Node: Decimal float library routines31467
! Node: Fixed-point fractional library routines47225
! Node: Exception handling routines147621
! Node: Miscellaneous routines148728
! Node: Languages150848
! Node: Source Tree152395
! Node: Configure Terms152977
! Node: Top Level155933
! Node: gcc Directory159518
! Node: Subdirectories160470
! Node: Configuration162638
! Node: Config Fragments163358
! Node: System Config164583
! Node: Configuration Files165519
! Node: Build168135
! Node: Makefile168547
! Ref: Makefile-Footnote-1175322
! Ref: Makefile-Footnote-2175469
! Node: Library Files175543
! Node: Headers176105
! Node: Documentation178188
! Node: Texinfo Manuals179047
! Node: Man Page Generation181376
! Node: Miscellaneous Docs183289
! Node: Front End184676
! Node: Front End Directory188355
! Node: Front End Config189671
! Node: Front End Makefile192507
! Node: Back End196275
! Node: Testsuites201161
! Node: Test Idioms202150
! Node: Test Directives205548
! Node: Directives206075
! Node: Selectors217850
! Node: Effective-Target Keywords219206
! Ref: arm_fp_ok232079
! Ref: arm_fp_dp_ok232246
! Ref: arm_neon_ok233279
! Ref: arm_neon_ok_no_float_abi233448
! Ref: arm_neonv2_ok233615
! Ref: arm_fp16_ok233782
! Ref: arm_neon_fp16_ok234124
! Ref: arm_vfp3_ok235056
! Ref: arm_arch_v8a_hard_ok235199
! Ref: arm_v8_1a_neon_ok235949
! Ref: arm_v8_2a_fp16_scalar_ok236377
! Ref: arm_v8_2a_fp16_neon_ok236828
! Ref: arm_v8_2a_dotprod_neon_ok237303
! Ref: arm_fp16fml_neon_ok237723
! Ref: arm_coproc1_ok240223
! Ref: arm_coproc2_ok240349
! Ref: arm_coproc3_ok240577
! Ref: arm_simd32_ok240944
! Ref: arm_qbit_ok241122
! Ref: arm_dsp_ok241311
! Ref: arm_softfp_ok241488
! Ref: arm_hard_ok241561
! Ref: arm_v8_1_lob_ok241636
! Ref: stack_size_et255932
! Node: Add Options258421
! Ref: arm_fp16_ieee259659
! Ref: arm_fp16_alternative259914
! Ref: stack_size_ao262478
! Node: Require Support262840
! Node: Final Actions265742
! Node: Ada Tests275711
! Node: C Tests276874
! Node: LTO Testing281246
! Node: gcov Testing282889
! Node: profopt Testing285859
! Node: compat Testing287574
! Node: Torture Tests291814
! Node: GIMPLE Tests293448
! Node: RTL Tests294690
! Node: Options295996
! Node: Option file format296437
! Node: Option properties303426
! Node: Passes319512
! Node: Parsing pass320385
! Node: Gimplification pass323913
! Node: Pass manager325746
! Node: IPA passes327587
! Node: Small IPA passes328480
! Node: Regular IPA passes331917
! Node: Late IPA passes336695
! Node: Tree SSA passes337654
! Node: RTL passes359261
! Node: Optimization info371525
! Node: Dump setup372344
! Node: Optimization groups373473
! Node: Dump files and streams374452
! Node: Dump output verbosity375650
! Node: Dump types376706
! Node: Dump examples379048
! Node: poly_int380529
! Node: Overview of poly_int382009
! Node: Consequences of using poly_int384613
! Node: Comparisons involving poly_int386248
! Node: Comparison functions for poly_int387886
! Node: Properties of the poly_int comparisons389093
! Node: Comparing potentially-unordered poly_ints391535
! Node: Comparing ordered poly_ints392446
! Node: Checking for a poly_int marker value394470
! Node: Range checks on poly_ints395319
! Node: Sorting poly_ints397973
! Node: Arithmetic on poly_ints398746
! Node: Using poly_int with C++ arithmetic operators399547
! Node: wi arithmetic on poly_ints401078
! Node: Division of poly_ints401930
! Node: Other poly_int arithmetic403437
! Node: Alignment of poly_ints404843
! Node: Computing bounds on poly_ints408120
! Node: Converting poly_ints409509
! Node: Miscellaneous poly_int routines413056
! Node: Guidelines for using poly_int413696
! Node: GENERIC418628
! Node: Deficiencies420450
! Node: Tree overview420691
! Node: Macros and Functions424815
! Node: Identifiers425640
! Node: Containers427249
! Node: Types428406
! Node: Declarations440817
! Node: Working with declarations441312
! Node: Internal structure446916
! Node: Current structure hierarchy447300
! Node: Adding new DECL node types449393
! Node: Attributes453677
! Node: Expression trees454921
! Node: Constant expressions456675
! Node: Storage References462767
! Node: Unary and Binary Expressions466286
! Node: Vectors487188
! Node: Statements495678
! Node: Basic Statements496210
! Node: Blocks500985
! Node: Statement Sequences502686
! Node: Empty Statements503019
! Node: Jumps503593
! Node: Cleanups504246
! Node: OpenMP506287
! Node: OpenACC512132
! Node: Functions513249
! Node: Function Basics513720
! Node: Function Properties517404
! Node: Language-dependent trees520185
! Node: C and C++ Trees521072
! Node: Types for C++523957
! Node: Namespaces528927
! Node: Classes532033
! Node: Functions for C++536941
! Node: Statements for C and C++543198
! Node: C++ Expressions551705
! Node: GIMPLE553216
! Node: Tuple representation556881
! Node: Class hierarchy of GIMPLE statements563841
! Node: GIMPLE instruction set568829
! Node: GIMPLE Exception Handling570461
! Node: Temporaries572373
! Ref: Temporaries-Footnote-1573691
! Node: Operands573756
! Node: Compound Expressions574517
! Node: Compound Lvalues574751
! Node: Conditional Expressions575513
! Node: Logical Operators576172
! Node: Manipulating GIMPLE statements583534
! Node: Tuple specific accessors589470
! Node: GIMPLE_ASM590249
! Node: GIMPLE_ASSIGN592632
! Node: GIMPLE_BIND597336
! Node: GIMPLE_CALL599150
! Node: GIMPLE_CATCH603291
! Node: GIMPLE_COND604441
! Node: GIMPLE_DEBUG607236
! Node: GIMPLE_EH_FILTER611834
! Node: GIMPLE_LABEL613397
! Node: GIMPLE_GOTO614010
! Node: GIMPLE_NOP614533
! Node: GIMPLE_OMP_ATOMIC_LOAD614895
! Node: GIMPLE_OMP_ATOMIC_STORE615891
! Node: GIMPLE_OMP_CONTINUE616590
! Node: GIMPLE_OMP_CRITICAL618069
! Node: GIMPLE_OMP_FOR619063
! Node: GIMPLE_OMP_MASTER622479
! Node: GIMPLE_OMP_ORDERED622857
! Node: GIMPLE_OMP_PARALLEL623251
! Node: GIMPLE_OMP_RETURN626020
! Node: GIMPLE_OMP_SECTION626665
! Node: GIMPLE_OMP_SECTIONS627325
! Node: GIMPLE_OMP_SINGLE628935
! Node: GIMPLE_PHI629881
! Node: GIMPLE_RESX631160
! Node: GIMPLE_RETURN631879
! Node: GIMPLE_SWITCH632453
! Node: GIMPLE_TRY634326
! Node: GIMPLE_WITH_CLEANUP_EXPR636098
! Node: GIMPLE sequences636977
! Node: Sequence iterators640183
! Node: Adding a new GIMPLE statement code648640
! Node: Statement and operand traversals649985
! Node: Tree SSA652577
! Node: Annotations654365
! Node: SSA Operands654770
! Node: SSA668573
! Node: Alias analysis678279
! Node: Memory model682053
! Node: RTL683412
! Node: RTL Objects685654
! Node: RTL Classes689538
! Node: Accessors694837
! Node: Special Accessors697010
! Node: Flags702797
! Node: Machine Modes718060
! Node: Constants735684
! Node: Regs and Memory747483
! Node: Arithmetic766881
! Node: Comparisons777056
! Node: Bit-Fields781348
! Node: Vector Operations782899
! Node: Conversions785003
! Node: RTL Declarations789501
! Node: Side Effects790345
! Node: Incdec807354
! Node: Assembler810690
! Node: Debug Information812235
! Node: Insns814162
! Node: Calls842018
! Node: RTL SSA844611
! Node: Using RTL SSA846002
! Node: RTL SSA Instructions847919
! Ref: RTL SSA Instructions-Footnote-1849305
! Node: RTL SSA Basic Blocks849439
! Ref: real RTL SSA insns849907
! Ref: RTL SSA Basic Blocks-Footnote-1852129
! Node: RTL SSA Resources852263
! Node: RTL SSA Accesses853380
! Ref: RTL SSA Accesses-Footnote-1855081
! Node: RTL SSA Phi Nodes855224
! Node: RTL SSA Access Lists857228
! Node: Changing RTL Instructions861509
! Node: Changing One RTL SSA Instruction862118
! Node: Changing Multiple RTL SSA Instructions867053
! Node: Sharing871296
! Node: Reading RTL874493
! Node: Control Flow875484
! Node: Basic Blocks877252
! Node: Edges882706
! Node: Profile information891325
! Node: Maintaining the CFG896009
! Node: Liveness information901777
! Node: Loop Analysis and Representation903903
! Node: Loop representation904939
! Node: Loop querying912305
! Node: Loop manipulation915126
! Node: LCSSA917462
! Node: Scalar evolutions919531
! Node: loop-iv922775
! Node: Number of iterations924697
! Node: Dependency analysis928778
! Node: Machine Desc935129
! Node: Overview937692
! Node: Patterns939732
! Node: Example944699
! Node: RTL Template946160
! Node: Output Template956816
! Node: Output Statement960997
! Node: Predicates965336
! Node: Machine-Independent Predicates968254
! Node: Defining Predicates973198
! Node: Constraints979161
! Node: Simple Constraints980630
! Node: Multi-Alternative993470
! Node: Class Preferences996679
! Node: Modifiers997571
! Node: Machine Constraints1002305
! Node: Disable Insn Alternatives1064409
! Node: Define Constraints1067901
! Node: C Constraint Interface1076490
! Node: Standard Names1079617
! Ref: shift patterns1117837
! Ref: prologue instruction pattern1177981
! Ref: window_save instruction pattern1178474
! Ref: epilogue instruction pattern1178751
! Node: Pattern Ordering1200727
! Node: Dependent Patterns1201963
! Node: Jump Patterns1203583
! Ref: Jump Patterns-Footnote-11205728
! Node: Looping Patterns1205776
! Node: Insn Canonicalizations1211415
! Node: Expander Definitions1216622
! Node: Insn Splitting1224836
! Node: Including Patterns1239866
! Node: Peephole Definitions1241650
! Node: define_peephole1242903
! Node: define_peephole21249233
! Node: Insn Attributes1253322
! Node: Defining Attributes1254504
! Ref: define_enum_attr1257996
! Node: Expressions1259032
! Node: Tagging Insns1265782
! Node: Attr Example1270135
! Node: Insn Lengths1272508
! Node: Constant Attributes1275916
! Node: Mnemonic Attribute1277092
! Node: Delay Slots1278611
! Node: Processor pipeline description1281834
! Ref: Processor pipeline description-Footnote-11300646
! Node: Conditional Execution1300970
! Node: Define Subst1304453
! Node: Define Subst Example1306488
! Node: Define Subst Pattern Matching1309483
! Node: Define Subst Output Template1310709
! Node: Constant Definitions1313032
! Ref: define_enum1316814
! Node: Iterators1317302
! Node: Mode Iterators1317947
! Node: Defining Mode Iterators1318925
! Node: Substitutions1320419
! Node: Examples1322661
! Node: Code Iterators1324109
! Node: Int Iterators1327239
! Node: Subst Iterators1329703
! Node: Parameterized Names1331423
! Node: Target Macros1335441
! Node: Target Structure1338504
! Node: Driver1340996
! Node: Run-time Target1359966
! Node: Per-Function Data1369499
! Node: Storage Layout1372263
! Node: Type Layout1399917
! Node: Registers1413258
! Node: Register Basics1414232
! Node: Allocation Order1421794
! Node: Values in Registers1424278
! Node: Leaf Functions1431754
! Node: Stack Registers1434613
! Node: Register Classes1435885
! Node: Stack and Calling1470667
! Node: Frame Layout1471273
! Node: Exception Handling1483108
! Node: Stack Checking1489318
! Node: Frame Registers1494943
! Node: Elimination1503494
! Node: Stack Arguments1507350
! Node: Register Arguments1514546
! Node: Scalar Return1539407
! Node: Aggregate Return1545863
! Node: Caller Saves1550417
! Node: Function Entry1551159
! Node: Profiling1562711
! Node: Tail Calls1564821
! Node: Shrink-wrapping separate components1566731
! Node: Stack Smashing Protection1569772
! Node: Miscellaneous Register Hooks1572261
! Node: Varargs1573126
! Node: Trampolines1582526
! Node: Library Calls1592023
! Node: Addressing Modes1597109
! Node: Anchored Addresses1626502
! Node: Condition Code1629145
! Node: CC0 Condition Codes1631472
! Node: MODE_CC Condition Codes1634718
! Node: Costs1641544
! Node: Scheduling1663506
! Node: Sections1687428
! Node: PIC1703793
! Node: Assembler Format1705852
! Node: File Framework1706990
! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1714589
! Node: Data Output1716264
! Node: Uninitialized Data1724552
! Node: Label Output1729566
! Node: Initialization1754177
! Node: Macros for Initialization1760138
! Node: Instruction Output1767289
! Node: Dispatch Tables1777918
! Node: Exception Region Output1783669
! Node: Alignment Output1790751
! Node: Debugging Info1794438
! Node: All Debuggers1795092
! Node: DBX Options1797864
! Node: DBX Hooks1803302
! Node: File Names and DBX1804611
! Node: DWARF1806715
! Node: VMS Debug1812530
! Node: Floating Point1813109
! Node: Mode Switching1815864
! Node: Target Attributes1820301
! Node: Emulated TLS1829777
! Node: MIPS Coprocessors1833167
! Node: PCH Target1834326
! Node: C++ ABI1836168
! Node: D Language and ABI1840960
! Node: Named Address Spaces1843903
! Node: Misc1849830
! Ref: TARGET_SHIFT_TRUNCATION_MASK1857701
! Node: Host Config1916787
! Node: Host Common1917856
! Node: Filesystem1920230
! Node: Host Misc1924345
! Node: Fragments1926794
! Node: Target Fragment1927989
! Node: Host Fragment1938801
! Node: Collect21939041
! Node: Header Dirs1941677
! Node: Type Information1943100
! Node: GTY Options1946376
! Node: Inheritance and GTY1957635
! Ref: Inheritance and GTY-Footnote-11959200
! Node: User GC1959470
! Node: GGC Roots1963209
! Node: Files1963922
! Node: Invoking the garbage collector1966629
! Node: Troubleshooting1968134
! Node: Plugins1969209
! Node: Plugins loading1970338
! Node: Plugin API1971437
! Node: Plugins pass1979304
! Node: Plugins GC1981275
! Node: Plugins description1982992
! Node: Plugins attr1983528
! Node: Plugins recording1985808
! Node: Plugins gate1986658
! Node: Plugins tracking1987249
! Node: Plugins building1987837
! Node: LTO1991338
! Node: LTO Overview1992210
! Node: LTO object file layout1998037
! Node: IPA2002667
! Node: WHOPR2011717
! Node: Internal flags2016277
! Node: Match and Simplify2017688
! Node: GIMPLE API2018650
! Node: The Language2021445
! Node: Static Analyzer2033944
! Node: Analyzer Internals2034209
! Node: Debugging the Analyzer2050096
! Node: User Experience Guidelines2052533
! Node: Guidelines for Diagnostics2053469
! Ref: input_location_example2061644
! Node: Guidelines for Options2071329
! Node: Funding2071506
! Node: GNU Project2074013
! Node: Copying2074662
! Node: GNU Free Documentation License2112173
! Node: Contributors2137294
! Node: Option Index2178270
! Node: Concept Index2179147
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/gcc/doc/gcov-dump.1 gcc-11.4.0/gcc/doc/gcov-dump.1
*** gcc-11.3.0/gcc/doc/gcov-dump.1	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/gcov-dump.1	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GCOV-DUMP 1"
! .TH GCOV-DUMP 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCOV-DUMP 1"
! .TH GCOV-DUMP 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** any later version published by the Free
*** 197,203 ****
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 201,207 ----
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/gcov-tool.1 gcc-11.4.0/gcc/doc/gcov-tool.1
*** gcc-11.3.0/gcc/doc/gcov-tool.1	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/gcov-tool.1	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GCOV-TOOL 1"
! .TH GCOV-TOOL 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCOV-TOOL 1"
! .TH GCOV-TOOL 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** Set the verbose mode.
*** 340,346 ****
  .RE
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1), \fIgcov\fR\|(1) and the Info entry for
  \&\fIgcc\fR.
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
--- 344,350 ----
  .RE
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), \fBgcc\fR\|(1), \fBgcov\fR\|(1) and the Info entry for
  \&\fIgcc\fR.
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
*************** any later version published by the Free
*** 352,358 ****
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 356,362 ----
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/gcov.1 gcc-11.4.0/gcc/doc/gcov.1
*** gcc-11.3.0/gcc/doc/gcov.1	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/gcov.1	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GCOV 1"
! .TH GCOV 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCOV 1"
! .TH GCOV 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** That can help users to find profile clas
*** 1012,1018 ****
  to a misleading profile.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1) and the Info entry for \fIgcc\fR.
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 1996\-2021 Free Software Foundation, Inc.
--- 1016,1022 ----
  to a misleading profile.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), \fBgcc\fR\|(1) and the Info entry for \fIgcc\fR.
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 1996\-2021 Free Software Foundation, Inc.
*************** any later version published by the Free
*** 1023,1029 ****
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 1027,1033 ----
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/gfdl.7 gcc-11.4.0/gcc/doc/gfdl.7
*** gcc-11.3.0/gcc/doc/gfdl.7	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/gfdl.7	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GFDL 7"
! .TH GFDL 7 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GFDL 7"
! .TH GFDL 7 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** free software license, such as the \s-1G
*** 637,643 ****
  to permit their use in free software.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIfsf\-funding\fR\|(7).
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
--- 641,647 ----
  to permit their use in free software.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBfsf\-funding\fR\|(7).
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
diff -Nrcpad gcc-11.3.0/gcc/doc/gfortran.1 gcc-11.4.0/gcc/doc/gfortran.1
*** gcc-11.3.0/gcc/doc/gfortran.1	Thu Apr 21 08:20:52 2022
--- gcc-11.4.0/gcc/doc/gfortran.1	Mon May 29 09:02:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GFORTRAN 1"
! .TH GFORTRAN 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GFORTRAN 1"
! .TH GFORTRAN 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** For instructions on reporting bugs, see
*** 1729,1736 ****
  <\fBhttps://gcc.gnu.org/bugs/\fR>.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7),
! \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIdbx\fR\|(1)
  and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIgfortran\fR, \fIas\fR,
  \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR.
  .SH "AUTHOR"
--- 1733,1740 ----
  <\fBhttps://gcc.gnu.org/bugs/\fR>.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7),
! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBgcc\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1)
  and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIgfortran\fR, \fIas\fR,
  \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR.
  .SH "AUTHOR"
*************** under the terms of the \s-1GNU\s0 Free D
*** 1746,1752 ****
  any later version published by the Free Software Foundation; with the
  Invariant Sections being \*(L"Funding Free Software\*(R", the Front-Cover
  Texts being (a) (see below), and with the Back-Cover Texts being (b)
! (see below).  A copy of the license is included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 1750,1756 ----
  any later version published by the Free Software Foundation; with the
  Invariant Sections being \*(L"Funding Free Software\*(R", the Front-Cover
  Texts being (a) (see below), and with the Back-Cover Texts being (b)
! (see below).  A copy of the license is included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/doc/gpl.7 gcc-11.4.0/gcc/doc/gpl.7
*** gcc-11.3.0/gcc/doc/gpl.7	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/gpl.7	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "GPL 7"
! .TH GPL 7 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GPL 7"
! .TH GPL 7 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** the \s-1GNU\s0 Lesser General Public Lic
*** 837,843 ****
  first, please read <\fBhttps://www.gnu.org/licenses/why\-not\-lgpl.html\fR>.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7).
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 2007 Free Software Foundation, Inc.
--- 841,847 ----
  first, please read <\fBhttps://www.gnu.org/licenses/why\-not\-lgpl.html\fR>.
  .SH "SEE ALSO"
  .IX Header "SEE ALSO"
! \&\fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7).
  .SH "COPYRIGHT"
  .IX Header "COPYRIGHT"
  Copyright (c) 2007 Free Software Foundation, Inc.
diff -Nrcpad gcc-11.3.0/gcc/doc/invoke.texi gcc-11.4.0/gcc/doc/invoke.texi
*** gcc-11.3.0/gcc/doc/invoke.texi	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/doc/invoke.texi	Mon May 29 08:46:29 2023
*************** See RS/6000 and PowerPC Options.
*** 1396,1402 ****
  -m96bit-long-double  -mlong-double-64  -mlong-double-80  -mlong-double-128 @gol
  -mregparm=@var{num}  -msseregparm @gol
  -mveclibabi=@var{type}  -mvect8-ret-in-mem @gol
! -mpc32  -mpc64  -mpc80  -mstackrealign @gol
  -momit-leaf-frame-pointer  -mno-red-zone  -mno-tls-direct-seg-refs @gol
  -mcmodel=@var{code-model}  -mabi=@var{name}  -maddress-mode=@var{mode} @gol
  -m32  -m64  -mx32  -m16  -miamcu  -mlarge-data-threshold=@var{num} @gol
--- 1396,1402 ----
  -m96bit-long-double  -mlong-double-64  -mlong-double-80  -mlong-double-128 @gol
  -mregparm=@var{num}  -msseregparm @gol
  -mveclibabi=@var{type}  -mvect8-ret-in-mem @gol
! -mpc32  -mpc64  -mpc80 -mdaz-ftz -mstackrealign @gol
  -momit-leaf-frame-pointer  -mno-red-zone  -mno-tls-direct-seg-refs @gol
  -mcmodel=@var{code-model}  -mabi=@var{name}  -maddress-mode=@var{mode} @gol
  -m32  -m64  -mx32  -m16  -miamcu  -mlarge-data-threshold=@var{num} @gol
*************** performance of the code.  Permissible va
*** 18231,18237 ****
  @samp{cortex-a78}, @samp{cortex-a78ae}, @samp{cortex-a78c},
  @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor},
  @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
! @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{qdf24xx},
  @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
  @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
  @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
--- 18231,18237 ----
  @samp{cortex-a78}, @samp{cortex-a78ae}, @samp{cortex-a78c},
  @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor},
  @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
! @samp{neoverse-n2}, @samp{neoverse-v1},@samp{neoverse-v2}, @samp{qdf24xx},
  @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
  @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
  @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
*************** performance of the code.  Permissible va
*** 18244,18250 ****
  @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
  @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
  @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55},
! @samp{cortex-r82}, @samp{cortex-x1}, @samp{ampere1}, @samp{native}.
  
  The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
  @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
--- 18244,18251 ----
  @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
  @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
  @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55},
! @samp{cortex-r82}, @samp{cortex-x1}, @samp{ampere1},
! @samp{ampere1a}, @samp{native}.
  
  The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
  @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
*************** are enabled by default; routines in such
*** 30755,30760 ****
--- 30756,30770 ----
  loss of accuracy, typically through so-called ``catastrophic cancellation'',
  when this option is used to set the precision to less than extended precision.
  
+ @item -mdaz-ftz
+ @opindex mdaz-ftz
+ 
+ The flush-to-zero (FTZ) and denormals-are-zero (DAZ) flags in the MXCSR register
+ are used to control floating-point calculations.SSE and AVX instructions
+ including scalar and vector instructions could benefit from enabling the FTZ
+ and DAZ flags when @option{-mdaz-ftz} is specified. Don't set FTZ/DAZ flags
+ when @option{-mno-daz-ftz} is specified.
+ 
  @item -mstackrealign
  @opindex mstackrealign
  Realign the stack at entry.  On the x86, the @option{-mstackrealign}
diff -Nrcpad gcc-11.3.0/gcc/doc/lto-dump.1 gcc-11.4.0/gcc/doc/lto-dump.1
*** gcc-11.3.0/gcc/doc/lto-dump.1	Thu Apr 21 08:00:42 2022
--- gcc-11.4.0/gcc/doc/lto-dump.1	Mon May 29 08:50:36 2023
***************
*** 1,4 ****
! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
--- 1,4 ----
! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
  .\"
  .\" Standard preamble:
  .\" ========================================================================
***************
*** 54,69 ****
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .if !\nF .nr F 0
! .if \nF>0 \{\
! .    de IX
! .    tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .    if !\nF==2 \{\
! .        nr % 0
! .        nr F 2
  .    \}
  .\}
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
--- 54,73 ----
  .\" Avoid warning from groff about undefined register 'F'.
  .de IX
  ..
! .nr rF 0
! .if \n(.g .if rF .nr rF 1
! .if (\n(rF:(\n(.g==0)) \{\
! .    if \nF \{\
! .        de IX
! .        tm Index:\\$1\t\\n%\t"\\$2"
  ..
! .        if !\nF==2 \{\
! .            nr % 0
! .            nr F 2
! .        \}
  .    \}
  .\}
+ .rr rF
  .\"
  .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
***************
*** 129,135 ****
  .\" ========================================================================
  .\"
  .IX Title "LTO-DUMP 1"
! .TH LTO-DUMP 1 "2022-04-21" "gcc-11.3.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "LTO-DUMP 1"
! .TH LTO-DUMP 1 "2023-05-28" "gcc-11.4.0" "GNU"
  .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
  .\" way too many mistakes in technical documents.
  .if n .ad l
*************** any later version published by the Free
*** 218,224 ****
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fIgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
--- 222,228 ----
  Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
  Free Software\*(R", the Front-Cover texts being (a) (see below), and with
  the Back-Cover Texts being (b) (see below).  A copy of the license is
! included in the \fBgfdl\fR\|(7) man page.
  .PP
  (a) The \s-1FSF\s0's Front-Cover Text is:
  .PP
diff -Nrcpad gcc-11.3.0/gcc/dse.c gcc-11.4.0/gcc/dse.c
*** gcc-11.3.0/gcc/dse.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/dse.c	Mon May 29 08:46:29 2023
*************** record_store (rtx body, bb_info_t bb_inf
*** 1562,1573 ****
  					 width)
  	      /* We can only remove the later store if the earlier aliases
  		 at least all accesses the later one.  */
! 	      && ((MEM_ALIAS_SET (mem) == MEM_ALIAS_SET (s_info->mem)
! 		   || alias_set_subset_of (MEM_ALIAS_SET (mem),
! 					   MEM_ALIAS_SET (s_info->mem)))
! 		  && (!MEM_EXPR (s_info->mem)
! 		      || refs_same_for_tbaa_p (MEM_EXPR (s_info->mem),
! 					       MEM_EXPR (mem)))))
  	    {
  	      if (GET_MODE (mem) == BLKmode)
  		{
--- 1562,1568 ----
  					 width)
  	      /* We can only remove the later store if the earlier aliases
  		 at least all accesses the later one.  */
! 	      && mems_same_for_tbaa_p (s_info->mem, mem))
  	    {
  	      if (GET_MODE (mem) == BLKmode)
  		{
diff -Nrcpad gcc-11.3.0/gcc/dwarf2out.c gcc-11.4.0/gcc/dwarf2out.c
*** gcc-11.3.0/gcc/dwarf2out.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/dwarf2out.c	Mon May 29 08:46:29 2023
*************** lookup_type_die (tree type)
*** 5791,5796 ****
--- 5791,5797 ----
    if (die && die->removed)
      {
        TYPE_SYMTAB_DIE (type) = NULL;
+       TREE_ASM_WRITTEN (type) = 0;
        return NULL;
      }
    return die;
diff -Nrcpad gcc-11.3.0/gcc/emit-rtl.c gcc-11.4.0/gcc/emit-rtl.c
*** gcc-11.3.0/gcc/emit-rtl.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/emit-rtl.c	Mon May 29 08:46:29 2023
*************** emit_copy_of_insn_after (rtx_insn *insn,
*** 6465,6471 ****
      }
  
    /* Update LABEL_NUSES.  */
!   mark_jump_label (PATTERN (new_rtx), new_rtx, 0);
  
    INSN_LOCATION (new_rtx) = INSN_LOCATION (insn);
  
--- 6465,6472 ----
      }
  
    /* Update LABEL_NUSES.  */
!   if (NONDEBUG_INSN_P (insn))
!     mark_jump_label (PATTERN (new_rtx), new_rtx, 0);
  
    INSN_LOCATION (new_rtx) = INSN_LOCATION (insn);
  
diff -Nrcpad gcc-11.3.0/gcc/expr.c gcc-11.4.0/gcc/expr.c
*** gcc-11.3.0/gcc/expr.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/expr.c	Mon May 29 08:46:29 2023
*************** store_expr (tree exp, rtx target, int ca
*** 5793,5798 ****
--- 5793,5801 ----
  	  temp = convert_modes (inner_mode, outer_mode, temp,
  				SUBREG_PROMOTED_SIGN (target));
  	}
+       else if (!SCALAR_INT_MODE_P (GET_MODE (temp)))
+ 	temp = convert_modes (outer_mode, TYPE_MODE (TREE_TYPE (exp)),
+ 			      temp, SUBREG_PROMOTED_SIGN (target));
  
        convert_move (SUBREG_REG (target), temp,
  		    SUBREG_PROMOTED_SIGN (target));
*************** count_type_elements (const_tree type, bo
*** 6192,6204 ****
      case OFFSET_TYPE:
      case REFERENCE_TYPE:
      case NULLPTR_TYPE:
        return 1;
  
      case ERROR_MARK:
        return 0;
  
      case VOID_TYPE:
-     case OPAQUE_TYPE:
      case METHOD_TYPE:
      case FUNCTION_TYPE:
      case LANG_TYPE:
--- 6195,6207 ----
      case OFFSET_TYPE:
      case REFERENCE_TYPE:
      case NULLPTR_TYPE:
+     case OPAQUE_TYPE:
        return 1;
  
      case ERROR_MARK:
        return 0;
  
      case VOID_TYPE:
      case METHOD_TYPE:
      case FUNCTION_TYPE:
      case LANG_TYPE:
*************** get_inner_reference (tree exp, poly_int6
*** 7436,7443 ****
  	  /* For vector fields re-check the target flags, as DECL_MODE
  	     could have been set with different target flags than
  	     the current function has.  */
! 	  if (mode == BLKmode
! 	      && VECTOR_TYPE_P (TREE_TYPE (field))
  	      && VECTOR_MODE_P (TYPE_MODE_RAW (TREE_TYPE (field))))
  	    mode = TYPE_MODE (TREE_TYPE (field));
  	}
--- 7439,7445 ----
  	  /* For vector fields re-check the target flags, as DECL_MODE
  	     could have been set with different target flags than
  	     the current function has.  */
! 	  if (VECTOR_TYPE_P (TREE_TYPE (field))
  	      && VECTOR_MODE_P (TYPE_MODE_RAW (TREE_TYPE (field))))
  	    mode = TYPE_MODE (TREE_TYPE (field));
  	}
*************** expand_cond_expr_using_cmove (tree treeo
*** 8566,8572 ****
    expanding_cond_expr_using_cmove = true;
    start_sequence ();
    expand_operands (treeop1, treeop2,
! 		   temp, &op1, &op2, EXPAND_NORMAL);
  
    if (TREE_CODE (treeop0) == SSA_NAME
        && (srcstmt = get_def_for_expr_class (treeop0, tcc_comparison)))
--- 8568,8575 ----
    expanding_cond_expr_using_cmove = true;
    start_sequence ();
    expand_operands (treeop1, treeop2,
! 		   mode == orig_mode ? temp : NULL_RTX, &op1, &op2,
! 		   EXPAND_NORMAL);
  
    if (TREE_CODE (treeop0) == SSA_NAME
        && (srcstmt = get_def_for_expr_class (treeop0, tcc_comparison)))
diff -Nrcpad gcc-11.3.0/gcc/fold-const.c gcc-11.4.0/gcc/fold-const.c
*** gcc-11.3.0/gcc/fold-const.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fold-const.c	Mon May 29 08:46:29 2023
*************** build_zero_vector (tree type)
*** 2355,2361 ****
  bool
  fold_convertible_p (const_tree type, const_tree arg)
  {
!   tree orig = TREE_TYPE (arg);
  
    if (type == orig)
      return true;
--- 2355,2361 ----
  bool
  fold_convertible_p (const_tree type, const_tree arg)
  {
!   const_tree orig = TREE_TYPE (arg);
  
    if (type == orig)
      return true;
*************** fold_convertible_p (const_tree type, con
*** 2387,2393 ****
        return (VECTOR_TYPE_P (orig)
  	      && known_eq (TYPE_VECTOR_SUBPARTS (type),
  			   TYPE_VECTOR_SUBPARTS (orig))
! 	      && fold_convertible_p (TREE_TYPE (type), TREE_TYPE (orig)));
  
      default:
        return false;
--- 2387,2393 ----
        return (VECTOR_TYPE_P (orig)
  	      && known_eq (TYPE_VECTOR_SUBPARTS (type),
  			   TYPE_VECTOR_SUBPARTS (orig))
! 	      && tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (orig)));
  
      default:
        return false;
*************** operand_compare::operand_equal_p (const_
*** 3331,3339 ****
  		if (compare_address
  		    && (flags & OEP_ADDRESS_OF_SAME_FIELD) == 0)
  		  {
- 		    if (TREE_OPERAND (arg0, 2)
- 			|| TREE_OPERAND (arg1, 2))
- 		      return OP_SAME_WITH_NULL (2);
  		    tree field0 = TREE_OPERAND (arg0, 1);
  		    tree field1 = TREE_OPERAND (arg1, 1);
  
--- 3331,3336 ----
*************** operand_compare::hash_operand (const_tre
*** 3844,3860 ****
  	      if (sflags & OEP_ADDRESS_OF)
  		{
  		  hash_operand (TREE_OPERAND (t, 0), hstate, flags);
! 		  if (TREE_OPERAND (t, 2))
! 		    hash_operand (TREE_OPERAND (t, 2), hstate,
! 				  flags & ~OEP_ADDRESS_OF);
! 		  else
! 		    {
! 		      tree field = TREE_OPERAND (t, 1);
! 		      hash_operand (DECL_FIELD_OFFSET (field),
! 				    hstate, flags & ~OEP_ADDRESS_OF);
! 		      hash_operand (DECL_FIELD_BIT_OFFSET (field),
! 				    hstate, flags & ~OEP_ADDRESS_OF);
! 		    }
  		  return;
  		}
  	      break;
--- 3841,3850 ----
  	      if (sflags & OEP_ADDRESS_OF)
  		{
  		  hash_operand (TREE_OPERAND (t, 0), hstate, flags);
! 		  hash_operand (DECL_FIELD_OFFSET (TREE_OPERAND (t, 1)),
! 				hstate, flags & ~OEP_ADDRESS_OF);
! 		  hash_operand (DECL_FIELD_BIT_OFFSET (TREE_OPERAND (t, 1)),
! 				hstate, flags & ~OEP_ADDRESS_OF);
  		  return;
  		}
  	      break;
*************** tree_swap_operands_p (const_tree arg0, c
*** 7508,7514 ****
  static tree
  fold_to_nonsharp_ineq_using_bound (location_t loc, tree ineq, tree bound)
  {
!   tree a, typea, type = TREE_TYPE (ineq), a1, diff, y;
  
    if (TREE_CODE (bound) == LT_EXPR)
      a = TREE_OPERAND (bound, 0);
--- 7498,7504 ----
  static tree
  fold_to_nonsharp_ineq_using_bound (location_t loc, tree ineq, tree bound)
  {
!   tree a, typea, type = TREE_TYPE (bound), a1, diff, y;
  
    if (TREE_CODE (bound) == LT_EXPR)
      a = TREE_OPERAND (bound, 0);
*************** fold_unary_loc (location_t loc, enum tre
*** 9488,9493 ****
--- 9478,9493 ----
  		  > min_align_of_type (TREE_TYPE (TREE_TYPE (arg00)))))
  	    return NULL_TREE;
  
+ 	  /* Similarly, avoid this optimization in GENERIC for -fsanitize=null
+ 	     when type is a reference type and arg00's type is not,
+ 	     because arg00 could be validly nullptr and if arg01 doesn't return,
+ 	     we don't want false positive binding of reference to nullptr.  */
+ 	  if (TREE_CODE (type) == REFERENCE_TYPE
+ 	      && !in_gimple_form
+ 	      && sanitize_flags_p (SANITIZE_NULL)
+ 	      && TREE_CODE (TREE_TYPE (arg00)) != REFERENCE_TYPE)
+ 	    return NULL_TREE;
+ 
  	  arg00 = fold_convert_loc (loc, type, arg00);
  	  return fold_build_pointer_plus_loc (loc, arg00, arg01);
  	}
*************** fold_binary_loc (location_t loc, enum tr
*** 11987,11997 ****
  	{
  	  tem = fold_to_nonsharp_ineq_using_bound (loc, arg0, arg1);
  	  if (tem && !operand_equal_p (tem, arg0, 0))
! 	    return fold_build2_loc (loc, code, type, tem, arg1);
  
  	  tem = fold_to_nonsharp_ineq_using_bound (loc, arg1, arg0);
  	  if (tem && !operand_equal_p (tem, arg1, 0))
! 	    return fold_build2_loc (loc, code, type, arg0, tem);
  	}
  
        if ((tem = fold_truth_andor (loc, code, type, arg0, arg1, op0, op1))
--- 11987,12001 ----
  	{
  	  tem = fold_to_nonsharp_ineq_using_bound (loc, arg0, arg1);
  	  if (tem && !operand_equal_p (tem, arg0, 0))
! 	    return fold_convert (type,
! 				 fold_build2_loc (loc, code, TREE_TYPE (arg1),
! 						  tem, arg1));
  
  	  tem = fold_to_nonsharp_ineq_using_bound (loc, arg1, arg0);
  	  if (tem && !operand_equal_p (tem, arg1, 0))
! 	    return fold_convert (type,
! 				 fold_build2_loc (loc, code, TREE_TYPE (arg0),
! 						  arg0, tem));
  	}
  
        if ((tem = fold_truth_andor (loc, code, type, arg0, arg1, op0, op1))
diff -Nrcpad gcc-11.3.0/gcc/fortran/ChangeLog gcc-11.4.0/gcc/fortran/ChangeLog
*** gcc-11.3.0/gcc/fortran/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/fortran/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,530 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-05-15  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/109846
+ 	* expr.c (gfc_check_vardef_context): Check appropriate pointer
+ 	attribute for CLASS vs. non-CLASS function result in variable
+ 	definition context.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/108451
+ 	* trans-decl.c (gfc_trans_use_stmts): Call clear_slot before
+ 	doing continue.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/108349
+ 	* f95-lang.c (gfc_init_builtin_function): Fix up function types
+ 	for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}.  Formatting fixes.
+ 
+ 2023-04-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-04-14  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/109511
+ 	* simplify.c (gfc_simplify_set_exponent): Fix implementation of
+ 	compile-time simplification of intrinsic SET_EXPONENT for argument
+ 	X < 1 and for I < 0.
+ 
+ 2023-04-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	* dump-parse-tree.c (get_c_type_name): Fix "long_long"
+ 	type name to be "long long".
+ 
+ 2023-04-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	* dump-parse-tree.c (get_c_type_name): Fix "long_long"
+ 	type name to be "long long". Add a comment on why adding
+ 	2 to the name too.
+ 
+ 2023-03-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-21  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/99036
+ 	* decl.c (gfc_match_modproc): Reject MODULE PROCEDURE if not in a
+ 	generic module interface.
+ 
+ 2023-03-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/109186
+ 	* simplify.c (gfc_simplify_nearest): Fix off-by-one error in setting
+ 	up real kind-specific maximum exponent for mpfr.
+ 
+ 2023-03-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-19  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/85877
+ 	* resolve.c (resolve_fl_procedure): Check for an explicit interface
+ 	of procedures with the BIND(C) attribute (F2018:15.4.2.2).
+ 
+ 2023-03-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-11  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106945
+ 	* trans-expr.c (gfc_copy_class_to_class): Convert element counts in
+ 	bounds check to common type for comparison.
+ 
+ 2023-03-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/104332
+ 	* resolve.c (resolve_symbol): Avoid NULL pointer dereference while
+ 	checking a symbol with the BIND(C) attribute.
+ 
+ 2023-03-09  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	Backported from master:
+ 	2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/108546
+ 	* trans-openmp.c (gfc_trans_omp_clauses): Fix mapping of
+ 	type(C_ptr) variables.
+ 
+ 2023-03-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108937
+ 	* trans-intrinsic.c (gfc_conv_intrinsic_ibits): Handle corner case
+ 	LEN argument of IBITS equal to BITSIZE(I).
+ 
+ 2023-03-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-22  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/96024
+ 	* resolve.c (resolve_component): The type of a CHARACTER length
+ 	expression must be INTEGER.
+ 
+ 2023-03-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-21  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/96025
+ 	* parse.c (check_function_result_typed): Improve type check of
+ 	specification expression for character length and return status.
+ 	(parse_spec): Use status from above.
+ 	* resolve.c (resolve_fntype): Prevent use of invalid specification
+ 	expression for character length.
+ 
+ 2023-02-10  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2023-02-08  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/103259
+ 	* resolve.c (resolve_common_vars): Avoid NULL pointer dereference
+ 	when a symbol's location is not set.
+ 
+ 2023-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-07  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/95107
+ 	* trans-decl.c (gfc_finish_var_decl): With -fno-automatic, do not
+ 	make ASSOCIATE variables TREE_STATIC.
+ 
+ 2023-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108609
+ 	* expr.c (find_array_section): Add check to prevent interpreting an
+ 	mpz non-integer constant as an integer.
+ 
+ 2023-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-28  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/108527
+ 	* resolve.c (compare_bound_int): Expression to compare must be of
+ 	type INTEGER.
+ 	(compare_bound_mpz_t): Likewise.
+ 	(check_dimension): Fix comment on checks applied to array section
+ 	and clean up associated logic.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108529
+ 	* simplify.c (simplify_transformation): Do not try to simplify
+ 	transformational intrinsic when the ARRAY argument has a NULL shape.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-07-14  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/106209
+ 	* decl.c (add_init_expr_to_sym): Handle bad initializers for
+ 	implied-shape arrays.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108501
+ 	* interface.c (get_expr_storage_size): Check array subscript triplets
+ 	that we actually have integer values before trying to extract with
+ 	mpz_get_si.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108502
+ 	* dependency.c (gfc_check_dependency): Prevent NULL pointer
+ 	dereference while recursively checking expressions.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108421
+ 	* interface.c (get_expr_storage_size): Check that we actually have
+ 	an integer value before trying to extract it with mpz_get_si.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108420
+ 	* iresolve.c (check_charlen_present): Preserve character length if
+ 	there is no array constructor.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-28  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108453
+ 	* match.c (gfc_match_common): A USE associated name shall not appear
+ 	in a COMMON block (F2018:C8121).
+ 
+ 2023-01-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-12-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108131
+ 	* array.c (match_array_element_spec): Avoid too early simplification
+ 	of matched array element specs that can lead to a misinterpretation
+ 	when used as array bounds in array declarations.
+ 
+ 2022-12-18  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-12-09  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/107872
+ 	* resolve.c (derived_inaccessible): Skip over allocatable components
+ 	to prevent an infinite loop.
+ 
+ 2022-11-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-11-18  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/107576
+ 	* interface.c (gfc_procedure_use): Reject NULL as actual argument
+ 	when there is no explicit procedure interface.
+ 
+ 2022-10-29  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-10-21  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100097
+ 	PR fortran/100098
+ 	* trans-array.c (gfc_trans_class_array): New function to
+ 	initialize class descriptor's TKR information.
+ 	* trans-array.h (gfc_trans_class_array): Add function prototype.
+ 	* trans-decl.c (gfc_trans_deferred_vars): Add calls to the new
+ 	function for both pointers and allocatables.
+ 
+ 2022-10-28  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-10-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/103413
+ 	* symbol.c (gfc_type_compatible): A boz-literal-constant has no type
+ 	and thus is not considered compatible to any type.
+ 
+ 2022-10-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-10-20  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/105633
+ 	* expr.c (find_array_section): Move check for NULL pointers so
+ 	that both subscript triplets and vector subscripts are covered.
+ 
+ 2022-10-10  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/106817
+ 	* trans-expr.c (gfc_conv_procedure_call): Collect all clobbers
+ 	to their own separate block.  Append the block of clobbers to
+ 	the procedure preliminary block after the argument evaluation
+ 	codes for all the arguments.
+ 
+ 2022-10-10  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/105012
+ 	* trans-expr.c (gfc_conv_procedure_call): Retrieve variable
+ 	from the just calculated variable reference.
+ 
+ 2022-10-10  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	* trans.h (gfc_conv_expr_reference): Remove add_clobber
+ 	argument.
+ 	* trans-expr.c (gfc_conv_expr_reference): Ditto. Inline code
+ 	depending on add_clobber and conditions controlling it ...
+ 	(gfc_conv_procedure_call): ... to here.
+ 
+ 2022-10-08  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-10-01  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100040
+ 	PR fortran/100029
+ 	* trans-expr.c (gfc_conv_class_to_class): Add code to have
+ 	assumed-rank arrays recognized as full arrays and fix the type
+ 	of the array assignment.
+ 	(gfc_conv_procedure_call): Change order of code blocks such that
+ 	the free of ALLOCATABLE dummy arguments with INTENT(OUT) occurs
+ 	first.
+ 
+ 2022-10-01  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-20  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100132
+ 	* trans-types.c (create_fn_spec): Fix function attributes when
+ 	passing polymorphic pointers.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/107054
+ 	* simplify.c (gfc_simplify_unpack): Replace assert by condition
+ 	that terminates simplification when there are not enough elements
+ 	in the constructor of argument VECTOR.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-22  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/82868
+ 	* trans-decl.c (generate_coarray_sym_init): Skip symbol
+ 	if attr.associate_var.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106985
+ 	* expr.c (gfc_simplify_expr): Avoid NULL pointer dereference.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-08-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/103694
+ 	* simplify.c (simplify_size): The size expression of an array cannot
+ 	be simplified if an error occurs while resolving the array spec.
+ 
+ 2022-09-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106986
+ 	* simplify.c (gfc_simplify_findloc): Do not try to simplify
+ 	intrinsic FINDLOC when the ARRAY argument has a NULL shape.
+ 
+ 2022-09-24  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-03  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100245
+ 	* trans-expr.c (trans_class_assignment): Add if clause to handle
+ 	derived type in the LHS.
+ 
+ 2022-09-22  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-15  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106857
+ 	* simplify.c (gfc_simplify_pack): Check for NULL pointer dereferences
+ 	while walking through constructors (error recovery).
+ 
+ 2022-09-05  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-04  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100136
+ 	* trans-expr.c (gfc_conv_procedure_call): Add handling of pointer
+ 	expressions.
+ 
+ 2022-07-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-07-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/103504
+ 	* interface.c (get_sym_storage_size): Array bounds and character
+ 	length can only be of integer type.
+ 
+ 2022-07-16  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-07-15  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/104313
+ 	* trans-decl.c (gfc_generate_return): Do not generate conflicting
+ 	fake results for functions with no result variable under -ff2c.
+ 
+ 2022-07-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-30  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/103137
+ 	PR fortran/103138
+ 	PR fortran/103693
+ 	PR fortran/105243
+ 	* decl.c (gfc_match_data_decl): Reject CLASS entity declaration
+ 	when it is given the PARAMETER attribute.
+ 
+ 2022-07-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-29  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/106121
+ 	* simplify.c (gfc_simplify_extends_type_of): Do not attempt to
+ 	simplify when one of the arguments is a CLASS variable that was
+ 	not properly declared.
+ 
+ 2022-07-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/105954
+ 	* decl.c (variable_decl): Adjust upper bounds for explicit-shape
+ 	specs with constant bound expressions to ensure non-negative
+ 	extents.
+ 
+ 2022-07-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/105691
+ 	* simplify.c (gfc_simplify_index): Replace old simplification
+ 	code by the equivalent of the runtime library implementation.  Use
+ 	HOST_WIDE_INT instead of int for string index, length variables.
+ 
+ 2022-07-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/105813
+ 	* check.c (gfc_check_unpack): Try to simplify MASK argument to
+ 	UNPACK so that checking of the VECTOR argument can work when MASK
+ 	is a variable.
+ 
+ 2022-05-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-05-11  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/105230
+ 	* expr.c (find_array_section): Correct logic to avoid NULL
+ 	pointer dereference on invalid array section.
+ 
+ 2022-05-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-03-09  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/104849
+ 	* expr.c (find_array_section): Avoid NULL pointer dereference on
+ 	invalid array section.
+ 
+ 2022-04-21  Fritz Reese  <foreese@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-04-21  Fritz Reese  <foreese@gcc.gnu.org>
+ 
+ 	PR fortran/105310
+ 	* trans-expr.c (gfc_conv_union_initializer): Pass vec* by reference.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/fortran/array.c gcc-11.4.0/gcc/fortran/array.c
*** gcc-11.3.0/gcc/fortran/array.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/array.c	Mon May 29 08:46:29 2023
*************** match_array_element_spec (gfc_array_spec
*** 492,499 ****
    if (!gfc_expr_check_typed (*upper, gfc_current_ns, false))
      return AS_UNKNOWN;
  
-   gfc_try_simplify_expr (*upper, 0);
- 
    if (((*upper)->expr_type == EXPR_CONSTANT
  	&& (*upper)->ts.type != BT_INTEGER) ||
        ((*upper)->expr_type == EXPR_FUNCTION
--- 492,497 ----
*************** match_array_element_spec (gfc_array_spec
*** 526,533 ****
    if (!gfc_expr_check_typed (*upper, gfc_current_ns, false))
      return AS_UNKNOWN;
  
-   gfc_try_simplify_expr (*upper, 0);
- 
    if (((*upper)->expr_type == EXPR_CONSTANT
  	&& (*upper)->ts.type != BT_INTEGER) ||
        ((*upper)->expr_type == EXPR_FUNCTION
--- 524,529 ----
diff -Nrcpad gcc-11.3.0/gcc/fortran/check.c gcc-11.4.0/gcc/fortran/check.c
*** gcc-11.3.0/gcc/fortran/check.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/check.c	Mon May 29 08:46:29 2023
*************** gfc_check_unpack (gfc_expr *vector, gfc_
*** 6342,6347 ****
--- 6342,6349 ----
    if (!same_type_check (vector, 0, field, 2))
      return false;
  
+   gfc_simplify_expr (mask, 0);
+ 
    if (mask->expr_type == EXPR_ARRAY
        && gfc_array_size (vector, &vector_size))
      {
diff -Nrcpad gcc-11.3.0/gcc/fortran/decl.c gcc-11.4.0/gcc/fortran/decl.c
*** gcc-11.3.0/gcc/fortran/decl.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/decl.c	Mon May 29 08:46:29 2023
*************** add_init_expr_to_sym (const char *name,
*** 2050,2059 ****
  	  /* The shape may be NULL for EXPR_ARRAY, set it.  */
  	  if (init->shape == NULL)
  	    {
! 	      gcc_assert (init->expr_type == EXPR_ARRAY);
  	      init->shape = gfc_get_shape (1);
  	      if (!gfc_array_size (init, &init->shape[0]))
! 		  gfc_internal_error ("gfc_array_size failed");
  	    }
  
  	  for (dim = 0; dim < sym->as->rank; ++dim)
--- 2050,2070 ----
  	  /* The shape may be NULL for EXPR_ARRAY, set it.  */
  	  if (init->shape == NULL)
  	    {
! 	      if (init->expr_type != EXPR_ARRAY)
! 		{
! 		  gfc_error ("Bad shape of initializer at %L", &init->where);
! 		  return false;
! 		}
! 
  	      init->shape = gfc_get_shape (1);
  	      if (!gfc_array_size (init, &init->shape[0]))
! 		{
! 		  gfc_error ("Cannot determine shape of initializer at %L",
! 			     &init->where);
! 		  free (init->shape);
! 		  init->shape = NULL;
! 		  return false;
! 		}
  	    }
  
  	  for (dim = 0; dim < sym->as->rank; ++dim)
*************** variable_decl (int elem)
*** 2696,2701 ****
--- 2707,2724 ----
  		  else
  		    gfc_free_expr (n);
  		}
+ 	      /* For an explicit-shape spec with constant bounds, ensure
+ 		 that the effective upper bound is not lower than the
+ 		 respective lower bound minus one.  Otherwise adjust it so
+ 		 that the extent is trivially derived to be zero.  */
+ 	      if (as->lower[i]->expr_type == EXPR_CONSTANT
+ 		  && as->upper[i]->expr_type == EXPR_CONSTANT
+ 		  && as->lower[i]->ts.type == BT_INTEGER
+ 		  && as->upper[i]->ts.type == BT_INTEGER
+ 		  && mpz_cmp (as->upper[i]->value.integer,
+ 			      as->lower[i]->value.integer) < 0)
+ 		mpz_sub_ui (as->upper[i]->value.integer,
+ 			    as->lower[i]->value.integer, 1);
  	    }
  	}
      }
*************** gfc_match_data_decl (void)
*** 6169,6174 ****
--- 6192,6205 ----
        goto cleanup;
      }
  
+   /* F2018:C708.  */
+   if (current_ts.type == BT_CLASS && current_attr.flavor == FL_PARAMETER)
+     {
+       gfc_error ("CLASS entity at %C cannot have the PARAMETER attribute");
+       m = MATCH_ERROR;
+       goto cleanup;
+     }
+ 
    if (current_ts.type == BT_CLASS
  	&& current_ts.u.derived->attr.unlimited_polymorphic)
      goto ok;
*************** gfc_match_modproc (void)
*** 9871,9879 ****
    gfc_namespace *module_ns;
    gfc_interface *old_interface_head, *interface;
  
!   if ((gfc_state_stack->state != COMP_INTERFACE
!        && gfc_state_stack->state != COMP_CONTAINS)
!       || gfc_state_stack->previous == NULL
        || current_interface.type == INTERFACE_NAMELESS
        || current_interface.type == INTERFACE_ABSTRACT)
      {
--- 9902,9911 ----
    gfc_namespace *module_ns;
    gfc_interface *old_interface_head, *interface;
  
!   if (gfc_state_stack->previous == NULL
!       || (gfc_state_stack->state != COMP_INTERFACE
! 	  && (gfc_state_stack->state != COMP_CONTAINS
! 	      || gfc_state_stack->previous->state != COMP_INTERFACE))
        || current_interface.type == INTERFACE_NAMELESS
        || current_interface.type == INTERFACE_ABSTRACT)
      {
diff -Nrcpad gcc-11.3.0/gcc/fortran/dependency.c gcc-11.4.0/gcc/fortran/dependency.c
*** gcc-11.3.0/gcc/fortran/dependency.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/dependency.c	Mon May 29 08:46:29 2023
*************** gfc_check_dependency (gfc_expr *expr1, g
*** 1292,1297 ****
--- 1292,1302 ----
    if (expr1->expr_type != EXPR_VARIABLE)
      gfc_internal_error ("gfc_check_dependency: expecting an EXPR_VARIABLE");
  
+   /* Prevent NULL pointer dereference while recursively analyzing invalid
+      expressions.  */
+   if (expr2 == NULL)
+     return 0;
+ 
    switch (expr2->expr_type)
      {
      case EXPR_OP:
diff -Nrcpad gcc-11.3.0/gcc/fortran/dump-parse-tree.c gcc-11.4.0/gcc/fortran/dump-parse-tree.c
*** gcc-11.3.0/gcc/fortran/dump-parse-tree.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/dump-parse-tree.c	Mon May 29 08:46:29 2023
*************** get_c_type_name (gfc_typespec *ts, gfc_a
*** 3349,3355 ****
--- 3349,3360 ----
  	  if (c_interop_kinds_table[i].f90_type == ts->type
  	      && c_interop_kinds_table[i].value == ts->kind)
  	    {
+ 	      /* Skip over 'c_'. */
  	      *type_name = c_interop_kinds_table[i].name + 2;
+ 	      if (strcmp (*type_name, "long_long") == 0)
+ 		*type_name = "long long";
+ 	      if (strcmp (*type_name, "long_double") == 0)
+ 		*type_name = "long double";
  	      if (strcmp (*type_name, "signed_char") == 0)
  		*type_name = "signed char";
  	      else if (strcmp (*type_name, "size_t") == 0)
diff -Nrcpad gcc-11.3.0/gcc/fortran/expr.c gcc-11.4.0/gcc/fortran/expr.c
*** gcc-11.3.0/gcc/fortran/expr.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/expr.c	Mon May 29 08:46:29 2023
*************** find_array_section (gfc_expr *expr, gfc_
*** 1549,1554 ****
--- 1549,1564 ----
        lower = ref->u.ar.as->lower[d];
        upper = ref->u.ar.as->upper[d];
  
+       if (!lower || !upper
+ 	  || lower->expr_type != EXPR_CONSTANT
+ 	  || upper->expr_type != EXPR_CONSTANT
+ 	  || lower->ts.type != BT_INTEGER
+ 	  || upper->ts.type != BT_INTEGER)
+ 	{
+ 	  t = false;
+ 	  goto cleanup;
+ 	}
+ 
        if (ref->u.ar.dimen_type[d] == DIMEN_VECTOR)  /* Vector subscript.  */
  	{
  	  gfc_constructor *ci;
*************** gfc_simplify_expr (gfc_expr *p, int type
*** 2281,2287 ****
  	 initialization expression, or we want a subsection.  */
        if (p->symtree->n.sym->attr.flavor == FL_PARAMETER
  	  && (gfc_init_expr_flag || p->ref
! 	      || p->symtree->n.sym->value->expr_type != EXPR_ARRAY))
  	{
  	  if (!simplify_parameter_variable (p, type))
  	    return false;
--- 2291,2298 ----
  	 initialization expression, or we want a subsection.  */
        if (p->symtree->n.sym->attr.flavor == FL_PARAMETER
  	  && (gfc_init_expr_flag || p->ref
! 	      || (p->symtree->n.sym->value
! 		  && p->symtree->n.sym->value->expr_type != EXPR_ARRAY)))
  	{
  	  if (!simplify_parameter_variable (p, type))
  	    return false;
*************** gfc_check_vardef_context (gfc_expr* e, b
*** 6224,6230 ****
        && !(sym->attr.flavor == FL_PROCEDURE && sym == sym->result)
        && !(sym->attr.flavor == FL_PROCEDURE && sym->attr.proc_pointer)
        && !(sym->attr.flavor == FL_PROCEDURE
! 	   && sym->attr.function && sym->attr.pointer))
      {
        if (context)
  	gfc_error ("%qs in variable definition context (%s) at %L is not"
--- 6235,6241 ----
        && !(sym->attr.flavor == FL_PROCEDURE && sym == sym->result)
        && !(sym->attr.flavor == FL_PROCEDURE && sym->attr.proc_pointer)
        && !(sym->attr.flavor == FL_PROCEDURE
! 	   && sym->attr.function && attr.pointer))
      {
        if (context)
  	gfc_error ("%qs in variable definition context (%s) at %L is not"
diff -Nrcpad gcc-11.3.0/gcc/fortran/f95-lang.c gcc-11.4.0/gcc/fortran/f95-lang.c
*** gcc-11.3.0/gcc/fortran/f95-lang.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/f95-lang.c	Mon May 29 08:46:29 2023
*************** gfc_init_builtin_functions (void)
*** 696,726 ****
                                                  float_type_node, NULL_TREE);
  
    func_cdouble_double = build_function_type_list (double_type_node,
!                                                   complex_double_type_node,
!                                                   NULL_TREE);
  
    func_double_cdouble = build_function_type_list (complex_double_type_node,
!                                                   double_type_node, NULL_TREE);
  
!   func_clongdouble_longdouble =
!     build_function_type_list (long_double_type_node,
!                               complex_long_double_type_node, NULL_TREE);
  
!   func_longdouble_clongdouble =
!     build_function_type_list (complex_long_double_type_node,
!                               long_double_type_node, NULL_TREE);
  
    ptype = build_pointer_type (float_type_node);
!   func_float_floatp_floatp =
!     build_function_type_list (void_type_node, ptype, ptype, NULL_TREE);
  
    ptype = build_pointer_type (double_type_node);
!   func_double_doublep_doublep =
!     build_function_type_list (void_type_node, ptype, ptype, NULL_TREE);
  
    ptype = build_pointer_type (long_double_type_node);
!   func_longdouble_longdoublep_longdoublep =
!     build_function_type_list (void_type_node, ptype, ptype, NULL_TREE);
  
  /* Non-math builtins are defined manually, so they're not included here.  */
  #define OTHER_BUILTIN(ID,NAME,TYPE,CONST)
--- 696,729 ----
                                                  float_type_node, NULL_TREE);
  
    func_cdouble_double = build_function_type_list (double_type_node,
! 						  complex_double_type_node,
! 						  NULL_TREE);
  
    func_double_cdouble = build_function_type_list (complex_double_type_node,
! 						  double_type_node, NULL_TREE);
  
!   func_clongdouble_longdouble
!     = build_function_type_list (long_double_type_node,
! 				complex_long_double_type_node, NULL_TREE);
  
!   func_longdouble_clongdouble
!     = build_function_type_list (complex_long_double_type_node,
! 				long_double_type_node, NULL_TREE);
  
    ptype = build_pointer_type (float_type_node);
!   func_float_floatp_floatp
!     = build_function_type_list (void_type_node, float_type_node, ptype, ptype,
! 				NULL_TREE);
  
    ptype = build_pointer_type (double_type_node);
!   func_double_doublep_doublep
!     = build_function_type_list (void_type_node, double_type_node, ptype,
! 				ptype, NULL_TREE);
  
    ptype = build_pointer_type (long_double_type_node);
!   func_longdouble_longdoublep_longdoublep
!     = build_function_type_list (void_type_node, long_double_type_node, ptype,
! 				ptype, NULL_TREE);
  
  /* Non-math builtins are defined manually, so they're not included here.  */
  #define OTHER_BUILTIN(ID,NAME,TYPE,CONST)
*************** gfc_init_builtin_functions (void)
*** 974,982 ****
  		      "calloc", ATTR_NOTHROW_LEAF_MALLOC_LIST);
    DECL_IS_MALLOC (builtin_decl_explicit (BUILT_IN_CALLOC)) = 1;
  
!   ftype = build_function_type_list (pvoid_type_node,
!                                     size_type_node, pvoid_type_node,
!                                     NULL_TREE);
    gfc_define_builtin ("__builtin_realloc", ftype, BUILT_IN_REALLOC,
  		      "realloc", ATTR_NOTHROW_LEAF_LIST);
  
--- 977,984 ----
  		      "calloc", ATTR_NOTHROW_LEAF_MALLOC_LIST);
    DECL_IS_MALLOC (builtin_decl_explicit (BUILT_IN_CALLOC)) = 1;
  
!   ftype = build_function_type_list (pvoid_type_node, pvoid_type_node,
! 				    size_type_node, NULL_TREE);
    gfc_define_builtin ("__builtin_realloc", ftype, BUILT_IN_REALLOC,
  		      "realloc", ATTR_NOTHROW_LEAF_LIST);
  
diff -Nrcpad gcc-11.3.0/gcc/fortran/gfortran.info gcc-11.4.0/gcc/fortran/gfortran.info
*** gcc-11.3.0/gcc/fortran/gfortran.info	Thu Apr 21 08:20:55 2022
--- gcc-11.4.0/gcc/fortran/gfortran.info	Mon May 29 09:02:39 2023
***************
*** 1,4 ****
! This is gfortran.info, produced by makeinfo version 6.5 from
  gfortran.texi.
  
  Copyright (C) 1999-2021 Free Software Foundation, Inc.
--- 1,4 ----
! This is gfortran.info, produced by makeinfo version 6.8 from
  gfortran.texi.
  
  Copyright (C) 1999-2021 Free Software Foundation, Inc.
*************** the other form by either removing 'no-'
*** 1568,1574 ****
  
       Use of '-fno-underscoring' is not recommended unless you are
       experimenting with issues such as integration of GNU Fortran into
!      existing system environments (vis-a`-vis existing libraries, tools,
       and so on).
  
       For example, with '-funderscoring', and assuming that 'j()' and
--- 1568,1574 ----
  
       Use of '-fno-underscoring' is not recommended unless you are
       experimenting with issues such as integration of GNU Fortran into
!      existing system environments (vis-à-vis existing libraries, tools,
       and so on).
  
       For example, with '-funderscoring', and assuming that 'j()' and
*************** significant help to the GNU Fortran proj
*** 20064,20070 ****
     - Steven Bosscher
     - Paul Brook
     - Tobias Burnus
!    - Franc,ois-Xavier Coudert
     - Bud Davis
     - Jerry DeLisle
     - Erik Edelmann
--- 20064,20070 ----
     - Steven Bosscher
     - Paul Brook
     - Tobias Burnus
!    - François-Xavier Coudert
     - Bud Davis
     - Jerry DeLisle
     - Erik Edelmann
*************** significant help to the GNU Fortran proj
*** 20086,20092 ****
     - Tim Prince
     - Christopher D. Rickett
     - Richard Sandiford
!    - Tobias Schlu"ter
     - Roger Sayle
     - Paul Thomas
     - Andy Vaught
--- 20086,20092 ----
     - Tim Prince
     - Christopher D. Rickett
     - Richard Sandiford
!    - Tobias Schlüter
     - Roger Sayle
     - Paul Thomas
     - Andy Vaught
*************** patches, and much needed feedback and en
*** 20099,20105 ****
  project:
  
     - Bill Clodius
!    - Dominique d'Humie`res
     - Kate Hedstrom
     - Erik Schnetter
     - Joost VandeVondele
--- 20099,20105 ----
  project:
  
     - Bill Clodius
!    - Dominique d'Humières
     - Kate Hedstrom
     - Erik Schnetter
     - Joost VandeVondele
*************** Node: Option Index782806
*** 23677,23679 ****
--- 23677,23684 ----
  Node: Keyword Index801940
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/gcc/fortran/interface.c gcc-11.4.0/gcc/fortran/interface.c
*** gcc-11.3.0/gcc/fortran/interface.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/interface.c	Mon May 29 08:46:29 2023
*************** get_sym_storage_size (gfc_symbol *sym)
*** 2760,2766 ****
    if (sym->ts.type == BT_CHARACTER)
      {
        if (sym->ts.u.cl && sym->ts.u.cl->length
!           && sym->ts.u.cl->length->expr_type == EXPR_CONSTANT)
  	strlen = mpz_get_ui (sym->ts.u.cl->length->value.integer);
        else
  	return 0;
--- 2760,2767 ----
    if (sym->ts.type == BT_CHARACTER)
      {
        if (sym->ts.u.cl && sym->ts.u.cl->length
! 	  && sym->ts.u.cl->length->expr_type == EXPR_CONSTANT
! 	  && sym->ts.u.cl->length->ts.type == BT_INTEGER)
  	strlen = mpz_get_ui (sym->ts.u.cl->length->value.integer);
        else
  	return 0;
*************** get_sym_storage_size (gfc_symbol *sym)
*** 2777,2783 ****
    for (i = 0; i < sym->as->rank; i++)
      {
        if (sym->as->upper[i]->expr_type != EXPR_CONSTANT
! 	  || sym->as->lower[i]->expr_type != EXPR_CONSTANT)
  	return 0;
  
        elements *= mpz_get_si (sym->as->upper[i]->value.integer)
--- 2778,2786 ----
    for (i = 0; i < sym->as->rank; i++)
      {
        if (sym->as->upper[i]->expr_type != EXPR_CONSTANT
! 	  || sym->as->lower[i]->expr_type != EXPR_CONSTANT
! 	  || sym->as->upper[i]->ts.type != BT_INTEGER
! 	  || sym->as->lower[i]->ts.type != BT_INTEGER)
  	return 0;
  
        elements *= mpz_get_si (sym->as->upper[i]->value.integer)
*************** get_expr_storage_size (gfc_expr *e)
*** 2808,2814 ****
    if (e->ts.type == BT_CHARACTER)
      {
        if (e->ts.u.cl && e->ts.u.cl->length
!           && e->ts.u.cl->length->expr_type == EXPR_CONSTANT)
  	strlen = mpz_get_si (e->ts.u.cl->length->value.integer);
        else if (e->expr_type == EXPR_CONSTANT
  	       && (e->ts.u.cl == NULL || e->ts.u.cl->length == NULL))
--- 2811,2818 ----
    if (e->ts.type == BT_CHARACTER)
      {
        if (e->ts.u.cl && e->ts.u.cl->length
! 	  && e->ts.u.cl->length->expr_type == EXPR_CONSTANT
! 	  && e->ts.u.cl->length->ts.type == BT_INTEGER)
  	strlen = mpz_get_si (e->ts.u.cl->length->value.integer);
        else if (e->expr_type == EXPR_CONSTANT
  	       && (e->ts.u.cl == NULL || e->ts.u.cl->length == NULL))
*************** get_expr_storage_size (gfc_expr *e)
*** 2859,2865 ****
  
  	    if (ref->u.ar.stride[i])
  	      {
! 		if (ref->u.ar.stride[i]->expr_type == EXPR_CONSTANT)
  		  stride = mpz_get_si (ref->u.ar.stride[i]->value.integer);
  		else
  		  return 0;
--- 2863,2870 ----
  
  	    if (ref->u.ar.stride[i])
  	      {
! 		if (ref->u.ar.stride[i]->expr_type == EXPR_CONSTANT
! 		    && ref->u.ar.stride[i]->ts.type == BT_INTEGER)
  		  stride = mpz_get_si (ref->u.ar.stride[i]->value.integer);
  		else
  		  return 0;
*************** get_expr_storage_size (gfc_expr *e)
*** 2867,2892 ****
  
  	    if (ref->u.ar.start[i])
  	      {
! 		if (ref->u.ar.start[i]->expr_type == EXPR_CONSTANT)
  		  start = mpz_get_si (ref->u.ar.start[i]->value.integer);
  		else
  		  return 0;
  	      }
  	    else if (ref->u.ar.as->lower[i]
! 		     && ref->u.ar.as->lower[i]->expr_type == EXPR_CONSTANT)
  	      start = mpz_get_si (ref->u.ar.as->lower[i]->value.integer);
  	    else
  	      return 0;
  
  	    if (ref->u.ar.end[i])
  	      {
! 		if (ref->u.ar.end[i]->expr_type == EXPR_CONSTANT)
  		  end = mpz_get_si (ref->u.ar.end[i]->value.integer);
  		else
  		  return 0;
  	      }
  	    else if (ref->u.ar.as->upper[i]
! 		     && ref->u.ar.as->upper[i]->expr_type == EXPR_CONSTANT)
  	      end = mpz_get_si (ref->u.ar.as->upper[i]->value.integer);
  	    else
  	      return 0;
--- 2872,2901 ----
  
  	    if (ref->u.ar.start[i])
  	      {
! 		if (ref->u.ar.start[i]->expr_type == EXPR_CONSTANT
! 		    && ref->u.ar.start[i]->ts.type == BT_INTEGER)
  		  start = mpz_get_si (ref->u.ar.start[i]->value.integer);
  		else
  		  return 0;
  	      }
  	    else if (ref->u.ar.as->lower[i]
! 		     && ref->u.ar.as->lower[i]->expr_type == EXPR_CONSTANT
! 		     && ref->u.ar.as->lower[i]->ts.type == BT_INTEGER)
  	      start = mpz_get_si (ref->u.ar.as->lower[i]->value.integer);
  	    else
  	      return 0;
  
  	    if (ref->u.ar.end[i])
  	      {
! 		if (ref->u.ar.end[i]->expr_type == EXPR_CONSTANT
! 		    && ref->u.ar.end[i]->ts.type == BT_INTEGER)
  		  end = mpz_get_si (ref->u.ar.end[i]->value.integer);
  		else
  		  return 0;
  	      }
  	    else if (ref->u.ar.as->upper[i]
! 		     && ref->u.ar.as->upper[i]->expr_type == EXPR_CONSTANT
! 		     && ref->u.ar.as->upper[i]->ts.type == BT_INTEGER)
  	      end = mpz_get_si (ref->u.ar.as->upper[i]->value.integer);
  	    else
  	      return 0;
*************** get_expr_storage_size (gfc_expr *e)
*** 2927,2933 ****
  		  || ref->u.ar.as->upper[i] == NULL
  		  || ref->u.ar.as->lower[i] == NULL
  		  || ref->u.ar.as->upper[i]->expr_type != EXPR_CONSTANT
! 		  || ref->u.ar.as->lower[i]->expr_type != EXPR_CONSTANT)
  		return 0;
  
  	      elements
--- 2936,2944 ----
  		  || ref->u.ar.as->upper[i] == NULL
  		  || ref->u.ar.as->lower[i] == NULL
  		  || ref->u.ar.as->upper[i]->expr_type != EXPR_CONSTANT
! 		  || ref->u.ar.as->lower[i]->expr_type != EXPR_CONSTANT
! 		  || ref->u.ar.as->upper[i]->ts.type != BT_INTEGER
! 		  || ref->u.ar.as->lower[i]->ts.type != BT_INTEGER)
  		return 0;
  
  	      elements
*************** get_expr_storage_size (gfc_expr *e)
*** 2949,2955 ****
  	    {
  	      if (!as->upper[i] || !as->lower[i]
  		  || as->upper[i]->expr_type != EXPR_CONSTANT
! 		  || as->lower[i]->expr_type != EXPR_CONSTANT)
  		return 0;
  
  	      elements = elements
--- 2960,2968 ----
  	    {
  	      if (!as->upper[i] || !as->lower[i]
  		  || as->upper[i]->expr_type != EXPR_CONSTANT
! 		  || as->lower[i]->expr_type != EXPR_CONSTANT
! 		  || as->upper[i]->ts.type != BT_INTEGER
! 		  || as->lower[i]->ts.type != BT_INTEGER)
  		return 0;
  
  	      elements = elements
*************** gfc_procedure_use (gfc_symbol *sym, gfc_
*** 3972,3977 ****
--- 3985,3998 ----
  	      a->expr->error = 1;
  	      return false;
  	    }
+ 
+ 	  if (a->expr && a->expr->expr_type == EXPR_NULL)
+ 	    {
+ 	      gfc_error ("Passing intrinsic NULL as actual argument at %L "
+ 			 "requires an explicit interface", &a->expr->where);
+ 	      a->expr->error = 1;
+ 	      return false;
+ 	    }
  
  	  /* TS 29113, C407b.  */
  	  if (a->expr && a->expr->expr_type == EXPR_VARIABLE
diff -Nrcpad gcc-11.3.0/gcc/fortran/iresolve.c gcc-11.4.0/gcc/fortran/iresolve.c
*** gcc-11.3.0/gcc/fortran/iresolve.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/iresolve.c	Mon May 29 08:46:29 2023
*************** check_charlen_present (gfc_expr *source)
*** 94,102 ****
    else if (source->expr_type == EXPR_ARRAY)
      {
        gfc_constructor *c = gfc_constructor_first (source->value.constructor);
!       source->ts.u.cl->length
! 		= gfc_get_int_expr (gfc_charlen_int_kind, NULL,
! 				    c->expr->value.character.length);
      }
  }
  
--- 94,105 ----
    else if (source->expr_type == EXPR_ARRAY)
      {
        gfc_constructor *c = gfc_constructor_first (source->value.constructor);
!       if (c)
! 	source->ts.u.cl->length
! 	  = gfc_get_int_expr (gfc_charlen_int_kind, NULL,
! 			      c->expr->value.character.length);
!       if (source->ts.u.cl->length == NULL)
! 	gfc_internal_error ("check_charlen_present(): length not set");
      }
  }
  
diff -Nrcpad gcc-11.3.0/gcc/fortran/match.c gcc-11.4.0/gcc/fortran/match.c
*** gcc-11.3.0/gcc/fortran/match.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/match.c	Mon May 29 08:46:29 2023
*************** gfc_match_common (void)
*** 5299,5304 ****
--- 5299,5314 ----
  		goto cleanup;
  	    }
  
+ 	  /* F2018:R874:  common-block-object is variable-name [ (array-spec) ]
+ 	     F2018:C8121: A variable-name shall not be a name made accessible
+ 	     by use association.  */
+ 	  if (sym->attr.use_assoc)
+ 	    {
+ 	      gfc_error ("Symbol %qs at %C is USE associated from module %qs "
+ 			 "and cannot occur in COMMON", sym->name, sym->module);
+ 	      goto cleanup;
+ 	    }
+ 
  	  /* Deal with an optional array specification after the
  	     symbol name.  */
  	  m = gfc_match_array_spec (&as, true, true);
diff -Nrcpad gcc-11.3.0/gcc/fortran/parse.c gcc-11.4.0/gcc/fortran/parse.c
*** gcc-11.3.0/gcc/fortran/parse.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/parse.c	Mon May 29 08:46:29 2023
*************** match_deferred_characteristics (gfc_type
*** 3747,3767 ****
     For return types specified in a FUNCTION prefix, the IMPLICIT rules of the
     scope are not yet parsed so this has to be delayed up to parse_spec.  */
  
! static void
  check_function_result_typed (void)
  {
    gfc_typespec ts;
  
    gcc_assert (gfc_current_state () == COMP_FUNCTION);
  
!   if (!gfc_current_ns->proc_name->result) return;
  
    ts = gfc_current_ns->proc_name->result->ts;
  
    /* Check type-parameters, at the moment only CHARACTER lengths possible.  */
    /* TODO:  Extend when KIND type parameters are implemented.  */
    if (ts.type == BT_CHARACTER && ts.u.cl && ts.u.cl->length)
!     gfc_expr_check_typed (ts.u.cl->length, gfc_current_ns, true);
  }
  
  
--- 3747,3776 ----
     For return types specified in a FUNCTION prefix, the IMPLICIT rules of the
     scope are not yet parsed so this has to be delayed up to parse_spec.  */
  
! static bool
  check_function_result_typed (void)
  {
    gfc_typespec ts;
  
    gcc_assert (gfc_current_state () == COMP_FUNCTION);
  
!   if (!gfc_current_ns->proc_name->result)
!     return true;
  
    ts = gfc_current_ns->proc_name->result->ts;
  
    /* Check type-parameters, at the moment only CHARACTER lengths possible.  */
    /* TODO:  Extend when KIND type parameters are implemented.  */
    if (ts.type == BT_CHARACTER && ts.u.cl && ts.u.cl->length)
!     {
!       /* Reject invalid type of specification expression for length.  */
!       if (ts.u.cl->length->ts.type != BT_INTEGER)
! 	  return false;
! 
!       gfc_expr_check_typed (ts.u.cl->length, gfc_current_ns, true);
!     }
! 
!   return true;
  }
  
  
*************** loop:
*** 3869,3878 ****
  	}
  
        if (verify_now)
! 	{
! 	  check_function_result_typed ();
! 	  function_result_typed = true;
! 	}
      }
  
    switch (st)
--- 3878,3884 ----
  	}
  
        if (verify_now)
! 	function_result_typed = check_function_result_typed ();
      }
  
    switch (st)
*************** loop:
*** 3883,3892 ****
      case ST_IMPLICIT_NONE:
      case ST_IMPLICIT:
        if (!function_result_typed)
! 	{
! 	  check_function_result_typed ();
! 	  function_result_typed = true;
! 	}
        goto declSt;
  
      case ST_FORMAT:
--- 3889,3895 ----
      case ST_IMPLICIT_NONE:
      case ST_IMPLICIT:
        if (!function_result_typed)
! 	function_result_typed = check_function_result_typed ();
        goto declSt;
  
      case ST_FORMAT:
diff -Nrcpad gcc-11.3.0/gcc/fortran/resolve.c gcc-11.4.0/gcc/fortran/resolve.c
*** gcc-11.3.0/gcc/fortran/resolve.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/resolve.c	Mon May 29 08:46:29 2023
*************** resolve_common_vars (gfc_common_head *co
*** 953,961 ****
      {
        gsym = gfc_find_gsymbol (gfc_gsym_root, csym->name);
        if (gsym && (gsym->type == GSYM_MODULE || gsym->type == GSYM_PROGRAM))
! 	gfc_error_now ("Global entity %qs at %L cannot appear in a "
! 			"COMMON block at %L", gsym->name,
! 			&gsym->where, &csym->common_block->where);
  
        /* gfc_add_in_common may have been called before, but the reported errors
  	 have been ignored to continue parsing.
--- 953,967 ----
      {
        gsym = gfc_find_gsymbol (gfc_gsym_root, csym->name);
        if (gsym && (gsym->type == GSYM_MODULE || gsym->type == GSYM_PROGRAM))
! 	{
! 	  if (csym->common_block)
! 	    gfc_error_now ("Global entity %qs at %L cannot appear in a "
! 			   "COMMON block at %L", gsym->name,
! 			   &gsym->where, &csym->common_block->where);
! 	  else
! 	    gfc_error_now ("Global entity %qs at %L cannot appear in a "
! 			   "COMMON block", gsym->name, &gsym->where);
! 	}
  
        /* gfc_add_in_common may have been called before, but the reported errors
  	 have been ignored to continue parsing.
*************** compare_bound_int (gfc_expr *a, int b)
*** 4543,4554 ****
  {
    int i;
  
!   if (a == NULL || a->expr_type != EXPR_CONSTANT)
      return CMP_UNKNOWN;
  
-   if (a->ts.type != BT_INTEGER)
-     gfc_internal_error ("compare_bound_int(): Bad expression");
- 
    i = mpz_cmp_si (a->value.integer, b);
  
    if (i < 0)
--- 4549,4559 ----
  {
    int i;
  
!   if (a == NULL
!       || a->expr_type != EXPR_CONSTANT
!       || a->ts.type != BT_INTEGER)
      return CMP_UNKNOWN;
  
    i = mpz_cmp_si (a->value.integer, b);
  
    if (i < 0)
*************** compare_bound_mpz_t (gfc_expr *a, mpz_t
*** 4566,4577 ****
  {
    int i;
  
!   if (a == NULL || a->expr_type != EXPR_CONSTANT)
      return CMP_UNKNOWN;
  
-   if (a->ts.type != BT_INTEGER)
-     gfc_internal_error ("compare_bound_int(): Bad expression");
- 
    i = mpz_cmp (a->value.integer, b);
  
    if (i < 0)
--- 4571,4581 ----
  {
    int i;
  
!   if (a == NULL
!       || a->expr_type != EXPR_CONSTANT
!       || a->ts.type != BT_INTEGER)
      return CMP_UNKNOWN;
  
    i = mpz_cmp (a->value.integer, b);
  
    if (i < 0)
*************** check_dimension (int i, gfc_array_ref *a
*** 4701,4723 ****
  #define AR_END (ar->end[i] ? ar->end[i] : as->upper[i])
  
  	compare_result comp_start_end = compare_bound (AR_START, AR_END);
  
  	/* Check for zero stride, which is not allowed.  */
! 	if (compare_bound_int (ar->stride[i], 0) == CMP_EQ)
  	  {
  	    gfc_error ("Illegal stride of zero at %L", &ar->c_where[i]);
  	    return false;
  	  }
  
! 	/* if start == len || (stride > 0 && start < len)
! 			   || (stride < 0 && start > len),
  	   then the array section contains at least one element.  In this
  	   case, there is an out-of-bounds access if
  	   (start < lower || start > upper).  */
! 	if (compare_bound (AR_START, AR_END) == CMP_EQ
! 	    || ((compare_bound_int (ar->stride[i], 0) == CMP_GT
! 		 || ar->stride[i] == NULL) && comp_start_end == CMP_LT)
! 	    || (compare_bound_int (ar->stride[i], 0) == CMP_LT
  	        && comp_start_end == CMP_GT))
  	  {
  	    if (compare_bound (AR_START, as->lower[i]) == CMP_LT)
--- 4705,4728 ----
  #define AR_END (ar->end[i] ? ar->end[i] : as->upper[i])
  
  	compare_result comp_start_end = compare_bound (AR_START, AR_END);
+ 	compare_result comp_stride_zero = compare_bound_int (ar->stride[i], 0);
  
  	/* Check for zero stride, which is not allowed.  */
! 	if (comp_stride_zero == CMP_EQ)
  	  {
  	    gfc_error ("Illegal stride of zero at %L", &ar->c_where[i]);
  	    return false;
  	  }
  
! 	/* if start == end || (stride > 0 && start < end)
! 			   || (stride < 0 && start > end),
  	   then the array section contains at least one element.  In this
  	   case, there is an out-of-bounds access if
  	   (start < lower || start > upper).  */
! 	if (comp_start_end == CMP_EQ
! 	    || ((comp_stride_zero == CMP_GT || ar->stride[i] == NULL)
! 		&& comp_start_end == CMP_LT)
! 	    || (comp_stride_zero == CMP_LT
  	        && comp_start_end == CMP_GT))
  	  {
  	    if (compare_bound (AR_START, as->lower[i]) == CMP_LT)
*************** derived_inaccessible (gfc_symbol *sym)
*** 7497,7503 ****
    for (c = sym->components; c; c = c->next)
      {
  	/* Prevent an infinite loop through this function.  */
! 	if (c->ts.type == BT_DERIVED && c->attr.pointer
  	    && sym == c->ts.u.derived)
  	  continue;
  
--- 7502,7509 ----
    for (c = sym->components; c; c = c->next)
      {
  	/* Prevent an infinite loop through this function.  */
! 	if (c->ts.type == BT_DERIVED
! 	    && (c->attr.pointer || c->attr.allocatable)
  	    && sym == c->ts.u.derived)
  	  continue;
  
*************** check_formal:
*** 13510,13515 ****
--- 13516,13531 ----
  	    }
  	}
      }
+ 
+   /* F2018:15.4.2.2 requires an explicit interface for procedures with the
+      BIND(C) attribute.  */
+   if (sym->attr.is_bind_c && sym->attr.if_source == IFSRC_UNKNOWN)
+     {
+       gfc_error ("Interface of %qs at %L must be explicit",
+ 		 sym->name, &sym->declared_at);
+       return false;
+     }
+ 
    return true;
  }
  
*************** resolve_component (gfc_component *c, gfc
*** 14741,14746 ****
--- 14757,14775 ----
                      c->ts.u.cl->length ? &c->ts.u.cl->length->where : &c->loc);
           return false;
         }
+ 
+      if (c->ts.u.cl->length && c->ts.u.cl->length->ts.type != BT_INTEGER)
+        {
+ 	 if (!c->ts.u.cl->length->error)
+ 	   {
+ 	     gfc_error ("Character length expression of component %qs at %L "
+ 			"must be of INTEGER type, found %s",
+ 			c->name, &c->ts.u.cl->length->where,
+ 			gfc_basic_typename (c->ts.u.cl->length->ts.type));
+ 	     c->ts.u.cl->length->error = 1;
+ 	   }
+ 	 return false;
+        }
      }
  
    if (c->ts.type == BT_CHARACTER && c->ts.deferred
*************** resolve_symbol (gfc_symbol *sym)
*** 15759,15766 ****
  
        /* First, make sure the variable is declared at the
  	 module-level scope (J3/04-007, Section 15.3).	*/
!       if (sym->ns->proc_name->attr.flavor != FL_MODULE &&
!           sym->attr.in_common == 0)
  	{
  	  gfc_error ("Variable %qs at %L cannot be BIND(C) because it "
  		     "is neither a COMMON block nor declared at the "
--- 15788,15795 ----
  
        /* First, make sure the variable is declared at the
  	 module-level scope (J3/04-007, Section 15.3).	*/
!       if (!(sym->ns->proc_name && sym->ns->proc_name->attr.flavor == FL_MODULE)
! 	  && !sym->attr.in_common)
  	{
  	  gfc_error ("Variable %qs at %L cannot be BIND(C) because it "
  		     "is neither a COMMON block nor declared at the "
*************** resolve_fntype (gfc_namespace *ns)
*** 17254,17260 ****
  	  }
        }
  
!   if (sym->ts.type == BT_CHARACTER)
      gfc_traverse_expr (sym->ts.u.cl->length, sym, flag_fn_result_spec, 0);
  }
  
--- 17283,17291 ----
  	  }
        }
  
!   if (sym->ts.type == BT_CHARACTER
!       && sym->ts.u.cl->length
!       && sym->ts.u.cl->length->ts.type == BT_INTEGER)
      gfc_traverse_expr (sym->ts.u.cl->length, sym, flag_fn_result_spec, 0);
  }
  
diff -Nrcpad gcc-11.3.0/gcc/fortran/simplify.c gcc-11.4.0/gcc/fortran/simplify.c
*** gcc-11.3.0/gcc/fortran/simplify.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/simplify.c	Mon May 29 08:46:29 2023
*************** simplify_transformation (gfc_expr *array
*** 708,713 ****
--- 708,714 ----
    size_zero = gfc_is_size_zero_array (array);
  
    if (!(is_constant_array_expr (array) || size_zero)
+       || array->shape == NULL
        || !gfc_is_constant_expr (dim))
      return NULL;
  
*************** gfc_simplify_extends_type_of (gfc_expr *
*** 3092,3097 ****
--- 3093,3102 ----
    if (UNLIMITED_POLY (a) || UNLIMITED_POLY (mold))
      return NULL;
  
+   if ((a->ts.type == BT_CLASS && !gfc_expr_attr (a).class_ok)
+       || (mold->ts.type == BT_CLASS && !gfc_expr_attr (mold).class_ok))
+     return NULL;
+ 
    /* Return .false. if the dynamic type can never be an extension.  */
    if ((a->ts.type == BT_CLASS && mold->ts.type == BT_CLASS
         && !gfc_type_is_extension_of
*************** gfc_expr *
*** 3502,3518 ****
  gfc_simplify_index (gfc_expr *x, gfc_expr *y, gfc_expr *b, gfc_expr *kind)
  {
    gfc_expr *result;
!   int back, len, lensub;
!   int i, j, k, count, index = 0, start;
  
    if (x->expr_type != EXPR_CONSTANT || y->expr_type != EXPR_CONSTANT
        || ( b != NULL && b->expr_type !=  EXPR_CONSTANT))
      return NULL;
  
!   if (b != NULL && b->value.logical != 0)
!     back = 1;
!   else
!     back = 0;
  
    k = get_kind (BT_INTEGER, kind, "INDEX", gfc_default_integer_kind);
    if (k == -1)
--- 3507,3521 ----
  gfc_simplify_index (gfc_expr *x, gfc_expr *y, gfc_expr *b, gfc_expr *kind)
  {
    gfc_expr *result;
!   bool back;
!   HOST_WIDE_INT len, lensub, start, last, i, index = 0;
!   int k, delta;
  
    if (x->expr_type != EXPR_CONSTANT || y->expr_type != EXPR_CONSTANT
        || ( b != NULL && b->expr_type !=  EXPR_CONSTANT))
      return NULL;
  
!   back = (b != NULL && b->value.logical != 0);
  
    k = get_kind (BT_INTEGER, kind, "INDEX", gfc_default_integer_kind);
    if (k == -1)
*************** gfc_simplify_index (gfc_expr *x, gfc_exp
*** 3529,3639 ****
        return result;
      }
  
!   if (back == 0)
      {
!       if (lensub == 0)
! 	{
! 	  mpz_set_si (result->value.integer, 1);
! 	  return result;
! 	}
!       else if (lensub == 1)
! 	{
! 	  for (i = 0; i < len; i++)
! 	    {
! 	      for (j = 0; j < lensub; j++)
! 		{
! 		  if (y->value.character.string[j]
! 		      == x->value.character.string[i])
! 		    {
! 		      index = i + 1;
! 		      goto done;
! 		    }
! 		}
! 	    }
! 	}
        else
! 	{
! 	  for (i = 0; i < len; i++)
! 	    {
! 	      for (j = 0; j < lensub; j++)
! 		{
! 		  if (y->value.character.string[j]
! 		      == x->value.character.string[i])
! 		    {
! 		      start = i;
! 		      count = 0;
! 
! 		      for (k = 0; k < lensub; k++)
! 			{
! 			  if (y->value.character.string[k]
! 			      == x->value.character.string[k + start])
! 			    count++;
! 			}
! 
! 		      if (count == lensub)
! 			{
! 			  index = start + 1;
! 			  goto done;
! 			}
! 		    }
! 		}
! 	    }
! 	}
  
      }
    else
      {
!       if (lensub == 0)
! 	{
! 	  mpz_set_si (result->value.integer, len + 1);
! 	  return result;
! 	}
!       else if (lensub == 1)
  	{
! 	  for (i = 0; i < len; i++)
! 	    {
! 	      for (j = 0; j < lensub; j++)
! 		{
! 		  if (y->value.character.string[j]
! 		      == x->value.character.string[len - i])
! 		    {
! 		      index = len - i + 1;
! 		      goto done;
! 		    }
! 		}
! 	    }
  	}
!       else
  	{
! 	  for (i = 0; i < len; i++)
! 	    {
! 	      for (j = 0; j < lensub; j++)
! 		{
! 		  if (y->value.character.string[j]
! 		      == x->value.character.string[len - i])
! 		    {
! 		      start = len - i;
! 		      if (start <= len - lensub)
! 			{
! 			  count = 0;
! 			  for (k = 0; k < lensub; k++)
! 			    if (y->value.character.string[k]
! 			        == x->value.character.string[k + start])
! 			      count++;
! 
! 			  if (count == lensub)
! 			    {
! 			      index = start + 1;
! 			      goto done;
! 			    }
! 			}
! 		      else
! 			{
! 			  continue;
! 			}
! 		    }
! 		}
! 	    }
  	}
      }
  
--- 3532,3571 ----
        return result;
      }
  
!   if (lensub == 0)
      {
!       if (back)
! 	index = len + 1;
        else
! 	index = 1;
!       goto done;
!     }
  
+   if (!back)
+     {
+       last = len + 1 - lensub;
+       start = 0;
+       delta = 1;
      }
    else
      {
!       last = -1;
!       start = len - lensub;
!       delta = -1;
!     }
! 
!   for (; start != last; start += delta)
!     {
!       for (i = 0; i < lensub; i++)
  	{
! 	  if (x->value.character.string[start + i]
! 	      != y->value.character.string[i])
! 	    break;
  	}
!       if (i == lensub)
  	{
! 	  index = start + 1;
! 	  goto done;
  	}
      }
  
*************** gfc_simplify_findloc (gfc_expr *array, g
*** 5915,5920 ****
--- 5847,5853 ----
    bool back_val = false;
  
    if (!is_constant_array_expr (array)
+       || array->shape == NULL
        || !gfc_is_constant_expr (dim))
      return NULL;
  
*************** gfc_simplify_nearest (gfc_expr *x, gfc_e
*** 6114,6120 ****
    kind = gfc_validate_kind (BT_REAL, x->ts.kind, 0);
    mpfr_set_emin ((mpfr_exp_t) gfc_real_kinds[kind].min_exponent -
  		mpfr_get_prec(result->value.real) + 1);
!   mpfr_set_emax ((mpfr_exp_t) gfc_real_kinds[kind].max_exponent - 1);
    mpfr_check_range (result->value.real, 0, MPFR_RNDU);
  
    if (mpfr_sgn (s->value.real) > 0)
--- 6047,6053 ----
    kind = gfc_validate_kind (BT_REAL, x->ts.kind, 0);
    mpfr_set_emin ((mpfr_exp_t) gfc_real_kinds[kind].min_exponent -
  		mpfr_get_prec(result->value.real) + 1);
!   mpfr_set_emax ((mpfr_exp_t) gfc_real_kinds[kind].max_exponent);
    mpfr_check_range (result->value.real, 0, MPFR_RNDU);
  
    if (mpfr_sgn (s->value.real) > 0)
*************** gfc_simplify_pack (gfc_expr *array, gfc_
*** 6451,6457 ****
        /* Copy only those elements of ARRAY to RESULT whose
  	 MASK equals .TRUE..  */
        mask_ctor = gfc_constructor_first (mask->value.constructor);
!       while (mask_ctor)
  	{
  	  if (mask_ctor->expr->value.logical)
  	    {
--- 6384,6390 ----
        /* Copy only those elements of ARRAY to RESULT whose
  	 MASK equals .TRUE..  */
        mask_ctor = gfc_constructor_first (mask->value.constructor);
!       while (mask_ctor && array_ctor)
  	{
  	  if (mask_ctor->expr->value.logical)
  	    {
*************** gfc_simplify_set_exponent (gfc_expr *x,
*** 7364,7370 ****
  {
    gfc_expr *result;
    mpfr_t exp, absv, log2, pow2, frac;
!   unsigned long exp2;
  
    if (x->expr_type != EXPR_CONSTANT || i->expr_type != EXPR_CONSTANT)
      return NULL;
--- 7297,7303 ----
  {
    gfc_expr *result;
    mpfr_t exp, absv, log2, pow2, frac;
!   long exp2;
  
    if (x->expr_type != EXPR_CONSTANT || i->expr_type != EXPR_CONSTANT)
      return NULL;
*************** gfc_simplify_set_exponent (gfc_expr *x,
*** 7396,7414 ****
    mpfr_abs (absv, x->value.real, GFC_RND_MODE);
    mpfr_log2 (log2, absv, GFC_RND_MODE);
  
!   mpfr_trunc (log2, log2);
    mpfr_add_ui (exp, log2, 1, GFC_RND_MODE);
  
    /* Old exponent value, and fraction.  */
    mpfr_ui_pow (pow2, 2, exp, GFC_RND_MODE);
  
!   mpfr_div (frac, absv, pow2, GFC_RND_MODE);
  
    /* New exponent.  */
!   exp2 = (unsigned long) mpz_get_d (i->value.integer);
!   mpfr_mul_2exp (result->value.real, frac, exp2, GFC_RND_MODE);
  
!   mpfr_clears (absv, log2, pow2, frac, NULL);
  
    return range_check (result, "SET_EXPONENT");
  }
--- 7329,7347 ----
    mpfr_abs (absv, x->value.real, GFC_RND_MODE);
    mpfr_log2 (log2, absv, GFC_RND_MODE);
  
!   mpfr_floor (log2, log2);
    mpfr_add_ui (exp, log2, 1, GFC_RND_MODE);
  
    /* Old exponent value, and fraction.  */
    mpfr_ui_pow (pow2, 2, exp, GFC_RND_MODE);
  
!   mpfr_div (frac, x->value.real, pow2, GFC_RND_MODE);
  
    /* New exponent.  */
!   exp2 = mpz_get_si (i->value.integer);
!   mpfr_mul_2si (result->value.real, frac, exp2, GFC_RND_MODE);
  
!   mpfr_clears (absv, log2, exp, pow2, frac, NULL);
  
    return range_check (result, "SET_EXPONENT");
  }
*************** simplify_size (gfc_expr *array, gfc_expr
*** 7556,7563 ****
      }
  
    for (ref = array->ref; ref; ref = ref->next)
!     if (ref->type == REF_ARRAY && ref->u.ar.as)
!       gfc_resolve_array_spec (ref->u.ar.as, 0);
  
    if (dim == NULL)
      {
--- 7489,7497 ----
      }
  
    for (ref = array->ref; ref; ref = ref->next)
!     if (ref->type == REF_ARRAY && ref->u.ar.as
! 	&& !gfc_resolve_array_spec (ref->u.ar.as, 0))
!       return NULL;
  
    if (dim == NULL)
      {
*************** gfc_simplify_unpack (gfc_expr *vector, g
*** 8476,8484 ****
      {
        if (mask_ctor->expr->value.logical)
  	{
! 	  gcc_assert (vector_ctor);
! 	  e = gfc_copy_expr (vector_ctor->expr);
! 	  vector_ctor = gfc_constructor_next (vector_ctor);
  	}
        else if (field->expr_type == EXPR_ARRAY)
  	e = gfc_copy_expr (field_ctor->expr);
--- 8410,8425 ----
      {
        if (mask_ctor->expr->value.logical)
  	{
! 	  if (vector_ctor)
! 	    {
! 	      e = gfc_copy_expr (vector_ctor->expr);
! 	      vector_ctor = gfc_constructor_next (vector_ctor);
! 	    }
! 	  else
! 	    {
! 	      gfc_free_expr (result);
! 	      return NULL;
! 	    }
  	}
        else if (field->expr_type == EXPR_ARRAY)
  	e = gfc_copy_expr (field_ctor->expr);
diff -Nrcpad gcc-11.3.0/gcc/fortran/symbol.c gcc-11.4.0/gcc/fortran/symbol.c
*** gcc-11.3.0/gcc/fortran/symbol.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/symbol.c	Mon May 29 08:46:29 2023
*************** gfc_type_compatible (gfc_typespec *ts1,
*** 5146,5151 ****
--- 5146,5155 ----
    bool is_union1 = (ts1->type == BT_UNION);
    bool is_union2 = (ts2->type == BT_UNION);
  
+   /* A boz-literal-constant has no type.  */
+   if (ts1->type == BT_BOZ || ts2->type == BT_BOZ)
+     return false;
+ 
    if (is_class1
        && ts1->u.derived->components
        && ((ts1->u.derived->attr.is_class
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-array.c gcc-11.4.0/gcc/fortran/trans-array.c
*** gcc-11.3.0/gcc/fortran/trans-array.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-array.c	Mon May 29 08:46:29 2023
*************** gfc_alloc_allocatable_for_assignment (gf
*** 10795,10800 ****
--- 10795,10846 ----
  }
  
  
+ /* Initialize class descriptor's TKR infomation.  */
+ 
+ void
+ gfc_trans_class_array (gfc_symbol * sym, gfc_wrapped_block * block)
+ {
+   tree type, etype;
+   tree tmp;
+   tree descriptor;
+   stmtblock_t init;
+   locus loc;
+   int rank;
+ 
+   /* Make sure the frontend gets these right.  */
+   gcc_assert (sym->ts.type == BT_CLASS && CLASS_DATA (sym)
+ 	      && (CLASS_DATA (sym)->attr.class_pointer
+ 		  || CLASS_DATA (sym)->attr.allocatable));
+ 
+   gcc_assert (VAR_P (sym->backend_decl)
+ 	      || TREE_CODE (sym->backend_decl) == PARM_DECL);
+ 
+   if (sym->attr.dummy)
+     return;
+ 
+   descriptor = gfc_class_data_get (sym->backend_decl);
+   type = TREE_TYPE (descriptor);
+ 
+   if (type == NULL || !GFC_DESCRIPTOR_TYPE_P (type))
+     return;
+ 
+   gfc_save_backend_locus (&loc);
+   gfc_set_backend_locus (&sym->declared_at);
+   gfc_init_block (&init);
+ 
+   rank = CLASS_DATA (sym)->as ? (CLASS_DATA (sym)->as->rank) : (0);
+   gcc_assert (rank>=0);
+   tmp = gfc_conv_descriptor_dtype (descriptor);
+   etype = gfc_get_element_type (type);
+   tmp = fold_build2_loc (input_location, MODIFY_EXPR, TREE_TYPE (tmp), tmp,
+ 			 gfc_get_dtype_rank_type (rank, etype));
+   gfc_add_expr_to_block (&init, tmp);
+ 
+   gfc_add_init_cleanup (block, gfc_finish_block (&init), NULL_TREE);
+   gfc_restore_backend_locus (&loc);
+ }
+ 
+ 
  /* NULLIFY an allocatable/pointer array on function entry, free it on exit.
     Do likewise, recursively if necessary, with the allocatable components of
     derived types.  This function is also called for assumed-rank arrays, which
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-array.h gcc-11.4.0/gcc/fortran/trans-array.h
*** gcc-11.3.0/gcc/fortran/trans-array.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-array.h	Mon May 29 08:46:29 2023
*************** tree gfc_check_pdt_dummy (gfc_symbol *,
*** 67,72 ****
--- 67,74 ----
  
  tree gfc_alloc_allocatable_for_assignment (gfc_loopinfo*, gfc_expr*, gfc_expr*);
  
+ /* Add initialization for class descriptors  */
+ void gfc_trans_class_array (gfc_symbol *, gfc_wrapped_block *);
  /* Add initialization for deferred arrays.  */
  void gfc_trans_deferred_array (gfc_symbol *, gfc_wrapped_block *);
  /* Generate an initializer for a static pointer or allocatable array.  */
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-decl.c gcc-11.4.0/gcc/fortran/trans-decl.c
*** gcc-11.3.0/gcc/fortran/trans-decl.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-decl.c	Mon May 29 08:46:29 2023
*************** gfc_finish_var_decl (tree decl, gfc_symb
*** 738,743 ****
--- 738,744 ----
    /* Keep variables larger than max-stack-var-size off stack.  */
    if (!(sym->ns->proc_name && sym->ns->proc_name->attr.recursive)
        && !sym->attr.automatic
+       && !sym->attr.associate_var
        && sym->attr.save != SAVE_EXPLICIT
        && sym->attr.save != SAVE_IMPLICIT
        && INTEGER_CST_P (DECL_SIZE_UNIT (decl))
*************** gfc_trans_deferred_vars (gfc_symbol * pr
*** 4923,4929 ****
        else if ((!sym->attr.dummy || sym->ts.deferred)
  		&& (sym->ts.type == BT_CLASS
  		&& CLASS_DATA (sym)->attr.class_pointer))
! 	continue;
        else if ((!sym->attr.dummy || sym->ts.deferred)
  		&& (sym->attr.allocatable
  		    || (sym->attr.pointer && sym->attr.result)
--- 4924,4930 ----
        else if ((!sym->attr.dummy || sym->ts.deferred)
  		&& (sym->ts.type == BT_CLASS
  		&& CLASS_DATA (sym)->attr.class_pointer))
! 	gfc_trans_class_array (sym, block);
        else if ((!sym->attr.dummy || sym->ts.deferred)
  		&& (sym->attr.allocatable
  		    || (sym->attr.pointer && sym->attr.result)
*************** gfc_trans_deferred_vars (gfc_symbol * pr
*** 5007,5012 ****
--- 5008,5017 ----
  		  tmp = NULL_TREE;
  		}
  
+ 	      /* Initialize descriptor's TKR information.  */
+ 	      if (sym->ts.type == BT_CLASS)
+ 		gfc_trans_class_array (sym, block);
+ 
  	      /* Deallocate when leaving the scope. Nullifying is not
  		 needed.  */
  	      if (!sym->attr.result && !sym->attr.dummy && !sym->attr.pointer
*************** gfc_trans_use_stmts (gfc_namespace * ns)
*** 5426,5432 ****
  	      /* Sometimes, generic interfaces wind up being over-ruled by a
  		 local symbol (see PR41062).  */
  	      if (!st->n.sym->attr.use_assoc)
! 		continue;
  
  	      if (st->n.sym->backend_decl
  		  && DECL_P (st->n.sym->backend_decl)
--- 5431,5441 ----
  	      /* Sometimes, generic interfaces wind up being over-ruled by a
  		 local symbol (see PR41062).  */
  	      if (!st->n.sym->attr.use_assoc)
! 		{
! 		  *slot = error_mark_node;
! 		  entry->decls->clear_slot (slot);
! 		  continue;
! 		}
  
  	      if (st->n.sym->backend_decl
  		  && DECL_P (st->n.sym->backend_decl)
*************** generate_coarray_sym_init (gfc_symbol *s
*** 5624,5629 ****
--- 5633,5639 ----
  
    if (sym->attr.dummy || sym->attr.allocatable || !sym->attr.codimension
        || sym->attr.use_assoc || !sym->attr.referenced
+       || sym->attr.associate_var
        || sym->attr.select_type_temporary)
      return;
  
*************** gfc_generate_return (void)
*** 6564,6570 ****
  	     NULL_TREE, and a 'return' is generated without a variable.
  	     The following generates a 'return __result_XXX' where XXX is
  	     the function name.  */
! 	  if (sym == sym->result && sym->attr.function)
  	    {
  	      result = gfc_get_fake_result_decl (sym, 0);
  	      result = fold_build2_loc (input_location, MODIFY_EXPR,
--- 6574,6580 ----
  	     NULL_TREE, and a 'return' is generated without a variable.
  	     The following generates a 'return __result_XXX' where XXX is
  	     the function name.  */
! 	  if (sym == sym->result && sym->attr.function && !flag_f2c)
  	    {
  	      result = gfc_get_fake_result_decl (sym, 0);
  	      result = fold_build2_loc (input_location, MODIFY_EXPR,
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-expr.c gcc-11.4.0/gcc/fortran/trans-expr.c
*** gcc-11.3.0/gcc/fortran/trans-expr.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-expr.c	Mon May 29 08:46:29 2023
*************** gfc_conv_class_to_class (gfc_se *parmse,
*** 1136,1143 ****
      return;
  
    /* Test for FULL_ARRAY.  */
!   if (e->rank == 0 && gfc_expr_attr (e).codimension
!       && gfc_expr_attr (e).dimension)
      full_array = true;
    else
      gfc_is_class_array_ref (e, &full_array);
--- 1136,1145 ----
      return;
  
    /* Test for FULL_ARRAY.  */
!   if (e->rank == 0
!       && ((gfc_expr_attr (e).codimension && gfc_expr_attr (e).dimension)
! 	  || (class_ts.u.derived->components->as
! 	      && class_ts.u.derived->components->as->type == AS_ASSUMED_RANK)))
      full_array = true;
    else
      gfc_is_class_array_ref (e, &full_array);
*************** gfc_conv_class_to_class (gfc_se *parmse,
*** 1185,1192 ****
  	  && e->rank != class_ts.u.derived->components->as->rank)
  	{
  	  if (e->rank == 0)
! 	    gfc_add_modify (&parmse->post, gfc_class_data_get (parmse->expr),
! 			    gfc_conv_descriptor_data_get (ctree));
  	  else
  	    class_array_data_assign (&parmse->post, parmse->expr, ctree, true);
  	}
--- 1187,1198 ----
  	  && e->rank != class_ts.u.derived->components->as->rank)
  	{
  	  if (e->rank == 0)
! 	    {
! 	      tmp = gfc_class_data_get (parmse->expr);
! 	      gfc_add_modify (&parmse->post, tmp,
! 			      fold_convert (TREE_TYPE (tmp),
! 					 gfc_conv_descriptor_data_get (ctree)));
! 	    }
  	  else
  	    class_array_data_assign (&parmse->post, parmse->expr, ctree, true);
  	}
*************** gfc_copy_class_to_class (tree from, tree
*** 1483,1488 ****
--- 1489,1495 ----
  	    name = (const char *)(DECL_NAME (to)->identifier.id.str);
  
  	  from_len = gfc_conv_descriptor_size (from_data, 1);
+ 	  from_len = fold_convert (TREE_TYPE (orig_nelems), from_len);
  	  tmp = fold_build2_loc (input_location, NE_EXPR,
  				  logical_type_node, from_len, orig_nelems);
  	  msg = xasprintf ("Array bound mismatch for dimension %d "
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 5642,5648 ****
    gfc_charlen cl;
    gfc_expr *e;
    gfc_symbol *fsym;
-   stmtblock_t post;
    enum {MISSING = 0, ELEMENTAL, SCALAR, SCALAR_POINTER, ARRAY};
    gfc_component *comp = NULL;
    int arglen;
--- 5649,5654 ----
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 5686,5692 ****
--- 5692,5700 ----
    else
      info = NULL;
  
+   stmtblock_t post, clobbers;
    gfc_init_block (&post);
+   gfc_init_block (&clobbers);
    gfc_init_interface_mapping (&mapping);
    if (!comp)
      {
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6023,6029 ****
  				&& e->symtree->n.sym->attr.pointer))
  			&& fsym && fsym->attr.target)
  		/* Make sure the function only gets called once.  */
! 		gfc_conv_expr_reference (&parmse, e, false);
  	      else if (e->expr_type == EXPR_FUNCTION
  		       && e->symtree->n.sym->result
  		       && e->symtree->n.sym->result != e->symtree->n.sym
--- 6031,6037 ----
  				&& e->symtree->n.sym->attr.pointer))
  			&& fsym && fsym->attr.target)
  		/* Make sure the function only gets called once.  */
! 		gfc_conv_expr_reference (&parmse, e);
  	      else if (e->expr_type == EXPR_FUNCTION
  		       && e->symtree->n.sym->result
  		       && e->symtree->n.sym->result != e->symtree->n.sym
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6130,6151 ****
  		    }
  		  else
  		    {
! 		      bool add_clobber;
! 		      add_clobber = fsym && fsym->attr.intent == INTENT_OUT
! 			&& !fsym->attr.allocatable && !fsym->attr.pointer
! 			&& e->symtree && e->symtree->n.sym
! 			&& !e->symtree->n.sym->attr.dimension
! 			&& !e->symtree->n.sym->attr.pointer
! 			&& !e->symtree->n.sym->attr.allocatable
! 			/* See PR 41453.  */
! 			&& !e->symtree->n.sym->attr.dummy
! 			/* FIXME - PR 87395 and PR 41453  */
! 			&& e->symtree->n.sym->attr.save == SAVE_NONE
! 			&& !e->symtree->n.sym->attr.associate_var
! 			&& e->ts.type != BT_CHARACTER && e->ts.type != BT_DERIVED
! 			&& e->ts.type != BT_CLASS && !sym->attr.elemental;
  
! 		      gfc_conv_expr_reference (&parmse, e, add_clobber);
  		    }
  		  /* Catch base objects that are not variables.  */
  		  if (e->ts.type == BT_CLASS
--- 6138,6174 ----
  		    }
  		  else
  		    {
! 		      gfc_conv_expr_reference (&parmse, e);
  
! 		      if (fsym
! 			  && fsym->attr.intent == INTENT_OUT
! 			  && !fsym->attr.allocatable
! 			  && !fsym->attr.pointer
! 			  && e->expr_type == EXPR_VARIABLE
! 			  && e->ref == NULL
! 			  && e->symtree
! 			  && e->symtree->n.sym
! 			  && !e->symtree->n.sym->attr.dimension
! 			  && !e->symtree->n.sym->attr.pointer
! 			  && !e->symtree->n.sym->attr.allocatable
! 			  /* See PR 41453.  */
! 			  && !e->symtree->n.sym->attr.dummy
! 			  /* FIXME - PR 87395 and PR 41453  */
! 			  && e->symtree->n.sym->attr.save == SAVE_NONE
! 			  && !e->symtree->n.sym->attr.associate_var
! 			  && e->ts.type != BT_CHARACTER
! 			  && e->ts.type != BT_DERIVED
! 			  && e->ts.type != BT_CLASS
! 			  && !sym->attr.elemental)
! 			{
! 			  tree var;
! 			  /* FIXME: This fails if var is passed by reference, see PR
! 			     41453.  */
! 			  var = build_fold_indirect_ref_loc (input_location,
! 							     parmse.expr);
! 			  tree clobber = build_clobber (TREE_TYPE (var));
! 			  gfc_add_modify (&clobbers, var, clobber);
! 			}
  		    }
  		  /* Catch base objects that are not variables.  */
  		  if (e->ts.type == BT_CLASS
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6154,6176 ****
  		    base_object = build_fold_indirect_ref_loc (input_location,
  							       parmse.expr);
  
- 		  /* A class array element needs converting back to be a
- 		     class object, if the formal argument is a class object.  */
- 		  if (fsym && fsym->ts.type == BT_CLASS
- 			&& e->ts.type == BT_CLASS
- 			&& ((CLASS_DATA (fsym)->as
- 			     && CLASS_DATA (fsym)->as->type == AS_ASSUMED_RANK)
- 			    || CLASS_DATA (e)->attr.dimension))
- 		    gfc_conv_class_to_class (&parmse, e, fsym->ts, false,
- 				     fsym->attr.intent != INTENT_IN
- 				     && (CLASS_DATA (fsym)->attr.class_pointer
- 					 || CLASS_DATA (fsym)->attr.allocatable),
- 				     fsym->attr.optional
- 				     && e->expr_type == EXPR_VARIABLE
- 				     && e->symtree->n.sym->attr.optional,
- 				     CLASS_DATA (fsym)->attr.class_pointer
- 				     || CLASS_DATA (fsym)->attr.allocatable);
- 
  		  /* If an ALLOCATABLE dummy argument has INTENT(OUT) and is
  		     allocated on entry, it must be deallocated.  */
  		  if (fsym && fsym->attr.intent == INTENT_OUT
--- 6177,6182 ----
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6230,6235 ****
--- 6236,6258 ----
  		      gfc_add_expr_to_block (&se->pre, tmp);
  		    }
  
+ 		  /* A class array element needs converting back to be a
+ 		     class object, if the formal argument is a class object.  */
+ 		  if (fsym && fsym->ts.type == BT_CLASS
+ 			&& e->ts.type == BT_CLASS
+ 			&& ((CLASS_DATA (fsym)->as
+ 			     && CLASS_DATA (fsym)->as->type == AS_ASSUMED_RANK)
+ 			    || CLASS_DATA (e)->attr.dimension))
+ 		    gfc_conv_class_to_class (&parmse, e, fsym->ts, false,
+ 				     fsym->attr.intent != INTENT_IN
+ 				     && (CLASS_DATA (fsym)->attr.class_pointer
+ 					 || CLASS_DATA (fsym)->attr.allocatable),
+ 				     fsym->attr.optional
+ 				     && e->expr_type == EXPR_VARIABLE
+ 				     && e->symtree->n.sym->attr.optional,
+ 				     CLASS_DATA (fsym)->attr.class_pointer
+ 				     || CLASS_DATA (fsym)->attr.allocatable);
+ 
  		  if (fsym && (fsym->ts.type == BT_DERIVED
  			       || fsym->ts.type == BT_ASSUMED)
  		      && e->ts.type == BT_CLASS
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6808,6823 ****
  	      else
  		goto end_pointer_check;
  
  	      if (fsym && fsym->ts.type == BT_CLASS)
  		{
! 		  tmp = build_fold_indirect_ref_loc (input_location,
! 						      parmse.expr);
  		  tmp = gfc_class_data_get (tmp);
  		  if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (tmp)))
  		    tmp = gfc_conv_descriptor_data_get (tmp);
  		}
- 	      else
- 		tmp = parmse.expr;
  
  	      /* If the argument is passed by value, we need to strip the
  		 INDIRECT_REF.  */
--- 6831,6845 ----
  	      else
  		goto end_pointer_check;
  
+ 	      tmp = parmse.expr;
  	      if (fsym && fsym->ts.type == BT_CLASS)
  		{
! 		  if (POINTER_TYPE_P (TREE_TYPE (tmp)))
! 		    tmp = build_fold_indirect_ref_loc (input_location, tmp);
  		  tmp = gfc_class_data_get (tmp);
  		  if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (tmp)))
  		    tmp = gfc_conv_descriptor_data_get (tmp);
  		}
  
  	      /* If the argument is passed by value, we need to strip the
  		 INDIRECT_REF.  */
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6973,6978 ****
--- 6995,7001 ----
  
        vec_safe_push (arglist, parmse.expr);
      }
+   gfc_add_block_to_block (&se->pre, &clobbers);
    gfc_finish_interface_mapping (&mapping, &se->pre, &se->post);
  
    if (comp)
*************** gfc_trans_structure_assign (tree dest, g
*** 8782,8789 ****
    return gfc_finish_block (&block);
  }
  
! void
! gfc_conv_union_initializer (vec<constructor_elt, va_gc> *v,
                              gfc_component *un, gfc_expr *init)
  {
    gfc_constructor *ctor;
--- 8805,8812 ----
    return gfc_finish_block (&block);
  }
  
! static void
! gfc_conv_union_initializer (vec<constructor_elt, va_gc> *&v,
                              gfc_component *un, gfc_expr *init)
  {
    gfc_constructor *ctor;
*************** gfc_conv_expr_type (gfc_se * se, gfc_exp
*** 9066,9072 ****
     values only.  */
  
  void
! gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr, bool add_clobber)
  {
    gfc_ss *ss;
    tree var;
--- 9089,9095 ----
     values only.  */
  
  void
! gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr)
  {
    gfc_ss *ss;
    tree var;
*************** gfc_conv_expr_reference (gfc_se * se, gf
*** 9106,9121 ****
  	  gfc_add_block_to_block (&se->pre, &se->post);
  	  se->expr = var;
  	}
-       else if (add_clobber && expr->ref == NULL)
- 	{
- 	  tree clobber;
- 	  tree var;
- 	  /* FIXME: This fails if var is passed by reference, see PR
- 	     41453.  */
- 	  var = expr->symtree->n.sym->backend_decl;
- 	  clobber = build_clobber (TREE_TYPE (var));
- 	  gfc_add_modify (&se->pre, var, clobber);
- 	}
        return;
      }
  
--- 9129,9134 ----
*************** trans_class_assignment (stmtblock_t *blo
*** 11021,11026 ****
--- 11034,11042 ----
        class_han = GFC_CLASS_TYPE_P (TREE_TYPE (lse->expr))
  	  ? gfc_class_data_get (lse->expr) : lse->expr;
  
+       if (!POINTER_TYPE_P (TREE_TYPE (class_han)))
+ 	class_han = gfc_build_addr_expr (NULL_TREE, class_han);
+ 
        /* Allocate block.  */
        gfc_init_block (&alloc);
        gfc_allocate_using_malloc (&alloc, class_han, size, NULL_TREE);
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-intrinsic.c gcc-11.4.0/gcc/fortran/trans-intrinsic.c
*** gcc-11.3.0/gcc/fortran/trans-intrinsic.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-intrinsic.c	Mon May 29 08:46:29 2023
*************** gfc_conv_intrinsic_ibits (gfc_se * se, g
*** 6645,6650 ****
--- 6645,6651 ----
    tree type;
    tree tmp;
    tree mask;
+   tree num_bits, cond;
  
    gfc_conv_intrinsic_function_args (se, expr, args, 3);
    type = TREE_TYPE (args[0]);
*************** gfc_conv_intrinsic_ibits (gfc_se * se, g
*** 6685,6692 ****
--- 6686,6702 ----
  			       "in intrinsic IBITS", tmp1, tmp2, nbits);
      }
  
+   /* The Fortran standard allows (shift width) LEN <= BIT_SIZE(I), whereas
+      gcc requires a shift width < BIT_SIZE(I), so we have to catch this
+      special case.  See also gfc_conv_intrinsic_ishft ().  */
+   num_bits = build_int_cst (TREE_TYPE (args[2]), TYPE_PRECISION (type));
+ 
    mask = build_int_cst (type, -1);
    mask = fold_build2_loc (input_location, LSHIFT_EXPR, type, mask, args[2]);
+   cond = fold_build2_loc (input_location, GE_EXPR, logical_type_node, args[2],
+ 			  num_bits);
+   mask = fold_build3_loc (input_location, COND_EXPR, type, cond,
+ 			  build_int_cst (type, 0), mask);
    mask = fold_build1_loc (input_location, BIT_NOT_EXPR, type, mask);
  
    tmp = fold_build2_loc (input_location, RSHIFT_EXPR, type, args[0], args[1]);
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-openmp.c gcc-11.4.0/gcc/fortran/trans-openmp.c
*** gcc-11.3.0/gcc/fortran/trans-openmp.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-openmp.c	Mon May 29 08:46:29 2023
*************** gfc_trans_omp_clauses (stmtblock_t *bloc
*** 2747,2753 ****
  			       || GFC_DECL_CRAY_POINTEE (decl)
  			       || GFC_DESCRIPTOR_TYPE_P
  					     (TREE_TYPE (TREE_TYPE (decl)))
! 			       || n->sym->ts.type == BT_DERIVED))
  		    {
  		      tree orig_decl = decl;
  
--- 2747,2755 ----
  			       || GFC_DECL_CRAY_POINTEE (decl)
  			       || GFC_DESCRIPTOR_TYPE_P
  					     (TREE_TYPE (TREE_TYPE (decl)))
! 			       || (n->sym->ts.type == BT_DERIVED
! 				   && (n->sym->ts.u.derived->ts.f90_type
! 				       != BT_VOID))))
  		    {
  		      tree orig_decl = decl;
  
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-types.c gcc-11.4.0/gcc/fortran/trans-types.c
*** gcc-11.3.0/gcc/fortran/trans-types.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans-types.c	Mon May 29 08:46:29 2023
*************** create_fn_spec (gfc_symbol *sym, tree fn
*** 2981,2992 ****
    for (f = gfc_sym_get_dummy_args (sym); f; f = f->next)
      if (spec_len < sizeof (spec))
        {
! 	if (!f->sym || f->sym->attr.pointer || f->sym->attr.target
  	    || f->sym->attr.external || f->sym->attr.cray_pointer
  	    || (f->sym->ts.type == BT_DERIVED
  		&& (f->sym->ts.u.derived->attr.proc_pointer_comp
  		    || f->sym->ts.u.derived->attr.pointer_comp))
! 	    || (f->sym->ts.type == BT_CLASS
  		&& (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp
  		    || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp))
  	    || (f->sym->ts.type == BT_INTEGER && f->sym->ts.is_c_interop))
--- 2981,3003 ----
    for (f = gfc_sym_get_dummy_args (sym); f; f = f->next)
      if (spec_len < sizeof (spec))
        {
! 	bool is_class = false;
! 	bool is_pointer = false;
! 
! 	if (f->sym)
! 	  {
! 	    is_class = f->sym->ts.type == BT_CLASS && CLASS_DATA (f->sym)
! 	      && f->sym->attr.class_ok;
! 	    is_pointer = is_class ? CLASS_DATA (f->sym)->attr.class_pointer
! 				  : f->sym->attr.pointer;
! 	  }
! 
! 	if (f->sym == NULL || is_pointer || f->sym->attr.target
  	    || f->sym->attr.external || f->sym->attr.cray_pointer
  	    || (f->sym->ts.type == BT_DERIVED
  		&& (f->sym->ts.u.derived->attr.proc_pointer_comp
  		    || f->sym->ts.u.derived->attr.pointer_comp))
! 	    || (is_class
  		&& (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp
  		    || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp))
  	    || (f->sym->ts.type == BT_INTEGER && f->sym->ts.is_c_interop))
diff -Nrcpad gcc-11.3.0/gcc/fortran/trans.h gcc-11.4.0/gcc/fortran/trans.h
*** gcc-11.3.0/gcc/fortran/trans.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/fortran/trans.h	Mon May 29 08:46:29 2023
*************** tree gfc_build_compare_string (tree, tre
*** 500,507 ****
  void gfc_conv_expr (gfc_se * se, gfc_expr * expr);
  void gfc_conv_expr_val (gfc_se * se, gfc_expr * expr);
  void gfc_conv_expr_lhs (gfc_se * se, gfc_expr * expr);
! void gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr,
! 			      bool add_clobber = false);
  void gfc_conv_expr_type (gfc_se * se, gfc_expr *, tree);
  
  
--- 500,506 ----
  void gfc_conv_expr (gfc_se * se, gfc_expr * expr);
  void gfc_conv_expr_val (gfc_se * se, gfc_expr * expr);
  void gfc_conv_expr_lhs (gfc_se * se, gfc_expr * expr);
! void gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr);
  void gfc_conv_expr_type (gfc_se * se, gfc_expr *, tree);
  
  
diff -Nrcpad gcc-11.3.0/gcc/function.c gcc-11.4.0/gcc/function.c
*** gcc-11.3.0/gcc/function.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/function.c	Mon May 29 08:46:29 2023
*************** allocate_struct_function (tree fndecl, b
*** 4862,4868 ****
     instead of just setting it.  */
  
  void
! push_struct_function (tree fndecl)
  {
    /* When in_dummy_function we might be in the middle of a pop_cfun and
       current_function_decl and cfun may not match.  */
--- 4862,4868 ----
     instead of just setting it.  */
  
  void
! push_struct_function (tree fndecl, bool abstract_p)
  {
    /* When in_dummy_function we might be in the middle of a pop_cfun and
       current_function_decl and cfun may not match.  */
*************** push_struct_function (tree fndecl)
*** 4871,4877 ****
  	      || (cfun && current_function_decl == cfun->decl));
    cfun_stack.safe_push (cfun);
    current_function_decl = fndecl;
!   allocate_struct_function (fndecl, false);
  }
  
  /* Reset crtl and other non-struct-function variables to defaults as
--- 4871,4877 ----
  	      || (cfun && current_function_decl == cfun->decl));
    cfun_stack.safe_push (cfun);
    current_function_decl = fndecl;
!   allocate_struct_function (fndecl, abstract_p);
  }
  
  /* Reset crtl and other non-struct-function variables to defaults as
*************** stack_protect_epilogue (void)
*** 5032,5040 ****
--- 5032,5043 ----
     PARMS_HAVE_CLEANUPS is nonzero if there are cleanups associated with
     the function's parameters, which must be run at any return statement.  */
  
+ bool currently_expanding_function_start;
  void
  expand_function_start (tree subr)
  {
+   currently_expanding_function_start = true;
+ 
    /* Make sure volatile mem refs aren't considered
       valid operands of arithmetic insns.  */
    init_recog_no_volatile ();
*************** expand_function_start (tree subr)
*** 5227,5232 ****
--- 5230,5237 ----
    /* If we are doing generic stack checking, the probe should go here.  */
    if (flag_stack_check == GENERIC_STACK_CHECK)
      stack_check_probe_note = emit_note (NOTE_INSN_DELETED);
+ 
+   currently_expanding_function_start = false;
  }
  
  void
diff -Nrcpad gcc-11.3.0/gcc/function.h gcc-11.4.0/gcc/function.h
*** gcc-11.3.0/gcc/function.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/function.h	Mon May 29 08:46:29 2023
*************** extern void pop_cfun (void);
*** 676,682 ****
  extern int get_next_funcdef_no (void);
  extern int get_last_funcdef_no (void);
  extern void allocate_struct_function (tree, bool);
! extern void push_struct_function (tree fndecl);
  extern void push_dummy_function (bool);
  extern void pop_dummy_function (void);
  extern void init_dummy_function_start (void);
--- 676,682 ----
  extern int get_next_funcdef_no (void);
  extern int get_last_funcdef_no (void);
  extern void allocate_struct_function (tree, bool);
! extern void push_struct_function (tree fndecl, bool = false);
  extern void push_dummy_function (bool);
  extern void pop_dummy_function (void);
  extern void init_dummy_function_start (void);
*************** extern const char *current_function_name
*** 712,715 ****
--- 712,717 ----
  
  extern void used_types_insert (tree);
  
+ extern bool currently_expanding_function_start;
+ 
  #endif  /* GCC_FUNCTION_H */
diff -Nrcpad gcc-11.3.0/gcc/gcc.c gcc-11.4.0/gcc/gcc.c
*** gcc-11.3.0/gcc/gcc.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/gcc.c	Mon May 29 08:46:29 2023
*************** CC recognizes how to compile each input
*** 27,32 ****
--- 27,33 ----
  Once it knows which kind of compilation to perform, the procedure for
  compilation is specified by a string called a "spec".  */
  
+ #define INCLUDE_STRING
  #include "config.h"
  #include "system.h"
  #include "coretypes.h"
*************** compilation is specified by a string cal
*** 43,48 ****
--- 44,50 ----
  #include "opts.h"
  #include "filenames.h"
  #include "spellcheck.h"
+ #include "opts-jobserver.h"
  
  
  
*************** driver_handle_option (struct gcc_options
*** 4487,4496 ****
      case OPT_static_libgcc:
      case OPT_shared_libgcc:
      case OPT_static_libgfortran:
      case OPT_static_libstdc__:
        /* These are always valid, since gcc.c itself understands the
! 	 first two, gfortranspec.c understands -static-libgfortran and
! 	 g++spec.c understands -static-libstdc++ */
        validated = true;
        break;
  
--- 4489,4500 ----
      case OPT_static_libgcc:
      case OPT_shared_libgcc:
      case OPT_static_libgfortran:
+     case OPT_static_libphobos:
      case OPT_static_libstdc__:
        /* These are always valid, since gcc.c itself understands the
! 	 first two, gfortranspec.c understands -static-libgfortran,
! 	 d-spec.cc understands -static-libphobos, and g++spec.c
! 	 understands -static-libstdc++ */
        validated = true;
        break;
  
*************** driver::final_actions () const
*** 9071,9108 ****
  void
  driver::detect_jobserver () const
  {
!   /* Detect jobserver and drop it if it's not working.  */
!   const char *makeflags = env.get ("MAKEFLAGS");
!   if (makeflags != NULL)
!     {
!       const char *needle = "--jobserver-auth=";
!       const char *n = strstr (makeflags, needle);
!       if (n != NULL)
! 	{
! 	  int rfd = -1;
! 	  int wfd = -1;
! 
! 	  bool jobserver
! 	    = (sscanf (n + strlen (needle), "%d,%d", &rfd, &wfd) == 2
! 	       && rfd > 0
! 	       && wfd > 0
! 	       && is_valid_fd (rfd)
! 	       && is_valid_fd (wfd));
! 
! 	  /* Drop the jobserver if it's not working now.  */
! 	  if (!jobserver)
! 	    {
! 	      unsigned offset = n - makeflags;
! 	      char *dup = xstrdup (makeflags);
! 	      dup[offset] = '\0';
! 
! 	      const char *space = strchr (makeflags + offset, ' ');
! 	      if (space != NULL)
! 		strcpy (dup + offset, space);
! 	      xputenv (concat ("MAKEFLAGS=", dup, NULL));
! 	    }
! 	}
!     }
  }
  
  /* Determine what the exit code of the driver should be.  */
--- 9075,9083 ----
  void
  driver::detect_jobserver () const
  {
!   jobserver_info jinfo;
!   if (!jinfo.is_active && !jinfo.skipped_makeflags.empty ())
!     xputenv (xstrdup (jinfo.skipped_makeflags.c_str ()));
  }
  
  /* Determine what the exit code of the driver should be.  */
diff -Nrcpad gcc-11.3.0/gcc/generic-match-head.c gcc-11.4.0/gcc/generic-match-head.c
*** gcc-11.3.0/gcc/generic-match-head.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/generic-match-head.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 37,42 ****
--- 37,44 ----
  #include "gimplify.h"
  #include "optabs-tree.h"
  #include "dbgcnt.h"
+ #include "tm.h"
+ #include "tree-pass.h"
  
  /* Routine to determine if the types T1 and T2 are effectively
     the same for GENERIC.  If T1 or T2 is not a type, the test
*************** single_use (tree t ATTRIBUTE_UNUSED)
*** 68,74 ****
  static inline bool
  canonicalize_math_p ()
  {
!   return true;
  }
  
  /* Return true if math operations that are beneficial only after
--- 70,76 ----
  static inline bool
  canonicalize_math_p ()
  {
!   return !cfun || (cfun->curr_properties & PROP_gimple_opt_math) == 0;
  }
  
  /* Return true if math operations that are beneficial only after
*************** canonicalize_math_after_vectorization_p
*** 87,93 ****
  static inline bool
  optimize_vectors_before_lowering_p ()
  {
!   return true;
  }
  
  /* Return true if successive divisions can be optimized.
--- 89,95 ----
  static inline bool
  optimize_vectors_before_lowering_p ()
  {
!   return !cfun || (cfun->curr_properties & PROP_gimple_lvec) == 0;
  }
  
  /* Return true if successive divisions can be optimized.
diff -Nrcpad gcc-11.3.0/gcc/gengtype-lex.c gcc-11.4.0/gcc/gengtype-lex.c
*** gcc-11.3.0/gcc/gengtype-lex.c	Thu Apr 21 08:00:40 2022
--- gcc-11.4.0/gcc/gengtype-lex.c	Mon May 29 08:50:36 2023
*************** int yy_flex_debug = 0;
*** 1188,1194 ****
  #define YY_MORE_ADJ 0
  #define YY_RESTORE_YY_MORE_OFFSET
  char *yytext;
! #line 1 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* -*- indented-text -*- */
  /* Process source files and output type information.
     Copyright (C) 2002-2021 Free Software Foundation, Inc.
--- 1188,1194 ----
  #define YY_MORE_ADJ 0
  #define YY_RESTORE_YY_MORE_OFFSET
  char *yytext;
! #line 1 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* -*- indented-text -*- */
  /* Process source files and output type information.
     Copyright (C) 2002-2021 Free Software Foundation, Inc.
*************** You should have received a copy of the G
*** 1209,1215 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  #define YY_NO_INPUT 1
! #line 24 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  #ifdef HOST_GENERATOR_FILE
  #include "config.h"
  #define GENERATOR_FILE 1
--- 1209,1215 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  #define YY_NO_INPUT 1
! #line 24 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  #ifdef HOST_GENERATOR_FILE
  #include "config.h"
  #define GENERATOR_FILE 1
*************** update_lineno (const char *l, size_t len
*** 1238,1244 ****
  }
  
  #line 1235 "gengtype-lex.c"
! #line 59 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
      /* Include '::' in identifiers to capture C++ scope qualifiers.  */
  
  #line 1239 "gengtype-lex.c"
--- 1238,1244 ----
  }
  
  #line 1235 "gengtype-lex.c"
! #line 59 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
      /* Include '::' in identifiers to capture C++ scope qualifiers.  */
  
  #line 1239 "gengtype-lex.c"
*************** YY_DECL
*** 1462,1468 ****
  		}
  
  	{
! #line 67 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  
    /* Do this on entry to yylex():  */
    *yylval = 0;
--- 1462,1468 ----
  		}
  
  	{
! #line 67 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  
    /* Do this on entry to yylex():  */
    *yylval = 0;
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1534,1540 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 78 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return TYPEDEF;
--- 1534,1540 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 78 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return TYPEDEF;
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1547,1553 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 82 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
--- 1547,1553 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 82 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1560,1566 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 86 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return UNION;
--- 1560,1566 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 86 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return UNION;
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1573,1579 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 90 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
--- 1573,1579 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 90 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1586,1592 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 94 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return EXTERN;
--- 1586,1592 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 94 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return EXTERN;
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1599,1605 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 98 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STATIC;
--- 1599,1605 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 98 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STATIC;
*************** YY_RULE_SETUP
*** 1610,1634 ****
  
  case 7:
  YY_RULE_SETUP
! #line 106 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct_comment); }
  	YY_BREAK
  case 8:
  /* rule 8 can match eol */
  YY_RULE_SETUP
! #line 107 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 9:
  /* rule 9 can match eol */
  YY_RULE_SETUP
! #line 109 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 10:
  /* rule 10 can match eol */
  YY_RULE_SETUP
! #line 110 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 11:
--- 1610,1634 ----
  
  case 7:
  YY_RULE_SETUP
! #line 106 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct_comment); }
  	YY_BREAK
  case 8:
  /* rule 8 can match eol */
  YY_RULE_SETUP
! #line 107 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 9:
  /* rule 9 can match eol */
  YY_RULE_SETUP
! #line 109 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 10:
  /* rule 10 can match eol */
  YY_RULE_SETUP
! #line 110 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 11:
*************** YY_LINENO_REWIND_TO(yy_bp + 5);
*** 1638,1644 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 112 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* don't care */
  	YY_BREAK
  case 12:
--- 1638,1644 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 112 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* don't care */
  	YY_BREAK
  case 12:
*************** case 12:
*** 1647,1663 ****
  YY_LINENO_REWIND_TO(yy_cp - 1);
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 114 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 13:
  /* rule 13 can match eol */
! #line 115 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 14:
  /* rule 14 can match eol */
! #line 116 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 15:
  /* rule 15 can match eol */
  YY_RULE_SETUP
! #line 116 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
      *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1);
      return IGNORABLE_CXX_KEYWORD;
--- 1647,1663 ----
  YY_LINENO_REWIND_TO(yy_cp - 1);
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 114 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 13:
  /* rule 13 can match eol */
! #line 115 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 14:
  /* rule 14 can match eol */
! #line 116 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 15:
  /* rule 15 can match eol */
  YY_RULE_SETUP
! #line 116 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
      *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1);
      return IGNORABLE_CXX_KEYWORD;
*************** YY_LINENO_REWIND_TO(yy_bp + 3);
*** 1670,1676 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 3;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 120 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return GTY_TOKEN; }
  	YY_BREAK
  case 17:
--- 1670,1676 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 3;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 120 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return GTY_TOKEN; }
  	YY_BREAK
  case 17:
*************** YY_LINENO_REWIND_TO(yy_bp + 5);
*** 1680,1686 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 121 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return UNION; }
  	YY_BREAK
  case 18:
--- 1680,1686 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 121 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return UNION; }
  	YY_BREAK
  case 18:
*************** YY_LINENO_REWIND_TO(yy_bp + 6);
*** 1690,1696 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 6;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 122 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 19:
--- 1690,1696 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 6;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 122 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 19:
*************** YY_LINENO_REWIND_TO(yy_bp + 5);
*** 1700,1706 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 123 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 20:
--- 1700,1706 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 123 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 20:
*************** YY_LINENO_REWIND_TO(yy_bp + 7);
*** 1710,1716 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 7;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 124 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return TYPEDEF; }
  	YY_BREAK
  case 21:
--- 1710,1716 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 7;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 124 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return TYPEDEF; }
  	YY_BREAK
  case 21:
*************** YY_LINENO_REWIND_TO(yy_bp + 4);
*** 1720,1726 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 125 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return ENUM; }
  	YY_BREAK
  case 22:
--- 1720,1726 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 125 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return ENUM; }
  	YY_BREAK
  case 22:
*************** YY_LINENO_REWIND_TO(yy_bp + 9);
*** 1730,1736 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 9;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 126 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return PTR_ALIAS; }
  	YY_BREAK
  case 23:
--- 1730,1736 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 9;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 126 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return PTR_ALIAS; }
  	YY_BREAK
  case 23:
*************** YY_LINENO_REWIND_TO(yy_bp + 10);
*** 1740,1746 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 10;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 127 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return NESTED_PTR; }
  	YY_BREAK
  case 24:
--- 1740,1746 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 10;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 127 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return NESTED_PTR; }
  	YY_BREAK
  case 24:
*************** YY_LINENO_REWIND_TO(yy_bp + 4);
*** 1750,1761 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 128 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return USER_GTY; }
  	YY_BREAK
  case 25:
  YY_RULE_SETUP
! #line 129 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
    return NUM;
--- 1750,1761 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 128 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return USER_GTY; }
  	YY_BREAK
  case 25:
  YY_RULE_SETUP
! #line 129 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
    return NUM;
*************** case 26:
*** 1767,1777 ****
  YY_LINENO_REWIND_TO(yy_cp - 1);
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 135 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 27:
  /* rule 27 can match eol */
  YY_RULE_SETUP
! #line 135 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    size_t len;
  
--- 1767,1777 ----
  YY_LINENO_REWIND_TO(yy_cp - 1);
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 135 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 27:
  /* rule 27 can match eol */
  YY_RULE_SETUP
! #line 135 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    size_t len;
  
*************** YY_LINENO_REWIND_TO(yy_cp - 1);
*** 1790,1796 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 146 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
    return ID;
--- 1790,1796 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 146 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
    return ID;
*************** YY_RULE_SETUP
*** 1799,1805 ****
  case 29:
  /* rule 29 can match eol */
  YY_RULE_SETUP
! #line 151 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return STRING;
--- 1799,1805 ----
  case 29:
  /* rule 29 can match eol */
  YY_RULE_SETUP
! #line 151 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return STRING;
*************** YY_RULE_SETUP
*** 1809,1815 ****
  case 30:
  /* rule 30 can match eol */
  YY_RULE_SETUP
! #line 156 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return ARRAY;
--- 1809,1815 ----
  case 30:
  /* rule 30 can match eol */
  YY_RULE_SETUP
! #line 156 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return ARRAY;
*************** YY_RULE_SETUP
*** 1818,1824 ****
  case 31:
  /* rule 31 can match eol */
  YY_RULE_SETUP
! #line 160 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
    return CHAR;
--- 1818,1824 ----
  case 31:
  /* rule 31 can match eol */
  YY_RULE_SETUP
! #line 160 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
    return CHAR;
*************** YY_RULE_SETUP
*** 1826,1849 ****
  	YY_BREAK
  case 32:
  YY_RULE_SETUP
! #line 165 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return ELLIPSIS; }
  	YY_BREAK
  case 33:
  YY_RULE_SETUP
! #line 166 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { return yytext[0]; }
  	YY_BREAK
  /* ignore pp-directives */
  case 34:
  /* rule 34 can match eol */
  YY_RULE_SETUP
! #line 169 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {lexer_line.line++;}
  	YY_BREAK
  case 35:
  YY_RULE_SETUP
! #line 171 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, "unexpected character `%s'", yytext);
  }
--- 1826,1849 ----
  	YY_BREAK
  case 32:
  YY_RULE_SETUP
! #line 165 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return ELLIPSIS; }
  	YY_BREAK
  case 33:
  YY_RULE_SETUP
! #line 166 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { return yytext[0]; }
  	YY_BREAK
  /* ignore pp-directives */
  case 34:
  /* rule 34 can match eol */
  YY_RULE_SETUP
! #line 169 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {lexer_line.line++;}
  	YY_BREAK
  case 35:
  YY_RULE_SETUP
! #line 171 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, "unexpected character `%s'", yytext);
  }
*************** YY_RULE_SETUP
*** 1851,1886 ****
  
  case 36:
  YY_RULE_SETUP
! #line 176 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { BEGIN(in_comment); }
  	YY_BREAK
  case 37:
  /* rule 37 can match eol */
  YY_RULE_SETUP
! #line 177 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 38:
  /* rule 38 can match eol */
  YY_RULE_SETUP
! #line 178 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 39:
! #line 180 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 40:
  /* rule 40 can match eol */
! #line 181 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 41:
  /* rule 41 can match eol */
  YY_RULE_SETUP
! #line 181 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 42:
  /* rule 42 can match eol */
  YY_RULE_SETUP
! #line 182 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 43:
--- 1851,1886 ----
  
  case 36:
  YY_RULE_SETUP
! #line 176 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { BEGIN(in_comment); }
  	YY_BREAK
  case 37:
  /* rule 37 can match eol */
  YY_RULE_SETUP
! #line 177 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 38:
  /* rule 38 can match eol */
  YY_RULE_SETUP
! #line 178 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 39:
! #line 180 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 40:
  /* rule 40 can match eol */
! #line 181 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 41:
  /* rule 41 can match eol */
  YY_RULE_SETUP
! #line 181 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 42:
  /* rule 42 can match eol */
  YY_RULE_SETUP
! #line 182 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 43:
*************** YY_LINENO_REWIND_TO(yy_bp + 1);
*** 1890,1910 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 183 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 44:
  /* rule 44 can match eol */
  YY_RULE_SETUP
! #line 186 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 45:
! #line 188 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 46:
  YY_RULE_SETUP
! #line 188 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 47:
--- 1890,1910 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 183 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 44:
  /* rule 44 can match eol */
  YY_RULE_SETUP
! #line 186 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 45:
! #line 188 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 46:
  YY_RULE_SETUP
! #line 188 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 47:
*************** YY_LINENO_REWIND_TO(yy_bp + 1);
*** 1914,1938 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 189 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 48:
  YY_RULE_SETUP
! #line 192 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { BEGIN(INITIAL); } 
  	YY_BREAK
  case 49:
  YY_RULE_SETUP
! #line 193 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct); }
  	YY_BREAK
  case 50:
! #line 196 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  case 51:
  YY_RULE_SETUP
! #line 196 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, 
  		 "unterminated comment or string; unexpected EOF");
--- 1914,1938 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 189 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 48:
  YY_RULE_SETUP
! #line 192 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { BEGIN(INITIAL); } 
  	YY_BREAK
  case 49:
  YY_RULE_SETUP
! #line 193 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct); }
  	YY_BREAK
  case 50:
! #line 196 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  case 51:
  YY_RULE_SETUP
! #line 196 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, 
  		 "unterminated comment or string; unexpected EOF");
*************** YY_RULE_SETUP
*** 1941,1952 ****
  case 52:
  /* rule 52 can match eol */
  YY_RULE_SETUP
! #line 201 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 53:
  YY_RULE_SETUP
! #line 203 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  YY_FATAL_ERROR( "flex scanner jammed" );
  	YY_BREAK
  #line 1947 "gengtype-lex.c"
--- 1941,1952 ----
  case 52:
  /* rule 52 can match eol */
  YY_RULE_SETUP
! #line 201 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 53:
  YY_RULE_SETUP
! #line 203 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  YY_FATAL_ERROR( "flex scanner jammed" );
  	YY_BREAK
  #line 1947 "gengtype-lex.c"
*************** void yyfree (void * ptr )
*** 2924,2930 ****
  
  #define YYTABLES_NAME "yytables"
  
! #line 203 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l"
  
  
  void
--- 2924,2930 ----
  
  #define YYTABLES_NAME "yytables"
  
! #line 203 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l"
  
  
  void
diff -Nrcpad gcc-11.3.0/gcc/genmatch.c gcc-11.4.0/gcc/genmatch.c
*** gcc-11.3.0/gcc/genmatch.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/genmatch.c	Mon May 29 08:46:29 2023
*************** expr::gen_transform (FILE *f, int indent
*** 2526,2532 ****
        for (unsigned i = 0; i < ops.length (); ++i)
  	fprintf (f, ", _o%d[%u]", depth, i);
        fprintf (f, ");\n");
!       fprintf_indent (f, indent, "tem_op.resimplify (lseq, valueize);\n");
        fprintf_indent (f, indent,
  		      "_r%d = maybe_push_res_to_seq (&tem_op, %s);\n", depth,
  		      !force_leaf ? "lseq" : "NULL");
--- 2526,2533 ----
        for (unsigned i = 0; i < ops.length (); ++i)
  	fprintf (f, ", _o%d[%u]", depth, i);
        fprintf (f, ");\n");
!       fprintf_indent (f, indent, "tem_op.resimplify (%s, valueize);\n",
! 		      !force_leaf ? "lseq" : "NULL");
        fprintf_indent (f, indent,
  		      "_r%d = maybe_push_res_to_seq (&tem_op, %s);\n", depth,
  		      !force_leaf ? "lseq" : "NULL");
*************** dt_simplify::gen_1 (FILE *f, int indent,
*** 3428,3434 ****
  	  if (!is_predicate)
  	    {
  	      fprintf_indent (f, indent,
! 			      "res_op->resimplify (lseq, valueize);\n");
  	      if (e->force_leaf)
  		fprintf_indent (f, indent,
  				"if (!maybe_push_res_to_seq (res_op, NULL)) "
--- 3429,3436 ----
  	  if (!is_predicate)
  	    {
  	      fprintf_indent (f, indent,
! 			      "res_op->resimplify (%s, valueize);\n",
! 			      !e->force_leaf ? "lseq" : "NULL");
  	      if (e->force_leaf)
  		fprintf_indent (f, indent,
  				"if (!maybe_push_res_to_seq (res_op, NULL)) "
diff -Nrcpad gcc-11.3.0/gcc/gimple-array-bounds.cc gcc-11.4.0/gcc/gimple-array-bounds.cc
*** gcc-11.3.0/gcc/gimple-array-bounds.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/gimple-array-bounds.cc	Mon May 29 08:46:29 2023
*************** array_bounds_checker::check_mem_ref (loc
*** 783,789 ****
    int i = 0;
    if (extrema[i] < -arrbounds[1] || extrema[i = 1] > ubound)
      {
!       HOST_WIDE_INT tmpidx = extrema[i].to_shwi () / eltsize.to_shwi ();
  
        if (warning_at (location, OPT_Warray_bounds,
  		      "intermediate array offset %wi is outside array bounds "
--- 783,789 ----
    int i = 0;
    if (extrema[i] < -arrbounds[1] || extrema[i = 1] > ubound)
      {
!       HOST_WIDE_INT tmpidx = (extrema[i] / eltsize).to_shwi ();
  
        if (warning_at (location, OPT_Warray_bounds,
  		      "intermediate array offset %wi is outside array bounds "
diff -Nrcpad gcc-11.3.0/gcc/gimple-isel.cc gcc-11.4.0/gcc/gimple-isel.cc
*** gcc-11.3.0/gcc/gimple-isel.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/gimple-isel.cc	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 43,70 ****
  /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls to
     internal function based on vector type of selected expansion.
     i.e.:
!      VIEW_CONVERT_EXPR<int[4]>(u)[_1] =  = i_4(D);
     =>
       _7 = u;
       _8 = .VEC_SET (_7, i_4(D), _1);
       u = _8;  */
  
! static gimple *
! gimple_expand_vec_set_expr (gimple_stmt_iterator *gsi)
  {
    enum tree_code code;
    gcall *new_stmt = NULL;
    gassign *ass_stmt = NULL;
  
    /* Only consider code == GIMPLE_ASSIGN.  */
    gassign *stmt = dyn_cast<gassign *> (gsi_stmt (*gsi));
    if (!stmt)
!     return NULL;
  
    tree lhs = gimple_assign_lhs (stmt);
    code = TREE_CODE (lhs);
    if (code != ARRAY_REF)
!     return NULL;
  
    tree val = gimple_assign_rhs1 (stmt);
    tree op0 = TREE_OPERAND (lhs, 0);
--- 43,71 ----
  /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls to
     internal function based on vector type of selected expansion.
     i.e.:
!      VIEW_CONVERT_EXPR<int[4]>(u)[_1] = i_4(D);
     =>
       _7 = u;
       _8 = .VEC_SET (_7, i_4(D), _1);
       u = _8;  */
  
! static bool
! gimple_expand_vec_set_expr (struct function *fun, gimple_stmt_iterator *gsi)
  {
    enum tree_code code;
    gcall *new_stmt = NULL;
    gassign *ass_stmt = NULL;
+   bool cfg_changed = false;
  
    /* Only consider code == GIMPLE_ASSIGN.  */
    gassign *stmt = dyn_cast<gassign *> (gsi_stmt (*gsi));
    if (!stmt)
!     return false;
  
    tree lhs = gimple_assign_lhs (stmt);
    code = TREE_CODE (lhs);
    if (code != ARRAY_REF)
!     return false;
  
    tree val = gimple_assign_rhs1 (stmt);
    tree op0 = TREE_OPERAND (lhs, 0);
*************** gimple_expand_vec_set_expr (gimple_stmt_
*** 76,82 ****
        tree pos = TREE_OPERAND (lhs, 1);
        tree view_op0 = TREE_OPERAND (op0, 0);
        machine_mode outermode = TYPE_MODE (TREE_TYPE (view_op0));
!       if (auto_var_in_fn_p (view_op0, cfun->decl)
  	  && !TREE_ADDRESSABLE (view_op0) && can_vec_set_var_idx_p (outermode))
  	{
  	  location_t loc = gimple_location (stmt);
--- 77,83 ----
        tree pos = TREE_OPERAND (lhs, 1);
        tree view_op0 = TREE_OPERAND (op0, 0);
        machine_mode outermode = TYPE_MODE (TREE_TYPE (view_op0));
!       if (auto_var_in_fn_p (view_op0, fun->decl)
  	  && !TREE_ADDRESSABLE (view_op0) && can_vec_set_var_idx_p (outermode))
  	{
  	  location_t loc = gimple_location (stmt);
*************** gimple_expand_vec_set_expr (gimple_stmt_
*** 98,116 ****
  	  gimple_set_location (ass_stmt, loc);
  	  gsi_insert_before (gsi, ass_stmt, GSI_SAME_STMT);
  
  	  gimple_move_vops (ass_stmt, stmt);
! 	  gsi_remove (gsi, true);
  	}
      }
  
!   return ass_stmt;
  }
  
  /* Expand all VEC_COND_EXPR gimple assignments into calls to internal
     function based on type of selected expansion.  */
  
  static gimple *
! gimple_expand_vec_cond_expr (gimple_stmt_iterator *gsi,
  			     hash_map<tree, unsigned int> *vec_cond_ssa_name_uses)
  {
    tree lhs, op0a = NULL_TREE, op0b = NULL_TREE;
--- 99,121 ----
  	  gimple_set_location (ass_stmt, loc);
  	  gsi_insert_before (gsi, ass_stmt, GSI_SAME_STMT);
  
+ 	  basic_block bb = gimple_bb (stmt);
  	  gimple_move_vops (ass_stmt, stmt);
! 	  if (gsi_remove (gsi, true)
! 	      && gimple_purge_dead_eh_edges (bb))
! 	    cfg_changed = true;
! 	  *gsi = gsi_for_stmt (ass_stmt);
  	}
      }
  
!   return cfg_changed;
  }
  
  /* Expand all VEC_COND_EXPR gimple assignments into calls to internal
     function based on type of selected expansion.  */
  
  static gimple *
! gimple_expand_vec_cond_expr (struct function *fun, gimple_stmt_iterator *gsi,
  			     hash_map<tree, unsigned int> *vec_cond_ssa_name_uses)
  {
    tree lhs, op0a = NULL_TREE, op0b = NULL_TREE;
*************** gimple_expand_vec_cond_expr (gimple_stmt
*** 191,197 ****
  						     tcode);
  
  	  /* Try to fold x CMP y ? -1 : 0 to x CMP y.  */
- 
  	  if (can_compute_op0
  	      && integer_minus_onep (op1)
  	      && integer_zerop (op2)
--- 196,201 ----
*************** gimple_expand_vec_cond_expr (gimple_stmt
*** 203,216 ****
  	      return new_stmt;
  	    }
  
! 	  if (can_compute_op0
! 	      && used_vec_cond_exprs >= 2
! 	      && (get_vcond_mask_icode (mode, TYPE_MODE (op0_type))
! 		  != CODE_FOR_nothing))
! 	    {
! 	      /* Keep the SSA name and use vcond_mask.  */
! 	      tcode = TREE_CODE (op0);
! 	    }
  	}
        else
  	tcode = TREE_CODE (op0);
--- 207,225 ----
  	      return new_stmt;
  	    }
  
! 	  /* When the compare has EH we do not want to forward it when
! 	     it has multiple uses and in general because of the complication
! 	     with EH redirection.  */
! 	  if (stmt_can_throw_internal (fun, def_stmt))
! 	    tcode = TREE_CODE (op0);
! 
! 	  /* If we can compute op0 and have multiple uses, keep the SSA
! 	     name and use vcond_mask.  */
! 	  else if (can_compute_op0
! 		   && used_vec_cond_exprs >= 2
! 		   && (get_vcond_mask_icode (mode, TYPE_MODE (op0_type))
! 		       != CODE_FOR_nothing))
! 	    tcode = TREE_CODE (op0);
  	}
        else
  	tcode = TREE_CODE (op0);
*************** gimple_expand_vec_cond_expr (gimple_stmt
*** 241,246 ****
--- 250,263 ----
  			GET_MODE_NUNITS (cmp_op_mode)));
  
    icode = get_vcond_icode (mode, cmp_op_mode, unsignedp);
+   /* Some targets do not have vcondeq and only vcond with NE/EQ
+      but not vcondu, so make sure to also try vcond here as
+      vcond_icode_p would canonicalize the optab query to.  */
+   if (icode == CODE_FOR_nothing
+       && (tcode == NE_EXPR || tcode == EQ_EXPR)
+       && ((icode = get_vcond_icode (mode, cmp_op_mode, !unsignedp))
+ 	  != CODE_FOR_nothing))
+     unsignedp = !unsignedp;
    if (icode == CODE_FOR_nothing)
      {
        if (tcode == LT_EXPR
*************** gimple_expand_vec_cond_expr (gimple_stmt
*** 282,299 ****
     VEC_COND_EXPR assignments.  */
  
  static unsigned int
! gimple_expand_vec_exprs (void)
  {
    gimple_stmt_iterator gsi;
    basic_block bb;
    hash_map<tree, unsigned int> vec_cond_ssa_name_uses;
    auto_bitmap dce_ssa_names;
  
!   FOR_EACH_BB_FN (bb, cfun)
      {
        for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
  	{
! 	  gimple *g = gimple_expand_vec_cond_expr (&gsi,
  						   &vec_cond_ssa_name_uses);
  	  if (g != NULL)
  	    {
--- 299,317 ----
     VEC_COND_EXPR assignments.  */
  
  static unsigned int
! gimple_expand_vec_exprs (struct function *fun)
  {
    gimple_stmt_iterator gsi;
    basic_block bb;
    hash_map<tree, unsigned int> vec_cond_ssa_name_uses;
    auto_bitmap dce_ssa_names;
+   bool cfg_changed = false;
  
!   FOR_EACH_BB_FN (bb, fun)
      {
        for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
  	{
! 	  gimple *g = gimple_expand_vec_cond_expr (fun, &gsi,
  						   &vec_cond_ssa_name_uses);
  	  if (g != NULL)
  	    {
*************** gimple_expand_vec_exprs (void)
*** 302,308 ****
  	      gsi_replace (&gsi, g, false);
  	    }
  
! 	  gimple_expand_vec_set_expr (&gsi);
  	  if (gsi_end_p (gsi))
  	    break;
  	}
--- 320,326 ----
  	      gsi_replace (&gsi, g, false);
  	    }
  
! 	  cfg_changed |= gimple_expand_vec_set_expr (fun, &gsi);
  	  if (gsi_end_p (gsi))
  	    break;
  	}
*************** gimple_expand_vec_exprs (void)
*** 314,320 ****
  
    simple_dce_from_worklist (dce_ssa_names);
  
!   return 0;
  }
  
  namespace {
--- 332,338 ----
  
    simple_dce_from_worklist (dce_ssa_names);
  
!   return cfg_changed ? TODO_cleanup_cfg : 0;
  }
  
  namespace {
*************** public:
*** 345,353 ****
        return true;
      }
  
!   virtual unsigned int execute (function *)
      {
!       return gimple_expand_vec_exprs ();
      }
  
  }; // class pass_gimple_isel
--- 363,371 ----
        return true;
      }
  
!   virtual unsigned int execute (function *fun)
      {
!       return gimple_expand_vec_exprs (fun);
      }
  
  }; // class pass_gimple_isel
diff -Nrcpad gcc-11.3.0/gcc/gimple-ssa-store-merging.c gcc-11.4.0/gcc/gimple-ssa-store-merging.c
*** gcc-11.3.0/gcc/gimple-ssa-store-merging.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/gimple-ssa-store-merging.c	Mon May 29 08:46:29 2023
*************** do_shift_rotate (enum tree_code code,
*** 263,269 ****
  		 int count)
  {
    int i, size = TYPE_PRECISION (n->type) / BITS_PER_UNIT;
!   unsigned head_marker;
  
    if (count < 0
        || count >= TYPE_PRECISION (n->type)
--- 263,269 ----
  		 int count)
  {
    int i, size = TYPE_PRECISION (n->type) / BITS_PER_UNIT;
!   uint64_t head_marker;
  
    if (count < 0
        || count >= TYPE_PRECISION (n->type)
*************** namespace {
*** 1520,1526 ****
     then VAL represents the constant and all the other fields are zero, or
     a memory load, then VAL represents the reference, BASE_ADDR is non-NULL
     and the other fields also reflect the memory load, or an SSA name, then
!    VAL represents the SSA name and all the other fields are zero,  */
  
  class store_operand_info
  {
--- 1520,1526 ----
     then VAL represents the constant and all the other fields are zero, or
     a memory load, then VAL represents the reference, BASE_ADDR is non-NULL
     and the other fields also reflect the memory load, or an SSA name, then
!    VAL represents the SSA name and all the other fields are zero.  */
  
  class store_operand_info
  {
*************** merged_store_group::apply_stores ()
*** 2223,2228 ****
--- 2223,2232 ----
    if (buf_size <= MOVE_MAX)
      string_concatenation = false;
  
+   /* String concatenation only works for byte aligned start and end.  */
+   if (start % BITS_PER_UNIT != 0 || width % BITS_PER_UNIT != 0)
+     string_concatenation = false;
+ 
    /* Create a power-of-2-sized buffer for native_encode_expr.  */
    if (!string_concatenation)
      buf_size = 1 << ceil_log2 (buf_size);
*************** split_group (merged_store_group *group,
*** 3548,3554 ****
  
    /* For bswap framework using sets of stores, all the checking has been done
       earlier in try_coalesce_bswap and the result always needs to be emitted
!      as a single store.  Likewise for string concatenation,  */
    if (group->stores[0]->rhs_code == LROTATE_EXPR
        || group->stores[0]->rhs_code == NOP_EXPR
        || group->string_concatenation)
--- 3552,3558 ----
  
    /* For bswap framework using sets of stores, all the checking has been done
       earlier in try_coalesce_bswap and the result always needs to be emitted
!      as a single store.  Likewise for string concatenation.  */
    if (group->stores[0]->rhs_code == LROTATE_EXPR
        || group->stores[0]->rhs_code == NOP_EXPR
        || group->string_concatenation)
diff -Nrcpad gcc-11.3.0/gcc/gimple-ssa-warn-alloca.c gcc-11.4.0/gcc/gimple-ssa-warn-alloca.c
*** gcc-11.3.0/gcc/gimple-ssa-warn-alloca.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/gimple-ssa-warn-alloca.c	Mon May 29 08:46:29 2023
*************** alloca_call_type (range_query &query, gi
*** 218,223 ****
--- 218,224 ----
    int_range_max r;
    if (warn_limit_specified_p (is_vla)
        && TREE_CODE (len) == SSA_NAME
+       && types_compatible_p (TREE_TYPE (len), size_type_node)
        && query.range_of_expr (r, len, stmt)
        && !r.varying_p ())
      {
diff -Nrcpad gcc-11.3.0/gcc/gimple-ssa-warn-restrict.c gcc-11.4.0/gcc/gimple-ssa-warn-restrict.c
*** gcc-11.3.0/gcc/gimple-ssa-warn-restrict.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/gimple-ssa-warn-restrict.c	Mon May 29 08:46:29 2023
*************** builtin_memref::set_base_and_offset (tre
*** 514,520 ****
      {
        tree memrefoff = fold_convert (ptrdiff_type_node, TREE_OPERAND (base, 1));
        extend_offset_range (memrefoff);
-       base = TREE_OPERAND (base, 0);
  
        if (refoff != HOST_WIDE_INT_MIN
        	  && TREE_CODE (expr) == COMPONENT_REF)
--- 514,519 ----
*************** builtin_memref::set_base_and_offset (tre
*** 527,540 ****
  	     REFOFF is set to s[1].b - (char*)s.  */
  	  offset_int off = tree_to_shwi (memrefoff);
  	  refoff += off;
-       	}
  
!       if (!integer_zerop (memrefoff))
! 	/* A non-zero offset into an array of struct with flexible array
! 	   members implies that the array is empty because there is no
! 	   way to initialize such a member when it belongs to an array.
! 	   This must be some sort of a bug.  */
! 	refsize = 0;
      }
  
    if (TREE_CODE (ref) == COMPONENT_REF)
--- 526,544 ----
  	     REFOFF is set to s[1].b - (char*)s.  */
  	  offset_int off = tree_to_shwi (memrefoff);
  	  refoff += off;
  
! 	  if (!integer_zerop (memrefoff)
! 	      && !COMPLETE_TYPE_P (TREE_TYPE (expr))
! 	      && multiple_of_p (sizetype, memrefoff,
! 				TYPE_SIZE_UNIT (TREE_TYPE (base))))
! 	    /* A non-zero offset into an array of struct with flexible array
! 	       members implies that the array is empty because there is no
! 	       way to initialize such a member when it belongs to an array.
! 	       This must be some sort of a bug.  */
! 	    refsize = 0;
! 	}
! 
!       base = TREE_OPERAND (base, 0);
      }
  
    if (TREE_CODE (ref) == COMPONENT_REF)
diff -Nrcpad gcc-11.3.0/gcc/go/ChangeLog gcc-11.4.0/gcc/go/ChangeLog
*** gcc-11.3.0/gcc/go/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/go/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/ifcvt.c gcc-11.4.0/gcc/ifcvt.c
*** gcc-11.3.0/gcc/ifcvt.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ifcvt.c	Mon May 29 08:46:29 2023
*************** noce_try_sign_mask (struct noce_if_info
*** 2814,2831 ****
      return FALSE;
  
    /* This is only profitable if T is unconditionally executed/evaluated in the
!      original insn sequence or T is cheap.  The former happens if B is the
!      non-zero (T) value and if INSN_B was taken from TEST_BB, or there was no
!      INSN_B which can happen for e.g. conditional stores to memory.  For the
!      cost computation use the block TEST_BB where the evaluation will end up
!      after the transformation.  */
    t_unconditional
      = (t == if_info->b
         && (if_info->insn_b == NULL_RTX
  	   || BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb));
    if (!(t_unconditional
! 	|| (set_src_cost (t, mode, if_info->speed_p)
! 	    < COSTS_N_INSNS (2))))
      return FALSE;
  
    if (!noce_can_force_operand (t))
--- 2814,2832 ----
      return FALSE;
  
    /* This is only profitable if T is unconditionally executed/evaluated in the
!      original insn sequence or T is cheap and can't trap or fault.  The former
!      happens if B is the non-zero (T) value and if INSN_B was taken from
!      TEST_BB, or there was no INSN_B which can happen for e.g. conditional
!      stores to memory.  For the cost computation use the block TEST_BB where
!      the evaluation will end up after the transformation.  */
    t_unconditional
      = (t == if_info->b
         && (if_info->insn_b == NULL_RTX
  	   || BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb));
    if (!(t_unconditional
! 	|| ((set_src_cost (t, mode, if_info->speed_p)
! 	     < COSTS_N_INSNS (2))
! 	    && !may_trap_or_fault_p (t))))
      return FALSE;
  
    if (!noce_can_force_operand (t))
diff -Nrcpad gcc-11.3.0/gcc/ipa-icf.c gcc-11.4.0/gcc/ipa-icf.c
*** gcc-11.3.0/gcc/ipa-icf.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ipa-icf.c	Mon May 29 08:46:29 2023
*************** sem_item_optimizer::filter_removed_items
*** 2411,2420 ****
  	    {
  	      /* Filter out non-readonly variables.  */
  	      tree decl = item->decl;
! 	      if (TREE_READONLY (decl))
! 		filtered.safe_push (item);
! 	      else
  		remove_item (item);
  	    }
          }
      }
--- 2411,2421 ----
  	    {
  	      /* Filter out non-readonly variables.  */
  	      tree decl = item->decl;
! 	      varpool_node *vnode = static_cast <sem_variable *>(item)->get_node ();
! 	      if (!TREE_READONLY (decl) || vnode->body_removed)
  		remove_item (item);
+ 	      else
+ 		filtered.safe_push (item);
  	    }
          }
      }
diff -Nrcpad gcc-11.3.0/gcc/ipa-modref-tree.h gcc-11.4.0/gcc/ipa-modref-tree.h
*** gcc-11.3.0/gcc/ipa-modref-tree.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ipa-modref-tree.h	Mon May 29 08:46:29 2023
*************** struct GTY((user)) modref_tree
*** 560,566 ****
  	    size_t k;
  	    modref_access_node *access_node;
  	    FOR_EACH_VEC_SAFE_ELT (ref_node->accesses, k, access_node)
! 	      if (access_node->parm_index > 0)
  		{
  		  if (access_node->parm_index < (int)map->length ())
  		    access_node->parm_index = (*map)[access_node->parm_index];
--- 560,566 ----
  	    size_t k;
  	    modref_access_node *access_node;
  	    FOR_EACH_VEC_SAFE_ELT (ref_node->accesses, k, access_node)
! 	      if (access_node->parm_index >= 0)
  		{
  		  if (access_node->parm_index < (int)map->length ())
  		    access_node->parm_index = (*map)[access_node->parm_index];
diff -Nrcpad gcc-11.3.0/gcc/ipa-prop.c gcc-11.4.0/gcc/ipa-prop.c
*** gcc-11.3.0/gcc/ipa-prop.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ipa-prop.c	Mon May 29 08:46:29 2023
*************** ipa_load_from_parm_agg (struct ipa_func_
*** 1109,1114 ****
--- 1109,1118 ----
    if (!base)
      return false;
  
+   /* We can not propagate across volatile loads.  */
+   if (TREE_THIS_VOLATILE (op))
+     return false;
+ 
    if (DECL_P (base))
      {
        int index = ipa_get_param_decl_index_1 (descriptors, base);
diff -Nrcpad gcc-11.3.0/gcc/ira-color.c gcc-11.4.0/gcc/ira-color.c
*** gcc-11.3.0/gcc/ira-color.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ira-color.c	Mon May 29 08:46:29 2023
*************** assign_hard_reg (ira_allocno_t a, bool r
*** 1967,1974 ****
      restore_costs_from_copies (a);
    ALLOCNO_HARD_REGNO (a) = best_hard_regno;
    ALLOCNO_ASSIGNED_P (a) = true;
!   if (best_hard_regno >= 0)
!     update_costs_from_copies (a, true, ! retry_p);
    ira_assert (ALLOCNO_CLASS (a) == aclass);
    /* We don't need updated costs anymore.  */
    ira_free_allocno_updated_costs (a);
--- 1967,1974 ----
      restore_costs_from_copies (a);
    ALLOCNO_HARD_REGNO (a) = best_hard_regno;
    ALLOCNO_ASSIGNED_P (a) = true;
!   if (best_hard_regno >= 0 && !retry_p)
!     update_costs_from_copies (a, true, true);
    ira_assert (ALLOCNO_CLASS (a) == aclass);
    /* We don't need updated costs anymore.  */
    ira_free_allocno_updated_costs (a);
diff -Nrcpad gcc-11.3.0/gcc/ira.c gcc-11.4.0/gcc/ira.c
*** gcc-11.3.0/gcc/ira.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ira.c	Mon May 29 08:46:29 2023
*************** ira (FILE *f)
*** 5613,5618 ****
--- 5613,5619 ----
      regstat_free_ri ();
      regstat_init_n_sets_and_refs ();
      regstat_compute_ri ();
+     resize_reg_info ();
    };
  
    int max_regno_before_rm = max_reg_num ();
diff -Nrcpad gcc-11.3.0/gcc/jit/ChangeLog gcc-11.4.0/gcc/jit/ChangeLog
*** gcc-11.3.0/gcc/jit/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/jit/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/loop-invariant.c gcc-11.4.0/gcc/loop-invariant.c
*** gcc-11.3.0/gcc/loop-invariant.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/loop-invariant.c	Mon May 29 08:46:29 2023
*************** move_invariant_reg (class loop *loop, un
*** 1831,1836 ****
--- 1831,1838 ----
        else if (dump_file)
  	fprintf (dump_file, "Invariant %d moved without introducing a new "
  			    "temporary register\n", invno);
+       if (JUMP_P (BB_END (preheader)))
+ 	preheader = split_edge (loop_preheader_edge (loop));
        reorder_insns (inv->insn, inv->insn, BB_END (preheader));
        df_recompute_luids (preheader);
  
diff -Nrcpad gcc-11.3.0/gcc/lra-assigns.c gcc-11.4.0/gcc/lra-assigns.c
*** gcc-11.3.0/gcc/lra-assigns.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/lra-assigns.c	Mon May 29 08:46:29 2023
*************** lra_split_hard_reg_for (void)
*** 1775,1782 ****
       iterations.  Either it's an asm and something is wrong with the
       constraints, or we have run out of spill registers; error out in
       either case.  */
!   bool asm_p = false;
!   bitmap_head failed_reload_insns, failed_reload_pseudos;
    
    if (lra_dump_file != NULL)
      fprintf (lra_dump_file,
--- 1775,1782 ----
       iterations.  Either it's an asm and something is wrong with the
       constraints, or we have run out of spill registers; error out in
       either case.  */
!   bool asm_p = false, spill_p = false;
!   bitmap_head failed_reload_insns, failed_reload_pseudos, over_split_insns;
    
    if (lra_dump_file != NULL)
      fprintf (lra_dump_file,
*************** lra_split_hard_reg_for (void)
*** 1787,1792 ****
--- 1787,1793 ----
    bitmap_ior (&non_reload_pseudos, &lra_inheritance_pseudos, &lra_split_regs);
    bitmap_ior_into (&non_reload_pseudos, &lra_subreg_reload_pseudos);
    bitmap_ior_into (&non_reload_pseudos, &lra_optional_reload_pseudos);
+   bitmap_initialize (&over_split_insns, &reg_obstack);
    for (i = lra_constraint_new_regno_start; i < max_regno; i++)
      if (reg_renumber[i] < 0 && lra_reg_info[i].nrefs != 0
  	&& (rclass = lra_get_allocno_class (i)) != NO_REGS
*************** lra_split_hard_reg_for (void)
*** 1794,1807 ****
        {
  	if (! find_reload_regno_insns (i, first, last))
  	  continue;
! 	if (BLOCK_FOR_INSN (first) == BLOCK_FOR_INSN (last)
! 	    && spill_hard_reg_in_range (i, rclass, first, last))
  	  {
! 	    bitmap_clear (&failed_reload_pseudos);
! 	    return true;
  	  }
- 	bitmap_set_bit (&failed_reload_pseudos, i);
        }
    bitmap_clear (&non_reload_pseudos);
    bitmap_initialize (&failed_reload_insns, &reg_obstack);
    EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi)
--- 1795,1835 ----
        {
  	if (! find_reload_regno_insns (i, first, last))
  	  continue;
! 	if (BLOCK_FOR_INSN (first) == BLOCK_FOR_INSN (last))
  	  {
! 	    /* Check that we are not trying to split over the same insn
! 	       requiring reloads to avoid splitting the same hard reg twice or
! 	       more.  If we need several hard regs splitting over the same insn
! 	       it can be finished on the next iterations.
! 
! 	       The following loop iteration number is small as we split hard
! 	       reg in a very small range.  */
! 	    for (insn = first;
! 		 insn != NEXT_INSN (last);
! 		 insn = NEXT_INSN (insn))
! 	      if (bitmap_bit_p (&over_split_insns, INSN_UID (insn)))
! 		break;
! 	    if (insn != NEXT_INSN (last)
! 		|| !spill_hard_reg_in_range (i, rclass, first, last))
! 	      {
! 		bitmap_set_bit (&failed_reload_pseudos, i);
! 	      }
! 	    else
! 	      {
! 		for (insn = first;
! 		     insn != NEXT_INSN (last);
! 		     insn = NEXT_INSN (insn))
! 		  bitmap_set_bit (&over_split_insns, INSN_UID (insn));
! 		spill_p = true;
! 	      }
  	  }
        }
+   bitmap_clear (&over_split_insns);
+   if (spill_p)
+     {
+       bitmap_clear (&failed_reload_pseudos);
+       return true;
+     }
    bitmap_clear (&non_reload_pseudos);
    bitmap_initialize (&failed_reload_insns, &reg_obstack);
    EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi)
diff -Nrcpad gcc-11.3.0/gcc/lto/ChangeLog gcc-11.4.0/gcc/lto/ChangeLog
*** gcc-11.3.0/gcc/lto/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/lto/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/lto-streamer-in.c gcc-11.4.0/gcc/lto-streamer-in.c
*** gcc-11.3.0/gcc/lto-streamer-in.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/lto-streamer-in.c	Mon May 29 08:46:29 2023
*************** lto_read_tree_1 (class lto_input_block *
*** 1699,1709 ****
    /* Read all the pointer fields in EXPR.  */
    streamer_read_tree_body (ib, data_in, expr);
  
!   /* Read any LTO-specific data not read by the tree streamer.  */
    if (DECL_P (expr)
        && TREE_CODE (expr) != FUNCTION_DECL
        && TREE_CODE (expr) != TRANSLATION_UNIT_DECL)
!     DECL_INITIAL (expr) = stream_read_tree (ib, data_in);
  
    /* Stream references to early generated DIEs.  Keep in sync with the
       trees handled in dwarf2out_register_external_die.  */
--- 1699,1712 ----
    /* Read all the pointer fields in EXPR.  */
    streamer_read_tree_body (ib, data_in, expr);
  
!   /* Read any LTO-specific data not read by the tree streamer.  Do not use
!      stream_read_tree here since that flushes the dref_queue in mids of
!      SCC reading.  */
    if (DECL_P (expr)
        && TREE_CODE (expr) != FUNCTION_DECL
        && TREE_CODE (expr) != TRANSLATION_UNIT_DECL)
!     DECL_INITIAL (expr)
!       = lto_input_tree_1 (ib, data_in, streamer_read_record_start (ib), 0);
  
    /* Stream references to early generated DIEs.  Keep in sync with the
       trees handled in dwarf2out_register_external_die.  */
diff -Nrcpad gcc-11.3.0/gcc/lto-wrapper.c gcc-11.4.0/gcc/lto-wrapper.c
*** gcc-11.3.0/gcc/lto-wrapper.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/lto-wrapper.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 37,42 ****
--- 37,43 ----
     ./ccCJuXGv.lto.ltrans.o
  */
  
+ #define INCLUDE_STRING
  #include "config.h"
  #include "system.h"
  #include "coretypes.h"
*************** along with GCC; see the file COPYING3.
*** 48,53 ****
--- 49,55 ----
  #include "simple-object.h"
  #include "lto-section-names.h"
  #include "collect-utils.h"
+ #include "opts-jobserver.h"
  
  /* Environment variable, used for passing the names of offload targets from GCC
     driver to lto-wrapper.  */
*************** init_num_threads (void)
*** 1304,1340 ****
  #endif
  }
  
- /* FIXME: once using -std=c++11, we can use std::thread::hardware_concurrency.  */
- 
- /* Test and return reason why a jobserver cannot be detected.  */
- 
- static const char *
- jobserver_active_p (void)
- {
-   #define JS_PREFIX "jobserver is not available: "
-   #define JS_NEEDLE "--jobserver-auth="
- 
-   const char *makeflags = getenv ("MAKEFLAGS");
-   if (makeflags == NULL)
-     return JS_PREFIX "%<MAKEFLAGS%> environment variable is unset";
- 
-   const char *n = strstr (makeflags, JS_NEEDLE);
-   if (n == NULL)
-     return JS_PREFIX "%<" JS_NEEDLE "%> is not present in %<MAKEFLAGS%>";
- 
-   int rfd = -1;
-   int wfd = -1;
- 
-   if (sscanf (n + strlen (JS_NEEDLE), "%d,%d", &rfd, &wfd) == 2
-       && rfd > 0
-       && wfd > 0
-       && is_valid_fd (rfd)
-       && is_valid_fd (wfd))
-     return NULL;
-   else
-     return JS_PREFIX "cannot access %<" JS_NEEDLE "%> file descriptors";
- }
- 
  /* Test that a make command is present and working, return true if so.  */
  
  static bool
--- 1306,1311 ----
*************** run_gcc (unsigned argc, char *argv[])
*** 1549,1554 ****
--- 1520,1533 ----
  	  skip_debug = option->arg && !strcmp (option->arg, "0");
  	  break;
  
+ 	case OPT_gdwarf:
+ 	case OPT_gdwarf_:
+ 	case OPT_ggdb:
+ 	case OPT_gvms:
+ 	  /* Negative forms, if allowed, enable debug info as well.  */
+ 	  skip_debug = false;
+ 	  break;
+ 
  	case OPT_dumpdir:
  	  incoming_dumppfx = dumppfx = option->arg;
  	  break;
*************** run_gcc (unsigned argc, char *argv[])
*** 1581,1594 ****
      }
    else
      {
!       const char *jobserver_error = jobserver_active_p ();
!       if (jobserver && jobserver_error != NULL)
  	{
! 	  warning (0, jobserver_error);
  	  parallel = 0;
  	  jobserver = 0;
  	}
!       else if (!jobserver && jobserver_error == NULL)
  	{
  	  parallel = 1;
  	  jobserver = 1;
--- 1560,1573 ----
      }
    else
      {
!       jobserver_info jinfo;
!       if (jobserver && !jinfo.is_active)
  	{
! 	  warning (0, jinfo.error_msg.c_str ());
  	  parallel = 0;
  	  jobserver = 0;
  	}
!       else if (!jobserver && jinfo.is_active)
  	{
  	  parallel = 1;
  	  jobserver = 1;
*************** cont:
*** 1903,1908 ****
--- 1882,1896 ----
        maybe_unlink (ltrans_output_file);
        ltrans_output_file = NULL;
  
+       if (nr > 1)
+ 	{
+ 	  jobserver_info jinfo;
+ 	  if (jobserver && !jinfo.is_active)
+ 	    warning (0, jinfo.error_msg.c_str ());
+ 	  else if (parallel == 0)
+ 	    warning (0, "using serial compilation of %d LTRANS jobs", nr);
+ 	}
+ 
        if (parallel)
  	{
  	  makefile = make_temp_file (".mk");
diff -Nrcpad gcc-11.3.0/gcc/match.pd gcc-11.4.0/gcc/match.pd
*** gcc-11.3.0/gcc/match.pd	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/match.pd	Mon May 29 08:46:29 2023
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 4114,4120 ****
    (if (! FLOAT_TYPE_P (TREE_TYPE (@0))
         || ! HONOR_NANS (@0))
     { constant_boolean_node (true, type); }
!    (if (cmp != EQ_EXPR)
      (eq @0 @0)))))
  (for cmp (ne gt lt)
   (simplify
--- 4114,4123 ----
    (if (! FLOAT_TYPE_P (TREE_TYPE (@0))
         || ! HONOR_NANS (@0))
     { constant_boolean_node (true, type); }
!    (if (cmp != EQ_EXPR
! 	/* With -ftrapping-math conversion to EQ loses an exception.  */
! 	&& (! FLOAT_TYPE_P (TREE_TYPE (@0))
! 	    || ! flag_trapping_math))
      (eq @0 @0)))))
  (for cmp (ne gt lt)
   (simplify
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6261,6267 ****
        isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (@1)));
    }
    (switch
!    (if (wi::leu_p (wi::to_wide (@ipos), wi::to_wide (@rpos))
  	&& wi::leu_p (wi::to_wide (@rpos) + wi::to_wide (@rsize),
  		      wi::to_wide (@ipos) + isize))
      (BIT_FIELD_REF @1 @rsize { wide_int_to_tree (bitsizetype,
--- 6264,6272 ----
        isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (@1)));
    }
    (switch
!    (if ((!INTEGRAL_TYPE_P (TREE_TYPE (@1))
!          || type_has_mode_precision_p (TREE_TYPE (@1)))
!         && wi::leu_p (wi::to_wide (@ipos), wi::to_wide (@rpos))
  	&& wi::leu_p (wi::to_wide (@rpos) + wi::to_wide (@rsize),
  		      wi::to_wide (@ipos) + isize))
      (BIT_FIELD_REF @1 @rsize { wide_int_to_tree (bitsizetype,
diff -Nrcpad gcc-11.3.0/gcc/objc/ChangeLog gcc-11.4.0/gcc/objc/ChangeLog
*** gcc-11.3.0/gcc/objc/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/objc/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/objcp/ChangeLog gcc-11.4.0/gcc/objcp/ChangeLog
*** gcc-11.3.0/gcc/objcp/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/objcp/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/omp-expand.c gcc-11.4.0/gcc/omp-expand.c
*** gcc-11.3.0/gcc/omp-expand.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/omp-expand.c	Mon May 29 08:46:29 2023
*************** expand_omp_for_init_counts (struct omp_f
*** 1982,1989 ****
  	    t = fold_build2 (MINUS_EXPR, itype, unshare_expr (fd->loops[i].m2),
  			     unshare_expr (fd->loops[i].m1));
  	  else if (fd->loops[i].m1)
! 	    t = fold_unary (NEGATE_EXPR, itype,
! 			    unshare_expr (fd->loops[i].m1));
  	  else
  	    t = unshare_expr (fd->loops[i].m2);
  	  tree m2minusm1
--- 1982,1989 ----
  	    t = fold_build2 (MINUS_EXPR, itype, unshare_expr (fd->loops[i].m2),
  			     unshare_expr (fd->loops[i].m1));
  	  else if (fd->loops[i].m1)
! 	    t = fold_build1 (NEGATE_EXPR, itype,
! 			     unshare_expr (fd->loops[i].m1));
  	  else
  	    t = unshare_expr (fd->loops[i].m2);
  	  tree m2minusm1
*************** expand_omp_ordered_source_sink (struct o
*** 3501,3507 ****
  static basic_block
  expand_omp_for_ordered_loops (struct omp_for_data *fd, tree *counts,
  			      basic_block cont_bb, basic_block body_bb,
! 			      bool ordered_lastprivate)
  {
    if (fd->ordered == fd->collapse)
      return cont_bb;
--- 3501,3507 ----
  static basic_block
  expand_omp_for_ordered_loops (struct omp_for_data *fd, tree *counts,
  			      basic_block cont_bb, basic_block body_bb,
! 			      basic_block l0_bb, bool ordered_lastprivate)
  {
    if (fd->ordered == fd->collapse)
      return cont_bb;
*************** expand_omp_for_ordered_loops (struct omp
*** 3606,3612 ****
  	  class loop *loop = alloc_loop ();
  	  loop->header = new_header;
  	  loop->latch = e2->src;
! 	  add_loop (loop, body_bb->loop_father);
  	}
      }
  
--- 3606,3612 ----
  	  class loop *loop = alloc_loop ();
  	  loop->header = new_header;
  	  loop->latch = e2->src;
! 	  add_loop (loop, l0_bb->loop_father);
  	}
      }
  
*************** expand_omp_for_generic (struct omp_regio
*** 4294,4302 ****
  	    }
  	  if (i < fd->ordered)
  	    {
  	      cont_bb
  		= create_empty_bb (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb);
! 	      add_bb_to_loop (cont_bb, l1_bb->loop_father);
  	      gimple_stmt_iterator gsi = gsi_after_labels (cont_bb);
  	      gimple *g = gimple_build_omp_continue (fd->loop.v, fd->loop.v);
  	      gsi_insert_before (&gsi, g, GSI_SAME_STMT);
--- 4294,4308 ----
  	    }
  	  if (i < fd->ordered)
  	    {
+ 	      if (entry_bb->loop_father != l0_bb->loop_father)
+ 		{
+ 		  remove_bb_from_loops (l0_bb);
+ 		  add_bb_to_loop (l0_bb, entry_bb->loop_father);
+ 		  gcc_assert (single_succ (l0_bb) == l1_bb);
+ 		}
  	      cont_bb
  		= create_empty_bb (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb);
! 	      add_bb_to_loop (cont_bb, l0_bb->loop_father);
  	      gimple_stmt_iterator gsi = gsi_after_labels (cont_bb);
  	      gimple *g = gimple_build_omp_continue (fd->loop.v, fd->loop.v);
  	      gsi_insert_before (&gsi, g, GSI_SAME_STMT);
*************** expand_omp_for_generic (struct omp_regio
*** 4308,4314 ****
  	}
        expand_omp_ordered_source_sink (region, fd, counts, cont_bb);
        cont_bb = expand_omp_for_ordered_loops (fd, counts, cont_bb, l1_bb,
! 					      ordered_lastprivate);
        if (counts[fd->collapse - 1])
  	{
  	  gcc_assert (fd->collapse == 1);
--- 4314,4320 ----
  	}
        expand_omp_ordered_source_sink (region, fd, counts, cont_bb);
        cont_bb = expand_omp_for_ordered_loops (fd, counts, cont_bb, l1_bb,
! 					      l0_bb, ordered_lastprivate);
        if (counts[fd->collapse - 1])
  	{
  	  gcc_assert (fd->collapse == 1);
*************** build_omp_regions_1 (basic_block bb, str
*** 10043,10049 ****
  		case GF_OMP_TARGET_KIND_OACC_UPDATE:
  		case GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA:
  		case GF_OMP_TARGET_KIND_OACC_DECLARE:
! 		  /* ..., other than for those stand-alone directives...  */
  		  region = NULL;
  		  break;
  		default:
--- 10049,10058 ----
  		case GF_OMP_TARGET_KIND_OACC_UPDATE:
  		case GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA:
  		case GF_OMP_TARGET_KIND_OACC_DECLARE:
! 		  /* ..., other than for those stand-alone directives...
! 		     To be precise, target data isn't stand-alone, but
! 		     gimplifier put the end API call into try finally block
! 		     for it, so omp expansion can treat it as such.  */
  		  region = NULL;
  		  break;
  		default:
*************** build_omp_regions_1 (basic_block bb, str
*** 10061,10066 ****
--- 10070,10080 ----
  		   && gimple_omp_task_taskwait_p (stmt))
  	    /* #pragma omp taskwait depend(...) is a stand-alone directive.  */
  	    region = NULL;
+ 	  else if (code == GIMPLE_OMP_TASKGROUP)
+ 	    /* #pragma omp taskgroup isn't a stand-alone directive, but
+ 	       gimplifier put the end API call into try finall block
+ 	       for it, so omp expansion can treat it as such.  */
+ 	    region = NULL;
  	  /* ..., this directive becomes the parent for a new region.  */
  	  if (region)
  	    parent = region;
*************** omp_make_gimple_edges (basic_block bb, s
*** 10255,10267 ****
      case GIMPLE_OMP_SINGLE:
      case GIMPLE_OMP_TEAMS:
      case GIMPLE_OMP_MASTER:
-     case GIMPLE_OMP_TASKGROUP:
      case GIMPLE_OMP_CRITICAL:
      case GIMPLE_OMP_SECTION:
        cur_region = new_omp_region (bb, code, cur_region);
        fallthru = true;
        break;
  
      case GIMPLE_OMP_TASK:
        cur_region = new_omp_region (bb, code, cur_region);
        fallthru = true;
--- 10269,10286 ----
      case GIMPLE_OMP_SINGLE:
      case GIMPLE_OMP_TEAMS:
      case GIMPLE_OMP_MASTER:
      case GIMPLE_OMP_CRITICAL:
      case GIMPLE_OMP_SECTION:
        cur_region = new_omp_region (bb, code, cur_region);
        fallthru = true;
        break;
  
+     case GIMPLE_OMP_TASKGROUP:
+       cur_region = new_omp_region (bb, code, cur_region);
+       fallthru = true;
+       cur_region = cur_region->outer;
+       break;
+ 
      case GIMPLE_OMP_TASK:
        cur_region = new_omp_region (bb, code, cur_region);
        fallthru = true;
diff -Nrcpad gcc-11.3.0/gcc/omp-low.c gcc-11.4.0/gcc/omp-low.c
*** gcc-11.3.0/gcc/omp-low.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/omp-low.c	Mon May 29 08:46:29 2023
*************** lower_rec_input_clauses (tree clauses, g
*** 5903,5912 ****
  			}
  
  		      if (POINTER_TYPE_P (TREE_TYPE (x)))
! 			x = fold_build2 (POINTER_PLUS_EXPR,
! 					 TREE_TYPE (x), x, t);
  		      else
! 			x = fold_build2 (PLUS_EXPR, TREE_TYPE (x), x, t);
  		    }
  
  		  if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_LINEAR
--- 5903,5912 ----
  			}
  
  		      if (POINTER_TYPE_P (TREE_TYPE (x)))
! 			x = fold_build_pointer_plus (x, t);
  		      else
! 			x = fold_build2 (PLUS_EXPR, TREE_TYPE (x), x,
! 					 fold_convert (TREE_TYPE (x), t));
  		    }
  
  		  if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_LINEAR
*************** lower_omp_taskgroup (gimple_stmt_iterato
*** 9217,9223 ****
    gimple_bind_add_seq (bind, gimple_omp_body (stmt));
    gimple_omp_set_body (stmt, NULL);
  
-   gimple_bind_add_stmt (bind, gimple_build_omp_return (true));
    gimple_bind_add_seq (bind, dseq);
  
    pop_gimplify_context (bind);
--- 9217,9222 ----
*************** lower_omp_target (gimple_stmt_iterator *
*** 12911,12917 ****
  				     gimple_build_assign (new_var, x));
  	      }
  	    tree present;
! 	    present = (do_optional_check
  		       ? omp_check_optional_argument (OMP_CLAUSE_DECL (c), true)
  		       : NULL_TREE);
  	    if (present)
--- 12910,12917 ----
  				     gimple_build_assign (new_var, x));
  	      }
  	    tree present;
! 	    present = ((do_optional_check
! 			&& OMP_CLAUSE_CODE (c) != OMP_CLAUSE_IS_DEVICE_PTR)
  		       ? omp_check_optional_argument (OMP_CLAUSE_DECL (c), true)
  		       : NULL_TREE);
  	    if (present)
diff -Nrcpad gcc-11.3.0/gcc/optc-save-gen.awk gcc-11.4.0/gcc/optc-save-gen.awk
*** gcc-11.3.0/gcc/optc-save-gen.awk	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/optc-save-gen.awk	Mon May 29 08:46:29 2023
*************** for (i = 0; i < n_target_string; i++) {
*** 1013,1019 ****
  	print "             indent, \"\",";
  	print "             \"" name "\",";
  	print "             ptr1->x_" name " ? ptr1->x_" name " : \"(null)\",";
! 	print "             ptr2->x_" name " ? ptr1->x_" name " : \"(null)\");";
  	print "";
  }
  
--- 1013,1019 ----
  	print "             indent, \"\",";
  	print "             \"" name "\",";
  	print "             ptr1->x_" name " ? ptr1->x_" name " : \"(null)\",";
! 	print "             ptr2->x_" name " ? ptr2->x_" name " : \"(null)\");";
  	print "";
  }
  
diff -Nrcpad gcc-11.3.0/gcc/opts-common.c gcc-11.4.0/gcc/opts-common.c
*** gcc-11.3.0/gcc/opts-common.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/opts-common.c	Mon May 29 08:46:29 2023
*************** You should have received a copy of the G
*** 17,22 ****
--- 17,23 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
+ #define INCLUDE_STRING
  #include "config.h"
  #include "system.h"
  #include "intl.h"
*************** along with GCC; see the file COPYING3.
*** 25,30 ****
--- 26,32 ----
  #include "options.h"
  #include "diagnostic.h"
  #include "spellcheck.h"
+ #include "opts-jobserver.h"
  
  static void prune_options (struct cl_decoded_option **, unsigned int *);
  
*************** void prepend_xassembler_to_collect_as_op
*** 1848,1850 ****
--- 1850,1904 ----
        obstack_1grow (o, '\'');
      }
  }
+ 
+ jobserver_info::jobserver_info ()
+ {
+   /* Traditionally, GNU make uses opened pipes for jobserver-auth,
+     e.g. --jobserver-auth=3,4.
+     Starting with GNU make 4.4, one can use --jobserver-style=fifo
+     and then named pipe is used: --jobserver-auth=fifo:/tmp/hcsparta.  */
+ 
+   /* Detect jobserver and drop it if it's not working.  */
+   string js_needle = "--jobserver-auth=";
+   string fifo_prefix = "fifo:";
+ 
+   const char *envval = getenv ("MAKEFLAGS");
+   if (envval != NULL)
+     {
+       string makeflags = envval;
+       size_t n = makeflags.rfind (js_needle);
+       if (n != string::npos)
+ 	{
+ 	  string ending = makeflags.substr (n + js_needle.size ());
+ 	  if (ending.find (fifo_prefix) == 0)
+ 	    {
+ 	      ending = ending.substr (fifo_prefix.size ());
+ 	      pipe_path = ending.substr (0, ending.find (' '));
+ 	      is_active = true;
+ 	    }
+ 	  else if (sscanf (makeflags.c_str () + n + js_needle.size (),
+ 			   "%d,%d", &rfd, &wfd) == 2
+ 	      && rfd > 0
+ 	      && wfd > 0
+ 	      && is_valid_fd (rfd)
+ 	      && is_valid_fd (wfd))
+ 	    is_active = true;
+ 	  else
+ 	    {
+ 	      string dup = makeflags.substr (0, n);
+ 	      size_t pos = makeflags.find (' ', n);
+ 	      if (pos != string::npos)
+ 		dup += makeflags.substr (pos);
+ 	      skipped_makeflags = "MAKEFLAGS=" + dup;
+ 	      error_msg
+ 		= "cannot access %<" + js_needle + "%> file descriptors";
+ 	    }
+ 	}
+       error_msg = "%<" + js_needle + "%> is not present in %<MAKEFLAGS%>";
+     }
+   else
+     error_msg = "%<MAKEFLAGS%> environment variable is unset";
+ 
+   if (!error_msg.empty ())
+     error_msg = "jobserver is not available: " + error_msg;
+ }
diff -Nrcpad gcc-11.3.0/gcc/opts-jobserver.h gcc-11.4.0/gcc/opts-jobserver.h
*** gcc-11.3.0/gcc/opts-jobserver.h	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/opts-jobserver.h	Mon May 29 08:46:29 2023
***************
*** 0 ****
--- 1,46 ----
+ /* GNU make's jobserver related functionality.
+    Copyright (C) 2022 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/>.
+ 
+ See dbgcnt.def for usage information.  */
+ 
+ #ifndef GCC_JOBSERVER_H
+ #define GCC_JOBSERVER_H
+ 
+ using namespace std;
+ 
+ struct jobserver_info
+ {
+   /* Default constructor.  */
+   jobserver_info ();
+ 
+   /* Error message if there is a problem.  */
+   string error_msg = "";
+   /* Skipped MAKEFLAGS where --jobserver-auth is skipped.  */
+   string skipped_makeflags = "";
+   /* File descriptor for reading used for jobserver communication.  */
+   int rfd = -1;
+   /* File descriptor for writing used for jobserver communication.  */
+   int wfd = -1;
+   /* Named pipe path.  */
+   string pipe_path = "";
+   /* Return true if jobserver is active.  */
+   bool is_active = false;
+ };
+ 
+ #endif /* GCC_JOBSERVER_H */
diff -Nrcpad gcc-11.3.0/gcc/po/ChangeLog gcc-11.4.0/gcc/po/ChangeLog
*** gcc-11.3.0/gcc/po/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/po/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/postreload.c gcc-11.4.0/gcc/postreload.c
*** gcc-11.3.0/gcc/postreload.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/postreload.c	Mon May 29 08:46:29 2023
*************** along with GCC; see the file COPYING3.
*** 43,49 ****
  #include "function-abi.h"
  #include "rtl-iter.h"
  
- static int reload_cse_noop_set_p (rtx);
  static bool reload_cse_simplify (rtx_insn *, rtx);
  static void reload_cse_regs_1 (void);
  static int reload_cse_simplify_set (rtx, rtx_insn *);
--- 43,48 ----
*************** reload_cse_regs (rtx_insn *first ATTRIBU
*** 74,89 ****
      }
  }
  
- /* See whether a single set SET is a noop.  */
- static int
- reload_cse_noop_set_p (rtx set)
- {
-   if (cselib_reg_set_mode (SET_DEST (set)) != GET_MODE (SET_DEST (set)))
-     return 0;
- 
-   return rtx_equal_for_cselib_p (SET_DEST (set), SET_SRC (set));
- }
- 
  /* Try to simplify INSN.  Return true if the CFG may have changed.  */
  static bool
  reload_cse_simplify (rtx_insn *insn, rtx testreg)
--- 73,78 ----
*************** reload_cse_simplify (rtx_insn *insn, rtx
*** 118,124 ****
           this out, so it's safer to simplify before we delete.  */
        count += reload_cse_simplify_set (body, insn);
  
!       if (!count && reload_cse_noop_set_p (body))
  	{
  	  if (check_for_inc_dec (insn))
  	    delete_insn_and_edges (insn);
--- 107,113 ----
           this out, so it's safer to simplify before we delete.  */
        count += reload_cse_simplify_set (body, insn);
  
!       if (!count && cselib_redundant_set_p (body))
  	{
  	  if (check_for_inc_dec (insn))
  	    delete_insn_and_edges (insn);
*************** reload_cse_simplify (rtx_insn *insn, rtx
*** 157,163 ****
  	  rtx part = XVECEXP (body, 0, i);
  	  if (GET_CODE (part) == SET)
  	    {
! 	      if (! reload_cse_noop_set_p (part))
  		break;
  	      if (REG_P (SET_DEST (part))
  		  && REG_FUNCTION_VALUE_P (SET_DEST (part)))
--- 146,152 ----
  	  rtx part = XVECEXP (body, 0, i);
  	  if (GET_CODE (part) == SET)
  	    {
! 	      if (! cselib_redundant_set_p (part))
  		break;
  	      if (REG_P (SET_DEST (part))
  		  && REG_FUNCTION_VALUE_P (SET_DEST (part)))
diff -Nrcpad gcc-11.3.0/gcc/predict.c gcc-11.4.0/gcc/predict.c
*** gcc-11.3.0/gcc/predict.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/predict.c	Mon May 29 08:46:29 2023
*************** compute_function_frequency (void)
*** 4023,4029 ****
      }
  
    node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED;
!   warn_function_cold (current_function_decl);
    if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa() == profile_count::zero ())
      return;
    FOR_EACH_BB_FN (bb, cfun)
--- 4023,4031 ----
      }
  
    node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED;
!   if (lookup_attribute ("cold", DECL_ATTRIBUTES (current_function_decl))
!       == NULL)
!     warn_function_cold (current_function_decl);
    if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa() == profile_count::zero ())
      return;
    FOR_EACH_BB_FN (bb, cfun)
diff -Nrcpad gcc-11.3.0/gcc/range-op.cc gcc-11.4.0/gcc/range-op.cc
*** gcc-11.3.0/gcc/range-op.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/range-op.cc	Mon May 29 08:46:29 2023
*************** operator_bitwise_xor::op1_range (irange
*** 2649,2654 ****
--- 2649,2657 ----
  	    r.set_varying (type);
  	  else if (op2.zero_p ())
  	    r = range_true (type);
+ 	  // See get_bool_state for the rationale
+ 	  else if (op2.contains_p (build_zero_cst (op2.type ())))
+ 	    r = range_true_and_false (type);
  	  else
  	    r = range_false (type);
  	  break;
diff -Nrcpad gcc-11.3.0/gcc/ree.c gcc-11.4.0/gcc/ree.c
*** gcc-11.3.0/gcc/ree.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/ree.c	Mon May 29 08:46:29 2023
*************** combine_reaching_defs (ext_cand *cand, c
*** 876,882 ****
  
  	  for (df_link *use = uses; use; use = use->next)
  	    if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)),
! 				      GET_MODE (SET_DEST (*dest_sub_rtx))))
  	      return false;
  	}
  
--- 876,883 ----
  
  	  for (df_link *use = uses; use; use = use->next)
  	    if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)),
! 				      GET_MODE (SET_DEST (*dest_sub_rtx)))
! 		&& !DEBUG_INSN_P (DF_REF_INSN (use->ref)))
  	      return false;
  	}
  
*************** combine_reaching_defs (ext_cand *cand, c
*** 965,971 ****
  	      rtx dest2 = SET_DEST (*dest_sub_rtx2);
  	      for (use = uses; use; use = use->next)
  		if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)),
! 					  GET_MODE (dest2)))
  		  break;
  	      if (use)
  		break;
--- 966,973 ----
  	      rtx dest2 = SET_DEST (*dest_sub_rtx2);
  	      for (use = uses; use; use = use->next)
  		if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)),
! 					  GET_MODE (dest2))
! 		    && !DEBUG_INSN_P (DF_REF_INSN (use->ref)))
  		  break;
  	      if (use)
  		break;
diff -Nrcpad gcc-11.3.0/gcc/reg-stack.c gcc-11.4.0/gcc/reg-stack.c
*** gcc-11.3.0/gcc/reg-stack.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/reg-stack.c	Mon May 29 08:46:29 2023
*************** static void swap_to_top (rtx_insn *, sta
*** 262,275 ****
  static bool move_for_stack_reg (rtx_insn *, stack_ptr, rtx);
  static bool move_nan_for_stack_reg (rtx_insn *, stack_ptr, rtx);
  static int swap_rtx_condition_1 (rtx);
! static int swap_rtx_condition (rtx_insn *);
  static void compare_for_stack_reg (rtx_insn *, stack_ptr, rtx, bool);
  static bool subst_stack_regs_pat (rtx_insn *, stack_ptr, rtx);
  static void subst_asm_stack_regs (rtx_insn *, stack_ptr);
  static bool subst_stack_regs (rtx_insn *, stack_ptr);
  static void change_stack (rtx_insn *, stack_ptr, stack_ptr, enum emit_where);
  static void print_stack (FILE *, stack_ptr);
! static rtx_insn *next_flags_user (rtx_insn *);
  
  /* Return nonzero if any stack register is mentioned somewhere within PAT.  */
  
--- 262,275 ----
  static bool move_for_stack_reg (rtx_insn *, stack_ptr, rtx);
  static bool move_nan_for_stack_reg (rtx_insn *, stack_ptr, rtx);
  static int swap_rtx_condition_1 (rtx);
! static int swap_rtx_condition (rtx_insn *, int &);
  static void compare_for_stack_reg (rtx_insn *, stack_ptr, rtx, bool);
  static bool subst_stack_regs_pat (rtx_insn *, stack_ptr, rtx);
  static void subst_asm_stack_regs (rtx_insn *, stack_ptr);
  static bool subst_stack_regs (rtx_insn *, stack_ptr);
  static void change_stack (rtx_insn *, stack_ptr, stack_ptr, enum emit_where);
  static void print_stack (FILE *, stack_ptr);
! static rtx_insn *next_flags_user (rtx_insn *, int &);
  
  /* Return nonzero if any stack register is mentioned somewhere within PAT.  */
  
*************** stack_regs_mentioned (const_rtx insn)
*** 335,341 ****
  static rtx ix86_flags_rtx;
  
  static rtx_insn *
! next_flags_user (rtx_insn *insn)
  {
    /* Search forward looking for the first use of this value.
       Stop at block boundaries.  */
--- 335,341 ----
  static rtx ix86_flags_rtx;
  
  static rtx_insn *
! next_flags_user (rtx_insn *insn, int &debug_seen)
  {
    /* Search forward looking for the first use of this value.
       Stop at block boundaries.  */
*************** next_flags_user (rtx_insn *insn)
*** 345,351 ****
        insn = NEXT_INSN (insn);
  
        if (INSN_P (insn) && reg_mentioned_p (ix86_flags_rtx, PATTERN (insn)))
! 	return insn;
  
        if (CALL_P (insn))
  	return NULL;
--- 345,358 ----
        insn = NEXT_INSN (insn);
  
        if (INSN_P (insn) && reg_mentioned_p (ix86_flags_rtx, PATTERN (insn)))
! 	{
! 	  if (DEBUG_INSN_P (insn) && debug_seen >= 0)
! 	    {
! 	      debug_seen = 1;
! 	      continue;
! 	    }
! 	  return insn;
! 	}
  
        if (CALL_P (insn))
  	return NULL;
*************** swap_rtx_condition_1 (rtx pat)
*** 1246,1253 ****
    return r;
  }
  
  static int
! swap_rtx_condition (rtx_insn *insn)
  {
    rtx pat = PATTERN (insn);
  
--- 1253,1274 ----
    return r;
  }
  
+ /* This function swaps condition in cc users and returns true
+    if successful.  It is invoked in 2 different modes, one with
+    DEBUG_SEEN set initially to 0.  In this mode, next_flags_user
+    will skip DEBUG_INSNs that it would otherwise return and just
+    sets DEBUG_SEEN to 1 in that case.  If DEBUG_SEEN is 0 at
+    the end of toplevel swap_rtx_condition which returns true,
+    it means no problematic DEBUG_INSNs were seen and all changes
+    have been applied.  If it returns true but DEBUG_SEEN is 1,
+    it means some problematic DEBUG_INSNs were seen and no changes
+    have been applied so far.  In that case one needs to call
+    swap_rtx_condition again with DEBUG_SEEN set to -1, in which
+    case it doesn't skip DEBUG_INSNs, but instead adjusts the
+    flags related condition in them or resets them as needed.  */
+ 
  static int
! swap_rtx_condition (rtx_insn *insn, int &debug_seen)
  {
    rtx pat = PATTERN (insn);
  
*************** swap_rtx_condition (rtx_insn *insn)
*** 1257,1263 ****
        && REG_P (SET_DEST (pat))
        && REGNO (SET_DEST (pat)) == FLAGS_REG)
      {
!       insn = next_flags_user (insn);
        if (insn == NULL_RTX)
  	return 0;
        pat = PATTERN (insn);
--- 1278,1284 ----
        && REG_P (SET_DEST (pat))
        && REGNO (SET_DEST (pat)) == FLAGS_REG)
      {
!       insn = next_flags_user (insn, debug_seen);
        if (insn == NULL_RTX)
  	return 0;
        pat = PATTERN (insn);
*************** swap_rtx_condition (rtx_insn *insn)
*** 1279,1285 ****
  	{
  	  insn = NEXT_INSN (insn);
  	  if (INSN_P (insn) && reg_mentioned_p (dest, insn))
! 	    break;
  	  if (CALL_P (insn))
  	    return 0;
  	}
--- 1300,1317 ----
  	{
  	  insn = NEXT_INSN (insn);
  	  if (INSN_P (insn) && reg_mentioned_p (dest, insn))
! 	    {
! 	      if (DEBUG_INSN_P (insn))
! 		{
! 		  if (debug_seen >= 0)
! 		    debug_seen = 1;
! 		  else
! 		    /* Reset the DEBUG insn otherwise.  */
! 		    INSN_VAR_LOCATION_LOC (insn) = gen_rtx_UNKNOWN_VAR_LOC ();
! 		  continue;
! 		}
! 	      break;
! 	    }
  	  if (CALL_P (insn))
  	    return 0;
  	}
*************** swap_rtx_condition (rtx_insn *insn)
*** 1299,1305 ****
  	return 0;
  
        /* Now we are prepared to handle this as a normal cc0 setter.  */
!       insn = next_flags_user (insn);
        if (insn == NULL_RTX)
  	return 0;
        pat = PATTERN (insn);
--- 1331,1337 ----
  	return 0;
  
        /* Now we are prepared to handle this as a normal cc0 setter.  */
!       insn = next_flags_user (insn, debug_seen);
        if (insn == NULL_RTX)
  	return 0;
        pat = PATTERN (insn);
*************** swap_rtx_condition (rtx_insn *insn)
*** 1308,1330 ****
    if (swap_rtx_condition_1 (pat))
      {
        int fail = 0;
!       INSN_CODE (insn) = -1;
!       if (recog_memoized (insn) == -1)
! 	fail = 1;
!       /* In case the flags don't die here, recurse to try fix
!          following user too.  */
!       else if (! dead_or_set_p (insn, ix86_flags_rtx))
  	{
! 	  insn = next_flags_user (insn);
! 	  if (!insn || !swap_rtx_condition (insn))
  	    fail = 1;
  	}
!       if (fail)
  	{
! 	  swap_rtx_condition_1 (pat);
! 	  return 0;
  	}
!       return 1;
      }
    return 0;
  }
--- 1340,1364 ----
    if (swap_rtx_condition_1 (pat))
      {
        int fail = 0;
!       if (DEBUG_INSN_P (insn))
! 	gcc_assert (debug_seen < 0);
!       else
  	{
! 	  INSN_CODE (insn) = -1;
! 	  if (recog_memoized (insn) == -1)
  	    fail = 1;
  	}
!       /* In case the flags don't die here, recurse to try fix
! 	 following user too.  */
!       if (!fail && !dead_or_set_p (insn, ix86_flags_rtx))
  	{
! 	  insn = next_flags_user (insn, debug_seen);
! 	  if (!insn || !swap_rtx_condition (insn, debug_seen))
! 	    fail = 1;
  	}
!       if (fail || debug_seen == 1)
! 	swap_rtx_condition_1 (pat);
!       return !fail;
      }
    return 0;
  }
*************** compare_for_stack_reg (rtx_insn *insn, s
*** 1343,1348 ****
--- 1377,1383 ----
  {
    rtx *src1, *src2;
    rtx src1_note, src2_note;
+   int debug_seen = 0;
  
    src1 = get_true_reg (&XEXP (pat_src, 0));
    src2 = get_true_reg (&XEXP (pat_src, 1));
*************** compare_for_stack_reg (rtx_insn *insn, s
*** 1352,1359 ****
    if ((! STACK_REG_P (*src1)
         || (STACK_REG_P (*src2)
  	   && get_hard_regnum (regstack, *src2) == FIRST_STACK_REG))
!       && swap_rtx_condition (insn))
      {
        std::swap (XEXP (pat_src, 0), XEXP (pat_src, 1));
  
        src1 = get_true_reg (&XEXP (pat_src, 0));
--- 1387,1403 ----
    if ((! STACK_REG_P (*src1)
         || (STACK_REG_P (*src2)
  	   && get_hard_regnum (regstack, *src2) == FIRST_STACK_REG))
!       && swap_rtx_condition (insn, debug_seen))
      {
+       /* If swap_rtx_condition succeeded but some debug insns
+ 	 were seen along the way, it has actually reverted all the
+ 	 changes.  Rerun swap_rtx_condition in a mode where DEBUG_ISNSs
+ 	 will be adjusted as well.  */
+       if (debug_seen)
+ 	{
+ 	  debug_seen = -1;
+ 	  swap_rtx_condition (insn, debug_seen);
+ 	}
        std::swap (XEXP (pat_src, 0), XEXP (pat_src, 1));
  
        src1 = get_true_reg (&XEXP (pat_src, 0));
diff -Nrcpad gcc-11.3.0/gcc/regrename.c gcc-11.4.0/gcc/regrename.c
*** gcc-11.3.0/gcc/regrename.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/regrename.c	Mon May 29 08:46:29 2023
*************** static bool
*** 324,331 ****
  check_new_reg_p (int reg ATTRIBUTE_UNUSED, int new_reg,
  		 class du_head *this_head, HARD_REG_SET this_unavailable)
  {
!   machine_mode mode = GET_MODE (*this_head->first->loc);
!   int nregs = hard_regno_nregs (new_reg, mode);
    int i;
    struct du_chain *tmp;
  
--- 324,330 ----
  check_new_reg_p (int reg ATTRIBUTE_UNUSED, int new_reg,
  		 class du_head *this_head, HARD_REG_SET this_unavailable)
  {
!   int nregs = this_head->nregs;
    int i;
    struct du_chain *tmp;
  
diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/accesses.cc gcc-11.4.0/gcc/rtl-ssa/accesses.cc
*** gcc-11.3.0/gcc/rtl-ssa/accesses.cc	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/rtl-ssa/accesses.cc	Mon May 29 08:46:29 2023
*************** set_node::print (pretty_printer *pp) con
*** 394,399 ****
--- 394,421 ----
  }
  
  // See the comment above the declaration.
+ clobber_info *
+ clobber_group::prev_clobber (insn_info *insn) const
+ {
+   auto &tree = const_cast<clobber_tree &> (m_clobber_tree);
+   int comparison = lookup_clobber (tree, insn);
+   if (comparison <= 0)
+     return dyn_cast<clobber_info *> (tree.root ()->prev_def ());
+   return tree.root ();
+ }
+ 
+ // See the comment above the declaration.
+ clobber_info *
+ clobber_group::next_clobber (insn_info *insn) const
+ {
+   auto &tree = const_cast<clobber_tree &> (m_clobber_tree);
+   int comparison = lookup_clobber (tree, insn);
+   if (comparison >= 0)
+     return dyn_cast<clobber_info *> (tree.root ()->next_def ());
+   return tree.root ();
+ }
+ 
+ // See the comment above the declaration.
  void
  clobber_group::print (pretty_printer *pp) const
  {
*************** clobber_group::print (pretty_printer *pp
*** 415,420 ****
--- 437,468 ----
    pp_indentation (pp) -= 4;
  }
  
+ // See the comment above the declaration.
+ def_info *
+ def_lookup::prev_def (insn_info *insn) const
+ {
+   if (mux && comparison == 0)
+     if (auto *node = mux.dyn_cast<def_node *> ())
+       if (auto *group = dyn_cast<clobber_group *> (node))
+ 	if (clobber_info *clobber = group->prev_clobber (insn))
+ 	  return clobber;
+ 
+   return last_def_of_prev_group ();
+ }
+ 
+ // See the comment above the declaration.
+ def_info *
+ def_lookup::next_def (insn_info *insn) const
+ {
+   if (mux && comparison == 0)
+     if (auto *node = mux.dyn_cast<def_node *> ())
+       if (auto *group = dyn_cast<clobber_group *> (node))
+ 	if (clobber_info *clobber = group->next_clobber (insn))
+ 	  return clobber;
+ 
+   return first_def_of_next_group ();
+ }
+ 
  // Return a clobber_group for CLOBBER, creating one if CLOBBER doesn't
  // already belong to a group.
  clobber_group *
*************** function_info::make_use_available (use_i
*** 1295,1303 ****
  	  input->m_is_temp = true;
  	  phi->m_is_temp = true;
  	  phi->make_degenerate (input);
! 	  if (def_info *prev = dl.prev_def ())
  	    phi->set_prev_def (prev);
! 	  if (def_info *next = dl.next_def ())
  	    phi->set_next_def (next);
  	}
  
--- 1343,1351 ----
  	  input->m_is_temp = true;
  	  phi->m_is_temp = true;
  	  phi->make_degenerate (input);
! 	  if (def_info *prev = dl.prev_def (phi_insn))
  	    phi->set_prev_def (prev);
! 	  if (def_info *next = dl.next_def (phi_insn))
  	    phi->set_next_def (next);
  	}
  
diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/accesses.h gcc-11.4.0/gcc/rtl-ssa/accesses.h
*** gcc-11.3.0/gcc/rtl-ssa/accesses.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/rtl-ssa/accesses.h	Mon May 29 08:46:29 2023
*************** public:
*** 909,914 ****
--- 909,920 ----
    clobber_info *first_clobber () const;
    clobber_info *last_clobber () const { return m_last_clobber; }
  
+   // Return the last clobber before INSN in the group, or null if none.
+   clobber_info *prev_clobber (insn_info *insn) const;
+ 
+   // Return the next clobber after INSN in the group, or null if none.
+   clobber_info *next_clobber (insn_info *insn) const;
+ 
    // Return true if this group has been replaced by new clobber_groups.
    bool has_been_superceded () const { return !m_last_clobber; }
  
*************** public:
*** 993,1017 ****
    //
    // Otherwise, return the last definition that occurs before P,
    // or null if none.
!   def_info *prev_def () const;
  
    // If we found a clobber_group that spans P, return the definition
    // that follows the end of the group, or null if none.
    //
    // Otherwise, return the first definition that occurs after P,
    // or null if none.
!   def_info *next_def () const;
  
    // If we found a set_info at P, return that set_info, otherwise return null.
    set_info *matching_set () const;
  
    // If we found a set_info at P, return that set_info, otherwise return
    // prev_def ().
!   def_info *matching_or_prev_def () const;
  
    // If we found a set_info at P, return that set_info, otherwise return
    // next_def ().
!   def_info *matching_or_next_def () const;
  
    def_mux mux;
    int comparison;
--- 999,1031 ----
    //
    // Otherwise, return the last definition that occurs before P,
    // or null if none.
!   def_info *last_def_of_prev_group () const;
  
    // If we found a clobber_group that spans P, return the definition
    // that follows the end of the group, or null if none.
    //
    // Otherwise, return the first definition that occurs after P,
    // or null if none.
!   def_info *first_def_of_next_group () const;
  
    // If we found a set_info at P, return that set_info, otherwise return null.
    set_info *matching_set () const;
  
    // If we found a set_info at P, return that set_info, otherwise return
    // prev_def ().
!   def_info *matching_set_or_last_def_of_prev_group () const;
  
    // If we found a set_info at P, return that set_info, otherwise return
    // next_def ().
!   def_info *matching_set_or_first_def_of_next_group () const;
! 
!   // P is the location of INSN.  Return the last definition (of any kind)
!   // that occurs before INSN, or null if none.
!   def_info *prev_def (insn_info *insn) const;
! 
!   // P is the location of INSN.  Return the next definition (of any kind)
!   // that occurs after INSN, or null if none.
!   def_info *next_def (insn_info *insn) const;
  
    def_mux mux;
    int comparison;
diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/member-fns.inl gcc-11.4.0/gcc/rtl-ssa/member-fns.inl
*** gcc-11.3.0/gcc/rtl-ssa/member-fns.inl	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/rtl-ssa/member-fns.inl	Mon May 29 08:46:29 2023
*************** def_mux::set () const
*** 401,407 ****
  }
  
  inline def_info *
! def_lookup::prev_def () const
  {
    if (!mux)
      return nullptr;
--- 401,407 ----
  }
  
  inline def_info *
! def_lookup::last_def_of_prev_group () const
  {
    if (!mux)
      return nullptr;
*************** def_lookup::prev_def () const
*** 413,419 ****
  }
  
  inline def_info *
! def_lookup::next_def () const
  {
    if (!mux)
      return nullptr;
--- 413,419 ----
  }
  
  inline def_info *
! def_lookup::first_def_of_next_group () const
  {
    if (!mux)
      return nullptr;
*************** def_lookup::matching_set () const
*** 433,451 ****
  }
  
  inline def_info *
! def_lookup::matching_or_prev_def () const
  {
    if (set_info *set = matching_set ())
      return set;
!   return prev_def ();
  }
  
  inline def_info *
! def_lookup::matching_or_next_def () const
  {
    if (set_info *set = matching_set ())
      return set;
!   return next_def ();
  }
  
  inline insn_note::insn_note (insn_note_kind kind)
--- 433,451 ----
  }
  
  inline def_info *
! def_lookup::matching_set_or_last_def_of_prev_group () const
  {
    if (set_info *set = matching_set ())
      return set;
!   return last_def_of_prev_group ();
  }
  
  inline def_info *
! def_lookup::matching_set_or_first_def_of_next_group () const
  {
    if (set_info *set = matching_set ())
      return set;
!   return first_def_of_next_group ();
  }
  
  inline insn_note::insn_note (insn_note_kind kind)
diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/movement.h gcc-11.4.0/gcc/rtl-ssa/movement.h
*** gcc-11.3.0/gcc/rtl-ssa/movement.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/rtl-ssa/movement.h	Mon May 29 08:46:29 2023
*************** restrict_movement_for_dead_range (insn_r
*** 103,109 ****
    resource_info resource = full_register (regno);
    def_lookup dl = crtl->ssa->find_def (resource, insn);
  
!   def_info *prev = dl.prev_def ();
    ebb_info *ebb = insn->ebb ();
    if (!prev || prev->ebb () != ebb)
      {
--- 103,109 ----
    resource_info resource = full_register (regno);
    def_lookup dl = crtl->ssa->find_def (resource, insn);
  
!   def_info *prev = dl.last_def_of_prev_group ();
    ebb_info *ebb = insn->ebb ();
    if (!prev || prev->ebb () != ebb)
      {
*************** restrict_movement_for_dead_range (insn_r
*** 143,150 ****
      }
  
    // Stop the instruction moving beyond the next relevant definition of REGNO.
!   def_info *next = first_def_ignoring (dl.matching_or_next_def (),
! 				       ignore_clobbers::YES, ignore);
    if (next)
      move_range = move_earlier_than (move_range, next->insn ());
  
--- 143,150 ----
      }
  
    // Stop the instruction moving beyond the next relevant definition of REGNO.
!   def_info *next = dl.matching_set_or_first_def_of_next_group ();
!   next = first_def_ignoring (next, ignore_clobbers::YES, ignore);
    if (next)
      move_range = move_earlier_than (move_range, next->insn ());
  
diff -Nrcpad gcc-11.3.0/gcc/rtlanal.c gcc-11.4.0/gcc/rtlanal.c
*** gcc-11.3.0/gcc/rtlanal.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/rtlanal.c	Mon May 29 08:46:29 2023
*************** replace_rtx (rtx x, rtx from, rtx to, bo
*** 3405,3411 ****
      {
        rtx new_rtx = replace_rtx (SUBREG_REG (x), from, to, all_regs);
  
!       if (CONST_INT_P (new_rtx))
  	{
  	  x = simplify_subreg (GET_MODE (x), new_rtx,
  			       GET_MODE (SUBREG_REG (x)),
--- 3405,3411 ----
      {
        rtx new_rtx = replace_rtx (SUBREG_REG (x), from, to, all_regs);
  
!       if (CONST_SCALAR_INT_P (new_rtx))
  	{
  	  x = simplify_subreg (GET_MODE (x), new_rtx,
  			       GET_MODE (SUBREG_REG (x)),
*************** replace_rtx (rtx x, rtx from, rtx to, bo
*** 3421,3427 ****
      {
        rtx new_rtx = replace_rtx (XEXP (x, 0), from, to, all_regs);
  
!       if (CONST_INT_P (new_rtx))
  	{
  	  x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x),
  					new_rtx, GET_MODE (XEXP (x, 0)));
--- 3421,3427 ----
      {
        rtx new_rtx = replace_rtx (XEXP (x, 0), from, to, all_regs);
  
!       if (CONST_SCALAR_INT_P (new_rtx))
  	{
  	  x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x),
  					new_rtx, GET_MODE (XEXP (x, 0)));
diff -Nrcpad gcc-11.3.0/gcc/sanopt.c gcc-11.4.0/gcc/sanopt.c
*** gcc-11.3.0/gcc/sanopt.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/sanopt.c	Mon May 29 08:46:29 2023
*************** pass_sanopt::execute (function *fun)
*** 1275,1280 ****
--- 1275,1281 ----
    basic_block bb;
    int asan_num_accesses = 0;
    bool contains_asan_mark = false;
+   int ret = 0;
  
    /* Try to remove redundant checks.  */
    if (optimize
*************** pass_sanopt::execute (function *fun)
*** 1327,1332 ****
--- 1328,1334 ----
  	  if (gimple_call_internal_p (stmt))
  	    {
  	      enum internal_fn ifn = gimple_call_internal_fn (stmt);
+ 	      int this_ret = TODO_cleanup_cfg;
  	      switch (ifn)
  		{
  		case IFN_UBSAN_NULL:
*************** pass_sanopt::execute (function *fun)
*** 1362,1369 ****
--- 1364,1373 ----
  		  no_next = hwasan_expand_mark_ifn (&gsi);
  		  break;
  		default:
+ 		  this_ret = 0;
  		  break;
  		}
+ 	      ret |= this_ret;
  	    }
  	  else if (gimple_call_builtin_p (stmt, BUILT_IN_NORMAL))
  	    {
*************** pass_sanopt::execute (function *fun)
*** 1393,1399 ****
    if (need_commit_edge_insert)
      gsi_commit_edge_inserts ();
  
!   return 0;
  }
  
  } // anon namespace
--- 1397,1403 ----
    if (need_commit_edge_insert)
      gsi_commit_edge_inserts ();
  
!   return ret;
  }
  
  } // anon namespace
diff -Nrcpad gcc-11.3.0/gcc/selftest-diagnostic.c gcc-11.4.0/gcc/selftest-diagnostic.c
*** gcc-11.3.0/gcc/selftest-diagnostic.c	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/selftest-diagnostic.c	Mon May 29 08:46:29 2023
*************** test_diagnostic_context::test_diagnostic
*** 41,46 ****
--- 41,47 ----
    show_column = true;
    start_span = start_span_cb;
    min_margin_width = 6;
+   caret_max_width = 80;
  }
  
  test_diagnostic_context::~test_diagnostic_context ()
diff -Nrcpad gcc-11.3.0/gcc/symbol-summary.h gcc-11.4.0/gcc/symbol-summary.h
*** gcc-11.3.0/gcc/symbol-summary.h	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/symbol-summary.h	Mon May 29 08:46:29 2023
*************** public:
*** 191,197 ****
    template<typename Arg, bool (*f)(const T &, Arg)>
    void traverse (Arg a) const
    {
!     m_map.traverse <f> (a);
    }
  
    /* Getter for summary callgraph node pointer.  If a summary for a node
--- 191,197 ----
    template<typename Arg, bool (*f)(const T &, Arg)>
    void traverse (Arg a) const
    {
!     m_map.template traverse <f> (a);
    }
  
    /* Getter for summary callgraph node pointer.  If a summary for a node
*************** public:
*** 690,696 ****
    template<typename Arg, bool (*f)(const T &, Arg)>
    void traverse (Arg a) const
    {
!     m_map.traverse <f> (a);
    }
  
    /* Getter for summary callgraph edge pointer.
--- 690,696 ----
    template<typename Arg, bool (*f)(const T &, Arg)>
    void traverse (Arg a) const
    {
!     m_map.template traverse <f> (a);
    }
  
    /* Getter for summary callgraph edge pointer.
diff -Nrcpad gcc-11.3.0/gcc/testsuite/ChangeLog gcc-11.4.0/gcc/testsuite/ChangeLog
*** gcc-11.3.0/gcc/testsuite/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gcc/testsuite/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,2296 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-22   Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/70243
+ 	* gcc.target/powerpc/pr70243.c: New test.  Back port from master
+ 	04/10/2023.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/108998
+ 	* g++.dg/cpp2a/lambda-generic11.C: New test.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/100295
+ 	PR c++/107579
+ 	* g++.dg/cpp1z/constexpr-if-lambda5.C: New test.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-29  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/107864
+ 	* g++.dg/concepts/explicit-spec1a.C: New test.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/107179
+ 	* g++.dg/cpp2a/concepts-requires31.C: New test.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-03-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/100474
+ 	* g++.dg/cpp2a/concepts-traits3.C: New test.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-03-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/104527
+ 	* g++.dg/cpp2a/concepts-return-req4.C: New test.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-28  Patrick Palka  <ppalka@redhat.com>
+ 		    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/92752
+ 	* g++.dg/warn/Wignored-qualifiers2.C: New test.
+ 
+ 2023-05-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-05-15  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/109846
+ 	* gfortran.dg/ptr-func-5.f90: New test.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2021-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/darwin-aligned-globals.c: New test.
+ 	* gcc.dg/darwin-comm-1.c: New test.
+ 	* gcc.dg/attr-aligned.c: Amend for new alignment values on
+ 	Darwin.
+ 	* gcc.target/i386/pr89261.c: Likewise.
+ 
+ 2023-05-16  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2021-12-18  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* gcc.dg/darwin-minversion-link.c: Test darwin21.
+ 	* obj-c++.dg/cxx-ivars-3.mm: Homogeneize darwin versions.
+ 	* obj-c++.dg/objc-gc-3.mm: Homogeneize darwin versions.
+ 	* objc.dg/objc-gc-4.m: Homogeneize darwin versions.
+ 
+ 2023-05-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-03-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR testsuite/108985
+ 	* gcc.dg/vect/pr108950.c: Require vect_simd_clones.
+ 
+ 2023-05-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-05-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109778
+ 	* gcc.dg/lto/pr109778_0.c: New test.
+ 	* gcc.dg/lto/pr109778_1.c: New file.
+ 
+ 2023-05-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-05-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109778
+ 	* gcc.c-torture/execute/pr109778.c: New test.
+ 
+ 2023-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-03-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108950
+ 	* gcc.dg/vect/pr108950.c: New testcase.
+ 
+ 2023-05-09  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106740
+ 	PR c++/105852
+ 	* g++.dg/template/friend78.C: New test.
+ 
+ 2023-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109724
+ 	* g++.dg/torture/pr109724.C: New testcase.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109410
+ 	* gcc.dg/pr109410.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106190
+ 	* gcc.dg/asan/pr106190.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/109276
+ 	* gcc.target/i386/pr109276.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/105685
+ 	* c-c++-common/cold-2.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/109176
+ 	* gcc.target/aarch64/sve/pr109176.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/109164
+ 	* g++.dg/tls/thread_local13.C: New test.
+ 	* g++.dg/tls/thread_local13-aux.cc: New file.
+ 	* g++.dg/tls/thread_local14.C: New test.
+ 	* g++.dg/tls/thread_local14-aux.cc: New file.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105554
+ 	* gcc.target/i386/pr105554.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/109151
+ 	* c-c++-common/ubsan/div-by-zero-8.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108685
+ 	* c-c++-common/gomp/doacross-8.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/109096
+ 	* g++.dg/cpp1z/has-unique-obj-representations3.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107558
+ 	* g++.dg/gomp/pr107558.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107465
+ 	* c-c++-common/Wsign-compare-2.c (f18): New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107465
+ 	* c-c++-common/Wsign-compare-2.c: New test.
+ 	* c-c++-common/pr107465.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108716
+ 	* g++.dg/debug/dwarf2/pr108716.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108967
+ 	* g++.dg/debug/pr108967.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108854
+ 	* g++.dg/opt/pr108854.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/108881
+ 	* gcc.target/i386/avx512bf16-pr108881.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108474
+ 	* g++.dg/cpp1z/decomp57.C: New test.
+ 	* g++.dg/cpp1z/decomp58.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108365
+ 	* g++.dg/opt/pr108365.C: New test.
+ 	* g++.dg/warn/pr108365.C: New test.
+ 
+ 2023-05-02  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	Backported from master:
+ 	2023-02-09  Andrew Pinski  <apinski@marvell.com>
+ 
+ 	PR tree-optimization/108688
+ 	* gcc.c-torture/compile/pr108688-1.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108692
+ 	* gcc.dg/pr108692.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108435
+ 	* gcc.dg/gomp/pr108435.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/108573
+ 	* gcc.dg/pr108573.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108607
+ 	* g++.dg/gomp/pr108607.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/108596
+ 	* gcc.c-torture/compile/pr108596.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108498
+ 	* gcc.c-torture/execute/pr108498-1.c: New test.
+ 	* gcc.c-torture/execute/pr108498-2.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/53932
+ 	* g++.dg/init/pr53932.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108237
+ 	* gcc.c-torture/compile/pr108237.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108264
+ 	* gcc.dg/pr108264.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108068
+ 	* gcc.dg/dfp/pr108068.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/108193
+ 	* gfortran.dg/pr108193.f90: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR testsuite/108151
+ 	* gcc.dg/pr64536.c (bar): Cast long to __INTPTR_TYPE__
+ 	before casting to long *.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR testsuite/108151
+ 	* gcc.dg/pr64536.c (bar): Use casts to __INTPTR_TYPE__ rather than
+ 	long when casting pointer to integral type.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/106751
+ 	* gcc.c-torture/compile/pr106751.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107065
+ 	* g++.dg/cpp0x/pr107065.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/108095
+ 	* gcc.dg/pr108095.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/107997
+ 	* gcc.c-torture/compile/pr107997.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/106719
+ 	* gcc.dg/pr106719.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/106875
+ 	* g++.target/i386/pr106875.C: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/107317
+ 	* gcc.dg/asan/pr107317.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107127
+ 	* gcc.dg/pr107127.c (foo): Add missing closing }.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-23  Andrew Pinski  <apinski@marvell.com>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107127
+ 	* gcc.dg/pr107127.c: New test.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108821
+ 	* gcc.dg/tree-ssa/ssa-lim-24.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109573
+ 	* g++.dg/vect/pr109573.cc: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/109585
+ 	* gcc.dg/torture/pr109585.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109502
+ 	* gcc.dg/vect/pr109502.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-04-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109473
+ 	* gcc.dg/vect/pr109473.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-02-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/108625
+ 	* gcc.dg/pr108625.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-12-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/108076
+ 	* gcc.dg/torture/pr108076.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-12-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107451
+ 	* gcc.dg/torture/pr107451.c: New testcase.
+ 
+ 2023-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2023-03-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/106124
+ 	* g++.dg/gomp/pr106124.C: New testcase.
+ 
+ 2023-04-24  Haochen Gui  <guihaoc@gcc.gnu.org>
+ 
+ 	PR target/108812
+ 	* gcc.target/powerpc/p9-sign_extend-runnable.c: Set corresponding
+ 	expected vectors for Big Endian.
+ 	* gcc.target/powerpc/int_128bit-runnable.c: Likewise.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/107163
+ 	* g++.dg/warn/Wsequence-point-5.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105996
+ 	* g++.dg/cpp0x/constexpr-pmf3.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/108975
+ 	* g++.dg/cpp0x/lambda/lambda-const11.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/69410
+ 	* g++.dg/lookup/friend24.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/101869
+ 	* g++.dg/cpp0x/enum43.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105406
+ 	* g++.dg/coroutines/co-await-moveonly1.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/103871
+ 	PR c++/98056
+ 	* g++.dg/coroutines/co-await-initlist1.C: New test.
+ 
+ 2023-04-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/108468
+ 	* g++.dg/cpp1y/var-templ78.C: New test.
+ 
+ 2023-04-18  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2023-01-31  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	PR target/108589
+ 	* gcc.target/aarch64/pr108589.c: New test.
+ 
+ 2023-04-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2023-04-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 		    Di Zhao  <di.zhao@amperecomputing.com>
+ 
+ 	* gcc.target/aarch64/ampere1-no_ldp_combine.c: New test.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105484
+ 	* gcc.dg/torture/pr105484.c: New testcase.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/104464
+ 	* gcc.dg/pr104464.c: New testcase.
+ 
+ 2023-04-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/104450
+ 	* g++.dg/torture/pr104450.C: New testcase.
+ 
+ 2023-04-17  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-04-04  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108699
+ 	* gcc.target/powerpc/p9-vparity.c: Add scan-assembler-not for vpopcntb
+ 	to distinguish parity byte from parity.
+ 	* gcc.target/powerpc/pr108699.c: New test.
+ 
+ 2023-04-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-04-14  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/109511
+ 	* gfortran.dg/set_exponent_1.f90: New test.
+ 
+ 2023-04-11  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	PR target/109067
+ 	* gcc.target/powerpc/divic3-1.c: New test.  Backport from master,
+ 	3/20/2023.
+ 	* gcc.target/powerpc/divic3-2.c: Likewise.
+ 	* gcc.target/powerpc/mulic3-1.c: Likewise.
+ 	* gcc.target/powerpc/mulic3-2.c: Likewise.
+ 
+ 2023-03-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.target/sparc/20230328-1.c: New test.
+ 	* gcc.target/sparc/20230328-2.c: Likewise.
+ 	* gcc.target/sparc/20230328-3.c: Likewise.
+ 	* gcc.target/sparc/20230328-4.c: Likewise.
+ 
+ 2023-03-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-21  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/99036
+ 	* gfortran.dg/pr99036.f90: New test.
+ 
+ 2023-03-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/109186
+ 	* gfortran.dg/nearest_6.f90: New test.
+ 
+ 2023-03-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-19  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/85877
+ 	* gfortran.dg/pr85877.f90: New test.
+ 
+ 2023-03-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-11  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106945
+ 	* gfortran.dg/pr106945.f90: New test.
+ 
+ 2023-03-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-03-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/104332
+ 	* gfortran.dg/bind_c_usage_34.f90: New test.
+ 
+ 2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2023-03-14  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/109108
+ 	* gdc.dg/torture/torture.exp (srcdir): New proc.
+ 	* gdc.dg/torture/imports/pr109108.d: New test.
+ 	* gdc.dg/torture/pr109108.d: New test.
+ 
+ 2023-03-13  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	PR c++/106188
+ 	PR c++/106713
+ 	* g++.dg/coroutines/pr106188.C: New test.
+ 
+ 2023-03-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108937
+ 	* gfortran.dg/ibits_2.f90: New test.
+ 
+ 2023-03-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-22  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/96024
+ 	* gfortran.dg/pr96024.f90: New test.
+ 
+ 2023-03-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-21  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/96025
+ 	* gfortran.dg/pr96025.f90: New test.
+ 
+ 2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2023-03-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/108877
+ 	* gdc.dg/imports/pr108877a.d: New test.
+ 	* gdc.dg/pr108877.d: New test.
+ 
+ 2023-02-27  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-02-14  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/96373
+ 	* gcc.target/powerpc/p9-vec-length-epil-1.c: Add -fno-trapping-math.
+ 	* gcc.target/powerpc/p9-vec-length-epil-2.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-epil-3.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-epil-4.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-epil-5.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-epil-6.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-epil-8.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-1.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-2.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-3.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-4.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-5.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-6.c: Likewise.
+ 	* gcc.target/powerpc/p9-vec-length-full-8.c: Likewise.
+ 	* gcc.target/powerpc/pr96373.c: New test.
+ 
+ 2023-02-20  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	Backported from master:
+ 	2023-02-06  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/104921
+ 	* gcc.target/aarch64/pr104921-1.c: New test.
+ 	* gcc.target/aarch64/pr104921-2.c: New test.
+ 	* gcc.target/aarch64/pr104921.x: Include file for new tests.
+ 
+ 2023-02-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/106675
+ 	* g++.dg/cpp0x/overload-conv-5.C: New test.
+ 
+ 2023-02-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108348
+ 	* gcc.target/powerpc/pr108348-1.c: New test.
+ 	* gcc.target/powerpc/pr108348-2.c: New test.
+ 
+ 2023-02-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-01-16  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/108272
+ 	* gcc.target/powerpc/pr108272-1.c: New test.
+ 	* gcc.target/powerpc/pr108272-2.c: New test.
+ 	* gcc.target/powerpc/pr108272-3.c: New test.
+ 	* gcc.target/powerpc/pr108272-4.c: New test.
+ 
+ 2023-02-10  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2023-02-08  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/103259
+ 	* gfortran.dg/pr103259.f90: New test.
+ 
+ 2023-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-07  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/95107
+ 	* gfortran.dg/save_7.f90: New test.
+ 
+ 2023-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-02-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108609
+ 	* gfortran.dg/pr108527.f90: Adjust test pattern.
+ 
+ 2023-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-28  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/108527
+ 	* gfortran.dg/pr108527.f90: New test.
+ 
+ 2023-02-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106809
+ 	* gcc.dg/torture/pr106809.c: New testcase.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108529
+ 	* gfortran.dg/pr108529.f90: New test.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-07-14  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/106209
+ 	* gfortran.dg/pr106209.f90: New test.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108501
+ 	* gfortran.dg/pr108501.f90: New test.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108502
+ 	* gfortran.dg/pr108502.f90: New test.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108421
+ 	* gfortran.dg/pr108421.f90: New test.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108420
+ 	* gfortran.dg/pr108420.f90: New test.
+ 
+ 2023-02-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2023-01-28  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108453
+ 	* gfortran.dg/common_27.f90: New test.
+ 
+ 2023-01-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gcc.dg/pr107554.c: Restrict to lp64.
+ 
+ 2023-01-25  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2023-01-12  Christophe Lyon  <christophe.lyon@arm.com>
+ 		    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc.target/aarch64/bitfield-abi-warning-align16-O2.c: New test.
+ 	* gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c: New
+ 	test.
+ 	* gcc.target/aarch64/bitfield-abi-warning-align32-O2.c: New test.
+ 	* gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c: New
+ 	test.
+ 	* gcc.target/aarch64/bitfield-abi-warning-align8-O2.c: New test.
+ 	* gcc.target/aarch64/bitfield-abi-warning.h: New test.
+ 	* g++.target/aarch64/bitfield-abi-warning-align16-O2.C: New test.
+ 	* g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C: New
+ 	test.
+ 	* g++.target/aarch64/bitfield-abi-warning-align32-O2.C: New test.
+ 	* g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C: New
+ 	test.
+ 	* g++.target/aarch64/bitfield-abi-warning-align8-O2.C: New test.
+ 	* g++.target/aarch64/bitfield-abi-warning.h: New test.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-11-11  Richard Biener  <rguenther@suse.de>
+ 		    Nikita Voronov  <nik_1357@mail.ru>
+ 
+ 	PR tree-optimization/107554
+ 	* gcc.dg/pr107554.c: New testcase.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107323
+ 	* gcc.dg/tree-ssa/pr107323.c: New testcase.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107254
+ 	* gfortran.dg/vect/pr107254.f90: New testcase.
+ 
+ 2023-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107212
+ 	* gcc.dg/vect/pr107212-1.c: New testcase.
+ 	* gcc.dg/vect/pr107212-2.c: Likewise.
+ 
+ 2023-01-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.dg/sso-17.c: New test.
+ 
+ 2023-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	Backported from master:
+ 	2022-12-30  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+ 
+ 	PR target/107714
+ 	* gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c: New test.
+ 
+ 2023-01-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-12-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/108131
+ 	* gfortran.dg/pr103505.f90: Adjust expected patterns.
+ 	* gfortran.dg/pr108131.f90: New test.
+ 
+ 2023-01-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2021-12-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	PR testsuite/47334
+ 	PR testsuite/103823
+ 	* lib/prune.exp: Prune some warnings related to LTO and
+ 	visibility.
+ 
+ 2023-01-06  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backported from master:
+ 	2021-05-12  Martin Liska  <mliska@suse.cz>
+ 
+ 	* lib/lto.exp: When running tests without jobserver, one can see
+ 	the following warning for tests that use 1to1 partitioning.
+ 
+ 2023-01-05  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/106736
+ 	* gcc.target/powerpc/pr106736-1.c: New test.
+ 	* gcc.target/powerpc/pr106736-2.c: Likewise.
+ 	* gcc.target/powerpc/pr106736-3.c: Likewise.
+ 	* gcc.target/powerpc/pr106736-4.c: Likewise.
+ 	* gcc.target/powerpc/pr106736-5.c: Likewise.
+ 
+ 2022-12-24  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* g++.dg/guality/guality.exp: Skip on hppa*-*-hpux*.
+ 	* gcc.dg/guality/guality.exp: Likewise.
+ 	* gfortran.dg/guality/guality.exp: Likewise.
+ 
+ 2022-12-18  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-12-09  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/107872
+ 	* gfortran.dg/pr107872.f90: New test.
+ 
+ 2022-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-10-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/102780
+ 	PR c++/108138
+ 	* g++.dg/cpp1z/fold13.C: New test.
+ 
+ 2022-12-15  Sebastian Pop  <spop@amazon.com>
+ 
+ 	PR target/98776
+ 	* gcc.target/aarch64/pr98776.c: New.
+ 	* gcc.target/aarch64/pr92424-2.c: Adjust pattern.
+ 	* gcc.target/aarch64/pr92424-3.c: Adjust pattern.
+ 
+ 2022-12-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-10-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107107
+ 	* gcc.dg/pr107107.c: New testcase.
+ 
+ 2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-12-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/108050
+ 	* gdc.dg/imports/pr108050/mod1.d: New.
+ 	* gdc.dg/imports/pr108050/mod2.d: New.
+ 	* gdc.dg/imports/pr108050/package.d: New.
+ 	* gdc.dg/pr108050.d: New test.
+ 
+ 2022-12-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* gcc.target/i386/pr107863.c: New test.
+ 
+ 2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-11-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/107592
+ 	* gdc.dg/pr107592.d: New test.
+ 
+ 2022-11-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-11-18  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/107576
+ 	* gfortran.dg/null_actual_3.f90: New test.
+ 
+ 2022-11-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt100.adb: New test.
+ 	* gnat.dg/opt100_pkg.adb, gnat.dg/opt100_pkg.ads: New helper.
+ 
+ 2022-11-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/sso18.adb: New test.
+ 
+ 2022-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/107183
+ 	* gcc.dg/ubsan/pr107183.c: New test.
+ 
+ 2022-11-18  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-18  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/104066
+ 	* g++.dg/cpp2a/constinit18.C: New test.
+ 
+ 2022-11-08  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-10-25  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/107304
+ 	* gcc.target/i386/pr107304.c: New test.
+ 
+ 2022-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt99.adb: New test.
+ 	* gnat.dg/opt99_pkg1.ads, gnat.dg/opt99_pkg1.adb: New helper.
+ 	* gnat.dg/opt99_pkg2.ads: Likewise.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/107358
+ 	* c-c++-common/pr107358.c: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/105774
+ 	* g++.dg/cpp1y/constexpr-105774.C: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/107001
+ 	* c-c++-common/gomp/pr107001.c: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/106981
+ 	* c-c++-common/gomp/pr106981.c: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp2a/volatile1.C: Adjust for de-deprecation of volatile
+ 	compound |=, &= and ^= operations.
+ 	* g++.dg/cpp2a/volatile3.C: Likewise.
+ 	* g++.dg/cpp2a/volatile5.C: Likewise.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/106261
+ 	* g++.dg/debug/pr106261.C: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/106032
+ 	* gcc.c-torture/execute/pr106032.c: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/106030
+ 	* gcc.c-torture/compile/pr106030.c: New test.
+ 
+ 2022-10-29  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-10-21  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100097
+ 	PR fortran/100098
+ 	* gfortran.dg/PR100097.f90: New test.
+ 	* gfortran.dg/PR100098.f90: New test.
+ 
+ 2022-10-28  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-10-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/103413
+ 	* gfortran.dg/illegal_boz_arg_4.f90: New test.
+ 
+ 2022-10-26  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	Backported from master:
+ 	2022-10-06  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* gcc.target/aarch64/cpunative/info_18: New test.
+ 	* gcc.target/aarch64/cpunative/native_cpu_18.c: New test.
+ 
+ 2022-10-25  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-10-19  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* gcc.target/s390/pr106355.h: Common code for new tests.
+ 	* gcc.target/s390/pr106355-1.c: New test.
+ 	* gcc.target/s390/pr106355-2.c: New test.
+ 	* gcc.target/s390/pr106355-3.c: New test.
+ 
+ 2022-10-24  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-27  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/105725
+ 	* g++.dg/warn/Wmismatched-tags-10.C: New test.
+ 
+ 2022-10-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-10-20  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/105633
+ 	* gfortran.dg/pr105633.f90: New test.
+ 
+ 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc.target/aarch64/sve/acle/general/brka_1.c: Expect a separate
+ 	PTEST instruction.
+ 	* gcc.target/aarch64/sve/acle/general/brkb_1.c: Likewise.
+ 
+ 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc.target/aarch64/sve/acle/general/brkn_1.c: Expect separate
+ 	PTEST instructions.
+ 	* gcc.target/aarch64/sve/acle/general/brkn_2.c: New test.
+ 
+ 2022-10-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gcc.target/aarch64/pragma_cpp_predefs_1.c: Add RCPC tests.
+ 
+ 2022-10-19  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-09-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/96072
+ 	* gcc.target/powerpc/pr96072.c: New test.
+ 
+ 2022-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106934
+ 	* gfortran.dg/pr106934.f90: New testcase.
+ 
+ 2022-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-09-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106892
+ 	* gcc.dg/torture/pr106892.c: New testcase.
+ 
+ 2022-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-07-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106189
+ 	* gcc.dg/pr106189.c: New testcase.
+ 
+ 2022-10-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backported from master:
+ 	2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* gcc.target/aarch64/acle/data-intrinsics.c: New test.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-08-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106513
+ 	* gcc.dg/torture/pr106513.c: New testcase.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-07-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/106331
+ 	* gfortran.dg/pr106331.f90: New testcase.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106131
+ 	* g++.dg/torture/pr106131.C: New testcase.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-06-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/106112
+ 	* gcc.dg/torture/pr106112.c: New testcase.
+ 
+ 2022-10-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/106027
+ 	* gcc.dg/pr106027.c: New testcase.
+ 
+ 2022-10-10  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/106817
+ 	* gfortran.dg/intent_optimize_4.f90: New test.
+ 
+ 2022-10-10  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-09-25  Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/105012
+ 	* gfortran.dg/intent_out_15.f90: New test.
+ 
+ 2022-10-08  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-10-01  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100029
+ 	PR fortran/100040
+ 	* gfortran.dg/PR100029.f90: New test.
+ 	* gfortran.dg/PR100040.f90: New test.
+ 
+ 2022-10-01  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-20  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100132
+ 	* gfortran.dg/PR100132.f90: New test.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/107054
+ 	* gfortran.dg/pr107054.f90: New test.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-22  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/82868
+ 	* gfortran.dg/associate_26a.f90: New test.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106985
+ 	* gfortran.dg/pr106985.f90: New test.
+ 
+ 2022-09-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-08-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/103694
+ 	* gfortran.dg/pr103694.f90: New test.
+ 
+ 2022-09-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-28  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/107061
+ 	* gcc.target/i386/keylocker-encodekey128.c: Don't check
+ 	XMM4-XMM6.
+ 	* gcc.target/i386/keylocker-encodekey256.c: Likewise.
+ 
+ 2022-09-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-20  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106986
+ 	* gfortran.dg/pr106986.f90: New test.
+ 
+ 2022-09-24  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-03  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100245
+ 	* gfortran.dg/PR100245.f90: New test.
+ 
+ 2022-09-22  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-09-15  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/106857
+ 	* gfortran.dg/pr106857.f90: New test.
+ 
+ 2022-09-13  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-09-07  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR testsuite/106345
+ 	* lib/target-supports.exp (check_effective_target_powerpc_sqrt): Add
+ 	a function definition to avoid pedwarn about empty translation unit.
+ 	(check_effective_target_has_arch_pwr5): Likewise.
+ 	(check_effective_target_has_arch_pwr6): Likewise.
+ 	(check_effective_target_has_arch_pwr7): Likewise.
+ 	(check_effective_target_has_arch_pwr8): Likewise.
+ 	(check_effective_target_has_arch_pwr9): Likewise.
+ 	(check_effective_target_has_arch_pwr10): Likewise.
+ 	(check_effective_target_has_arch_ppc64): Likewise.
+ 	(check_effective_target_ppc_float128): Likewise.
+ 	(check_effective_target_ppc_float128_insns): Likewise.
+ 	(check_effective_target_powerpc_vsx): Likewise.
+ 
+ 2022-09-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-09-01  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/101322
+ 	* g++.target/powerpc/pr101322.C: New test.
+ 
+ 2022-09-05  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-09-04  José Rui Faustino de Sousa  <jrfsousa@gmail.com>
+ 
+ 	PR fortran/100136
+ 	* gfortran.dg/PR100136.f90: New test.
+ 
+ 2022-08-30  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-08-28  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/106017
+ 	* gcc.target/powerpc/pr106017.c: New test.
+ 
+ 2022-08-24  Kewen.Lin  <linkw@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-08-16  Kewen.Lin  <linkw@gcc.gnu.org>
+ 
+ 	PR target/103353
+ 	* gcc.target/powerpc/pr103353.c: New test.
+ 
+ 2022-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-04-26  Segher Boessenkoool  <segher@kernel.crashing.org>
+ 
+ 	PR target/105349
+ 	* lib/target-supports.exp (check_effective_target_has_arch_pwr5): Use
+ 	the specified dg-options.
+ 	(check_effective_target_has_arch_pwr6): Ditto.
+ 	(check_effective_target_has_arch_pwr7): Ditto.
+ 	(check_effective_target_has_arch_pwr8): Ditto.
+ 	(check_effective_target_has_arch_pwr9): Ditto.
+ 	(check_effective_target_has_arch_pwr10): Ditto.
+ 	(check_effective_target_has_arch_ppc64): Ditto.
+ 
+ 2022-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-04-21  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* lib/target-supports.exp (check_effective_target_has_arch_ppc64): New.
+ 
+ 2022-08-17  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	Backported from master:
+ 	2022-08-09  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/106492
+ 	* g++.dg/gomp/pr106492.C: New test.
+ 
+ 2022-08-16  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-04-21  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/103197
+ 	PR target/102146
+ 	* gcc.target/powerpc/bswap-brw.c: Add xfail on scan-assembler for -m32.
+ 
+ 2022-08-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-07-26  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR c/106016
+ 	* gcc.target/powerpc/pr106016.c: New test.
+ 
+ 2022-08-04  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-03-25  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	* g++.dg/pr65240-1.C: Use -mdejagnu-cpu=.  Remove dg-skip-if.
+ 	* g++.dg/pr65240-2.C: Likewise.
+ 	* g++.dg/pr65240-3.C: Likewise.
+ 	* g++.dg/pr65240-4.C: Likewise.
+ 	* g++.dg/pr65242.C: Likewise.
+ 	* g++.dg/pr67211.C: Likewise.
+ 	* g++.dg/pr69667.C: Likewise.
+ 	* g++.dg/pr71294.C: Likewise.
+ 	* g++.dg/pr84279.C: Likewise.
+ 	* g++.dg/torture/ppc-ldst-array.C: Likewise.
+ 	* gfortran.dg/nint_p7.f90: Likewise.
+ 	* gfortran.dg/pr102860.f90: Likewise.
+ 	* gcc.target/powerpc/fusion.c: Use -mdejagnu-cpu= and -mdejagnu-tune=.
+ 	* gcc.target/powerpc/fusion2.c: Likewise.
+ 	* gcc.target/powerpc/int_128bit-runnable.c: Use -mdejagnu-cpu=.
+ 	* gcc.target/powerpc/test_mffsl.c: Likewise.
+ 	* gfortran.dg/pr47614.f: Likewise.
+ 	* gfortran.dg/pr58968.f: Likewise.
+ 
+ 2022-08-02  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-07-10  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR preprocessor/97498
+ 	* c-c++-common/pr97498.c: New test.
+ 	* gcc.dg/pragma-message.c: Adapt for improved warning locations.
+ 
+ 2022-08-02  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-07-26  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR target/106091
+ 	* gcc.target/powerpc/pr106091.c: New test.
+ 
+ 2022-07-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-07-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/103504
+ 	* gfortran.dg/pr103504.f90: New test.
+ 
+ 2022-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105618
+ 	* gcc.dg/tree-ssa/ssa-sink-19.c: New testcase.
+ 
+ 2022-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/103116
+ 	* gcc.dg/vect/pr103116-1.c: New testcase.
+ 	* gcc.dg/vect/pr103116-2.c: Likewise.
+ 
+ 2022-07-22  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106361
+ 	* g++.dg/cpp2a/spaceship-eq14.C: New test.
+ 
+ 2022-07-21  Surya Kumari Jangala  <jskumari@linux.vnet.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-06-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/105041
+ 	* gcc.target/powerpc/pr105041.c: New test.
+ 
+ 2022-07-16  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-07-15  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/104313
+ 	* gfortran.dg/pr104313.f: New test.
+ 
+ 2022-07-12  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-07-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/105860
+ 	* gcc.dg/tree-ssa/alias-access-path-13.c: New test.
+ 	* gcc.dg/tree-ssa/pr105860.c: Likewise.
+ 
+ 2022-07-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2022-03-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/104869
+ 	* g++.dg/pr104869.C: New test.
+ 
+ 2022-07-04  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-06-29  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/106139
+ 	* gdc.dg/pr106139a.d: New test.
+ 	* gdc.dg/pr106139b.d: New test.
+ 	* gdc.dg/pr106139c.d: New test.
+ 	* gdc.dg/pr106139d.d: New test.
+ 	* gdc.test/fail_compilation/ice20264.d: New test.
+ 
+ 2022-07-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-30  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/103137
+ 	PR fortran/103138
+ 	PR fortran/103693
+ 	PR fortran/105243
+ 	* gfortran.dg/class_58.f90: Fix test.
+ 	* gfortran.dg/class_73.f90: New test.
+ 
+ 2022-07-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-29  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/106121
+ 	* gfortran.dg/extends_type_of_4.f90: New test.
+ 
+ 2022-07-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/105954
+ 	* gfortran.dg/pr105954.f90: New test.
+ 
+ 2022-07-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/105691
+ 	* gfortran.dg/index_6.f90: New test.
+ 
+ 2022-07-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-06-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/105813
+ 	* gfortran.dg/unpack_vector_1.f90: New test.
+ 
+ 2022-07-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/106024
+ 	* g++.dg/cpp2a/lambda-generic10.C: New test.
+ 
+ 2022-06-24  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105925
+ 	* g++.dg/cpp2a/desig26.C: New test.
+ 
+ 2022-06-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/105209
+ 	* gcc.target/alpha/pr105209.c: New test.
+ 
+ 2022-06-20  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/105970
+ 	* gcc.target/i386/pr105970.c: New test.
+ 
+ 2022-06-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/105998
+ 	* c-c++-common/pr105998.c: New test.
+ 
+ 2022-06-20  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-06-14  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* gcc.dg/ipa/pr105739.c: New test.
+ 
+ 2022-06-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/105729
+ 	* g++.dg/ubsan/pr105729.C: New test.
+ 
+ 2022-06-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/105732
+ 	* c-c++-common/cpp/va-opt-10.c: New test.
+ 
+ 2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* gdc.dg/Wpadded.d: New test.
+ 
+ 2022-06-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105726
+ 	* g++.dg/warn/Warray-bounds-27.C: New testcase.
+ 
+ 2022-06-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/104637
+ 	* gcc.target/i386/pr104637.c: Don't run on ia32.  Add -Wno-div-by-zero
+ 	to dg-options.
+ 	(foo): Remove extraneous initializer.
+ 
+ 2022-06-14  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/104637
+ 	* gcc.target/i386/pr104637.c: New.
+ 
+ 2022-06-08  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105852
+ 	PR c++/105761
+ 	* g++.dg/modules/tpl-friend-2_a.C: Adjust expected dump.
+ 	* g++.dg/template/friend74.C: New test.
+ 
+ 2022-06-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105761
+ 	* g++.dg/cpp1y/auto-fn64.C: New test.
+ 
+ 2022-06-03  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105795
+ 	* g++.dg/cpp1z/constexpr-aggr-base1.C: New test.
+ 
+ 2022-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105437
+ 	* g++.dg/vect/pr105437.cc: New testcase.
+ 
+ 2022-05-31  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102307
+ 	* g++.dg/cpp1z/constexpr-array2.C: New test.
+ 
+ 2022-05-27  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-04-18  Kewen Lin  <linkw@linux.ibm.com>
+ 
+ 	PR testsuite/105266
+ 	* gcc.dg/pr105250.c: Skip for powerpc*-*-* and s390*-*-*.
+ 
+ 2022-05-25  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-04-07  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	PR target/105147
+ 	* gcc.dg/pr105140.c: Skip for s390*-*-*.
+ 
+ 2022-05-25  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backported from master:
+ 	2022-04-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/105147
+ 	* gcc.dg/pr105140.c: Skip for powerpc*-*-*.
+ 
+ 2022-05-24  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	Backported from master:
+ 	2022-05-09  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* gcc.target/i386/zero-scratch-regs-1.c: Add -fno-stack-protector
+ 	-fno-PIC.
+ 	* gcc.target/i386/zero-scratch-regs-10.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-13.c: Add -msse.
+ 	* gcc.target/i386/zero-scratch-regs-14.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-15.c: Add -fno-stack-protector
+ 	-fno-PIC.
+ 	* gcc.target/i386/zero-scratch-regs-16.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-17.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-18.c: Add -fno-stack-protector
+ 	-fno-PIC, adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-19.c: Add -fno-stack-protector
+ 	-fno-PIC.
+ 	* gcc.target/i386/zero-scratch-regs-2.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-20.c: Add -msse.
+ 	* gcc.target/i386/zero-scratch-regs-21.c: Add -fno-stack-protector
+ 	-fno-PIC, Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-22.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-23.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-26.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-27.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-28.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-3.c: Add -fno-stack-protector.
+ 	* gcc.target/i386/zero-scratch-regs-31.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-4.c: Add -fno-stack-protector
+ 	-fno-PIC.
+ 	* gcc.target/i386/zero-scratch-regs-5.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-6.c: Add -fno-stack-protector.
+ 	* gcc.target/i386/zero-scratch-regs-7.c: Likewise.
+ 	* gcc.target/i386/zero-scratch-regs-8.c: Adjust mov to xor.
+ 	* gcc.target/i386/zero-scratch-regs-9.c: Add -fno-stack-protector.
+ 
+ 2022-05-19  Michael Meissner  <meissner@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2022-05-06  Michael Meissner  <meissner@linux.ibm.com>
+ 		    Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/102059
+ 	* gcc.target/powerpc/pr102059-4.c: New test.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105312
+ 	* gcc.target/arm/pr105312.c: New testcase.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105263
+ 	* gcc.dg/pr105263.c: New testcase.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105173
+ 	* gcc.dg/pr105173.c: New testcase.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105163
+ 	* gcc.dg/torture/pr105163.c: New testcase.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105148
+ 	* gcc.dg/torture/pr105148.c: New testcase.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105250
+ 	* gcc.dg/pr105250.c: New testcase.
+ 
+ 2022-05-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-04-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/105140
+ 	* gcc.dg/pr105140.c: New testcase.
+ 
+ 2022-05-19  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2022-04-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/100413
+ 	* g++.dg/ipa/pr100413.C: New test.
+ 
+ 2022-05-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-05-11  Harald Anlauf  <anlauf@gmx.de>
+ 		    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/105230
+ 	* gfortran.dg/pr105230.f90: New test.
+ 
+ 2022-05-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2022-03-09  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/104849
+ 	* gfortran.dg/pr104849.f90: New test.
+ 
+ 2022-05-16  Sebastian Pop  <spop@amazon.com>
+ 
+ 	PR target/105162
+ 	* gcc.target/aarch64/sync-comp-swap-ool.c: New.
+ 	* gcc.target/aarch64/sync-op-acquire-ool.c: New.
+ 	* gcc.target/aarch64/sync-op-full-ool.c: New.
+ 	* gcc.target/aarch64/target_attr_20.c: Update check.
+ 	* gcc.target/aarch64/target_attr_21.c: Same.
+ 
+ 2022-05-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2022-05-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gcc.dg/torture/pr105598.c: New testcase.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/101442
+ 	* g++.dg/cpp0x/initlist-nrv1.C: New test.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/101698
+ 	* g++.dg/template/conv19.C: New test.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/65211
+ 	* g++.target/i386/vec-tmpl1.C: New test.
+ 
+ 2022-05-13  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/102479
+ 	* g++.dg/cpp1z/class-deduction12.C: Also test alias CTAD in the
+ 	same way.
+ 	* g++.dg/cpp1z/class-deduction99.C: New test.
+ 
+ 2022-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102300
+ 	* g++.dg/parse/no-typename1.C: Remove expected error.
+ 	* g++.dg/template/nested7.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102629
+ 	* g++.dg/cpp2a/lambda-pack-init7.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/104646
+ 	* g++.dg/cpp0x/constexpr-fno-elide-ctors1.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/82980
+ 	* g++.dg/cpp0x/lambda/lambda-current-inst1.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105265
+ 	PR c++/100838
+ 	* g++.dg/cpp0x/initlist-new6.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/105245
+ 	PR c++/100111
+ 	* g++.dg/cpp1y/constexpr-empty2.C: Add -fno-elide-constructors.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/104669
+ 	* g++.target/i386/mv31.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/102071
+ 	* g++.dg/cpp1z/aligned-new9.C: New test.
+ 
+ 2022-05-12  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/104142
+ 	* g++.dg/opt/const7.C: New test.
+ 
+ 2022-05-10  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-05-10  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/105472
+ 	* gcc.target/i386/iamcu/asm-support.S: Add .note.GNU-stack section
+ 	only for Linux.
+ 	* gcc.target/x86_64/abi/asm-support.S: Likewise.
+ 	* gcc.target/x86_64/abi/avx/asm-support.S: Likewise.
+ 	* gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise.
+ 	* gcc.target/x86_64/abi/ms-sysv/do-test.S: Likewise.
+ 
+ 2022-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/105528
+ 	* gcc.dg/pr105528.c: New test.
+ 
+ 2022-05-10  Jeff Law  <jeffreyalaw@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-04-28  Jeff Law  <jeffreyalaw@gmail.com>
+ 
+ 	* lib/prune.exp (prune_gcc_output): Prune new linker warning.
+ 
+ 2022-05-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.target/sparc/20220510-1.c: New test.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp23/lambda-attr1.C: New test.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105331
+ 	* gcc.dg/pr105331.c: New test.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/105396
+ 	* gcc.dg/asan/pr105396.c: New test.
+ 
+ 2022-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/105333
+ 	* gcc.dg/pr105333.c: New test.
+ 
+ 2022-05-06  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-05-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR testsuite/105433
+ 	* gcc.target/i386/iamcu/asm-support.S: Add .note.GNU-stack.
+ 	* gcc.target/x86_64/abi/asm-support.S: Likewise.
+ 	* gcc.target/x86_64/abi/avx/asm-support.S: Likewise.
+ 	* gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise.
+ 	* gcc.target/x86_64/abi/ms-sysv/do-test.S: Likewise.
+ 
+ 2022-05-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	Backported from master:
+ 	2022-05-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Update
+ 	the expected message for the case in which unaligned accesses
+ 	are not allowed.
+ 
+ 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105365
+ 	PR analyzer/105366
+ 	* gcc.dg/analyzer/pr105365.c: New test.
+ 	* gcc.dg/analyzer/pr105366.c: New test.
+ 
+ 2022-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/105252
+ 	* gcc.dg/analyzer/pr105252.c: New test.
+ 
+ 2022-04-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/105386
+ 	* g++.dg/cpp0x/decltype81.C: New test.
+ 
+ 2022-04-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/105304
+ 	* g++.dg/cpp2a/concepts-requires30.C: New test.
+ 
+ 2022-04-28  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/105289
+ 	PR c++/86193
+ 	* g++.dg/template/partial-specialization11.C: New test.
+ 	* g++.dg/template/partial-specialization12.C: New test.
+ 
+ 2022-04-28  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-28  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/90107
+ 	* g++.dg/parse/qualified6.C: New test.
+ 
+ 2022-04-28  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR testsuite/105095
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Update for
+ 	codegen.
+ 	* gcc.dg/vect/complex/fast-math-complex-add-double.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-add-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:
+ 	Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mls-double.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mls-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mul-double.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mul-float.c: Likewise.
+ 	* gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Likewise.
+ 	* gcc.dg/vect/vect.exp: Add extra letter to filter.
+ 
+ 2022-04-27  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-27  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/105398
+ 	* g++.dg/cpp1y/lambda-generic-enum2.C: New test.
+ 
+ 2022-04-27  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2022-04-25  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/105339
+ 	* gcc.target/i386/sse-14.c: Add tests for new macro.
+ 
+ 2022-04-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-21  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/105321
+ 	* g++.dg/cpp0x/constexpr-105321.C: New test.
+ 
+ 2022-04-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/97296
+ 	* g++.dg/cpp0x/ref-bind4.C: Add dg-error.
+ 	* g++.dg/cpp0x/ref-bind8.C: New test.
+ 
+ 2022-04-21  Fritz Reese  <foreese@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-04-21  Fritz Reese  <foreese@gcc.gnu.org>
+ 
+ 	PR fortran/105310
+ 	* gfortran.dg/dec_union_12.f90: New test.
+ 
+ 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/105257
+ 	* gcc.dg/pr105257.c: New test.
+ 
+ 2022-04-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/105203
+ 	* gfortran.dg/g77/pr105203.f: New test.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c gcc-11.4.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,112 ----
+ /* { dg-do compile { target { ilp32 || lp64 } } } */
+ /* { dg-options "-Wsign-compare" } */
+ 
+ int
+ f1 (unsigned char x)
+ {
+   return (unsigned short) (~(unsigned short) x) == 0;		/* { dg-warning "promoted bitwise complement of an unsigned value is always nonzero" "" { target c } } */
+ }
+ 
+ int
+ f2 (unsigned char x)
+ {
+   return (unsigned short) (~(unsigned short) x) == 5;		/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with constant" "" { target c }  } */
+ }
+ 
+ int
+ f3 (unsigned char x)
+ {
+   return (unsigned int) (~(unsigned short) x) == 0xffff0005U;	/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
+ 
+ int
+ f4 (unsigned char x)
+ {
+   return (unsigned int) (~(unsigned short) x) == 0xffff0005ULL;	/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
+ 
+ int
+ f5 (unsigned char x)
+ {
+   return (unsigned int) (~(unsigned short) x) == 0xffffff05U;	/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
+ 
+ int
+ f6 (unsigned char x)
+ {
+   return (unsigned int) (~(unsigned short) x) == 0xffffff05ULL;	/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
+ 
+ int
+ f7 (unsigned char x)
+ {
+   return (unsigned long long) (~(unsigned short) x) == 0xffffffffffffff05ULL;	/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
+ 
+ typedef unsigned short T;
+ 
+ int
+ f8 (T x)
+ {
+   return (unsigned short) (~(unsigned short) x) == 0;		/* { dg-bogus "promoted bitwise complement of an unsigned value is always nonzero" } */
+ }
+ 
+ int
+ f9 (T x)
+ {
+   return (unsigned short) (~(unsigned short) x) == 5;		/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
+ 
+ int
+ f10 (T x, unsigned char y)
+ {
+   return (unsigned short) (~(unsigned short) x) == y;		/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */
+ }
+ 
+ int
+ f11 (T x, unsigned char y)
+ {
+   return (unsigned short) (~(unsigned short) x) == y;		/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */
+ }
+ 
+ int
+ f12 (unsigned char x, unsigned char y)
+ {
+   return (unsigned short) (~(unsigned short) x) == y;		/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" "" { target c } } */
+ }
+ 
+ int
+ f13 (unsigned char x, unsigned char y)
+ {
+   return (unsigned short) (~(unsigned short) x) == y;		/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" "" { target c } } */
+ }
+ 
+ int
+ f14 (unsigned char x, unsigned int y)
+ {
+   return (unsigned long long) (~x) == y;			/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" } */
+ }
+ 
+ int
+ f15 (unsigned short x, unsigned int y)
+ {
+   return (long long) (~x) == y;					/* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" } */
+ }
+ 
+ int
+ f16 (unsigned char x, unsigned short y)
+ {
+   return (unsigned short) (~(unsigned short) x) == y;		/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */
+ }
+ 
+ int
+ f17 (unsigned char x, unsigned short y)
+ {
+   return (unsigned short) (~(unsigned short) x) == y;		/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */
+ }
+ 
+ int
+ f18 (unsigned char x)
+ {
+   return (unsigned int) (short) (~(unsigned short) x) == 0xffffff05ULL;	/* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/cold-2.c gcc-11.4.0/gcc/testsuite/c-c++-common/cold-2.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/cold-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/cold-2.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR ipa/105685 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wsuggest-attribute=cold" } */
+ 
+ extern void foo (char *, char const *, int);
+ 
+ __attribute__((cold)) char *
+ bar (int x)
+ {
+   static char b[42];
+   foo (b, "foo", x);
+   return b;
+ }
+ 
+ __attribute__((cold)) char *
+ baz (int x)		/* { dg-bogus "function might be candidate for attribute 'cold'" } */
+ {
+   return bar (x);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c gcc-11.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ /* PR preprocessor/105732 */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99" { target c } } */
+ /* { dg-options "-std=c++20" { target c++ } } */
+ 
+ #define m1(p1, p2, p3) p3
+ #define m2(p1, ...) 1##__VA_OPT__(foo)
+ #define m3(...) m1(1, 2, m2)
+ #define m4(p1, ...) 1 __VA_OPT__()
+ #define m5(...) m1(1, 2, m4)
+ #if m3(,)(,)
+ #else
+ #error
+ #endif
+ #if m5(,)(,)
+ #else
+ #error
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ /* PR middle-end/108685 */
+ /* { dg-do compile } */
+ 
+ void
+ foo (int a)
+ {
+   for (int m = 0; m < 10; m++)
+     #pragma omp for collapse(2) ordered(4)
+     for (int i = 0; i < 2; i++)
+       for (int j = 0; j < a; j++)
+ 	for (int k = 0; k < 2; k++)
+ 	  for (int l = 0; l < a; l++)
+ 	    {
+ 	      #pragma omp ordered depend (source)
+ 	      __builtin_abort ();
+ 	    }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr106981.c gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr106981.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr106981.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr106981.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,9 ----
+ /* PR c/106981 */
+ /* { dg-do compile } */
+ 
+ void
+ foo (int a, double *b, double *c, double *d, long long e)
+ {
+ #pragma omp atomic capture
+   c[a] = d[((int) (e / 10 + 1))] = b[a] + d[((int) e / 10 + 1)];	/* { dg-error "invalid form" } */
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr107001.c gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr107001.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr107001.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr107001.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ /* PR c/107001 */
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -fopenmp -fexceptions" } */
+ /* { dg-require-effective-target exceptions } */
+ 
+ void bar (void);
+ void foo (void)
+ {
+   #pragma omp taskgroup
+   {
+     #pragma omp taskgroup
+     bar ();
+   }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr105998.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr105998.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/pr105998.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/pr105998.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ /* PR middle-end/105998 */
+ 
+ typedef int __attribute__((__vector_size__ (sizeof (long long)))) V;
+ 
+ V v;
+ 
+ long long
+ foo (void)
+ {
+   long long l = (long long) ((0 | v) - ((V) { } == 0));
+   return l;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr107358.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr107358.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/pr107358.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/pr107358.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,30 ----
+ /* PR c++/107358 */
+ /* { dg-do compile { target c } } */
+ /* { dg-options "-O2 -fexcess-precision=standard" } */
+ 
+ typedef float __attribute__((vector_size (4 * sizeof (float)))) A;
+ typedef double __attribute__((vector_size (2 * sizeof (double)))) B;
+ 
+ void
+ foo (A *x)
+ {
+   *x = *x - 124.225514990f;
+ }
+ 
+ void
+ bar (A *x, float y)
+ {
+   *x = *x - y;
+ }
+ 
+ void
+ baz (B *x)
+ {
+   *x = *x + 124.225514990f;
+ }
+ 
+ void
+ qux (B *x, double y)
+ {
+   *x = *x + y;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr107465.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr107465.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/pr107465.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/pr107465.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,22 ----
+ /* PR c/107465 */
+ /* { dg-do compile } */
+ /* { dg-options "-Wsign-compare" } */
+ 
+ void baz (void);
+ typedef unsigned short T;
+ 
+ #if __SIZEOF_SHORT__ * __CHAR_BIT__ == 16
+ void
+ foo (unsigned short x)
+ {
+   if (!(x ^ 0xFFFF))
+     baz ();
+ }
+ 
+ void
+ bar (T x)
+ {
+   if (!(x ^ 0xFFFF))	/* { dg-bogus "promoted bitwise complement of an unsigned value is always nonzero" } */
+     baz ();
+ }
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr97498.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr97498.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/pr97498.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/pr97498.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-Wunused-function" } */
+ #pragma GCC diagnostic ignored "-Wunused-function"
+ static void f() {} _Pragma("GCC diagnostic error \"-Wunused-function\"") /* { dg-bogus "-Wunused-function" } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c gcc-11.4.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c
*** gcc-11.3.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ /* PR c/109151 */
+ /* { dg-do run } */
+ /* { dg-options "-fsanitize=integer-divide-by-zero -Wno-div-by-zero -fno-sanitize-recover=integer-divide-by-zero" } */
+ /* { dg-shouldfail "ubsan" } */
+ 
+ int d;
+ 
+ int
+ main ()
+ {
+   d = ((short) (d == 1 | d > 9)) / 0;
+ }
+ 
+ /* { dg-output "division by zero" } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C gcc-11.4.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,11 ----
+ // A version of explicit-spec1.C where the template g has trailing instead of
+ // template requirements.
+ // PR c++/107864
+ // { dg-do compile { target concepts } }
+ 
+ template<typename T> concept C = __is_class(T);
+ struct Y { int n; } y;
+ template<class T> void g(T) requires C<T> { }
+ int called;
+ template<> void g(Y) { called = 3; }
+ int main() { g(y); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/103871
+ // { dg-do compile { target c++20 } }
+ 
+ #include <coroutine>
+ #include <initializer_list>
+ 
+ struct my_coro {
+   struct promise_type {
+     my_coro get_return_object();
+     std::suspend_never initial_suspend();
+     std::suspend_never final_suspend() noexcept;
+     void unhandled_exception();
+   };
+ };
+ 
+ std::suspend_never inner(std::initializer_list<int>);
+ 
+ my_coro doesnt_work()
+ {
+   co_await inner({ 1,2,3 });
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,63 ----
+ // PR c++/105406
+ // { dg-do compile { target c++20 } }
+ 
+ #include <coroutine>
+ #include <exception>
+ 
+ // A move-only awaitable
+ class MoveOnlyAwaitable {
+ public:
+     MoveOnlyAwaitable() = default;
+     MoveOnlyAwaitable(MoveOnlyAwaitable &&) = default;
+     MoveOnlyAwaitable &operator=(MoveOnlyAwaitable &&) = default;
+ 
+     MoveOnlyAwaitable(const MoveOnlyAwaitable &) = delete;
+     MoveOnlyAwaitable &operator=(const MoveOnlyAwaitable &) = delete;
+ 
+     bool await_ready() const noexcept { return false; }
+     void await_suspend(std::coroutine_handle<>) noexcept {}
+     void await_resume() {}
+ };
+ 
+ struct task {
+     struct promise_type {
+         auto initial_suspend() const { return std::suspend_never{}; }
+         auto final_suspend() const noexcept { return std::suspend_never(); }
+         auto get_return_object() { return task{}; }
+         void return_void() {}
+         void unhandled_exception() {}
+ 
+         template<typename T>
+         T &&await_transform(T &&t) {
+             return static_cast<T &&>(t);
+         }
+ 
+ 
+     };
+ 
+     bool await_ready() const { return false; }
+     void await_suspend(std::coroutine_handle<> awaiter) {}
+     void await_resume() {}
+ };
+ 
+ task myCoroutine() {
+     // GCC: OK
+     // clang: OK
+     {
+         co_await MoveOnlyAwaitable();
+     }
+     // GCC: OK
+     // clang: OK
+     {
+         auto moveonly = MoveOnlyAwaitable();
+         co_await std::move(moveonly);
+     }
+ 
+     // GCC <= 11.2: OK
+     // GCC 11.3:ERROR:  error: use of deleted function 'MoveOnlyAwaitable::MoveOnlyAwaitable(const MoveOnlyAwaitable&)
+     // clang: OK
+     {
+         auto moveonly = MoveOnlyAwaitable();
+         co_await moveonly;
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/pr106188.C gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr106188.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/pr106188.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr106188.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,34 ----
+ // { dg-do run { target c++20 } }
+ // test case from pr106188, w/o workaround
+ #include <coroutine>
+ 
+ struct task {
+   struct promise_type {
+     task get_return_object() { return task{}; }
+     void return_void() {}
+     void unhandled_exception() {}
+     auto initial_suspend() noexcept { return std::suspend_never{}; }
+     auto final_suspend() noexcept { return std::suspend_never{}; }
+   };
+ };
+ 
+ struct suspend_and_resume {
+   bool await_ready() const { return false; }
+   void await_suspend(std::coroutine_handle<> h) { h.resume(); }
+   void await_resume() {}
+ };
+ 
+ task f() {
+   if (co_await suspend_and_resume{}, false) {}
+ }
+ 
+ task g() {
+   switch (co_await suspend_and_resume{}, 0) {
+     default: break;
+   }
+ }
+ 
+ int main() {
+   f();
+   g();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/105321
+ // { dg-do compile { target c++11 } }
+ 
+ bool handle_error();
+ 
+ constexpr int echo(int value, bool yes = true) noexcept
+ {
+     return (yes || handle_error()), value;
+ }
+ 
+ static_assert(echo(10) == 10, "");
+ 
+ constexpr int echo2(int value, bool no = false) noexcept
+ {
+     return (!no || handle_error()), value;
+ }
+ 
+ static_assert(echo2(10) == 10, "");
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,89 ----
+ // PR c++/104646
+ // { dg-do compile { target c++11 } }
+ // { dg-additional-options -fno-elide-constructors }
+ 
+ template <typename _T1> struct pair {
+   _T1 first;
+   int second;
+ };
+ template <typename _Iterator> class __normal_iterator {
+   _Iterator __traits_type;
+ 
+ public:
+   constexpr __normal_iterator() {}
+ };
+ template <typename> class allocator;
+ template <typename> struct allocator_traits;
+ template <typename _Tp> struct allocator_traits<allocator<_Tp>> {
+   using value_type = _Tp;
+   template <typename _Up> using rebind_alloc = allocator<_Up>;
+ };
+ template <typename _Alloc> struct __alloc_traits {
+   typedef allocator_traits<_Alloc> _Base_type;
+   typedef typename _Base_type::value_type &const_reference;
+   template <typename _Tp> struct rebind {
+     typedef typename _Base_type::template rebind_alloc<_Tp> other;
+   };
+ };
+ template <typename _Tp, typename _Alloc> struct _Vector_base {
+   typedef typename __alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type;
+ };
+ template <typename _Tp, typename _Alloc = allocator<_Tp>> class vector {
+ public:
+   typename __alloc_traits<
+       typename _Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_reference
+   operator[](long);
+ };
+ enum match_flag_type {};
+ template <typename, typename> class Trans_NS___cxx11_basic_regex;
+ class Trans_NS___cxx11_match_results;
+ enum _RegexExecutorPolicy { _S_auto };
+ template <typename, typename, typename _CharT, typename _TraitsT,
+           _RegexExecutorPolicy, bool>
+ bool __regex_algo_impl(Trans_NS___cxx11_match_results &,
+                        const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &);
+ template <typename, typename, typename, bool> class _Executor;
+ template <typename _Ch_type, typename = _Ch_type>
+ class Trans_NS___cxx11_basic_regex {};
+ class Trans_NS___cxx11_match_results : vector<int> {
+   template <typename, typename, typename _Cp, typename _Rp,
+             _RegexExecutorPolicy, bool>
+   friend bool __regex_algo_impl(Trans_NS___cxx11_match_results &,
+                                 const Trans_NS___cxx11_basic_regex<_Cp, _Rp> &);
+ };
+ template <typename _Bi_iter, typename _Alloc, typename _Ch_type,
+           typename _Rx_traits>
+ void regex_search(_Bi_iter, _Alloc,
+                   Trans_NS___cxx11_basic_regex<_Ch_type, _Rx_traits>) {
+   __regex_algo_impl<_Bi_iter, _Alloc, _Ch_type, _Rx_traits, _S_auto, false>;
+ }
+ match_flag_type __regex_algo_impl___flags;
+ template <typename, typename, typename _CharT, typename _TraitsT,
+           _RegexExecutorPolicy, bool>
+ bool __regex_algo_impl(
+     Trans_NS___cxx11_match_results &__m,
+     const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &__re) {
+   __normal_iterator<const char *> __e, __s;
+   _Executor<int, int, _TraitsT, false> __executor(__s, __e, __m, __re,
+                                                   __regex_algo_impl___flags);
+   __executor._M_match();
+   return false;
+ }
+ template <typename, typename, typename, bool> class _Executor {
+ public:
+   _Executor(__normal_iterator<const char *>, __normal_iterator<const char *>,
+             vector<int>, Trans_NS___cxx11_basic_regex<char>, match_flag_type);
+   void _M_match() { _M_dfs(); }
+   void _M_dfs();
+   vector<pair<__normal_iterator<char *>>> _M_rep_count;
+ };
+ long _M_rep_once_more___i;
+ template <typename _BiIter, typename _Alloc, typename _TraitsT, bool __dfs_mode>
+ void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::_M_dfs() {
+   auto __rep_count = _M_rep_count[_M_rep_once_more___i];
+ }
+ char main___trans_tmp_1;
+ void main___trans_tmp_2() {
+   Trans_NS___cxx11_basic_regex<char> re;
+   regex_search(main___trans_tmp_1, main___trans_tmp_2, re);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/105996
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {
+   void CB() {}
+ };
+ struct B : public A { };
+ 
+ using APMF = void (A::*)();
+ using BPMF = void (B::*)();
+ 
+ constexpr APMF foo () { return &A::CB; };
+ static constexpr BPMF b = foo();
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/105386
+ // { dg-do compile { target c++11 } }
+ 
+ template<class T> struct NoInst {
+   static_assert(sizeof(T) == 9999, "NoInst instantiated");
+ };
+ 
+ template<class T> NoInst<T> f(T);
+ 
+ template<class>
+ struct A {
+   using type = decltype(f(0));
+ };
+ 
+ A<int> a;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/enum43.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/enum43.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/enum43.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/enum43.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/101869
+ 
+ enum E { A };
+ E operator & (E e)
+ {
+   return e;
+ }
+ E f(void)
+ {
+     return &E::A;	 // { dg-error "not a class" "" { target c++98_only } }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,39 ----
+ // PR c++/105265
+ // { dg-do run { target c++11 } }
+ 
+ int c;
+ 
+ class Block
+ {
+ public:
+   Block(int n) : data{new char[n]}, size{n}
+   {
+     ++c;
+   }
+ 
+   ~Block()
+   {
+     --c;
+     delete[] data;
+   }
+ 
+ private:
+   char* data;
+   int size;
+ };
+ 
+ struct Cargo
+ {
+   Block const& block;
+ };
+ 
+ int main()
+ {
+   {
+     Cargo* c = new Cargo{{4000}};
+     delete c;
+   }
+   if (c != 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,34 ----
+ // PR c++/101442
+ // { dg-do run { target c++11 } }
+ 
+ bool destroyed = false;
+ 
+ struct A
+ {
+   A() {}
+   A(const A &) = delete;
+   A &operator=(const A &) = delete;
+   ~A() {destroyed = true;}
+ };
+ 
+ struct B
+ {
+   const A &a;
+   struct string {
+     string(const char*) { }
+     ~string() { }
+   } s;
+ };
+ 
+ B foo()
+ {
+   B ret{ A{}, "" };
+   return ret;
+ }
+ 
+ int main()
+ {
+   B b = foo();
+   if (!destroyed)
+     __builtin_abort();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/108975
+ // { dg-do compile { target c++11 } }
+ 
+ template<class T>
+ void f() {
+   constexpr int dim = 1;
+   auto l = [&] {
+     int n[dim * 1];
+   };
+   // In f<int>, we shouldn't actually capture dim.
+   static_assert (sizeof(l) == 1, "");
+ }
+ 
+ template void f<int>();
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/82980
+ // { dg-do compile { target c++11 } }
+ 
+ template <class T>
+ struct Outer
+ {
+   template <class U>
+   void f();
+ 
+   void bar(Outer outer) {
+     [outer](){ outer.f<int>(); };
+   }
+   void baz(Outer *p) {
+     [&](){ p->f<int>(); };
+   }
+ };
+ 
+ int main() { }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/106675
+ // { dg-do compile { target c++11 } }
+ 
+ struct foo {
+     int n_;
+     foo(int n) : n_(n) {}
+ };
+ 
+ struct bar {
+     int n_;
+ 
+     operator foo() const {
+         return foo(n_);
+     }
+     operator foo &() { return *reinterpret_cast<foo *>(n_); }
+     operator foo const &() = delete;
+ 
+     void crashgcc() {
+         foo tmp(*this); // { dg-error "ambiguous" }
+     }
+ };
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/107065
+ // { dg-do compile { target c++11 } }
+ 
+ template<class, class> struct is_same { static constexpr bool value = false; };
+ template<class T> struct is_same<T, T> { static constexpr bool value = true; };
+ 
+ int
+ main ()
+ {
+   bool b = true;
+   static_assert (is_same<decltype (!(!b)), bool>::value, "");
+   auto bb = (!(!b));
+   static_assert (is_same<decltype (bb), bool>::value, "");
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C	Mon May 29 08:46:30 2023
*************** g (int *p, const int *pc, const int **q)
*** 51,56 ****
       similar  types  T1 and T2 (_conv.qual_), respectively, and the cv-
       qualification signature of type T1 is a proper subset of  the  cv-
       qualification signature of type T2  */
!   f8 (q);
    f9 (q);
  }
--- 51,56 ----
       similar  types  T1 and T2 (_conv.qual_), respectively, and the cv-
       qualification signature of type T1 is a proper subset of  the  cv-
       qualification signature of type T2  */
!   f8 (q); // { dg-error "call of overloaded" }
    f9 (q);
  }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/97296
+ // { dg-do compile }
+ 
+ void f(const int * const &);
+ void f(const int *);
+ int *x;
+ int main()
+ {
+   f(x); // { dg-error "call of overloaded" }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/105761
+ // { dg-do compile { target c++14 } }
+ // { dg-additional-options -Wno-non-template-friend }
+ 
+ template <class T>
+ class X {
+   friend auto f(X);
+ };
+ 
+ struct Y : X<long> {
+   friend auto f(X) { return 0L; }
+ };
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/105774
+ // { dg-do compile { target c++14 } }
+ 
+ constexpr signed char
+ foo ()
+ {
+ #if __SCHAR_MAX__ < __INT_MAX__
+   signed char x = __SCHAR_MAX__;
+ #else
+   signed char x = 0;
+ #endif
+   return ++x;
+ }
+ 
+ constexpr auto a = foo ();
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C	Mon May 29 08:46:30 2023
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do compile { target c++14 } }
+ // { dg-additional-options -fno-elide-constructors }
  
  struct A
  {
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/105398
+ // { dg-do compile { target c++14 } }
+ 
+ auto f = [](auto &&m) {
+     enum E { _,e3,e2,e1,C4,C3,C2,C1 };
+     static constexpr int x_coeffs[3][4] = {
+         {e1,C2,C3,C4},
+         {e2,C1,C3,C4},
+         {e3,C1,C2,C4},
+     };
+ };
+ 
+ int main() {
+     f(0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/108468
+ // { dg-do compile { target c++14 } }
+ 
+ template<int> struct C {
+   template<class, class>
+   static constexpr int x = 1;
+ };
+ 
+ template<int I> template<class... A>
+ int C<I>::x<void(A...), void(A...)> = 2;
+ 
+ int y = C<0>::x<void(int), void()>;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,30 ----
+ // PR c++/102071
+ // { dg-do run { target c++17 } }
+ // { dg-additional-options -faligned-new=2 }
+ 
+ #include <new>
+ 
+ int nalign;
+ void *operator new (std::size_t s, std::align_val_t a)
+ {
+   nalign = (int)a;
+   return operator new (s);
+ }
+ 
+ struct X { ~X(); int c; };
+ 
+ int align = (alignof (X) > alignof (std::size_t)
+ 	     ? alignof (X) : alignof (std::size_t));
+ 
+ int n = 4;
+ 
+ int main()
+ {
+   X *p = new X[n];
+   if (nalign != align)
+     __builtin_abort ();
+ 
+   X *p2 = new X;
+   if (nalign != alignof (X))
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C	Thu Apr 21 07:58:53 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C	Mon May 29 08:46:30 2023
*************** A a(&i,2,B<42>());
*** 15,17 ****
--- 15,23 ----
  template <class,class> class same;
  template <class T> class same<T,T> {};
  same<decltype(a), A<int*>> s;
+ 
+ #if __cpp_deduction_guides >= 201907
+ template <class T> using C = A<const T*>;
+ 
+ same<decltype(C(&i, 2, B<42>())), A<const int*>> t;
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,35 ----
+ // PR c++/102479
+ // { dg-do compile { target c++17 } }
+ 
+ template<class T> struct A;
+ 
+ template<class T>
+ struct tuple {
+   tuple(T);
+ 
+   template<template<class> class Tmpl>
+   tuple(Tmpl<T>);
+ 
+   template<template<class> class Tmpl, typename A<Tmpl<char>>::type = 0>
+   tuple(Tmpl<T>);
+ 
+   template<template<class> class Tmpl, typename A<Tmpl<long>>::type = 0>
+   tuple(Tmpl<T>);
+ };
+ 
+ template<class T> struct B { };
+ 
+ using ty1 = tuple<int>;
+ using ty1 = decltype(tuple(0));
+ using ty1 = decltype(tuple(B<int>{}));
+ 
+ #if __cpp_deduction_guides >= 201907
+ template<class T> using const_tuple = tuple<const T>;
+ 
+ using ty2 = const_tuple<int>;
+ using ty2 = decltype(const_tuple(0));
+ using ty2 = decltype(const_tuple(B<const int>{}));
+ 
+ using ty3 = const_tuple<B<int>>;
+ using ty3 = decltype(const_tuple(B<int>{}));
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,27 ----
+ // PR c++/105795
+ // { dg-do compile { target c++17 } }
+ 
+ struct empty
+ {};
+ 
+ template <typename T>
+ struct tuple_holder
+ {
+     [[no_unique_address]] T value;
+ };
+ 
+ struct tuple : tuple_holder<int>, tuple_holder<empty>
+ {};
+ 
+ constexpr auto make_tuple(int&& i, empty&& e)
+ {
+     return tuple{i, e};
+ }
+ 
+ constexpr int foo()
+ {
+     auto tuple = make_tuple(1, empty{});
+     return static_cast<const tuple_holder<int>&>(tuple).value;
+ }
+ 
+ static_assert (foo() == 1);
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/102307
+ // { dg-do compile { target c++11 } }
+ 
+ #include <array>
+ template <unsigned N, unsigned M> struct Matrix {
+   constexpr Matrix(double const (&arr)[N][M]); // { dg-warning "never defined" }
+   constexpr Matrix(std::array<std::array<double, M>, N> const &arr);
+ };
+ int main() {
+   constexpr Matrix<2, 3>
+     mat {{ {1.0, 2.0, 3.0}, {4.0, 5.0, 6.0} }}; // { dg-error "before its definition" }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/100295
+ // { dg-do compile { target c++17 } }
+ 
+ template<typename... Ts>
+ void f(Ts... ts) {
+   auto lambda = [=](auto x) {
+     if constexpr (sizeof((ts+x) + ...) != 0)
+       (..., ts);
+   };
+   lambda(0);
+ }
+ 
+ int main() {
+   f(0, 'a');
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,27 ----
+ // PR c++/108474
+ // { dg-do link { target c++17 } }
+ 
+ struct T { int i, j; };
+ T h;
+ auto [i, j] = h;
+ int &r = i;
+ int s = i;
+ int *t = &i;
+ 
+ void
+ foo (int **p, int *q)
+ {
+   static int &u = i;
+   static int v = i;
+   static int *w = &i;
+   int &x = i;
+   int y = i;
+   int *z = &i;
+   *p = &i;
+   *q = i;
+ }
+ 
+ int
+ main ()
+ {
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,39 ----
+ // PR c++/108474
+ // { dg-do link { target c++17 } }
+ 
+ namespace std {
+   template <typename T> struct tuple_size;
+   template <int, typename> struct tuple_element;
+ }
+ 
+ struct A {
+   int i;
+   template <int I> int& get() { return i; }
+ };
+ 
+ template <> struct std::tuple_size <A> { static const int value = 2; };
+ template <int I> struct std::tuple_element <I, A> { using type = int; };
+ 
+ struct A a;
+ auto [i, j] = a;
+ int &r = i;
+ int s = i;
+ int *t = &i;
+ 
+ void
+ foo (int **p, int *q)
+ {
+   static int &u = i;
+   static int v = i;
+   static int *w = &i;
+   int &x = i;
+   int y = i;
+   int *z = &i;
+   *p = &i;
+   *q = i;
+ }
+ 
+ int
+ main ()
+ {
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/fold13.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/fold13.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/fold13.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/fold13.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,29 ----
+ // { dg-do compile { target c++17 } }
+ // Verify constexpr evaluation of a large left fold logical expression
+ // isn't quadratic in the size of the expanded expression.
+ 
+ template<int> struct S { static constexpr bool value = true; };
+ 
+ template<class T, T...> struct integer_sequence { };
+ 
+ template<class T, T N>
+ using make_integer_sequence
+ #if __has_builtin(__make_integer_seq)
+   = __make_integer_seq<integer_sequence, T, N>;
+ #else
+   = integer_sequence<T, __integer_pack(N)...>;
+ #endif
+ 
+ template<int... Is>
+ constexpr bool f_impl(integer_sequence<int, Is...>) {
+   return (... && S<Is>::value);
+ }
+ 
+ static_assert(f_impl(make_integer_sequence<int, 1024>()));
+ 
+ template<int... Is>
+ constexpr bool g_impl(integer_sequence<int, Is...>) {
+   return (... || !S<Is>::value);
+ }
+ 
+ static_assert(!g_impl(make_integer_sequence<int, 1024>()));
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/109096
+ // { dg-do compile { target c++11 } }
+ 
+ #define INTB (__SIZEOF_INT__ * __CHAR_BIT__)
+ struct U { int i : INTB * 3 / 4; int : INTB / 4; };
+ struct V { int : INTB * 3 / 4; int j : INTB / 4; };
+ struct W { int i; int : 0; int j; };
+ static_assert (__has_unique_object_representations (U) == false, "");
+ static_assert (__has_unique_object_representations (V) == false, "");
+ static_assert (sizeof (W) != 2 * sizeof (int) || __has_unique_object_representations (W) == true, "");
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,29 ----
+ // P2173R1 - Attributes on Lambda-Expressions
+ // { dg-do compile { target c++11 } }
+ 
+ void
+ foo (bool x, bool y)
+ {
+   auto a = [][[noreturn]] () {};	// { dg-warning "'noreturn' function does return" }
+   if (x)
+     a ();
+   auto b = [][[noreturn]] {};		// { dg-warning "'noreturn' function does return" }
+   if (y)
+     b ();
+   auto c = [] [[ deprecated ]] () {};	// { dg-bogus "is deprecated" }
+   c ();					// { dg-warning "'foo\\\(bool, bool\\\)::<lambda\\\(\\\)>' is deprecated" }
+   auto d = [][[deprecated]] {};		// { dg-bogus "is deprecated" }
+   d ();					// { dg-warning "'foo\\\(bool, bool\\\)::<lambda\\\(\\\)>' is deprecated" }
+ #if __cpp_generic_lambdas >= 201304
+   auto e = [] [[deprecated]] (auto x) {};	// { dg-bogus "is deprecated" }
+   e (0.0);				// { dg-warning "'foo\\\(bool, bool\\\)::<lambda\\\(auto:1\\\)>\[^\n\r]*' is deprecated" "" { target c++14 } }
+ #endif
+ #if __cpp_generic_lambdas >= 201707
+   auto f = [] <typename T> [[deprecated]] (T) {};	// { dg-bogus "is deprecated" }
+   f (1);				// { dg-warning "'foo\\\(bool, bool\\\)::<lambda\\\(T\\\)>\[^\n\r]*' is deprecated" "" { target c++20 } }
+ #endif
+   auto g = [][[nodiscard]](int) { return 1; };
+   g (1);				// { dg-warning "ignoring return value of 'foo\\\(bool, bool\\\)::<lambda\\\(int\\\)>', declared with attribute 'nodiscard'" }
+   auto h = [] [[nodiscard]] { return 0; };
+   h ();					// { dg-warning "ignoring return value of 'foo\\\(bool, bool\\\)::<lambda\\\(\\\)>', declared with attribute 'nodiscard'" }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/105304
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-Wall -Wsequence-point" }
+ 
+ struct A { };
+ 
+ int main() {
+   if (requires { A(); })
+     ;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/107179
+ // { dg-do compile { target c++20 } }
+ 
+ template<bool B> struct bool_constant { static constexpr bool value = B; };
+ 
+ template<typename T>
+   struct is_implicitly_default_constructible
+   : bool_constant<requires { T(); }>
+   { };
+ 
+ struct X { private: X(); };
+ struct Y { };
+ 
+ static_assert( !is_implicitly_default_constructible<X>::value );
+ static_assert(  is_implicitly_default_constructible<Y>::value );
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/104527
+ // { dg-do compile { target c++20 } }
+ 
+ template<class T, class U>
+ concept is_same = __is_same(T, U);
+ 
+ template<class T>
+ struct A {
+   template<class...>
+     requires requires { { 0 } -> is_same<T>; }
+   struct B {};
+ 
+   template<class...>
+     requires requires { { 1 } -> is_same<T>; }
+   static void f();
+ };
+ 
+ A<int>::B<> a1;
+ A<bool>::B<> a2; // { dg-error "constraint" }
+ 
+ int main() {
+   A<int>::f();
+   A<bool>::f(); // { dg-error "no match" }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,66 ----
+ // PR c++/100474
+ // { dg-do compile { target c++20 } }
+ 
+ struct S { S() = delete; S(const S&); };
+ 
+ template<class T>
+ concept Aggregate = __is_aggregate(T);
+ // { dg-message "'S' is not an aggregate" "" { target *-*-* } .-1  }
+ 
+ template<class T>
+ concept TriviallyCopyable = __is_trivially_copyable(T);
+ // { dg-message "'S' is not trivially copyable" "" { target *-*-* } .-1  }
+ 
+ template<class T, class U>
+ concept Assignable = __is_assignable(T, U);
+ // { dg-message "'S' is not assignable from 'int'" "" { target *-*-* } .-1  }
+ 
+ template<class T, class U>
+ concept TriviallyAssignable = __is_trivially_assignable(T, U);
+ // { dg-message "'S' is not trivially assignable from 'int'" "" { target *-*-* } .-1  }
+ 
+ template<class T, class U>
+ concept NothrowAssignable = __is_nothrow_assignable(T, U);
+ // { dg-message "'S' is not 'nothrow' assignable from 'int'" "" { target *-*-* } .-1  }
+ 
+ template<class T, class... Args>
+ concept Constructible = __is_constructible(T, Args...);
+ // { dg-message "'S' is not default constructible" "" { target *-*-* } .-1  }
+ // { dg-message "'S' is not constructible from 'int'" "" { target *-*-* } .-2  }
+ // { dg-message "'S' is not constructible from 'int, char'" "" { target *-*-* } .-3  }
+ 
+ template<class T, class... Args>
+ concept TriviallyConstructible = __is_trivially_constructible(T, Args...);
+ // { dg-message "'S' is not trivially default constructible" "" { target *-*-* } .-1  }
+ // { dg-message "'S' is not trivially constructible from 'int'" "" { target *-*-* } .-2  }
+ // { dg-message "'S' is not trivially constructible from 'int, char'" "" { target *-*-* } .-3  }
+ 
+ template<class T, class... Args>
+ concept NothrowConstructible = __is_nothrow_constructible(T, Args...);
+ // { dg-message "'S' is not 'nothrow' default constructible" "" { target *-*-* } .-1  }
+ // { dg-message "'S' is not 'nothrow' constructible from 'int'" "" { target *-*-* } .-2  }
+ // { dg-message "'S' is not 'nothrow' constructible from 'int, char'" "" { target *-*-* } .-3  }
+ 
+ template<class T>
+ concept UniqueObjReps = __has_unique_object_representations(T);
+ // { dg-message "'S' does not have unique object representations" "" { target *-*-* } .-1  }
+ 
+ static_assert(Aggregate<S>); // { dg-error "assert" }
+ static_assert(TriviallyCopyable<S>); // { dg-error "assert" }
+ static_assert(Assignable<S, int>); // { dg-error "assert" }
+ static_assert(TriviallyAssignable<S, int>); // { dg-error "assert" }
+ static_assert(NothrowAssignable<S, int>); // { dg-error "assert" }
+ 
+ static_assert(Constructible<S>); // { dg-error "assert" }
+ static_assert(Constructible<S, int>); // { dg-error "assert" }
+ static_assert(Constructible<S, int, char>); // { dg-error "assert" }
+ 
+ static_assert(TriviallyConstructible<S>); // { dg-error "assert" }
+ static_assert(TriviallyConstructible<S, int>); // { dg-error "assert" }
+ static_assert(TriviallyConstructible<S, int, char>); // { dg-error "assert" }
+ 
+ static_assert(NothrowConstructible<S>); // { dg-error "assert" }
+ static_assert(NothrowConstructible<S, int>); // { dg-error "assert" }
+ static_assert(NothrowConstructible<S, int, char>); // { dg-error "assert" }
+ 
+ static_assert(UniqueObjReps<S>); // { dg-error "assert" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/104066
+ // { dg-do compile { target c++20 } }
+ 
+ constinit void (*p)() = nullptr;
+ constinit void (*pp)() = nullptr;
+ void fn();
+ constinit void (&r)() = fn;
+ 
+ extern constinit long (* const syscall_reexported) (long, ...);
+ 
+ constinit void bad (); // { dg-error ".constinit. on function return type is not allowed" }
+ constinit void bad () { } // { dg-error ".constinit. on function return type is not allowed" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/desig26.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/desig26.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/desig26.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/desig26.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/105925
+ // { dg-do compile { target c++20 } }
+ 
+ struct V
+ {
+     int i;
+     double d;
+ };
+ 
+ struct X
+ {
+     union
+     {
+         int x;
+         V y;
+     };
+ };
+ 
+ X foo()
+ {
+     return {.y = {0, 0.0}};
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/106024
+ // { dg-do compile { target c++20 } }
+ 
+ void sink(...);
+ template <int... args> void f()
+ {
+   sink ([] <int T> (int...) { return 1; }
+         .operator()<args>(args...)...); // { dg-error "" }
+ } // { dg-prune-output {expected '\)'} }
+ 
+ int main()
+ {
+   f<1,2,3>();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/108999
+ // { dg-do compile { target c++20 } }
+ 
+ template<typename T>
+ void ice(T a) {
+   auto aa = a;
+   auto lambda = []<int I>() {
+     if constexpr (sizeof(aa) + I != 42) { }
+   };
+   lambda.template operator()<17>();
+ }
+ 
+ template void ice(int);
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/102629
+ // { dg-do compile { target c++20 } }
+ 
+ template <class T> T&& forward(T&);
+ template <class T> T&& forward(T&&);
+ 
+ struct S {};
+ 
+ template <typename... Args>
+ void foo(Args&&... args) {
+   [...args = forward<Args> /*(args)*/] { // { dg-error "" }
+     [](auto...) { } (forward<Args>(args)...);
+   };
+ }
+ 
+ void bar( ) {
+   foo(S{});
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/106361
+ // { dg-do compile { target c++20 } }
+ 
+ struct foo {
+   int x;
+ };
+ 
+ struct bar {
+   foo f;			// { dg-error "operator==" }
+   friend bool operator==(const bar& a, const bar& b);
+ };
+ 
+ bool operator==(const bar& a, const bar& b) = default;
+ 
+ int main() {
+   return bar{} == bar{};	// { dg-error "deleted" }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C	Mon May 29 08:46:30 2023
*************** fn2 ()
*** 56,61 ****
--- 56,64 ----
    vi = i;
    vi = i = 42;
    i = vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
+   i = vi |= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
+   i = vi &= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
+   i = vi ^= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    &(vi = i); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    (vi = 42, 45);
    (i = vi = 42, 10); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
*************** fn2 ()
*** 74,81 ****
    vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
!   vi ^= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
!   vi |= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
--- 77,85 ----
    vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
!   vi ^= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
!   vi |= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
!   vi &= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
    vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
    vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
*************** void raccoon ()
*** 131,137 ****
    volatile T t, u;
    t = 42;
    u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
!   t &= 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
  }
  
  void
--- 135,142 ----
    volatile T t, u;
    t = 42;
    u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
!   t += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } }
!   t &= 42; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
  }
  
  void
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C	Mon May 29 08:46:30 2023
*************** fn2 ()
*** 57,62 ****
--- 57,65 ----
    vi = i;
    vi = i = 42;
    i = vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
+   i = vi |= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" }
+   i = vi &= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" }
+   i = vi ^= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" }
    &(vi = i); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    (vi = 42, 45);
    (i = vi = 42, 10); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
*************** fn2 ()
*** 75,82 ****
    vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
!   vi ^= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
!   vi |= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
--- 78,86 ----
    vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
!   vi ^= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
!   vi |= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
!   vi &= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
    vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
    vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
*************** void raccoon ()
*** 132,138 ****
    volatile T t, u;
    t = 42;
    u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
!   t &= 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
  }
  
  void
--- 136,143 ----
    volatile T t, u;
    t = 42;
    u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
!   t += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" }
!   t &= 42; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" }
  }
  
  void
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C	Mon May 29 08:46:30 2023
*************** f (bool b)
*** 8,15 ****
  {
    (b ? x : y) = 1;
    (b ? x : y) += 1; // { dg-warning "compound assignment" "" { target c++20 } }
!   z = (b ? x : y) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } }
!   ((z = 2) ? x : y) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } }
!   (b ? (x = 2) : y) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } }
!   (b ? x : (y = 5)) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } }
  }
--- 8,15 ----
  {
    (b ? x : y) = 1;
    (b ? x : y) += 1; // { dg-warning "compound assignment" "" { target c++20 } }
!   z = (b ? x : y) = 1; // { dg-warning "using value of assignment" "" { target c++20 } }
!   ((z = 2) ? x : y) = 1; // { dg-warning "using value of assignment" "" { target c++20 } }
!   (b ? (x = 2) : y) = 1; // { dg-warning "using value of assignment" "" { target c++20 } }
!   (b ? x : (y = 5)) = 1; // { dg-warning "using value of assignment" "" { target c++20 } }
  }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C gcc-11.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ // PR debug/108716
+ // { dg-options "-O0 -gdwarf-5 -dA -fno-merge-debug-strings" }
+ // { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_imported_module\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]*0xc\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*(\[^\n\r\]*0x13\[^\n\r\]* DW_AT_decl_column\[^\n\r\]*\[\n\r]*)?" } }
+ 
+ namespace M {
+   int x = 1;
+ }
+ 
+ int
+ main ()
+ {
+   using namespace M;
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr106261.C gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr106261.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr106261.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr106261.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,36 ----
+ // PR debug/106261
+ // { dg-do compile }
+ // { dg-options "-dx -fno-dwarf2-cfi-asm" }
+ 
+ struct A
+ {
+   virtual void foo ();
+   int a;
+ };
+ class C : virtual public A
+ {
+ };
+ struct B
+ {
+   A *b;
+ 
+   B (A *x) : b (x) { b->foo (); }
+ };
+ struct E
+ {
+   virtual ~E ();
+ };
+ class D : public C, E
+ {
+ };
+ struct F : D
+ {
+   F (int);
+ 
+   static void bar ()
+   {
+     F a (0);
+     B b (&a);
+   }
+ };
+ void baz () { F::bar (); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr108967.C gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr108967.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr108967.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr108967.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,41 ----
+ // PR debug/108967
+ // { dg-do compile }
+ 
+ struct F { unsigned short r[8]; };
+ extern void foo (F);
+ 
+ static inline F
+ bar (F a, F b)
+ {
+   for (int i = 0; i < 8; ++i)
+     a.r[i] = a.r[i] + b.r[i] < (unsigned short) -1 ? a.r[i] + b.r[i] : (unsigned short) -1;
+   return a;
+ }
+ 
+ static inline void
+ baz (F v)
+ {
+   foo (v);
+ }
+ 
+ void
+ qux (F a, F b)
+ {
+   F c = bar (a, b);
+   baz (c);
+ }
+ 
+ static inline F
+ corge (F a, F b)
+ {
+   for (int i = 0; i < 8; ++i)
+     a.r[i] = a.r[i] - b.r[i] > 0 ? a.r[i] - b.r[i] : 0;
+   return a;
+ }
+ 
+ void
+ garply (F a, F b)
+ {
+   F c = corge (a, b);
+   baz (c);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106124.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106124.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106124.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106124.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ // { dg-require-effective-target c++11 }
+ // { dg-options "-g -O2 -fopenmp -fkeep-inline-functions" }
+ 
+ int q;
+ struct A
+ {
+   typedef int T;
+ #pragma omp declare reduction (x : T : omp_out += omp_in + [] (){ return q; }()) initializer (omp_priv = [](){ return 0; }())
+   static void foo ();
+ };
+ void bar (int &, int &);
+ void
+ A::foo ()
+ {
+   int r = 0, s = 0;
+ #pragma omp parallel reduction (x : r, s)
+   bar (r, s);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106492.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106492.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106492.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106492.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,49 ----
+ /* PR middle-end/106492 */
+ 
+ template <typename T>
+ struct S {
+   T a : 12;
+   S () : a(0)
+   {
+ #pragma omp for simd linear(a)
+     for (int k = 0; k < 64; ++k)
+       a++;
+   }
+ };
+ struct U {
+   int a : 12;
+   U () : a(0)
+   {
+ #pragma omp for simd linear(a)
+     for (int k = 0; k < 64; ++k)
+       a++;
+   }
+ };
+ 
+ S<int> s;
+ U u;
+ 
+ 
+ template <typename T>
+ struct Sptr {
+   T a;
+   Sptr (T init) : a(init)
+   {
+ #pragma omp for simd linear(a)
+     for (int k = 0; k < 64; ++k)
+       a++;
+   }
+ };
+ struct Uptr {
+   int *a;
+   Uptr (int *init) : a(init)
+   {
+ #pragma omp for simd linear(a)
+     for (int k = 0; k < 64; ++k)
+       a++;
+   }
+ };
+ 
+ int i[1024];
+ Sptr<int *> sptr(i);
+ Uptr uptr(&i[100]);
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr107558.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr107558.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr107558.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr107558.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/107558
+ // { dg-do compile { target c++11 } }
+ // { dg-additional-options "-fmerge-all-constants" }
+ // { dg-additional-options "-flto" { target lto } }
+ 
+ int a = 15;
+ 
+ void
+ foo ()
+ {
+   auto &&l = [&]() { return a; };
+ #pragma omp target parallel
+   l ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr108607.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr108607.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr108607.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr108607.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,33 ----
+ // PR c++/108607
+ // { dg-do compile { target c++14 } }
+ // { dg-options "-fopenmp" }
+ 
+ constexpr int
+ bar (int x)
+ {
+   return x;
+ }
+ 
+ constexpr int
+ baz (int x)
+ {
+   switch (x)
+     {
+     case 42:
+       return 0;
+     case 3:
+       #pragma omp parallel	// { dg-error "statement is not a constant expression" }
+       x = bar (x);
+       return x;
+     case 4:
+       #pragma omp task		// { dg-error "statement is not a constant expression" }
+       x = bar (x);
+       return x;
+     default:
+       return -1;
+     }
+ }
+ 
+ constexpr int b = baz (42);
+ constexpr int d = baz (3);
+ constexpr int e = baz (4);
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/guality/guality.exp gcc-11.4.0/gcc/testsuite/g++.dg/guality/guality.exp
*** gcc-11.3.0/gcc/testsuite/g++.dg/guality/guality.exp	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/guality/guality.exp	Mon May 29 08:46:30 2023
*************** if { [istarget *-*-darwin*] } {
*** 8,13 ****
--- 8,17 ----
      return
  }
  
+ if { [istarget hppa*-*-hpux*] } {
+     return
+ }
+ 
  if { [istarget "powerpc-ibm-aix*"] } {
      set torture_execute_xfail "powerpc-ibm-aix*"
      return
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/init/pr53932.C gcc-11.4.0/gcc/testsuite/g++.dg/init/pr53932.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/init/pr53932.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/init/pr53932.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,25 ----
+ // PR c++/53932
+ // { dg-do link }
+ 
+ static union { int i; };
+ int &r = i;
+ int s = i;
+ int *t = &i;
+ 
+ void
+ foo (int **p, int *q)
+ {
+   static int &u = i;
+   static int v = i;
+   static int *w = &i;
+   int &x = i;
+   int y = i;
+   int *z = &i;
+   *p = &i;
+   *q = i;
+ }
+ 
+ int
+ main ()
+ {
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/ipa/pr100413.C gcc-11.4.0/gcc/testsuite/g++.dg/ipa/pr100413.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/ipa/pr100413.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/ipa/pr100413.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,64 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c++11 -O2 -fno-guess-branch-probability -fno-inline-functions-called-once -fipa-cp-clone -fipa-pta -fnon-call-exceptions --param=ipa-cp-eval-threshold=0" } */
+ 
+ 
+ template <typename> class allocator {
+ public:
+   ~allocator();
+ };
+ template <typename> struct allocator_traits;
+ template <typename _Tp> struct allocator_traits<allocator<_Tp>> {
+   using allocator_type = allocator<_Tp>;
+   template <typename _Up> using rebind_alloc = allocator<_Up>;
+   static void deallocate(allocator_type);
+ };
+ template <typename _ForwardIterator, typename _Tp>
+ void _Destroy(_ForwardIterator, _ForwardIterator, _Tp);
+ struct __alloc_traits : allocator_traits<allocator<int>> {
+   struct rebind {
+     typedef rebind_alloc<int> other;
+   };
+ };
+ struct _Vector_base {
+   struct _Vector_impl_data {
+     int _M_start;
+     int _M_finish;
+   };
+   struct _Vector_impl : __alloc_traits::rebind::other, _Vector_impl_data {};
+   __alloc_traits::rebind::other _M_get_Tp_allocator();
+   ~_Vector_base() { _M_deallocate(); }
+   _Vector_impl _M_impl;
+   void _M_deallocate() { __alloc_traits::deallocate(_M_impl); }
+ };
+ class vector : _Vector_base {
+ public:
+   vector() noexcept {
+     allocator<int> __trans_tmp_1 = _M_get_Tp_allocator();
+     _Destroy(_M_impl._M_start, _M_impl._M_finish, __trans_tmp_1);
+   }
+   void size();
+ };
+ struct HTTPCallback {
+   virtual void OnFailure();
+ };
+ struct ContentCallback {
+   virtual void OnDownloadProgress();
+ };
+ class ClientNetworkContentSocketHandler : ContentCallback, HTTPCallback {
+   vector requested;
+   vector infos;
+   vector lastActivity;
+   void OnFailure();
+ public:
+   int IDLE_TIMEOUT = 0;
+   ClientNetworkContentSocketHandler();
+   void DownloadSelectedContent();
+ } _network_content_client;
+ void ClientNetworkContentSocketHandler::DownloadSelectedContent() {
+   vector content;
+   content.size();
+ }
+ void ClientNetworkContentSocketHandler::OnFailure() {
+   DownloadSelectedContent();
+ }
+ ClientNetworkContentSocketHandler::ClientNetworkContentSocketHandler() {}
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/lookup/friend24.C gcc-11.4.0/gcc/testsuite/g++.dg/lookup/friend24.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/lookup/friend24.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/lookup/friend24.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/69410
+ 
+ void a();
+ void f() {
+     class A {
+         friend void ::a();
+         friend class Z;
+     };
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C gcc-11.4.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C	Mon May 29 08:46:30 2023
*************** template class TPL<int>;  // instantiate
*** 16,20 ****
  void foo (int, void *);
  
  // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=decl definition '::template TPL'\n(  \[.\]=[^\n]*'\n)*  \[.\]=decl declaration '::template foo'\n(  \[.\]=[^\n]*'\n)*  \[.\]=binding '::TPL'} module } }
! // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=decl declaration '::foo<int>'\n  \[.\]=binding '::foo'} module } }
  // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=specialization definition '::TPL<int>'} module } }
--- 16,20 ----
  void foo (int, void *);
  
  // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=decl definition '::template TPL'\n(  \[.\]=[^\n]*'\n)*  \[.\]=decl declaration '::template foo'\n(  \[.\]=[^\n]*'\n)*  \[.\]=binding '::TPL'} module } }
! // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=decl declaration '::foo'\n  \[.\]=binding '::foo'} module } }
  // { dg-final { scan-lang-dump {Cluster members:\n  \[0\]=specialization definition '::TPL<int>'} module } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/opt/const7.C gcc-11.4.0/gcc/testsuite/g++.dg/opt/const7.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/opt/const7.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/opt/const7.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/104142
+ // { dg-do compile { target c++11 } }
+ // { dg-additional-options -Wunused-variable }
+ 
+ struct B { B()=default; };
+ static const B b_var;		//  { dg-bogus "" }
+ // { dg-final { scan-assembler-symbol-section {b_var} {^\.(const|rodata)|\[RO\]} } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108365.C gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108365.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108365.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108365.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/108365
+ // { dg-do run }
+ 
+ char b = 1;
+ 
+ int
+ main ()
+ {
+ #if __CHAR_BIT__ == 8 && __SIZEOF_SHORT__ == 2 && __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8
+   while ((short) ((long long) (unsigned long long) (-__INT_MAX__ - 1) / (long long) (b ? -1 : 0)))
+     ;
+ #endif
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108854.C gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108854.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108854.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108854.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,37 ----
+ // PR middle-end/108854
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-O3" }
+ // { dg-additional-options "-fPIC" { target fpic } }
+ 
+ struct A { A (int); ~A (); };
+ struct B { B (int, bool); ~B (); };
+ template <typename T>
+ struct C { void m1 (T); void m2 (T &&); };
+ class D;
+ struct E { virtual void m3 (); };
+ template <typename>
+ struct F { virtual bool m4 (D &); };
+ struct D { virtual D m5 () { return D (); } };
+ void foo (void *, void *);
+ struct G {
+   int a;
+   C <D *> b;
+   void m4 (D &r) { B l (a, true); r.m5 (); b.m1 (&r); b.m2 (&r); }
+ };
+ struct H : E, F <int> {
+   template <typename T>
+   H (int, T);
+   bool m4 (D &r) { A l (a); b.m4 (r); if (c) return true; } // { dg-warning "control reaches end of non-void function" }
+   int a;
+   bool c;
+   G b;
+ };
+ inline void bar (F <int> &p) { D s, t; p.m4 (t); foo (&p, &s); }
+ enum I { I1, I2 };
+ template <I>
+ struct J;
+ template <class, class T, class, class, class, class>
+ void baz () { int g = 0, h = 0; T i (g, h); bar (i); }
+ template <class, int, I T>
+ void qux () { baz <int, H, int, int, E, J<T>> (); }
+ void corge () { qux <int, I2, I1> (); qux <int, I2, I2> (); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/parse/no-typename1.C gcc-11.4.0/gcc/testsuite/g++.dg/parse/no-typename1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/parse/no-typename1.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/parse/no-typename1.C	Mon May 29 08:46:30 2023
*************** template <typename T> struct A
*** 6,11 ****
  {
      template <typename U> struct B
      {
!         A<T>::template B<U> foo(); // { dg-error "" "" { target c++17_down } }
      };
  };
--- 6,11 ----
  {
      template <typename U> struct B
      {
!         A<T>::template B<U> foo();
      };
  };
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/parse/qualified6.C gcc-11.4.0/gcc/testsuite/g++.dg/parse/qualified6.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/parse/qualified6.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/parse/qualified6.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/90107
+ // { dg-do compile }
+ 
+ struct A;
+ namespace N { extern A a; }
+ struct A {} ::N::a;
+ 
+ struct A1;
+ struct B { static A1 a1; };
+ struct A1 {} ::B::a1;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr104869.C gcc-11.4.0/gcc/testsuite/g++.dg/pr104869.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr104869.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr104869.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,78 ----
+ // PR rtl-optimization/104869
+ // { dg-do run }
+ // { dg-options "-O2 -fvisibility=hidden -std=c++11" }
+ // { dg-require-visibility "" }
+ 
+ struct QBasicAtomicInteger {
+   [[gnu::noipa]] int loadRelaxed() { return 1; }
+ };
+ struct RefCount {
+   bool deref() {
+     int count = atomic.loadRelaxed();
+     if (count)
+       return false;
+     return deref();
+   }
+   QBasicAtomicInteger atomic;
+ };
+ struct QArrayData {
+   RefCount ref;
+ };
+ struct QString {
+   ~QString();
+   QArrayData d;
+ };
+ int ok;
+ QString::~QString() { d.ref.deref(); }
+ struct Label {
+   bool isValid() { return generator; }
+   int *generator;
+   int index;
+ };
+ struct ControlFlow;
+ struct Codegen {
+   [[gnu::noipa]] bool visit();
+   ControlFlow *controlFlow;
+ };
+ struct ControlFlow {
+   enum UnwindType { EE };
+   struct UnwindTarget {
+     Label linkLabel;
+   };
+   ControlFlow *parent;
+   UnwindType unwindTarget_type;
+   UnwindTarget unwindTarget() {
+     QString label;
+     ControlFlow *flow = this;
+     while (flow) {
+       Label l = getUnwindTarget(unwindTarget_type, label);
+       if (l.isValid())
+         return {l};
+       flow = flow->parent;
+     }
+     return UnwindTarget();
+   }
+   [[gnu::noipa]] Label getUnwindTarget(UnwindType, QString &) {
+     Label l = { &ok, 0 };
+     return l;
+   }
+ };
+ [[gnu::noipa]] void foo(int) {
+   ok = 1;
+ }
+ [[gnu::noipa]] bool Codegen::visit() {
+   if (!controlFlow)
+     return false;
+   ControlFlow::UnwindTarget target = controlFlow->unwindTarget();
+   if (target.linkLabel.isValid())
+     foo(2);
+   return false;
+ }
+ int
+ main() {
+   ControlFlow cf = { nullptr, ControlFlow::UnwindType::EE };
+   Codegen c = { &cf };
+   c.visit();
+   if (!ok)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-1.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-1.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-1.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-1.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
! /* { dg-options "-mcpu=power8 -O3 -ffast-math -mcmodel=small -mno-fp-in-toc -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math -mcmodel=small -mno-fp-in-toc -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-2.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-2.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-2.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-2.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
! /* { dg-options "-mcpu=power8 -O3 -ffast-math -mcmodel=small -mfp-in-toc -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math -mcmodel=small -mfp-in-toc -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-3.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-3.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-3.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-3.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
! /* { dg-options "-mcpu=power8 -O3 -ffast-math -mcmodel=medium -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math -mcmodel=medium -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-4.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-4.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-4.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-4.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_vsx_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
! /* { dg-options "-mcpu=power7 -O3 -ffast-math -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_vsx_ok } */
! /* { dg-options "-mdejagnu-cpu=power7 -O3 -ffast-math -Wno-return-type" } */
  
  /* target/65240, compiler got a 'insn does not satisfy its constraints' error.  */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65242.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65242.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr65242.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr65242.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
! /* { dg-options "-mcpu=power8 -O3" } */
  
  class A {
  public:
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power8 -O3" } */
  
  class A {
  public:
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr67211.C gcc-11.4.0/gcc/testsuite/g++.dg/pr67211.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr67211.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr67211.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
! /* { dg-options "-mcpu=power7 -mtune=power8 -O3 -w" } */
  
  /* target/67211, compiler got a 'insn does not satisfy its constraints' error.  */
  
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power7 -mdejagnu-tune=power8 -O3 -w" } */
  
  /* target/67211, compiler got a 'insn does not satisfy its constraints' error.  */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr69667.C gcc-11.4.0/gcc/testsuite/g++.dg/pr69667.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr69667.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr69667.C	Mon May 29 08:46:30 2023
***************
*** 1,8 ****
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
! /* { dg-options "-mcpu=power8 -w -std=c++14" } */
  
  /* target/69667, compiler got
     internal compiler error: Max. number of generated reload insns per insn is achieved (90)  */
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power8 -w -std=c++14" } */
  
  /* target/69667, compiler got
     internal compiler error: Max. number of generated reload insns per insn is achieved (90)  */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr71294.C gcc-11.4.0/gcc/testsuite/g++.dg/pr71294.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr71294.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr71294.C	Mon May 29 08:46:30 2023
***************
*** 1,7 ****
  // { dg-do compile { target { powerpc64*-*-* && lp64 } } }
  // { dg-require-effective-target powerpc_p8vector_ok } */
! // { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } }
! // { dg-options "-mcpu=power8 -O3 -fstack-protector" }
  
  // PAR target/71294 failed because RELOAD could not figure how create a V2DI
  // vector that auto vectorization created with each element being the same
--- 1,6 ----
  // { dg-do compile { target { powerpc64*-*-* && lp64 } } }
  // { dg-require-effective-target powerpc_p8vector_ok } */
! // { dg-options "-mdejagnu-cpu=power8 -O3 -fstack-protector" }
  
  // PAR target/71294 failed because RELOAD could not figure how create a V2DI
  // vector that auto vectorization created with each element being the same
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr84279.C gcc-11.4.0/gcc/testsuite/g++.dg/pr84279.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/pr84279.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/pr84279.C	Mon May 29 08:46:30 2023
***************
*** 2,9 ****
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
  /* { dg-require-effective-target fpic } */
! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
! /* { dg-options "-O3 -mcpu=power8 -g -fPIC -fvisibility=hidden -fstack-protector-strong" } */
  
  template <typename, typename T> struct E { T e; };
  struct J {
--- 2,8 ----
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
  /* { dg-require-effective-target fpic } */
! /* { dg-options "-O3 -mdejagnu-cpu=power8 -g -fPIC -fvisibility=hidden -fstack-protector-strong" } */
  
  template <typename, typename T> struct E { T e; };
  struct J {
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/conv19.C gcc-11.4.0/gcc/testsuite/g++.dg/template/conv19.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/template/conv19.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/template/conv19.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,34 ----
+ // PR c++/101698
+ // { dg-do compile { target c++11 } }
+ 
+ class Base {
+  public:
+   template <class T>
+   operator const T&() const = delete;
+ 
+   virtual operator const int&() const {
+     static int res;
+     return res;
+   }
+ };
+ 
+ template <class T>
+ class Derive : public Base {
+  public:
+   operator const T&() const override {
+     using Y = int;
+     //static_assert(__is_same_as(T,Y), "");
+ 
+     static int res;
+ 
+     res = Base::operator const Y&(); // OK
+     res = Base::operator const T&(); // { dg-bogus "deleted" }
+     return res;
+   }
+ };
+ 
+ int main() {
+   Derive<int> a;
+   const int& b = a;
+   (void)b;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/friend74.C gcc-11.4.0/gcc/testsuite/g++.dg/template/friend74.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/template/friend74.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/template/friend74.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/105852
+ // { dg-additional-options -w }
+ 
+ template <class> struct Local { friend Local False(int *); };
+ Local<int> loc;
+ Local<int> False(int *);
+ void New() { False; }
+ Local<int> False(int *) { return Local<int>(); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/friend78.C gcc-11.4.0/gcc/testsuite/g++.dg/template/friend78.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/template/friend78.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/template/friend78.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/106740
+ // { dg-additional-options -Wno-non-template-friend }
+ 
+ template <typename> struct EnumClass { friend int toString(EnumClass); };
+ struct AmhsConvInfoCoFw {
+   enum AftnTypeXMsgTypeEnum {};
+   typedef EnumClass<AftnTypeXMsgTypeEnum> AftnTypeXMsgType;
+   const int getAftnTypeXMsgTypeAsStr() const;
+   struct MtcuAxgwInfo {
+     AftnTypeXMsgType mAftnTypeXMsgType;
+   };
+ };
+ const int AmhsConvInfoCoFw::getAftnTypeXMsgTypeAsStr() const {
+   MtcuAxgwInfo __trans_tmp_1;
+   toString(__trans_tmp_1.mAftnTypeXMsgType);
+   return 0;
+ }
+ int toString(AmhsConvInfoCoFw::AftnTypeXMsgType);
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/nested7.C gcc-11.4.0/gcc/testsuite/g++.dg/template/nested7.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/template/nested7.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/template/nested7.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/102300
+ 
+ template<typename T>
+ struct holder
+ {
+   template<typename F> struct fn {};
+ 
+   struct t1 : fn<T> {};                      // pass
+   struct t2 : holder<T >::fn<T> {};          // fail
+   struct t3 : holder<T >::template fn<T> {}; // fail
+   struct t4 : holder<T*>::template fn<T> {}; // pass
+ };
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization11.C gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization11.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization11.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization11.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/86193
+ // CWG 455 (active)
+ // { dg-options "" } // clear -pedantic-errors
+ 
+ template<class T> struct value_type;
+ 
+ template<class T, typename value_type<T>::type V>
+ struct A;
+ 
+ template<class T, int V>
+ struct A<T*, V> { }; // { dg-warning "not more specialized" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization12.C gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization12.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization12.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization12.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/105289
+ // CWG 455 (active)
+ // { dg-do compile { target c++11 } }
+ 
+ template<class T>
+ struct value_type;
+ 
+ template<class List, typename value_type<List>::type Element>
+ struct push_front_vlist;
+ 
+ template<template<class X, X...> class XList, class T, T Arg, T... Vs>
+ struct push_front_vlist<XList<T, Vs...>, Arg> { }; // { dg-error "not more specialized" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc
*** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,35 ----
+ // PR c++/109164
+ 
+ struct S { virtual void foo (); int s; };
+ extern bool baz ();
+ 
+ void
+ S::foo ()
+ {
+   if (s != 42)
+     __builtin_abort ();
+ }
+ 
+ S s;
+ 
+ S &
+ qux ()
+ {
+   s.s = 42;
+   return s;
+ }
+ 
+ thread_local S &t = qux ();
+ 
+ bool
+ bar ()
+ {
+   return false;
+ }
+ 
+ int
+ main ()
+ {
+   if (baz ())
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13.C gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/109164
+ // { dg-do run { target c++11 } }
+ // { dg-options "-O2" }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ // { dg-additional-sources "thread_local13-aux.cc" }
+ 
+ struct S { virtual void foo (); int s; };
+ extern thread_local S &t;
+ bool bar ();
+ 
+ bool
+ baz ()
+ {
+   while (1)
+     {
+       t.foo ();
+       if (!bar ())
+         return false;
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc
*** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/109164
+ 
+ extern bool baz ();
+ 
+ int
+ qux ()
+ {
+   return 42;
+ }
+ 
+ extern thread_local const int t = qux ();
+ 
+ bool
+ bar (int x)
+ {
+   if (x != 42)
+     __builtin_abort ();
+   return false;
+ }
+ 
+ int
+ main ()
+ {
+   if (baz ())
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14.C gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/109164
+ // { dg-do run { target c++11 } }
+ // { dg-options "-O2" }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ // { dg-additional-sources "thread_local14-aux.cc" }
+ 
+ extern thread_local const int t;
+ bool bar (int);
+ 
+ bool
+ baz ()
+ {
+   while (1)
+     {
+       if (!bar (t))
+         return false;
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C	Mon May 29 08:46:30 2023
***************
*** 1,6 ****
  /* { dg-do compile { target { powerpc64*-*-* } } } */
! /* { dg-skip-if "do not override mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
! /* { dg-options "-mcpu=power8" } */
  
  /* When compiled with C++, this code was breaking because of different
     tree representations of arrays between C and C++.  */
--- 1,5 ----
  /* { dg-do compile { target { powerpc64*-*-* } } } */
! /* { dg-options "-mdejagnu-cpu=power8" } */
  
  /* When compiled with C++, this code was breaking because of different
     tree representations of arrays between C and C++.  */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr104450.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr104450.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr104450.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr104450.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile }
+ // { dg-additional-options "-fnon-call-exceptions" }
+ // { dg-additional-options "-mavx512f" { target x86_64-*-* i?86-*-* } }
+ 
+ #define vectsize 64
+ typedef int __attribute__((__vector_size__ (vectsize))) V;
+ typedef float __attribute__((__vector_size__ (vectsize))) F;
+ F f;
+ V v;
+ struct g{~g();};
+ void
+ foo (void)
+ {
+   g t;
+   v += (V) (0 <= f);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr106131.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr106131.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr106131.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr106131.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,34 ----
+ // { dg-do run { target c++11 } }
+ 
+ struct Pair {
+     int a, b;
+     Pair(const Pair &) = default;
+     Pair(int _a, int _b) : a(_a), b(_b) {}
+     Pair &operator=(const Pair &z) {
+ 	a = z.a;
+ 	b = z.b;
+ 	return *this;
+     }
+ };
+ 
+ const int &max(const int &a, const int &b)
+ {
+   return a < b ? b : a;
+ }
+ 
+ int foo(Pair x, Pair y)
+ {
+   return max(x.b, y.b);
+ }
+ 
+ int main()
+ {
+   auto f = new Pair[3] {{0, -11}, {0, -8}, {0, 2}};
+   for (int i = 0; i < 1; i++) {
+       f[i] = f[0];
+       if(i == 0)
+ 	f[i] = f[2];
+       if (foo(f[i], f[1]) != 2)
+ 	__builtin_abort();
+   }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr109724.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr109724.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr109724.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr109724.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,32 ----
+ // { dg-do compile }
+ 
+ double &SkTMax(double &a, double &b) { return a ?: b; }
+ struct SkDPoint {
+   double fX;
+ };
+ struct SkDCubic {
+   SkDPoint &operator[](int n) { return fPts[n]; }
+   SkDPoint fPts[4];
+ };
+ struct SkDCurve {
+   SkDCubic fCubic;
+   SkDPoint &operator[](int n) { return fCubic[n]; }
+ };
+ struct SkDCurveSweep {
+   SkDCurve fCurve;
+ };
+ int endsIntersect_rPts;
+ double endsIntersect_maxX;
+ struct SkOpAngle {
+   void endsIntersect();
+   SkDCurveSweep fPart;
+ } endsIntersect_rh;
+ void SkOpAngle::endsIntersect() {
+   for (int index = 0;; ++index) {
+     SkDCurve &curve = index ? endsIntersect_rh.fPart.fCurve : fPart.fCurve;
+     for (int idx2 = 0; endsIntersect_rPts; ++idx2) {
+       SkDPoint &__trans_tmp_1 = curve[idx2];
+       endsIntersect_maxX = SkTMax(endsIntersect_maxX, __trans_tmp_1.fX);
+     }
+   }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/ubsan/pr105729.C gcc-11.4.0/gcc/testsuite/g++.dg/ubsan/pr105729.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/ubsan/pr105729.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/ubsan/pr105729.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,29 ----
+ // PR sanitizer/105729
+ // { dg-do run }
+ // { dg-options "-fsanitize=null -fno-sanitize-recover=null" }
+ 
+ int
+ foo (int x)
+ {
+   throw 0;
+ }
+ 
+ struct S {};
+ struct T {
+   S *data;
+   T () : data (0) {}
+   const S &bar (int x) const { return data[foo (x)]; }
+ };
+ 
+ int
+ main ()
+ {
+   T t;
+   try
+     {
+       t.bar (-1);
+     }
+   catch (...)
+     {
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr105437.cc gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr105437.cc
*** gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr105437.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr105437.cc	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do compile }
+ 
+ struct ControlClass
+ {
+     virtual ~ControlClass();
+ 
+     int Width;
+     int Height;
+     unsigned IsToRepaint : 1;
+ };
+ 
+ struct SelectClass : ControlClass
+ {
+     SelectClass(void);
+ };
+ 
+ int Non_Folded_Value();
+ 
+ SelectClass::SelectClass(void)
+ {
+     int factor = Non_Folded_Value();
+     Width = 32 << factor;
+     Height = 24 << factor;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr109573.cc gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr109573.cc
*** gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr109573.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr109573.cc	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,91 ----
+ // { dg-do compile }
+ // { dg-require-effective-target c++20 }
+ 
+ void *operator new(__SIZE_TYPE__, void *__p) { return __p; }
+ template <typename _Head> struct _Head_base {
+   _Head _M_head_impl;
+ };
+ template <unsigned long, typename...> struct _Tuple_impl;
+ template <unsigned long _Idx, typename _Head, typename... _Tail>
+ struct _Tuple_impl<_Idx, _Head, _Tail...> : _Tuple_impl<_Idx + 1, _Tail...>,
+                                             _Head_base<_Head> {
+   template <typename _UHead, typename... _UTail>
+   _Tuple_impl(_UHead __head, _UTail... __tail)
+       : _Tuple_impl<_Idx + 1, _Tail...>(__tail...), _Head_base<_Head>(__head) {}
+ };
+ template <unsigned long _Idx, typename _Head> struct _Tuple_impl<_Idx, _Head> {
+   template <typename _UHead> _Tuple_impl(_UHead);
+ };
+ template <typename... _Elements> struct tuple : _Tuple_impl<0, _Elements...> {
+   template <typename... _UElements>
+   tuple(_UElements... __elements)
+       : _Tuple_impl<0, _Elements...>(__elements...) {}
+ };
+ unsigned long position_;
+ struct Zone {
+   template <typename T, typename... Args> T *New(Args... args) {
+     return new (reinterpret_cast<void *>(position_)) T(args...);
+   }
+ };
+ struct Label {
+   int pos_;
+   int near_link_pos_;
+ };
+ enum Condition { below_equal };
+ void bind(Label *);
+ Zone *zone();
+ unsigned long deopt_info_address();
+ int MakeDeferredCode___trans_tmp_2, MakeDeferredCode___trans_tmp_3,
+     Prologue___trans_tmp_6, MakeDeferredCode___trans_tmp_1;
+ struct MaglevAssembler {
+   template <typename Function, typename... Args>
+   void MakeDeferredCode(Function &&, Args &&...);
+   template <typename Function, typename... Args>
+   void JumpToDeferredIf(Condition, Function, Args... args) {
+     MakeDeferredCode(Function(), args...);
+   }
+   void Prologue();
+ };
+ struct ZoneLabelRef {
+   ZoneLabelRef(Zone *zone) : label_(zone->New<Label>()) {}
+   ZoneLabelRef(MaglevAssembler *) : ZoneLabelRef(zone()) {}
+   Label *operator*() { return label_; }
+   Label *label_;
+ };
+ template <typename Function>
+ struct FunctionArgumentsTupleHelper
+     : FunctionArgumentsTupleHelper<decltype(&Function::operator())> {};
+ template <typename C, typename R, typename... A>
+ struct FunctionArgumentsTupleHelper<R (C::*)(A...) const> {
+   using Tuple = tuple<A...>;
+ };
+ template <typename> struct StripFirstTupleArg;
+ template <typename T1, typename... T>
+ struct StripFirstTupleArg<tuple<T1, T...>> {
+   using Stripped = tuple<T...>;
+ };
+ template <typename Function> struct DeferredCodeInfoImpl {
+   template <typename... InArgs>
+   DeferredCodeInfoImpl(int *, int, int, Function, InArgs... args)
+       : args(args...) {}
+   StripFirstTupleArg<
+       typename FunctionArgumentsTupleHelper<Function>::Tuple>::Stripped args;
+ };
+ template <typename Function, typename... Args>
+ void MaglevAssembler::MakeDeferredCode(Function &&deferred_code_gen,
+                                        Args &&...args) {
+   zone()->New<DeferredCodeInfoImpl<Function>>(
+       &MakeDeferredCode___trans_tmp_1, MakeDeferredCode___trans_tmp_2,
+       MakeDeferredCode___trans_tmp_3, deferred_code_gen, args...);
+ }
+ void MaglevAssembler::Prologue() {
+   int *__trans_tmp_9;
+   ZoneLabelRef deferred_call_stack_guard_return(this);
+   __trans_tmp_9 = reinterpret_cast<int *>(deopt_info_address());
+   JumpToDeferredIf(
+       below_equal, [](MaglevAssembler, int *, ZoneLabelRef, int, int) {},
+       __trans_tmp_9, deferred_call_stack_guard_return, Prologue___trans_tmp_6,
+       0);
+   Label __trans_tmp_7 = **deferred_call_stack_guard_return;
+   bind(&__trans_tmp_7);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/warn/Warray-bounds-27.C gcc-11.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds-27.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/warn/Warray-bounds-27.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/warn/Warray-bounds-27.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ // PR105726
+ // { dg-do compile }
+ // { dg-require-effective-target c++11 }
+ // { dg-options "-O2 -Warray-bounds" }
+ 
+ #include <array>
+ #include <cstring>
+ 
+ struct X {
+     char pad[4];
+     std::array<char, 1> mField;
+ };
+ 
+ void encode(char* aBuffer, const X& aMessage) {
+     strncpy(aBuffer, aMessage.mField.data(), 1); // { dg-bogus "bounds" }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/warn/Wignored-qualifiers2.C gcc-11.4.0/gcc/testsuite/g++.dg/warn/Wignored-qualifiers2.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/warn/Wignored-qualifiers2.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/warn/Wignored-qualifiers2.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/92752
+ // { dg-do compile }
+ // { dg-additional-options "-Wignored-qualifiers" }
+ 
+ struct X;
+ 
+ template<class T>
+ struct Wrap {
+   T data;
+   Wrap() : data() {}
+ };
+ 
+ typedef int (X::*type)();
+ Wrap<const type> x;
+ #if __cpp_initializer_lists
+ const type t{};
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C gcc-11.4.0/gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/105725
+ // { dg-do compile { target c++14 } }
+ // { dg-options "-Wall -Wmismatched-tags" }
+ 
+ template <bool> struct enable_if;
+ template <bool Cond> using enable_if_t = typename enable_if<Cond>::type;
+ template <typename> bool is_class_v;
+ template <class, class> bool B;
+ template <class T>
+ bool B<T, enable_if_t<is_class_v<class T::foo>>>;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/warn/Wsequence-point-5.C gcc-11.4.0/gcc/testsuite/g++.dg/warn/Wsequence-point-5.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/warn/Wsequence-point-5.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/warn/Wsequence-point-5.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,37 ----
+ // PR c++/107163
+ // { dg-additional-options "-Wsequence-point" }
+ 
+ struct BaseType  {
+   int i;
+ };
+ 
+ template< int Seq >
+ class DerivedType : public DerivedType< Seq - 1 > { };
+ 
+ template<>
+ class DerivedType< -1 > : public BaseType { };
+ 
+ int main() {
+   DerivedType< 400 > d;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   d.i = 42;
+   return d.i;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/warn/pr108365.C gcc-11.4.0/gcc/testsuite/g++.dg/warn/pr108365.C
*** gcc-11.3.0/gcc/testsuite/g++.dg/warn/pr108365.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.dg/warn/pr108365.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/108365
+ // { dg-do compile { target { { { ilp32 || lp64 } || llp64 } && c++11 } } }
+ 
+ constexpr char b = 1;
+ long t = (short) ((long long) (unsigned long long) (-__INT_MAX__ - 1) / (long long) (b ? -1 : 0)); // { dg-bogus "integer overflow in expression of type" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
*** gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,86 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
+ 
+ #define ALIGN 16
+ //#define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, f16, f16p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 12 { xfail *-*-* } } } */
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} "" { target *-*-* } 47 } f1 */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} "" { target *-*-* } 48 } f2 */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} "" { target *-*-* } 49 } f4 */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} "" { target *-*-* } 50 } f8 */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 53 }  fp */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Bitfield call argument in registers.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} ""  { target *-*-* } 60 } g1 */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} ""  { target *-*-* } 61 } g2 */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} ""  { target *-*-* } 62 } g4 */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} ""  { target *-*-* } 63 } g8 */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 66 }  gp */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 67 } g1p */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 68 } g2p */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 69 } g4p */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 70 } g8p */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} "" { target *-*-* } 74 } f1_stack */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} "" { target *-*-* } 75 } f2_stack */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} "" { target *-*-* } 76 } f4_stack */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} "" { target *-*-* } 77 } f8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 80 }  fp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* Bitfield call argument in stack.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} ""  { target *-*-* } 87 } g1_stack */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} ""  { target *-*-* } 88 } g2_stack */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} ""  { target *-*-* } 89 } g4_stack */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} ""  { target *-*-* } 90 } g8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 93 }  gp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} "" { target *-*-* } 101 } f1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} "" { target *-*-* } 102 } f2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} "" { target *-*-* } 103 } f4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} "" { target *-*-* } 104 } f8_stdarg */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 107 }  fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} ""  { target *-*-* } 114 } g1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} ""  { target *-*-* } 115 } g2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} ""  { target *-*-* } 116 } g4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} ""  { target *-*-* } 117 } g8_stdarg */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 120 }  gp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 121 } g1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 122 } g2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 123 } g4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 124 } g8p_stdarg */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
*** gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,87 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
+ 
+ #define ALIGN 16
+ #define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, f16, f16p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 12 { xfail *-*-* } } } */
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} "" { target *-*-* } 47 } f1 */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} "" { target *-*-* } 48 } f2 */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} "" { target *-*-* } 49 } f4 */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} "" { target *-*-* } 50 } f8 */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 53-57 (fp, f1p, f2p,
+    f4p, f8p) (because the argument fits in a single register).  Should not
+    warn, but aarch64_function_arg_boundary would need to take the argument size
+    into account as well as whether it's passed via registers or the stack.  */
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 53 }  fp */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Bitfield call argument in registers.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} ""  { target *-*-* } 60 } g1 */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} ""  { target *-*-* } 61 } g2 */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} ""  { target *-*-* } 62 } g4 */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} ""  { target *-*-* } 63 } g8 */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 66-70 (gp, g1p, g2p,
+    g4p, g8p), no warning expected.  */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} "" { target *-*-* } 74 } f1_stack */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} "" { target *-*-* } 75 } f2_stack */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} "" { target *-*-* } 76 } f4_stack */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} "" { target *-*-* } 77 } f8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 80 }  fp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* Bitfield call argument in stack.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} ""  { target *-*-* } 87 } g1_stack */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} ""  { target *-*-* } 88 } g2_stack */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} ""  { target *-*-* } 89 } g4_stack */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} ""  { target *-*-* } 90 } g8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 93 }  gp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} "" { target *-*-* } 101 } f1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} "" { target *-*-* } 102 } f2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} "" { target *-*-* } 103 } f4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} "" { target *-*-* } 104 } f8_stdarg */
+ 
+ /* Parameter passing for these should not have changed in GCC 9.1 (PR 105549).
+    Fortunately we warn. Note the discrepancy with lines 120-124 below: we warn
+    in the callee, but not in the caller.  */
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1} "" { target *-*-* } 107 }  fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'S1' changed in GCC 9.1} ""  { target *-*-* } 114 } g1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2' changed in GCC 9.1} ""  { target *-*-* } 115 } g2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4' changed in GCC 9.1} ""  { target *-*-* } 116 } g4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8' changed in GCC 9.1} ""  { target *-*-* } 117 } g8_stdarg */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 120-124 (gp_stdarg
+    g1p_stdarg, g2p_stdarg, g4p_stdarg, g8p_stdarg), no warning expected.  */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C
*** gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,119 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
+ 
+ #define ALIGN 32
+ //#define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ 
+ /* In f1, f2, f4, f8, f16 (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[x1\\\]" 10 } } */
+ 
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* In f16p (and stdarg version):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 2 { xfail *-*-* } } } */
+ 
+ /* In f1_stack, f2_stack, f4_stack, f8_stack, f16_stack, f8p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx\[0-9\]+, \\\[sp, 8\\\]" 6 { xfail *-*-* } } } */
+ 
+ /* In fp_stack, f1p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrb\tw0, \\\[sp, 8\\\]" 2 { xfail *-*-* } } } */
+ 
+ /* In f2p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrh\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f4p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f16p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[sp, 16\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 47-51 (f1, f2, f4, f8, f16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 53-57 (fp, f1p, f2p,
+    f4p, f8p) because the argument fits in a single register.  Should not warn,
+    but aarch64_function_arg_boundary would need to take the argument size into
+    account as well as whether it's passed via registers or the stack.  */
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}  "" { target *-*-* } 53 } fp */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning since GCC 11 (was OK with GCC 9).  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { xfail *-*-* } 58 } f16p */
+ 
+ 
+ /* Bitfield call argument in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 60-64 (g1, g2, g4, g8, g16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 66-70 (gp, g1p, g2p,
+    g4p, g8p), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { xfail *-*-* } 71 } g16p */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 74-78 (f1_stack,
+    f2_stack, f4_stack, f8_stack, f16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* Changed in GCC 9.1.  */
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}  "" { target *-*-* } 80 } fp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 85 (f16p_stack) because
+    the overall alignment is >= 16.  No warning expected.  */
+ 
+ 
+ /* Bitfield call argument in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 87-91 (g1_stack,
+    g2_stack, g4_stack, g8_stack, g16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}  "" { target *-*-* } 93 } gp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* No change in parameter passing in GCC 9.1 for line 98 (g16p_stack).  No
+    warning expected.  */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 101-105 (f1_stdarg,
+    f2_stdarg, f4_stdarg, f8_stdarg, f16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}   "" { target *-*-* } 107 } fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1}  "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1}  "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1}  "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1}  "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 112 (f16p_stdarg).
+    Should not warn.  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { target *-*-* } 112 } f16p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 114-118 (g1_stdarg,
+    g2_stdarg, g4_stdarg, g8_stdarg, g16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 120-124 (gp_stdarg,
+    g1p_stdarg, g2p_stdarg, g4p_stdarg, g8p_stdarg), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { xfail *-*-* } 125 } g16p_stdarg */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C
*** gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,119 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
+ 
+ #define ALIGN 32
+ #define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, f16 (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[x1\\\]" 10 } } */
+ 
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* In f16p (and stdarg version):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 2 { xfail *-*-* } } } */
+ 
+ /* In f1_stack, f2_stack, f4_stack, f8_stack, f16_stack, f8p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx\[0-9\]+, \\\[sp, 8\\\]" 6 { xfail *-*-* } } } */
+ 
+ /* In fp_stack, f1p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrb\tw0, \\\[sp, 8\\\]" 2 { xfail *-*-* } } } */
+ 
+ /* In f2p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrh\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f4p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f16p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[sp, 16\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 47-51 (f1, f2, f4, f8, f16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 53-57 (fp, f1p, f2p,
+    f4p, f8p) because the argument fits in a single register.  Should not warn,
+    but aarch64_function_arg_boundary would need to take the argument size into
+    account as well as whether it's passed via registers or the stack.  */
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}  "" { target *-*-* } 53 } fp */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning since GCC 11 (was OK with GCC 9).  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { xfail *-*-* } 58 } f16p */
+ 
+ 
+ /* Bitfield call argument in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 60-64 (g1, g2, g4, g8, g16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 66-70 (gp, g1p, g2p,
+    g4p, g8p), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { xfail *-*-* } 71 } g16p */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 74-78 (f1_stack,
+    f2_stack, f4_stack, f8_stack, f16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}  "" { target *-*-* } 80 } fp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 85 (f16p_stack) because
+    the overall alignment is >= 16.  No warning expected.  */
+ 
+ /* Bitfield call argument in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 87-91 (g1_stack,
+    g2_stack, g4_stack, g8_stack, g16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}  "" { target *-*-* } 93 } gp_stack */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* No change in parameter passing in GCC 9.1 for line 98 (g16p_stack).  No
+    warning expected.  */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 101-105 (f1_stdarg,
+    f2_stdarg, f4_stdarg, f8_stdarg, f16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* Parameter passing for these should not have changed in GCC 9.1 (PR 105549).
+    Fortunately we warn. Note the discrepancy with lines 120-124 below: we warn
+    in the callee, but not in the caller.  */
+ /* { dg-message {parameter passing for argument of type 'Sp' changed in GCC 9.1}   "" { target *-*-* } 107 } fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S1p' changed in GCC 9.1}  "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S2p' changed in GCC 9.1}  "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S4p' changed in GCC 9.1}  "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'S8p' changed in GCC 9.1}  "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 112 (f16p_stdarg).
+    Should not warn.  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { target *-*-* } 112 } f16p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 114-118 (g1_stdarg,
+    g2_stdarg, g4_stdarg, g8_stdarg, g16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 120-124 (gp_stdarg,
+    g1p_stdarg, g2p_stdarg, g4p_stdarg, g8p_stdarg), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'S16p' changed in GCC 9.1} "" { xfail *-*-* } 125 } g16p_stdarg */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align8-O2.C gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align8-O2.C
*** gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align8-O2.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align8-O2.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
+ 
+ #define ALIGN 8
+ #define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 18 } } */
+ 
+ /* In f16, f16p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 4 } } */
+ 
+ /* In f1, f2, f4, f8, f16, fp, f1p, f2p, f4p, f8p, f16p stack versions:  */
+ /* { dg-final { scan-assembler-times "and\tw0, w0, 1" 11 } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h
*** gcc-11.3.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,125 ----
+ #include <stdarg.h>
+ 
+ typedef unsigned long long ull __attribute__((aligned(ALIGN)));
+ 
+ #ifndef EXTRA
+ #define EXTRA unsigned long long x;
+ #endif
+ 
+ struct S1  { __attribute__((aligned(1))) ull i : 1; EXTRA };
+ struct S2  { __attribute__((aligned(2))) ull i : 1; EXTRA };
+ struct S4  { __attribute__((aligned(4))) ull i : 1; EXTRA };
+ struct S8  { __attribute__((aligned(8))) ull i : 1; EXTRA };
+ struct S16 { __attribute__((aligned(16))) ull i : 1; EXTRA };
+ 
+ struct Sp   { ull i : 1; EXTRA }__attribute__((packed));
+ struct S1p  { __attribute__((packed, aligned(1))) ull i : 1; EXTRA };
+ struct S2p  { __attribute__((packed, aligned(2))) ull i : 1; EXTRA };
+ struct S4p  { __attribute__((packed, aligned(4))) ull i : 1; EXTRA };
+ struct S8p  { __attribute__((packed, aligned(8))) ull i : 1; EXTRA };
+ struct S16p { __attribute__((packed, aligned(16))) ull i : 1; EXTRA };
+ 
+ /* Bitfield in registers.  */
+ #define PARAMS(xx) int a0, struct S##xx s, ull a1
+ /* Bitfield passed by the stack.  */
+ #define PARAMS_STACK(xx) int a0, ull a1, ull a2, ull a3, ull a4, ull a5, ull a6, ull a7, ull a8, struct S##xx t
+ /* Bitfield passed via stdarg.  */
+ #define PARAMS_STDARG(xx) int a0, ...
+ 
+ #define CODE(xx)				\
+   return s.i;
+ 
+ #define CODE_STACK(xx)				\
+   return t.i;
+ 
+ #define CODE_STDARG(xx)				\
+   va_list ap;					\
+   struct S##xx arg;				\
+   __builtin_va_start(ap,a0);			\
+   arg = __builtin_va_arg(ap, struct S##xx);	\
+   return arg.i;
+ 
+ #define ARGS(xx) x, (struct S##xx) { x }, x
+ #define ARGS_STACK(xx) x, x, x, x, x, x, x, x, x, (struct S##xx) { x }
+ #define ARGS_STDARG(xx) x, (struct S##xx) { x }
+ 
+ /* Bitfield in registers.  */
+ int __attribute__ ((noipa)) f1 (PARAMS(1))  { CODE(1) }
+ int __attribute__ ((noipa)) f2 (PARAMS(2))  { CODE(2) }
+ int __attribute__ ((noipa)) f4 (PARAMS(4))  { CODE(4) }
+ int __attribute__ ((noipa)) f8 (PARAMS(8))  { CODE(8) }
+ int __attribute__ ((noipa)) f16(PARAMS(16)) { CODE(16) }
+ 
+ int __attribute__ ((noipa)) fp  (PARAMS(p))   { CODE(p) }
+ int __attribute__ ((noipa)) f1p (PARAMS(1p))  { CODE(1p) }
+ int __attribute__ ((noipa)) f2p (PARAMS(2p))  { CODE(2p) }
+ int __attribute__ ((noipa)) f4p (PARAMS(4p))  { CODE(4p) }
+ int __attribute__ ((noipa)) f8p (PARAMS(8p))  { CODE(8p) }
+ int __attribute__ ((noipa)) f16p(PARAMS(16p)) { CODE(16p) }
+ 
+ int g1 (int x) { return f1 (ARGS(1)); }
+ int g2 (int x) { return f2 (ARGS(2)); }
+ int g4 (int x) { return f4 (ARGS(4)); }
+ int g8 (int x) { return f8 (ARGS(8)); }
+ int g16(int x) { return f16 (ARGS(16)); }
+ 
+ int gp  (int x) { return fp   (ARGS(p)); }
+ int g1p (int x) { return f1p  (ARGS(1p)); }
+ int g2p (int x) { return f2p  (ARGS(2p)); }
+ int g4p (int x) { return f4p  (ARGS(4p)); }
+ int g8p (int x) { return f8p  (ARGS(8p)); }
+ int g16p(int x) { return f16p (ARGS(16p)); }
+ 
+ /* Bitfield in the stack.  */
+ int __attribute__ ((noipa)) f1_stack (PARAMS_STACK(1))  { CODE_STACK(1) }
+ int __attribute__ ((noipa)) f2_stack (PARAMS_STACK(2))  { CODE_STACK(2) }
+ int __attribute__ ((noipa)) f4_stack (PARAMS_STACK(4))  { CODE_STACK(4) }
+ int __attribute__ ((noipa)) f8_stack (PARAMS_STACK(8))  { CODE_STACK(8) }
+ int __attribute__ ((noipa)) f16_stack(PARAMS_STACK(16)) { CODE_STACK(16) }
+ 
+ int __attribute__ ((noipa)) fp_stack  (PARAMS_STACK(p))   { CODE_STACK(p) }
+ int __attribute__ ((noipa)) f1p_stack (PARAMS_STACK(1p))  { CODE_STACK(1p) }
+ int __attribute__ ((noipa)) f2p_stack (PARAMS_STACK(2p))  { CODE_STACK(2p) }
+ int __attribute__ ((noipa)) f4p_stack (PARAMS_STACK(4p))  { CODE_STACK(4p) }
+ int __attribute__ ((noipa)) f8p_stack (PARAMS_STACK(8p))  { CODE_STACK(8p) }
+ int __attribute__ ((noipa)) f16p_stack(PARAMS_STACK(16p)) { CODE_STACK(16p) }
+ 
+ int g1_stack (int x) { return f1_stack (ARGS_STACK(1)); }
+ int g2_stack (int x) { return f2_stack (ARGS_STACK(2)); }
+ int g4_stack (int x) { return f4_stack (ARGS_STACK(4)); }
+ int g8_stack (int x) { return f8_stack (ARGS_STACK(8)); }
+ int g16_stack(int x) { return f16_stack (ARGS_STACK(16)); }
+ 
+ int gp_stack  (int x) { return fp_stack (ARGS_STACK(p)); }
+ int g1p_stack (int x) { return f1p_stack (ARGS_STACK(1p)); }
+ int g2p_stack (int x) { return f2p_stack (ARGS_STACK(2p)); }
+ int g4p_stack (int x) { return f4p_stack (ARGS_STACK(4p)); }
+ int g8p_stack (int x) { return f8p_stack (ARGS_STACK(8p)); }
+ int g16p_stack(int x) { return f16p_stack (ARGS_STACK(16p)); }
+ 
+ /* Bitfield  via stdarg.  */
+ int __attribute__ ((noipa)) f1_stdarg (PARAMS_STDARG(1))  { CODE_STDARG(1) }
+ int __attribute__ ((noipa)) f2_stdarg (PARAMS_STDARG(2))  { CODE_STDARG(2) }
+ int __attribute__ ((noipa)) f4_stdarg (PARAMS_STDARG(4))  { CODE_STDARG(4) }
+ int __attribute__ ((noipa)) f8_stdarg (PARAMS_STDARG(8))  { CODE_STDARG(8) }
+ int __attribute__ ((noipa)) f16_stdarg(PARAMS_STDARG(16)) { CODE_STDARG(16) }
+ 
+ int __attribute__ ((noipa)) fp_stdarg  (PARAMS_STDARG(p))   { CODE_STDARG(p) }
+ int __attribute__ ((noipa)) f1p_stdarg (PARAMS_STDARG(1p))  { CODE_STDARG(1p) }
+ int __attribute__ ((noipa)) f2p_stdarg (PARAMS_STDARG(2p))  { CODE_STDARG(2p) }
+ int __attribute__ ((noipa)) f4p_stdarg (PARAMS_STDARG(4p))  { CODE_STDARG(4p) }
+ int __attribute__ ((noipa)) f8p_stdarg (PARAMS_STDARG(8p))  { CODE_STDARG(8p) }
+ int __attribute__ ((noipa)) f16p_stdarg(PARAMS_STDARG(16p)) { CODE_STDARG(16p) }
+ 
+ int g1_stdarg (int x) { return f1_stdarg (ARGS_STDARG(1)); }
+ int g2_stdarg (int x) { return f2_stdarg (ARGS_STDARG(2)); }
+ int g4_stdarg (int x) { return f4_stdarg (ARGS_STDARG(4)); }
+ int g8_stdarg (int x) { return f8_stdarg (ARGS_STDARG(8)); }
+ int g16_stdarg(int x) { return f16_stdarg (ARGS_STDARG(16)); }
+ 
+ int gp_stdarg  (int x) { return fp_stdarg (ARGS_STDARG(p)); }
+ int g1p_stdarg (int x) { return f1p_stdarg (ARGS_STDARG(1p)); }
+ int g2p_stdarg (int x) { return f2p_stdarg (ARGS_STDARG(2p)); }
+ int g4p_stdarg (int x) { return f4p_stdarg (ARGS_STDARG(4p)); }
+ int g8p_stdarg (int x) { return f8p_stdarg (ARGS_STDARG(8p)); }
+ int g16p_stdarg(int x) { return f16p_stdarg (ARGS_STDARG(16p)); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/i386/mv31.C gcc-11.4.0/gcc/testsuite/g++.target/i386/mv31.C
*** gcc-11.3.0/gcc/testsuite/g++.target/i386/mv31.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/i386/mv31.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/104669
+ 
+ void bar()
+ {
+   int foo(void);
+   int foo(void) __attribute__((target("sse")));
+   int foo(void) __attribute__((target("default")));
+   int (*p)(void) = &foo;
+   return;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/i386/pr106875.C gcc-11.4.0/gcc/testsuite/g++.target/i386/pr106875.C
*** gcc-11.3.0/gcc/testsuite/g++.target/i386/pr106875.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/i386/pr106875.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,26 ----
+ // PR target/106875
+ // { dg-do compile { target { c++11 && lp64 } } }
+ // { dg-options "-O0 -mabi=ms -fabi-version=3 -mcall-ms2sysv-xlogues" }
+ 
+ #pragma GCC target "avx"
+ template <typename> struct A {};
+ #pragma GCC push_options
+ #pragma GCC target "avx,avx2,bmi,bmi2,fma,f16c"
+ template <typename T> using B = A<T>;
+ template <typename> struct C;
+ template <> struct C<float> {
+   __attribute__((always_inline)) float operator()(long) { return .0f; }
+ };
+ long d;
+ template <typename T> void e(B<T>) {
+   T{C<T>()(d)};
+ }
+ template <typename T, typename FromT> void f(T d, FromT) {
+   e(d);
+ }
+ int g;
+ void h() {
+   A<float> i;
+   f(i, g);
+ }
+ #pragma GCC pop_options
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C gcc-11.4.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C
*** gcc-11.3.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/65211
+ // { dg-additional-options "-Wno-psabi" }
+ // { dg-final { scan-assembler-not "movdqa" } }
+ 
+ typedef unsigned v4ui __attribute__ ((vector_size(16), aligned (16)));
+ 
+ template<int I>
+ static v4ui t1(unsigned *dest_data)
+ {
+   typedef unsigned v4ui_1 __attribute__ ((vector_size (16), aligned (4)));
+   return ((const v4ui_1*)dest_data)[0];
+ }
+ 
+ v4ui f(unsigned int *array)
+ {
+     return t1<1>(array+7);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.target/powerpc/pr101322.C gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr101322.C
*** gcc-11.3.0/gcc/testsuite/g++.target/powerpc/pr101322.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr101322.C	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ /* PR target/101322 */
+ /* { dg-require-effective-target power10_ok } */
+ /* { dg-options "-O2 -mdejagnu-cpu=power10" } */
+ 
+ /* Verify we don't ICE on the following test cases.  */
+ 
+ void
+ foo (char *resp, char *vpp)
+ {
+   __builtin_vsx_disassemble_pair (resp, (__vector_pair *) vpp);
+ }
+ 
+ void
+ bar (char *resp, char *vpp)
+ {
+   __builtin_mma_disassemble_acc (resp, (__vector_quad *)vpp);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr106030.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr106030.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr106030.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr106030.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ /* PR middle-end/106030 */
+ 
+ int a, b, c;
+ 
+ char
+ foo (int x, int y)
+ {
+   return x * y;
+ }
+ 
+ void
+ bar (void)
+ {
+   char d = (foo <= b) * a;
+   c = foo (2 != bar, d);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr106751.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr106751.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr106751.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr106751.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ /* PR rtl-optimization/106751 */
+ 
+ int *foo (void);
+ 
+ void
+ bar (void)
+ {
+   asm goto ("" : : : : lab);
+   __builtin_unreachable ();
+ lab:
+   while (1)
+     {
+       int o;
+       asm ("" : "=r" (o) : "g" (1));
+       *foo () = o;
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr107997.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr107997.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr107997.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr107997.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/107997 */
+ 
+ int a, b;
+ void bar (int);
+ int baz (void);
+ 
+ void *
+ foo (int x, void *y)
+ {
+   asm goto ("" : : "r" (x || !a) : : l);
+ l:
+   if (y)
+     return 0;
+   bar (b ? b : x);
+   while (x--)
+     {
+       if (!baz ())
+ 	baz ();
+       asm goto ("" : : : : l2);
+     l2:;
+     }
+   return y;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr108237.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr108237.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr108237.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr108237.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ /* PR middle-end/108237 */
+ 
+ typedef unsigned char __attribute__((__vector_size__ (1))) U;
+ typedef unsigned long long __attribute__((__vector_size__ (16))) V;
+ 
+ U u;
+ V v;
+ 
+ V
+ foo (void)
+ {
+   V w = v != ((unsigned char) ((unsigned char) u == u) & v);
+   return w;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr108596.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr108596.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr108596.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr108596.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,26 ----
+ /* PR rtl-optimization/108596 */
+ 
+ __attribute__((__cold__)) void foo (void);
+ void bar (void);
+ 
+ void
+ baz (void)
+ {
+   asm goto ("" : : : : l1, l0);
+   goto l0;
+ l1:
+   bar ();
+ l0:
+   foo ();
+ }
+ 
+ void
+ qux (void)
+ {
+   asm goto ("" : : : : l1, l0);
+   __builtin_unreachable ();
+ l1:
+   bar ();
+ l0:
+   foo ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr108688-1.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr108688-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/compile/pr108688-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr108688-1.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ 
+ 
+ union U { signed int d : 7; signed int e : 2; } u;
+ int a, b;
+ 
+ void
+ foo (void)
+ {
+   for (int i = 0; i < 64; i++)
+     {
+       u.d = a;
+       u.e ^= b;
+     }
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr106032.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr106032.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr106032.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr106032.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ /* PR rtl-optimization/106032 */
+ 
+ __attribute__((noipa)) int
+ foo (int x, int *y)
+ {
+   int a = 0;
+   if (x < 0)
+     a = *y;
+   return a;  
+ }
+ 
+ int
+ main ()
+ {
+   int a = 42;
+   if (foo (0, 0) != 0 || foo (1, 0) != 0)
+     __builtin_abort ();
+   if (foo (-1, &a) != 42 || foo (-42, &a) != 42)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr108498-1.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr108498-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr108498-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr108498-1.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,82 ----
+ /* PR tree-optimization/108498 */
+ 
+ struct A
+ {
+   signed char a1;
+   int a2;
+ };
+ 
+ struct B
+ {
+   struct A b1;
+   unsigned char b2:1, b3:1, b4:2, b5:1, b6:1, b7[4];
+ };
+ 
+ struct C
+ {
+   unsigned char c1;
+   char c2;
+   signed char c3;
+   unsigned char c4, c5[4], c6:1, c7:1, c8:1, c9:3, c10:1;
+   struct A c11;
+   struct B c12[3];
+ };
+ 
+ static inline struct C
+ foo (unsigned char a, unsigned b, int c, struct A d,
+      unsigned e, struct B f, struct B g, struct B h)
+ {
+   struct C x
+     = { .c1 = b, .c2 = 0, .c3 = c, .c6 = a, .c4 = e, .c7 = 0,
+         .c8 = 0, .c9 = 7, .c10 = 0, .c5 = {0, 1, 2, 3}, .c11 = d,
+         .c12 = {f, g, h} };
+   return x;
+ }
+ 
+ static inline struct A
+ bar (int a, int b)
+ {
+   struct A x = { .a1 = a, .a2 = b };
+   return x;
+ }
+ 
+ static inline struct B
+ baz (struct A b1)
+ {
+   struct B x = { .b1 = b1, .b6 = 0, .b5 = 0, .b7 = {0, 1, 2, 3}, .b2 = 0 };
+   return x;
+ }
+ 
+ struct C
+ qux (void)
+ {
+   const struct B a = baz (bar (0, 0));
+   struct C b;
+   struct B c[2];
+   struct A d = { 0, 1 };
+   c[0].b1.a1 = 0;
+   c[0].b1.a2 = 2;
+   c[1].b1.a1 = 4;
+   c[1].b1.a2 = 8;
+   return foo (0, 2, -1, d, 3, c[0], c[1], a);
+ }
+ 
+ __attribute__((noipa)) void
+ corge (struct C *x)
+ {
+   char buf[1024];
+   __builtin_memset (buf, 0xaa, sizeof (buf));
+   asm volatile ("" : : "r" (buf));
+   __builtin_memset (x, 0x55, sizeof (struct C));
+   asm volatile ("" : : "r" (x));
+ }
+ 
+ int
+ main ()
+ {
+   struct C x;
+   corge (&x);
+   x = qux ();
+   if (x.c6 || x.c9 != 7)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr108498-2.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr108498-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr108498-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr108498-2.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,91 ----
+ /* PR tree-optimization/108498 */
+ 
+ struct U { char c[16]; };
+ struct V { char c[16]; };
+ struct S { unsigned int a : 3, b : 8, c : 21; struct U d; unsigned int e; struct V f; unsigned int g : 5, h : 27; };
+ struct T { unsigned int a : 16, b : 8, c : 8; struct U d; unsigned int e; struct V f; unsigned int g : 5, h : 27; };
+ 
+ __attribute__((noipa)) void
+ foo (struct S *p)
+ {
+   p->b = 231;
+   p->c = 42;
+   p->d = (struct U) { "abcdefghijklmno" };
+   p->e = 0xdeadbeef;
+   p->f = (struct V) { "ABCDEFGHIJKLMNO" };
+ }
+ 
+ __attribute__((noipa)) void
+ bar (struct S *p)
+ {
+   p->b = 231;
+   p->c = 42;
+   p->d = (struct U) { "abcdefghijklmno" };
+   p->e = 0xdeadbeef;
+   p->f = (struct V) { "ABCDEFGHIJKLMNO" };
+   p->g = 12;
+ }
+ 
+ __attribute__((noipa)) void
+ baz (struct T *p)
+ {
+   p->c = 42;
+   p->d = (struct U) { "abcdefghijklmno" };
+   p->e = 0xdeadbeef;
+   p->f = (struct V) { "ABCDEFGHIJKLMNO" };
+   p->g = 12;
+ }
+ 
+ int
+ main ()
+ {
+   if (__CHAR_BIT__ != 8 || __SIZEOF_INT__ != 4)
+     return 0;
+   struct S s = {};
+   struct T t = {};
+   foo (&s);
+   if (s.a != 0 || s.b != 231 || s.c != 42
+       || __builtin_memcmp (&s.d.c, "abcdefghijklmno", 16) || s.e != 0xdeadbeef
+       || __builtin_memcmp (&s.f.c, "ABCDEFGHIJKLMNO", 16) || s.g != 0 || s.h != 0)
+     __builtin_abort ();
+   __builtin_memset (&s, 0, sizeof (s));
+   s.a = 7;
+   s.g = 31;
+   s.h = (1U << 27) - 1;
+   foo (&s);
+   if (s.a != 7 || s.b != 231 || s.c != 42
+       || __builtin_memcmp (&s.d.c, "abcdefghijklmno", 16) || s.e != 0xdeadbeef
+       || __builtin_memcmp (&s.f.c, "ABCDEFGHIJKLMNO", 16) || s.g != 31 || s.h != (1U << 27) - 1)
+     __builtin_abort ();
+   __builtin_memset (&s, 0, sizeof (s));
+   bar (&s);
+   if (s.a != 0 || s.b != 231 || s.c != 42
+       || __builtin_memcmp (&s.d.c, "abcdefghijklmno", 16) || s.e != 0xdeadbeef
+       || __builtin_memcmp (&s.f.c, "ABCDEFGHIJKLMNO", 16) || s.g != 12 || s.h != 0)
+     __builtin_abort ();
+   __builtin_memset (&s, 0, sizeof (s));
+   s.a = 7;
+   s.g = 31;
+   s.h = (1U << 27) - 1;
+   bar (&s);
+   if (s.a != 7 || s.b != 231 || s.c != 42
+       || __builtin_memcmp (&s.d.c, "abcdefghijklmno", 16) || s.e != 0xdeadbeef
+       || __builtin_memcmp (&s.f.c, "ABCDEFGHIJKLMNO", 16) || s.g != 12 || s.h != (1U << 27) - 1)
+     __builtin_abort ();
+   baz (&t);
+   if (t.a != 0 || t.b != 0 || t.c != 42
+       || __builtin_memcmp (&t.d.c, "abcdefghijklmno", 16) || t.e != 0xdeadbeef
+       || __builtin_memcmp (&t.f.c, "ABCDEFGHIJKLMNO", 16) || t.g != 12 || t.h != 0)
+     __builtin_abort ();
+   __builtin_memset (&s, 0, sizeof (s));
+   t.a = 7;
+   t.b = 255;
+   t.g = 31;
+   t.h = (1U << 27) - 1;
+   baz (&t);
+   if (t.a != 7 || t.b != 255 || t.c != 42
+       || __builtin_memcmp (&t.d.c, "abcdefghijklmno", 16) || t.e != 0xdeadbeef
+       || __builtin_memcmp (&t.f.c, "ABCDEFGHIJKLMNO", 16) || t.g != 12 || t.h != (1U << 27) - 1)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr109778.c gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr109778.c
*** gcc-11.3.0/gcc/testsuite/gcc.c-torture/execute/pr109778.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr109778.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,26 ----
+ /* PR tree-optimization/109778 */
+ 
+ int a, b, c, d, *e = &c;
+ 
+ static inline unsigned
+ foo (unsigned char x)
+ {
+   x = 1 | x << 1;
+   x = x >> 4 | x << 4;
+   return x;
+ }
+ 
+ static inline void
+ bar (unsigned x)
+ {
+   *e = 8 > foo (x + 86) - 86;
+ }
+ 
+ int
+ main ()
+ {
+   d = a && b;
+   bar (d + 4);
+   if (c != 1)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/analyzer/pr105252.c gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/pr105252.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/analyzer/pr105252.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/pr105252.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-additional-options "-fnon-call-exceptions -O" } */
+ 
+ typedef unsigned char C;
+ typedef unsigned char __attribute__((__vector_size__ (4))) V;
+ 
+ C m;
+ 
+ static inline void
+ bar (C c, V v, V *r)
+ {
+   v %= (c | v) % m;
+   *r = v;
+ }
+ 
+ void
+ foo (void)
+ {
+   V x;
+   bar (0, (V){2}, &x);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/analyzer/pr105365.c gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/pr105365.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/analyzer/pr105365.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/pr105365.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target int128 } */
+ 
+ typedef _Float32 f32;
+ typedef _Complex _Float32 cf32;
+ _Float32 g;
+ __int128 i;
+ 
+ extern void bar(int);
+ 
+ void
+ foo(_Float32 k) {
+   f32 f = 0;
+   f /= (_Complex char)__builtin_llround(g);
+   k /= (cf32)__builtin_copysignf(0, i);
+   bar(f + k);
+   foo(0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/analyzer/pr105366.c gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/pr105366.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/analyzer/pr105366.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/pr105366.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-require-effective-target int128 } */
+ /* { dg-additional-options "-O" } */
+ 
+ extern void bar(int);
+ extern void baz(void);
+ 
+ typedef unsigned u32;
+ 
+ void
+ foo(u32 u, __int128 i) {
+   baz();
+   _Complex int c = i;
+   c /= (u32)(__UINTPTR_TYPE__)foo;
+   short s = (short)(__UINTPTR_TYPE__)foo;
+   u /= (_Complex short)s;
+   u32 r = u + c;
+   bar(r);
+   foo(0, 0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/asan/pr105396.c gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr105396.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/asan/pr105396.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr105396.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR sanitizer/105396 */
+ /* { dg-do run } */
+ /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */
+ /* { dg-shouldfail "asan" } */
+ 
+ int
+ main ()
+ {
+   int a;
+   int *b[1];
+   int c[10];
+   int d[1][1];
+   for (a = 0; a < 1; a++)
+     d[1][a] = 0;
+   return 0;
+ }
+ 
+ /* { dg-output "ERROR: AddressSanitizer: stack-buffer-overflow on address.*(\n|\r\n|\r)" } */
+ /* { dg-output "WRITE of size.*" } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/asan/pr106190.c gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr106190.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/asan/pr106190.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr106190.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ /* PR middle-end/106190 */
+ /* { dg-do compile } */
+ /* { dg-options "-fnon-call-exceptions -fsanitize=address,undefined -fno-sanitize-recover=all" } */
+ 
+ int
+ main ()
+ {
+   int a;
+   int *b[1];
+   int c[10];
+   int d[1][1];
+   for (a = 0; a < 1; a++)
+     d[1][a] = 0;
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/asan/pr107317.c gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr107317.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/asan/pr107317.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr107317.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,13 ----
+ /* PR middle-end/107317 */
+ /* { dg-do compile { target ilp32 } } */
+ /* { dg-options "-fsanitize=address -ffat-lto-objects" } */
+ 
+ void bar (float *, float *);
+ 
+ void
+ foo (void)		/* { dg-error "exceeds maximum" } */
+ {
+   float a[400000000];
+   float b[200000000];
+   bar (a, b);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/attr-aligned.c gcc-11.4.0/gcc/testsuite/gcc.dg/attr-aligned.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/attr-aligned.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/attr-aligned.c	Mon May 29 08:46:30 2023
***************
*** 12,19 ****
  #  define ALIGN_MAX_STATIC      0x1000
     /* Excessive alignment for functions and objects with static storage
        duration that's expected to trigger an error.  */
! #elif __MACH__
! #  define ALIGN_MAX_STATIC      0x8000
  #elif pdp11
  #  define ALIGN_MAX_STATIC      2
  /* Work around a pdp11 ICE (see PR target/87821).  */
--- 12,23 ----
  #  define ALIGN_MAX_STATIC      0x1000
     /* Excessive alignment for functions and objects with static storage
        duration that's expected to trigger an error.  */
! #elif __APPLE__
! # if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
! #   define ALIGN_MAX_STATIC      0x8000
! # else
! #   define ALIGN_MAX_STATIC      ALIGN_MAX_HARD
! # endif
  #elif pdp11
  #  define ALIGN_MAX_STATIC      2
  /* Work around a pdp11 ICE (see PR target/87821).  */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/darwin-aligned-globals.c gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-aligned-globals.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/darwin-aligned-globals.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-aligned-globals.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-additional-options "-fcommon" } */
+ 
+ /* Test alignment rules which differ for earlier hosts (so we must
+    work on the principle that this test will be exercised by self-
+    hosted compilers. */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
+ #define align_OK (1ul << 28)
+ #define align_BAD (1ul << 29)
+ #else
+ #define align_OK (1ul << 15)
+ #define align_BAD (1ul << 16)
+ #endif
+ 
+ /* All non common vars are allowed larger alignment on modern systems.  */
+ static int xn __attribute__ ((aligned (align_OK)));
+ static int xi __attribute__ ((aligned (align_OK))) = 5  ;
+ int gxi __attribute__ ((aligned (align_OK))) = 6 ;
+ 
+ /* test that we detect bad cases.  */
+ static int yn __attribute__ ((aligned (align_BAD))); /* { dg-error {requested alignment .[0-9]+. exceeds object file maximum} } */
+ static int yi __attribute__ ((aligned (align_BAD))) = 5;  /* { dg-error {requested alignment .[0-9]+. exceeds object file maximum} } */
+ int yni __attribute__ ((aligned (align_BAD))) = 6;  /* { dg-error {requested alignment .[0-9]+. exceeds object file maximum} } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/darwin-comm-1.c gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-comm-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/darwin-comm-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-comm-1.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile { target *-*-darwin[912]* } } */
+ /* { dg-options "-fcommon" } */
+ 
+ /* In all cases, common has a max alignment of 2^15.  */
+ int badcommon __attribute__ ((aligned (65536))); /* { dg-error "common variables must have an alignment" } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c	Mon May 29 08:46:30 2023
***************
*** 15,21 ****
  /* { dg-additional-options "-mmacosx-version-min=010.013.06 -DCHECK=101306" { target *-*-darwin17* } } */
  /* { dg-additional-options "-mmacosx-version-min=010.014.05 -DCHECK=101405" { target *-*-darwin18* } } */
  /* { dg-additional-options "-mmacosx-version-min=010.015.06 -DCHECK=101506" { target *-*-darwin19* } } */
! /* { dg-additional-options "-mmacosx-version-min=011.000.00 -DCHECK=110000" { target *-*-darwin20 } } */
  
  int
  main ()
--- 15,22 ----
  /* { dg-additional-options "-mmacosx-version-min=010.013.06 -DCHECK=101306" { target *-*-darwin17* } } */
  /* { dg-additional-options "-mmacosx-version-min=010.014.05 -DCHECK=101405" { target *-*-darwin18* } } */
  /* { dg-additional-options "-mmacosx-version-min=010.015.06 -DCHECK=101506" { target *-*-darwin19* } } */
! /* { dg-additional-options "-mmacosx-version-min=011.000.00 -DCHECK=110000" { target *-*-darwin20* } } */
! /* { dg-additional-options "-mmacosx-version-min=012.000.00 -DCHECK=120000" { target *-*-darwin21* } } */
  
  int
  main ()
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/dfp/pr108068.c gcc-11.4.0/gcc/testsuite/gcc.dg/dfp/pr108068.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/dfp/pr108068.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/dfp/pr108068.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ /* PR tree-optimization/108068 */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ int
+ main ()
+ {
+   _Decimal64 x = -1;
+   while (x != 0)
+     x /= 10;
+   double d = x;
+   if (!__builtin_signbit (d))
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/gomp/pr108435.c gcc-11.4.0/gcc/testsuite/gcc.dg/gomp/pr108435.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/gomp/pr108435.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/gomp/pr108435.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ /* PR middle-end/108435 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fopenmp" } */
+ 
+ int
+ main ()
+ {
+   int i, j;
+   void
+   bar (void)
+   {
+     #pragma omp for simd collapse(2)
+      for (i = 1; i <= 16; i++)
+        for (j = 1; j <= 16; j++)
+ 	 ;
+   }
+   bar ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/guality/guality.exp gcc-11.4.0/gcc/testsuite/gcc.dg/guality/guality.exp
*** gcc-11.3.0/gcc/testsuite/gcc.dg/guality/guality.exp	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/guality/guality.exp	Mon May 29 08:46:30 2023
*************** if { [istarget *-*-darwin*] } {
*** 8,13 ****
--- 8,17 ----
      return
  }
  
+ if { [istarget hppa*-*-hpux*] } {
+     return
+ }
+ 
  if { [istarget "powerpc-ibm-aix*"] } {
      set torture_execute_xfail "powerpc-ibm-aix*"
      return
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/ipa/pr105739.c gcc-11.4.0/gcc/testsuite/gcc.dg/ipa/pr105739.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/ipa/pr105739.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/ipa/pr105739.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ 
+ __attribute__((noinline))
+ static int
+ test2(int a)
+ {
+         if (__builtin_constant_p (a))
+                 __builtin_abort ();
+         return a;
+ }
+ static int
+ test(int *a)
+ {
+         int val = *(volatile int *)a;
+         if (__builtin_constant_p (val))
+                 __builtin_abort ();
+         if (val)
+           return test2(val);
+         return 0;
+ }
+ int a;
+ int
+ main()
+ {
+         a = 0;
+         return test (&a);
+ }
+ /* { dg-final { scan-tree-dump "test2" "optimized" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/lto/pr109778_0.c gcc-11.4.0/gcc/testsuite/gcc.dg/lto/pr109778_0.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/lto/pr109778_0.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/lto/pr109778_0.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,22 ----
+ /* PR tree-optimization/109778 */
+ /* { dg-lto-do run } */
+ /* { dg-lto-options { "-O2 -flto" } } */
+ /* { dg-require-effective-target int32 } */
+ 
+ int bar (int);
+ 
+ __attribute__((noipa)) int
+ foo (int x)
+ {
+   x = bar (x);
+   x = (x << 16) | (int) ((unsigned) x >> 16);
+   return x & 0x10000000;
+ }
+ 
+ int
+ main ()
+ {
+   if (foo (0) || foo (-1))
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/lto/pr109778_1.c gcc-11.4.0/gcc/testsuite/gcc.dg/lto/pr109778_1.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/lto/pr109778_1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/lto/pr109778_1.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,7 ----
+ int
+ bar (int x)
+ {
+   x &= 0x22222222;
+   x |= (int) 0xf1234567U;
+   return x;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr104464.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr104464.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr104464.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr104464.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fnon-call-exceptions -fno-tree-dce -fno-tree-forwprop -fsignaling-nans" } */
+ 
+ typedef double __attribute__((__vector_size__(16))) F;
+ F f;
+ 
+ void
+ foo(void)
+ {
+   f += (F)(f != (F){}[0]);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105140.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105140.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105140.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105140.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Os -w -Wno-psabi" } */
+ /* { dg-skip-if "PR105147" { powerpc*-*-* s390*-*-* } } */
+ 
+ typedef char __attribute__((__vector_size__ (16 * sizeof (char)))) U;
+ typedef int __attribute__((__vector_size__ (16 * sizeof (int)))) V;
+ 
+ void bar ();
+ 
+ bar (int i, int j, int k, V v)
+ {
+ }
+ 
+ void
+ foo (void)
+ {
+   bar ((V){}, (V){}, (V){}, (U){});
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105173.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105173.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105173.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105173.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target dfp } } */
+ /* { dg-options "-Ofast" } */
+ 
+ int i;
+ 
+ int
+ foo(char c, _Decimal32 d)
+ {
+   d *= i;
+   d *= -(_Decimal64)c;
+   return d;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105250.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105250.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105250.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105250.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-w -Wno-psabi -O2" } */
+ /* { dg-skip-if "PR105266" { powerpc*-*-* s390*-*-* } } */
+ 
+ typedef int __attribute__((__vector_size__(4))) T;
+ typedef int __attribute__((__vector_size__(8))) U;
+ typedef int __attribute__((__vector_size__(16))) V;
+ typedef int __attribute__((__vector_size__(32))) W;
+ typedef _Float32 __attribute__((__vector_size__(16))) F;
+ typedef _Float64 __attribute__((__vector_size__(32))) G;
+ void foo();
+ 
+ foo(int, int, int, int, U, U, V, V, W, W, int,
+      T, int, U, U, V, V, W, W, T,
+      T, int, U, U, V, V, W, W, T,
+      T, int, W, W, T, T, int, int, int,
+      int, int, int, W, int, int, int, int, int, int,
+      V, W, T, int, int, U, F, int, int, int,
+      int, int, int, G)
+ {
+   foo(0, 0, 0, 0, (U){}, (U){}, (V){}, (V){}, (W){},
+        (W){}, 2, (T){}, 0, 0, 0, 0, (U){}, (U){},
+        (V){}, (V){}, (W){}, (W){}, (T){},
+        (T){}, 0, 0, 0, 0, (U){}, (U){}, (V){},
+        (V){}, (W){}, (W){}, (T){}, (T){}, 0, 0, 0,
+        0, 0, 0, (T){},
+        (T){}, (W){},
+        (W){}, (T){}, (T){}, 0, 0, 0, 0, 0, 0, (W){},
+        (V){}, (W){}, (T){}, 0, 0, (U){}, (F){});
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105257.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105257.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105257.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105257.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ /* PR target/105257 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-additional-options "-fpic" { target fpic } } */
+ 
+ extern int sigsetjmp (void **, int);
+ void *buf[32];
+ void (*fn) (void);
+ 
+ const char *
+ bar (void)
+ {
+   sigsetjmp (buf, 0);
+   fn ();
+   return "";
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105263.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105263.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105263.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105263.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target dfp } } */
+ /* { dg-options "-O -ffast-math -w -Wno-psabi" } */
+ 
+ typedef _Decimal64 __attribute__((__vector_size__ (8))) U;
+ typedef _Decimal64 __attribute__((__vector_size__ (16))) V;
+ 
+ V v;
+ 
+ U
+ foo (U u)
+ {
+   u *= u;
+   u *= -(U){ v[1] };
+   return u;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105331.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105331.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105331.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105331.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,11 ----
+ /* PR target/105331 */
+ /* { dg-do compile } */
+ /* { dg-options "-O -Wuninitialized" } */
+ 
+ #include <stdarg.h>
+ 
+ int
+ foo (va_list *va)
+ {
+   return va_arg (*va, double _Complex);	/* { dg-bogus "may be used uninitialized" } */
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105333.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105333.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105333.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105333.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ /* PR rtl-optimization/105333 */
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-Og -fno-tree-coalesce-vars -fno-tree-fre" } */
+ 
+ int g;
+ short s;
+ 
+ static inline unsigned short
+ bar (short a, __int128 b)
+ {
+   b ^= (unsigned long) -a;
+   __builtin_strncpy ((void *) &s, (void *) &a, 1);
+   b *= 14;
+   return b;
+ }
+ 
+ void
+ foo (void)
+ {
+   g *= (__int128) bar (1, 1);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr105528.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr105528.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr105528.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr105528.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/105528 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wno-psabi -fcompare-debug" } */
+ /* { dg-additional-options "-mavx512f" { target i?86-*-* x86_64-*-* } } */
+ 
+ typedef unsigned V __attribute__((__vector_size__ (64)));
+ V g;
+ 
+ V
+ bar (V v)
+ {
+   V w;
+   v <<= (V){(V){}[53]} >= v & 5;
+   w[w[5]] -= ~0;
+   v %= ~0;
+   return v + w;
+ }
+ 
+ void
+ foo (void)
+ {
+   g -= (V){bar((V){~0})[3]};
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr106027.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr106027.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr106027.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr106027.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O" } */
+ 
+ int
+ foo (unsigned int x, int y)
+ {
+   return x <= (((y != y) < 0) ? y < 1 : 0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr106189.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr106189.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr106189.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr106189.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Warray-bounds=2 -w" } */
+ 
+ int a_n_0_0_a[][0];
+ void a_n_0_0() { T(((char *)a_n_0_0_a)[1]); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr106719.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr106719.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr106719.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr106719.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,13 ----
+ /* PR debug/106719 */
+ /* { dg-do compile { target sync_char_short } } */
+ /* { dg-options "-O2 -fcompare-debug" } */
+ 
+ extern short int esi, easi[2];
+ 
+ void
+ foo (void)
+ {
+   short int *psi = &easi[1];
+   __atomic_nand_fetch (psi, esi, 0);
+   psi = &easi[1];
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr107107.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr107107.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr107107.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr107107.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ftree-tail-merge" } */
+ 
+ static inline void set_longish(int is_long_long, void *p, long x)
+ {
+   if (is_long_long)
+     *(long long*)p = x;
+   else
+     *(long*)p = x;
+ }
+ static long test(long long *p, int index, int mode)
+ {
+   *p = 1;
+   set_longish(mode, p+index, 2);
+   return *p;
+ }
+ long (*volatile vtest)(long long*, int, int) = test;
+ int main(void)
+ {
+   long long x;
+   long result = vtest(&x, 0, 1);
+   if (result != 2 || x != 2)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr107127.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr107127.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr107127.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr107127.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,13 ----
+ /* PR c/107127 */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ int *v;
+ 
+ _Complex double
+ foo (_Complex double a, double b, double c)
+ {
+   return v[0] / ((((c * (0 - 0 / a + 699.0 + 7.05 - 286.0 - +-4.65 + 1.57 + 0) * 0.1 - 3.28 + 4.22 + 0.1)) * b + 5.06)
+ 		 * 1.23 * 8.0 * 12.0 * 16.0 * 2.0 * 2.0 * 0.25 * 0.125 * 18.2 * -15.25 * 0.0001
+ 		 * 42.0 * 0.012 - 8.45 + 0 + 88.0 + 6.96 + 867.0 + 9.10 - 7.04 * -1.0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr107554.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr107554.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr107554.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr107554.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target lp64 } } */
+ /* { dg-options "-O -foptimize-strlen" } */
+ 
+ #define ELEMS 0x40000000
+ 
+ int a[ELEMS];
+ int b[ELEMS];
+ 
+ int main()
+ {
+   __builtin_memcpy(a, b, ELEMS*sizeof(int));
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr108095.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr108095.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr108095.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr108095.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ /* PR tree-optimization/108095 */
+ /* { dg-do compile } */
+ /* { dg-options "-Os -g" } */
+ 
+ int v;
+ typedef unsigned T;
+ 
+ void
+ foo (void)
+ {
+   unsigned s;
+   asm goto ("" : "=r" (*(T *) &s) : : : lab);
+   v = 0;
+ lab:
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr108264.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr108264.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr108264.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr108264.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,27 ----
+ /* PR middle-end/108264 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-additional-options "-fpic" { target fpic } } */
+ 
+ int v;
+ extern int bar (void);
+ 
+ static inline void
+ foo (char *d)
+ {
+   switch (bar ())
+     {
+     case 2:
+       d[0] = d[1] = d[2] = d[3] = v;
+       break;
+     case 4:
+       d[0] = 0;
+     }
+ }
+ 
+ int
+ baz (int x)
+ {
+   foo ((char *) &x);
+   return x;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr108573.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr108573.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr108573.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr108573.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,18 ----
+ /* PR debug/108573 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fcompare-debug" } */
+ 
+ unsigned g;
+ 
+ int bar (void);
+ int baz (int);
+ 
+ void
+ foo (unsigned short s, long l)
+ {
+   unsigned u = bar ();
+   s &= __builtin_add_overflow_p (0, u, 0);
+   s %= g;
+   s -= l >> s;
+   baz (s);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr108625.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr108625.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr108625.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr108625.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop1 -fdump-tree-optimized" } */
+ 
+ unsigned char foo(int x)
+ {
+   int t = -x;
+   unsigned char t1 = t;
+   unsigned char t2 = t;
+   /* We may not rewrite this as (unsigned char)(t - x).  */
+   return t1 + t2;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "x_" 1 "forwprop1" } } */
+ /* { dg-final { scan-tree-dump-times "x_" 1 "optimized" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr108692.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr108692.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr108692.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr108692.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,31 ----
+ /* PR tree-optimization/108692 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize" } */
+ 
+ __attribute__((noipa)) int
+ foo (signed char *x, signed char *y, int n)
+ {
+   int i, r = 0;
+   signed char a, b;
+   for (i = 0; i < n; i++)
+     {
+       a = x[i];
+       b = y[i];
+       int c = (unsigned char) a - (unsigned char) b;
+       r = r + (c < 0 ? -c : c);
+     }
+   return r;
+ }
+ 
+ int
+ main ()
+ {
+   signed char x[64] = {}, y[64] = {};
+   if (__CHAR_BIT__ != 8 || __SIZEOF_INT__ != 4)
+     return 0;
+   x[32] = -128;
+   y[32] = 1;
+   if (foo (x, y, 64) != 127)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr109410.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr109410.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr109410.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr109410.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR tree-optimization/109410 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ __attribute__((returns_twice)) int baz (int, int);
+ 
+ int
+ bar (int x)
+ {
+   return x;
+ }
+ 
+ int
+ foo (int x, int y)
+ {
+   baz (x, y);
+   int a = bar (x);
+   return y || a == 42 || a > 42;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pr64536.c gcc-11.4.0/gcc/testsuite/gcc.dg/pr64536.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pr64536.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pr64536.c	Mon May 29 08:46:30 2023
*************** bar (int x)
*** 40,47 ****
  	      h->q = *f;
  	    }
  	  else
! 	    i = (long *) (h->q = *f);
! 	  *c++ = (long) f;
  	  e += 6;
  	}
        else
--- 40,47 ----
  	      h->q = *f;
  	    }
  	  else
! 	    i = (long *) (__INTPTR_TYPE__) (h->q = *f);
! 	  *c++ = (__INTPTR_TYPE__) f;
  	  e += 6;
  	}
        else
*************** bar (int x)
*** 54,61 ****
  	      h->q = *f;
  	    }
  	  else
! 	    i = (long *) (h->q = *f);
! 	  *c++ = (long) f;
  	  e += 6;
  	}
      }
--- 54,61 ----
  	      h->q = *f;
  	    }
  	  else
! 	    i = (long *) (__INTPTR_TYPE__) (h->q = *f);
! 	  *c++ = (__INTPTR_TYPE__) f;
  	  e += 6;
  	}
      }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/pragma-message.c gcc-11.4.0/gcc/testsuite/gcc.dg/pragma-message.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/pragma-message.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/pragma-message.c	Mon May 29 08:46:30 2023
***************
*** 42,50 ****
  #pragma message ("Okay " THREE)  /* { dg-message "Okay 3" } */
  
  /* Create a TODO() that prints a message on compilation.  */
! #define DO_PRAGMA(x) _Pragma (#x)
! #define TODO(x) DO_PRAGMA(message ("TODO - " #x))
! TODO(Okay 4)                     /* { dg-message "TODO - Okay 4" } */
  
  #if 0
  #pragma message ("Not printed")
--- 42,52 ----
  #pragma message ("Okay " THREE)  /* { dg-message "Okay 3" } */
  
  /* Create a TODO() that prints a message on compilation.  */
! #define DO_PRAGMA(x) _Pragma (#x) /* { dg-line pragma_loc1 } */
! #define TODO(x) DO_PRAGMA(message ("TODO - " #x)) /* { dg-line pragma_loc2 } */
! TODO(Okay 4) /* { dg-message "in expansion of macro 'TODO'" } */
! /* { dg-message "TODO - Okay 4" "test4.1" { target *-*-* } pragma_loc1 } */
! /* { dg-message "in expansion of macro 'DO_PRAGMA'" "test4.2" { target *-*-* } pragma_loc2 } */
  
  #if 0
  #pragma message ("Not printed")
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/sso-17.c gcc-11.4.0/gcc/testsuite/gcc.dg/sso-17.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/sso-17.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/sso-17.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ #define REV_ENDIANNESS __attribute__((scalar_storage_order("big-endian")))
+ #else
+ #define REV_ENDIANNESS __attribute__((scalar_storage_order("little-endian")))
+ #endif
+ 
+ typedef unsigned long long u64;
+ 
+ union DST {
+   u64 val;
+ 
+   struct {
+     u64 x : 1;
+     u64 y : 1;
+     u64 r: 62;
+   } REV_ENDIANNESS;
+ } REV_ENDIANNESS;
+ 
+ 
+ struct SRC {
+   u64 a;
+ } REV_ENDIANNESS;
+ 
+ [[gnu::noipa]]
+ void foo () {__builtin_abort();}
+ 
+ [[gnu::noinline]]
+ int bar(struct SRC *src)
+ {
+   union DST dst;
+   
+   dst.val = src->a;
+ 
+   if (dst.y) {
+     foo();
+   }
+   return 0;
+ }
+ 
+ int main(void)
+ {
+ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+   struct SRC t = {-1ull & (~(0x01ull<<62))};
+ #else
+   struct SRC t = {-1ull & (~(0x01ull<<1))};
+ #endif
+   bar(&t);
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105148.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105148.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105148.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105148.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ 
+ extern void foo (void);
+ 
+ static inline int
+ bar (int n)
+ {
+   for (int i = 0; i < n; i++)
+     {
+       foo ();
+       int y[1][i];
+       y[n][i] = 0;
+     }
+ }
+ 
+ int
+ baz (void)
+ {
+   return bar (5);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105163.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105163.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105163.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105163.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target nonlocal_goto } */
+ 
+ #include <setjmp.h>
+ 
+ extern int bar (unsigned int *);
+ extern jmp_buf *baz (void);
+ struct C { int c1; };
+ void foo (struct C *x, int *z, int e)
+ {
+   unsigned int d = 0;
+   long f;
+   setjmp (*baz());
+   f = 1 + ~d;
+   d = 8;
+   if ((!0) && !e && bar(z)) *z = 1 + f;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105484.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105484.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105484.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105484.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fnon-call-exceptions -fno-tree-dce -fno-tree-forwprop" } */
+ /* { dg-additional-options "-march=cannonlake" { target x86_64-*-* i?86-*-* } } */
+ 
+ typedef int __attribute__((__vector_size__ (16))) V;
+ 
+ void bar (int i);
+ 
+ void
+ foo (int i)
+ {
+   V v;
+   __builtin_mul_overflow (7, i, &v[i]);
+   bar ((V){}[3]);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105598.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105598.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr105598.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr105598.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run } */
+ 
+ typedef struct { unsigned int num; } info_t;
+ typedef struct { unsigned int flag, type; } block_t;
+ info_t info;
+ block_t blocks[] = { {2,0}, {3,0}, {1,0}, {1,0} };
+ 
+ static block_t *
+ f (info_t *i, block_t *b)
+ {
+   while (1) {
+     unsigned int is_last = b->flag & 0x01;
+     i->num++;
+     if (b->flag & 0x02) {
+       if (b->type != 0x1) b->type = b->type;
+       b = f (i, b+1);
+     }
+     if (is_last)
+       break;
+     b++;
+   }
+   return b;
+ }
+ 
+ int
+ main ()
+ {
+   f(&info, &blocks[0]);
+   if (info.num != 4)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106112.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106112.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106112.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106112.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do run } */
+ 
+ __INT32_TYPE__ a = 5, b, c, d;
+ __UINT64_TYPE__ e = 20862985922;
+ int main()
+ {
+   __UINT32_TYPE__ f = 4294967292;
+   e = e | f;
+   c = -1 % ((~f ^ 4294967292) - (e - d));
+   b = ~-~e % ~-d;
+   if (b)
+     a = 0;
+   if (a < 1)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106513.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106513.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106513.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106513.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do run } */
+ 
+ typedef __INT64_TYPE__ int64_t;
+ 
+ __attribute__((noinline)) int64_t
+ swap64 (int64_t n)
+ {
+   return (((n & (((int64_t) 0xff) )) << 56) |
+           ((n & (((int64_t) 0xff) << 8)) << 40) |
+           ((n & (((int64_t) 0xff) << 16)) << 24) |
+           ((n & (((int64_t) 0xff) << 24)) << 8) |
+           ((n & (((int64_t) 0xff) << 32)) >> 8) |
+           ((n & (((int64_t) 0xff) << 40)) >> 24) |
+           ((n & (((int64_t) 0xff) << 48)) >> 40) |
+           ((n & ((int64_t)(0xffull << 56))) >> 56));
+ }
+ 
+ int main (void)
+ {
+   volatile int64_t n = 0x8000000000000000ll;
+ 
+   if (swap64(n) != 0xffffffffffffff80ll)
+     __builtin_abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106809.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106809.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106809.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106809.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-Wuninitialized" } */
+ 
+ int foo (int x, int *val)
+ {
+   switch (x)
+     {
+ #define C(n) \
+     case n + 0: return *val; \
+     case n + 1: return *val; \
+     case n + 2: return *val; \
+     case n + 3: return *val; \
+     case n + 4: return *val; \
+     case n + 5: return *val; \
+     case n + 6: return *val; \
+     case n + 7: return *val; \
+     case n + 8: return *val; \
+     case n + 9: return *val;
+ #define C1(n) \
+     C(n+00) C(n+10) C(n+20) C(n+30) C(n+40) \
+     C(n+50) C(n+60) C(n+70) C(n+80) C(n+90)
+ #define C10(n) \
+     C1(n+000) C1(n+100) C1(n+200) C1(n+300) C1(n+400) \
+     C1(n+500) C1(n+600) C1(n+700) C1(n+800) C1(n+900)
+     C10(1000)
+     }
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106892.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106892.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr106892.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr106892.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do run } */
+ 
+ int a, b, c, d, e;
+ int f[8];
+ static int g() {
+   while (a)
+     a >>= 4;
+   return 0;
+ }
+ static int h(int i) {
+   if (i >= '0')
+     return i - '0';
+   //__builtin_unreachable ();
+ }
+ void __attribute__((noipa)) j(int i) {
+   for (b = 2; g() <= 7; b++)
+     if (i) {
+       for (; e <= 7; e++)
+         for (c = 1; c <= 7; c++) {
+           d = h(b + '0');
+           f[-d + 4] ^= 3;
+         }
+       return;
+     }
+ }
+ int main() {
+   j(1);
+   if (f[2] != 0)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr107451.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr107451.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr107451.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr107451.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-ftree-vectorize -fno-vect-cost-model" } */
+ /* { dg-additional-options "-mavx2" { target avx2_runtime } } */
+ 
+ double getdot(int n, const double *x, int inc_x, const double *y)
+ {
+   int i, ix = 0;
+   double dot[4] = { 0.0, 0.0, 0.0, 0.0 } ;
+ 
+   for(i = 0; i < n; i++) {
+       dot[0] += x[ix]   * y[ix]   ;
+       dot[1] += x[ix+1] * y[ix+1] ;
+       dot[2] += x[ix]   * y[ix+1] ;
+       dot[3] += x[ix+1] * y[ix]   ;
+       ix += inc_x ;
+   }
+ 
+   return dot[0] + dot[1] + dot[2] + dot[3];
+ }
+ 
+ int main()
+ {
+   double x[2] = {0, 0}, y[2] = {0, 0};
+   if (getdot(1, x, 4096*4096, y) != 0.)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr108076.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr108076.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr108076.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr108076.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do link } */
+ 
+ static void *j;
+ int v, g;
+ __attribute__((__leaf__)) int atoi (const char *);
+ 
+ int
+ main ()
+ {
+   j = &&lab1;
+   &&lab2;
+   atoi ("42");
+ lab1:
+ lab2:
+   if (v)
+     goto *j;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr109585.c gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr109585.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/torture/pr109585.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr109585.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do run } */
+ 
+ #include <stdlib.h>
+ 
+ struct P {
+     long v;
+     struct P *n;
+ };
+ 
+ struct F {
+     long x;
+     struct P fam[];
+ };
+ 
+ int __attribute__((noipa))
+ f(struct F *f, int i)
+ {
+   struct P *p = f->fam;
+   asm("" : "+r"(f): "r"(p));
+   p->v = 0;
+   p->n = 0;
+   return f->fam->n != 0;
+ }
+ 
+ int
+ main()
+ {
+   struct F *m = malloc (sizeof (long) + 2 * sizeof (struct P));
+   m->fam[0].n = &m->fam[1];
+   if (f (m, 0))
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fre1" } */
+ 
+ struct inn
+ {
+   int val;
+ };
+ 
+ struct biggerstruct
+ {
+   int a, b;
+ };
+ 
+ union foo
+ {
+   struct inn inn;
+   struct biggerstruct baz;
+ } *fooptr;
+ 
+ struct bar
+ {
+   union foo foo;
+   int val2;
+ } *barptr;
+ 
+ int
+ test ()
+ {
+   union foo foo;
+   foo.inn.val = 0;
+   barptr->val2 = 123;
+   *fooptr = foo;
+   return barptr->val2;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "return 123" 1 "fre1"} } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/pr105860.c gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr105860.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/pr105860.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr105860.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,63 ----
+ /* { dg-do run } */
+ /* { dg-options "-O1" } */
+ 
+ struct S1  {
+         unsigned int _0;
+         unsigned int _1;
+ } ;
+ struct S2  {
+         struct S1 _s1;
+         unsigned long _x2;
+ } ;
+ 
+ struct ufld_type1  {
+         unsigned int _u1t;
+         struct S2 _s2;
+ } ;
+ 
+ struct ufld_type2  {
+         unsigned int _u2t;
+         struct S1 _s1;
+ } ;
+ struct parm_type {
+         union {
+                 struct ufld_type1 var_1;
+                 struct ufld_type2 var_2;
+         } U;
+ };
+ 
+ struct parm_type  bad_function( struct parm_type arg0 )
+ {
+         struct parm_type rv;
+         struct S2 var4;
+         switch( arg0.U.var_2._u2t ) {
+         case 4294967041:
+                 var4._s1 = arg0.U.var_1._s2._s1;
+                 rv.U.var_1._u1t = 4294967041;
+                 rv.U.var_1._s2 = var4;
+                 break;
+         case 4294967043:
+                 rv.U.var_2._u2t = 4294967043;
+                 rv.U.var_2._s1 = arg0.U.var_2._s1;
+                 break;
+         default:
+                 break;
+         }
+         return rv;
+ }
+ 
+ int main() {
+         struct parm_type val;
+         struct parm_type out;
+         val.U.var_2._u2t = 4294967043;
+         val.U.var_2._s1._0 = 0x01010101;
+         val.U.var_2._s1._1 = 0x02020202;
+         out = bad_function(val);
+ 	if (val.U.var_2._u2t != 4294967043)
+ 	  __builtin_abort ();
+         if (out.U.var_2._s1._0 != 0x01010101)
+ 	  __builtin_abort ();
+         if (val.U.var_2._s1._1 != 0x02020202 )
+ 	  __builtin_abort ();
+ 	return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/pr107323.c gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr107323.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/pr107323.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr107323.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-tree-vectorize" } */
+ 
+ int A[4];
+ int B[4];
+ 
+ static const char *__attribute__((noipa)) foo()
+ {
+   return "1";
+ }
+ 
+ int main()
+ {
+   const char *s = foo();
+ 
+   A[0] = 1000;
+   for(int i = 1; i < 4; ++i) {
+       B[i] = 0;
+       A[i] = 0;
+       if(s[0])
+ 	B[i] = 1;
+       A[i] = A[i - 1];
+   }
+ 
+   if (A[3] != 1000)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-lim2-details -fdump-tree-optimized" } */
+ 
+ extern volatile int *x;
+ static int gCrc;
+ 
+ static int __attribute__((noinline)) crc16Add(int crc, int b)
+ {
+   return crc + b;
+ }
+ 
+ void f(int data, int dataSz)
+ {
+   int i;
+ 
+   for(i=0;i<dataSz;i++)
+   {
+     gCrc = crc16Add(gCrc, data);
+     *x = data;
+   }
+ }
+ 
+ /* { dg-final { scan-tree-dump "Executing store motion of gCrc" "lim2" } } */
+ /* { dg-final { scan-tree-dump-not "Re-issueing" "lim2" } } */
+ /* { dg-final { scan-tree-dump-times "\\*x" 1 "optimized" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-sink-details -fdump-tree-cddce2-details" } */
+ 
+ static int b=4;
+ int c;
+ 
+ int
+ main()
+ {
+   int e[5] = {1,1,1,1,1};
+   for (; b >= 0; b--) {
+     c = e[b];
+   }
+   return 0;
+ }
+ 
+ /* We should sink e[b] out of the loop which is possible after
+    applying store motion to c and b.  */
+ /* { dg-final { scan-tree-dump "Sinking # VUSE" "sink" } } */
+ /* And remove the loop after final value replacement.  */
+ /* { dg-final { scan-tree-dump "fix_loop_structure: removing loop" "cddce2" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/ubsan/pr107183.c gcc-11.4.0/gcc/testsuite/gcc.dg/ubsan/pr107183.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/ubsan/pr107183.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/ubsan/pr107183.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,12 ----
+ /* PR target/107183 */
+ /* { dg-do compile } */
+ /* { dg-options "-O -fsanitize=float-cast-overflow -fcompare-debug" } */
+ 
+ long double a, b, c;
+ 
+ int
+ foo (void)
+ {
+   unsigned u = b || __builtin_rintl (c);
+   return u + (unsigned) a;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c	Mon May 29 08:46:30 2023
***************
*** 1,10 ****
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_complex_add_float } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE float
  #define N 16
  #include "complex-mul-template.c"
  
! /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "vect" } } */
! /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "vect" } } */
--- 1,11 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_complex_add_float } */
+ /* { dg-additional-options "-fno-tree-loop-vectorize" } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE float
  #define N 16
  #include "complex-mul-template.c"
  
! /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1" { xfail *-*-* } } } */
! /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c	Mon May 29 08:46:30 2023
***************
*** 6,12 ****
  #define N 200
  #include "complex-add-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" { target { vect_complex_add_double } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect"  { target { vect_complex_add_double } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
--- 6,12 ----
  #define N 200
  #include "complex-add-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_double } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect"  { target { vect_complex_add_double } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c	Mon May 29 08:46:30 2023
***************
*** 6,12 ****
  #define N 200
  #include "complex-add-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" { target { vect_complex_add_float } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" { target { vect_complex_add_float } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
--- 6,12 ----
  #define N 200
  #include "complex-add-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_float } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { target { vect_complex_add_float } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c	Mon May 29 08:46:30 2023
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
  /* { dg-require-effective-target float16 } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
  
***************
*** 6,10 ****
  #define N 200
  #include "complex-add-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 2 "vect" { target { vect_complex_add_half } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 2 "vect" { target { vect_complex_add_half } } } } */
--- 7,13 ----
  #define N 200
  #include "complex-add-template.c"
  
! /* Vectorization is failing for these cases.  They should work but for now ignore.  */
! 
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { xfail *-*-* } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { xfail *-*-* } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c	Mon May 29 08:46:30 2023
***************
*** 6,13 ****
  #define N 200
  #include "complex-add-pattern-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" { target { vect_complex_add_double } } } } */
  /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_double } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
--- 6,12 ----
  #define N 200
  #include "complex-add-pattern-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { target { vect_complex_add_double } } } } */
  /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_double } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c	Mon May 29 08:46:30 2023
***************
*** 6,13 ****
  #define N 200
  #include "complex-add-pattern-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" { target { vect_complex_add_float } } } } */
  /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_float } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
--- 6,12 ----
  #define N 200
  #include "complex-add-pattern-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { target { vect_complex_add_float } } } } */
  /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_float } } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c	Mon May 29 08:46:30 2023
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-require-effective-target vect_float } */
  /* { dg-require-effective-target float16 } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-require-effective-target vect_complex_add_half } */
  /* { dg-require-effective-target float16 } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
  
***************
*** 7,16 ****
  #define N 200
  #include "complex-add-pattern-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 4 "vect" { target { vect_complex_add_half } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_half } } } } */
  
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
--- 7,14 ----
  #define N 200
  #include "complex-add-pattern-template.c"
  
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT90" 1 "vect" { target { vect_complex_add_half } } } } */
! /* { dg-final { scan-tree-dump-times "stmt.*COMPLEX_ADD_ROT270" 1 "vect" { target { vect_complex_add_half } && ! target { arm*-*-* } } } } */
  
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c	Mon May 29 08:46:30 2023
***************
*** 1,5 ****
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target float16 } */
  
  #define TYPE _Float16
  #define N 200
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c	Mon May 29 08:46:30 2023
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_double } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE double
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c	Mon May 29 08:46:30 2023
***************
*** 1,10 ****
  /* { dg-do compile } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE float
  #define N 200
  #include "complex-mls-template.c"
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
--- 1,10 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_float } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE float
  #define N 200
  #include "complex-mls-template.c"
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c	Mon May 29 08:46:30 2023
***************
*** 1,9 ****
  /* { dg-do compile } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
  
  #define TYPE _Float16
  #define N 200
  #include "complex-mls-template.c"
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
--- 1,10 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target float16 } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
  
  #define TYPE _Float16
  #define N 200
  #include "complex-mls-template.c"
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c	Mon May 29 08:46:30 2023
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_double } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE double
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c	Mon May 29 08:46:30 2023
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_float } */
  /* { dg-add-options arm_v8_3a_complex_neon } */
  
  #define TYPE float
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c	Mon May 29 08:46:30 2023
***************
*** 1,4 ****
--- 1,6 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target float16 } */
  /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
  
  #define TYPE _Float16
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c	Mon May 29 08:46:30 2023
*************** int main (void)
*** 46,50 ****
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "not vectorized: unsupported unaligned store" 1 "vect" { target { ! vect_hw_misalign } } } } */
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_hw_misalign } } } } */
--- 46,50 ----
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "unsupported unaligned access" 1 "vect" { target { ! vect_hw_misalign } } } } */
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_hw_misalign } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr103116-1.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr103116-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr103116-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr103116-1.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-require-effective-target mmap } */
+ 
+ #include <sys/mman.h>
+ #include <stdio.h>
+ 
+ #define COUNT 128
+ #define MMAP_SIZE 0x20000
+ #define ADDRESS 0x1122000000
+ #define TYPE unsigned int
+ 
+ #ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
+ 
+ void __attribute__((noipa))
+ loop (TYPE *restrict x, TYPE *restrict y)
+ {
+   for (int i = 0; i < COUNT; ++i)
+     {
+       x[i * 4] = y[i * 2] + 1;
+       x[i * 4 + 1] = y[i * 2] + 2;
+       x[i * 4 + 2] = y[i * 2 + 1] + 3;
+       x[i * 4 + 3] = y[i * 2 + 1] + 4;
+     }
+ }
+ 
+ TYPE x[COUNT * 4];
+ 
+ int
+ main (void)
+ {
+   void *y;
+   TYPE *end_y;
+ 
+   y = mmap ((void *) ADDRESS, MMAP_SIZE, PROT_READ | PROT_WRITE,
+             MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+   if (y == MAP_FAILED)
+     {
+       perror ("mmap");
+       return 1;
+     }
+ 
+   end_y = (TYPE *) ((char *) y + MMAP_SIZE);
+ 
+   loop (x, end_y - COUNT * 2);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "Data access with gaps requires scalar epilogue loop" "vect" { target { vect_perm && vect_int } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr103116-2.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr103116-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr103116-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr103116-2.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,59 ----
+ /* { dg-require-effective-target mmap } */
+ /* { dg-additional-options "-mssse3" { target x86_64-*-* i?86-*-* } } */
+ 
+ #include <sys/mman.h>
+ #include <stdio.h>
+ #include "tree-vect.h"
+ 
+ #define COUNT 128
+ #define MMAP_SIZE 0x20000
+ #define ADDRESS 0x1122000000
+ #define TYPE unsigned short
+ #define GROUP_SIZE 2
+ 
+ #ifndef MAP_ANONYMOUS
+ #define MAP_ANONYMOUS MAP_ANON
+ #endif
+ 
+ void __attribute__((noipa))
+ loop (TYPE *restrict x, TYPE *restrict y)
+ {
+   for (int i = 0; i < COUNT; ++i)
+     {
+       x[i * 8] = y[i * GROUP_SIZE] + 1;
+       x[i * 8 + 1] = y[i * GROUP_SIZE] + 2;
+       x[i * 8 + 2] = y[i * GROUP_SIZE + 1] + 3;
+       x[i * 8 + 3] = y[i * GROUP_SIZE + 1] + 4;
+       x[i * 8 + 4] = y[i * GROUP_SIZE] + 5;
+       x[i * 8 + 5] = y[i * GROUP_SIZE] + 6;
+       x[i * 8 + 6] = y[i * GROUP_SIZE + 1] + 7;
+       x[i * 8 + 7] = y[i * GROUP_SIZE + 1] + 8;
+     }
+ }
+ 
+ TYPE x[COUNT * 4];
+ 
+ int
+ main (void)
+ {
+   void *y;
+   TYPE *end_y;
+ 
+   check_vect ();
+ 
+   y = mmap ((void *) ADDRESS, MMAP_SIZE, PROT_READ | PROT_WRITE,
+             MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+   if (y == MAP_FAILED)
+     {
+       perror ("mmap");
+       return 1;
+     }
+ 
+   end_y = (TYPE *) ((char *) y + MMAP_SIZE);
+ 
+   loop (x, end_y - COUNT * GROUP_SIZE);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "peeling for gaps insufficient for access" "vect" { target { vect_perm_short } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr107212-1.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr107212-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr107212-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr107212-1.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ 
+ #include "tree-vect.h"
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   unsigned int tab[6][2] = { {69, 73}, {36, 40}, {24, 16},
+         {16, 11}, {4, 5}, {3, 1} };
+ 
+   int sum_0 = 0;
+   int sum_1 = 0;
+ 
+   for(int t=0; t<6; t++) {
+       sum_0 += tab[t][0];
+       sum_1 += tab[t][1];
+   }
+ 
+   int x1 = (sum_0 < 100);
+   int x2 = (sum_0 > 200);
+ 
+   if (x1 || x2 || sum_1 != 146)
+     __builtin_abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr107212-2.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr107212-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr107212-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr107212-2.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do run } */
+ 
+ #include "tree-vect.h"
+ 
+ int sum_1 = 0;
+ 
+ int main()
+ {
+   check_vect ();
+ 
+   unsigned int tab[6][2] = {{150, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}};
+   
+   int sum_0 = 0;
+   
+   for (int t = 0; t < 6; t++) {
+     sum_0 += tab[t][0];
+     sum_1 += tab[t][0];
+   }
+   
+   if (sum_0 < 100 || sum_0 > 200)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr108950.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr108950.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr108950.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr108950.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-require-effective-target vect_simd_clones } */
+ /* { dg-do compile } */
+ 
+ int m;
+ short int n;
+ 
+ __attribute__ ((simd)) int
+ foo (void)
+ {
+   m += n;
+   m += n;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "widen_sum" "vect" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr109473.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr109473.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr109473.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr109473.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O" } */
+ 
+ struct spa_buffer {
+   __UINT32_TYPE__ *metas;
+ };
+ void do_port_use_buffers(struct spa_buffer **buffers, void *endptr, void *mem)
+ {
+   for (int i = 0; i < 128; i++)
+     {
+       for (int j = 0; j < 128; j++)
+ 	endptr = (void *)((__UINTPTR_TYPE__)endptr + buffers[i]->metas[j]);
+       if (endptr > mem)
+ 	return;
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr109502.c gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr109502.c
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/pr109502.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr109502.c	Mon May 29 08:46:30 2023
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-O" } */
+ 
+ unsigned g;
+ 
+ unsigned
+ foo (void)
+ {
+   unsigned a = !g;
+   a += !(a % 6);
+   return a;
+ }
+ 
+ int
+ main ()
+ {
+   unsigned x = foo ();
+   if (x != 1)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.dg/vect/vect.exp gcc-11.4.0/gcc/testsuite/gcc.dg/vect/vect.exp
*** gcc-11.3.0/gcc/testsuite/gcc.dg/vect/vect.exp	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.dg/vect/vect.exp	Mon May 29 08:46:31 2023
*************** et-dg-runtest dg-runtest [lsort \
*** 118,124 ****
  set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
  lappend DEFAULT_VECTCFLAGS "-ffast-math"
  et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/fast-math-\[ipsv\]*.\[cS\]]] \
  	"" $DEFAULT_VECTCFLAGS
  
  # -ffast-math SLP tests
--- 118,124 ----
  set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
  lappend DEFAULT_VECTCFLAGS "-ffast-math"
  et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/fast-math-\[ipsvc\]*.\[cS\]]] \
  	"" $DEFAULT_VECTCFLAGS
  
  # -ffast-math SLP tests
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,468 ----
+ /* Test the ACLE data intrinsics.  */
+ /* { dg-do assemble } */
+ /* { dg-additional-options "--save-temps -O1" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
+ 
+ #include "arm_acle.h"
+ 
+ /*
+ ** test_clz:
+ **	clz	w0, w0
+ **	ret
+ */
+ 
+ unsigned int test_clz (uint32_t a)
+ {
+   return __clz (a);
+ }
+ 
+ /*
+ ** test_clzl:
+ **	clz	[wx]0, [wx]0
+ **	ret
+ */
+ 
+ unsigned int test_clzl (unsigned long a)
+ {
+   return __clzl (a);
+ }
+ 
+ /*
+ ** test_clzll:
+ **	clz	x0, x0
+ **	ret
+ */
+ 
+ unsigned int test_clzll (uint64_t a)
+ {
+   return __clzll (a);
+ }
+ 
+ /*
+ ** test_cls:
+ **	cls	w0, w0
+ **	ret
+ */
+ 
+ unsigned int test_cls (uint32_t a)
+ {
+   return __cls (a);
+ }
+ 
+ /*
+ ** test_clsl:
+ **	cls	[wx]0, [wx]0
+ **	ret
+ */
+ 
+ unsigned int test_clsl (unsigned long a)
+ {
+   return __clsl (a);
+ }
+ 
+ /*
+ ** test_clsll:
+ **	cls	x0, x0
+ **	ret
+ */
+ 
+ unsigned int test_clsll (uint64_t a)
+ {
+   return __clsll (a);
+ }
+ 
+ /*
+ ** test_rbit:
+ **	rbit	w0, w0
+ **	ret
+ */
+ 
+ uint32_t test_rbit (uint32_t a)
+ {
+   return __rbit (a);
+ }
+ 
+ /*
+ ** test_rbitl:
+ **	rbit	[wx]0, [wx]0
+ **	ret
+ */
+ 
+ unsigned long test_rbitl (unsigned long a)
+ {
+   return __rbitl (a);
+ }
+ 
+ /*
+ ** test_rbitll:
+ **	rbit	x0, x0
+ **	ret
+ */
+ 
+ uint64_t test_rbitll (uint64_t a)
+ {
+   return __rbitll (a);
+ }
+ 
+ /*
+ ** test_rev:
+ **	rev	w0, w0
+ **	ret
+ */
+ 
+ uint32_t test_rev (uint32_t a)
+ {
+   return __rev (a);
+ }
+ 
+ /*
+ ** test_revl:
+ **	rev	[wx]0, [wx]0
+ **	ret
+ */
+ 
+ unsigned long test_revl (unsigned long a)
+ {
+   return __revl (a);
+ }
+ 
+ /*
+ ** test_revll:
+ **	rev	x0, x0
+ **	ret
+ */
+ 
+ uint64_t test_revll (uint64_t a)
+ {
+   return __revll (a);
+ }
+ 
+ /*
+ ** test_rev16:
+ **	rev16	w0, w0
+ **	ret
+ */
+ 
+ uint32_t test_rev16 (uint32_t a)
+ {
+   return __rev16 (a);
+ }
+ 
+ /*
+ ** test_rev16l:
+ **	rev16	[wx]0, [wx]0
+ **	ret
+ */
+ 
+ unsigned long test_rev16l (unsigned long a)
+ {
+   return __rev16l (a);
+ }
+ 
+ /*
+ ** test_rev16ll:
+ **	rev16	x0, x0
+ **	ret
+ */
+ 
+ uint64_t test_rev16ll (uint64_t a)
+ {
+   return __rev16ll (a);
+ }
+ 
+ /*
+ ** test_ror:
+ **	ror	w0, w0, w1
+ **	ret
+ */
+ 
+ uint32_t test_ror (uint32_t a, uint32_t r)
+ {
+   return __ror (a, r);
+ }
+ 
+ /*
+ ** test_rorl:
+ **	ror	[wx]0, [wx]0, [wx]1
+ **	ret
+ */
+ 
+ unsigned long test_rorl (unsigned long a, uint32_t r)
+ {
+   return __rorl (a, r);
+ }
+ 
+ /*
+ ** test_rorll:
+ **	ror	x0, x0, x1
+ **	ret
+ */
+ 
+ uint64_t test_rorll (uint64_t a, uint32_t r)
+ {
+   return __rorll (a, r);
+ }
+ 
+ /*
+ ** test_revsh:
+ **	rev16	w0, w0
+ **	ret
+ */
+ 
+ int16_t test_revsh (int16_t a)
+ {
+   return __revsh (a);
+ }
+ 
+ uint32_t *g32;
+ unsigned long *gul;
+ uint64_t *g64;
+ unsigned int *gui;
+ int16_t *g16;
+ 
+ /*
+ ** test_clz_mem:
+ **	...
+ **	clz	w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_clz_mem (uint32_t *a)
+ {
+   *gui = __clz (*a);
+ }
+ 
+ /*
+ ** test_clzl_mem:
+ **	...
+ **	clz	[wx][0-9]+, [wx][0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_clzl_mem (unsigned long *a)
+ {
+   *gui = __clzl (*a);
+ }
+ 
+ /*
+ ** test_clzll_mem:
+ **	...
+ **	clz	x[0-9]+, x[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_clzll_mem (uint64_t *a)
+ {
+   *gui = __clzll (*a);
+ }
+ 
+ /*
+ ** test_cls_mem:
+ **	...
+ **	cls	w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_cls_mem (uint32_t *a)
+ {
+   *gui = __cls (*a);
+ }
+ 
+ /*
+ ** test_clsl_mem:
+ **	...
+ **	cls	[wx][0-9]+, [wx][0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_clsl_mem (unsigned long *a)
+ {
+   *gui = __clsl (*a);
+ }
+ 
+ /*
+ ** test_clsll_mem:
+ **	...
+ **	cls	x[0-9]+, x[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_clsll_mem (uint64_t *a)
+ {
+   *gui = __clsll (*a);
+ }
+ 
+ /*
+ ** test_rbit_mem:
+ **	...
+ **	rbit	w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rbit_mem (uint32_t *a)
+ {
+   *g32 = __rbit (*a);
+ }
+ 
+ /*
+ ** test_rbitl_mem:
+ **	...
+ **	rbit	[wx][0-9]+, [wx][0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rbitl_mem (unsigned long *a)
+ {
+   *gul = __rbitl (*a);
+ }
+ 
+ /*
+ ** test_rbitll_mem:
+ **	...
+ **	rbit	x[0-9]+, x[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rbitll_mem (uint64_t *a)
+ {
+   *g64 = __rbitll (*a);
+ }
+ 
+ /*
+ ** test_rev_mem:
+ **	...
+ **	rev	w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rev_mem (uint32_t *a)
+ {
+   *g32 = __rev (*a);
+ }
+ 
+ /*
+ ** test_revl_mem:
+ **	...
+ **	rev	[wx][0-9]+, [wx][0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_revl_mem (unsigned long *a)
+ {
+   *gul = __revl (*a);
+ }
+ 
+ /*
+ ** test_revll_mem:
+ **	...
+ **	rev	x[0-9]+, x[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_revll_mem (uint64_t *a)
+ {
+   *g64 = __revll (*a);
+ }
+ 
+ /*
+ ** test_rev16_mem:
+ **	...
+ **	rev16	w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rev16_mem (uint32_t *a)
+ {
+   *g32 = __rev16 (*a);
+ }
+ 
+ /*
+ ** test_rev16l_mem:
+ **	...
+ **	rev16	[wx][0-9]+, [wx][0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rev16l_mem (unsigned long *a)
+ {
+   *gul = __rev16l (*a);
+ }
+ 
+ /*
+ ** test_rev16ll_mem:
+ **	...
+ **	rev16	x[0-9]+, x[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rev16ll_mem (uint64_t *a)
+ {
+   *g64 = __rev16ll (*a);
+ }
+ 
+ /*
+ ** test_ror_mem:
+ **	...
+ **	ror	w[0-9]+, w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_ror_mem (uint32_t *a, uint32_t *r)
+ {
+   *g32 = __ror (*a, *r);
+ }
+ 
+ /*
+ ** test_rorl_mem:
+ **	...
+ **	ror	[wx][0-9]+, [wx][0-9]+, [wx][0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rorl_mem (unsigned long *a, uint32_t *r)
+ {
+   *gul = __rorl (*a, *r);
+ }
+ 
+ /*
+ ** test_rorll_mem:
+ **	...
+ **	ror	x[0-9]+, x[0-9]+, x[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_rorll_mem (uint64_t *a, uint32_t *r)
+ {
+   *g64 = __rorll (*a, *r);
+ }
+ 
+ /*
+ ** test_revsh_mem:
+ **	...
+ **	rev16	w[0-9]+, w[0-9]+
+ **	...
+ **	ret
+ */
+ 
+ void test_revsh_mem (int16_t *a)
+ {
+   *g16 = __revsh (*a);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/ampere1-no_ldp_combine.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/ampere1-no_ldp_combine.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/ampere1-no_ldp_combine.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/ampere1-no_ldp_combine.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-options "-O3 -mtune=ampere1" } */
+ 
+ long
+ foo (long a[])
+ {
+   return a[0] + a[1];
+ }
+ 
+ /* We should see two ldrs instead of one ldp. */
+ /* { dg-final { scan-assembler {\tldr\t} } } */
+ /* { dg-final { scan-assembler-not {\tldp\t} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,86 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps" } */
+ 
+ #define ALIGN 16
+ //#define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, f16, f16p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 12 { xfail *-*-* } } } */
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} "" { target *-*-* } 47 } f1 */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} "" { target *-*-* } 48 } f2 */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} "" { target *-*-* } 49 } f4 */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} "" { target *-*-* } 50 } f8 */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 53 }  fp */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Bitfield call argument in registers.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} ""  { target *-*-* } 60 } g1 */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} ""  { target *-*-* } 61 } g2 */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} ""  { target *-*-* } 62 } g4 */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} ""  { target *-*-* } 63 } g8 */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 66 }  gp */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 67 } g1p */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 68 } g2p */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 69 } g4p */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 70 } g8p */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} "" { target *-*-* } 74 } f1_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} "" { target *-*-* } 75 } f2_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} "" { target *-*-* } 76 } f4_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} "" { target *-*-* } 77 } f8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 80 }  fp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* Bitfield call argument in stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} ""  { target *-*-* } 87 } g1_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} ""  { target *-*-* } 88 } g2_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} ""  { target *-*-* } 89 } g4_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} ""  { target *-*-* } 90 } g8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 93 }  gp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} "" { target *-*-* } 101 } f1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} "" { target *-*-* } 102 } f2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} "" { target *-*-* } 103 } f4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} "" { target *-*-* } 104 } f8_stdarg */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 107 }  fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} ""  { target *-*-* } 114 } g1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} ""  { target *-*-* } 115 } g2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} ""  { target *-*-* } 116 } g4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} ""  { target *-*-* } 117 } g8_stdarg */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 120 }  gp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 121 } g1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 122 } g2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 123 } g4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 124 } g8p_stdarg */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,87 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps" } */
+ 
+ #define ALIGN 16
+ #define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, f16, f16p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 12 { xfail *-*-* } } } */
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} "" { target *-*-* } 47 } f1 */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} "" { target *-*-* } 48 } f2 */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} "" { target *-*-* } 49 } f4 */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} "" { target *-*-* } 50 } f8 */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 53-57 (fp, f1p, f2p,
+    f4p, f8p) (because the argument fits in a single register).  Should not
+    warn, but aarch64_function_arg_boundary would need to take the argument size
+    into account as well as whether it's passed via registers or the stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 53 }  fp */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Bitfield call argument in registers.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} ""  { target *-*-* } 60 } g1 */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} ""  { target *-*-* } 61 } g2 */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} ""  { target *-*-* } 62 } g4 */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} ""  { target *-*-* } 63 } g8 */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 66-70 (gp, g1p, g2p,
+    g4p, g8p), no warning expected.  */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} "" { target *-*-* } 74 } f1_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} "" { target *-*-* } 75 } f2_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} "" { target *-*-* } 76 } f4_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} "" { target *-*-* } 77 } f8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 80 }  fp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* Bitfield call argument in stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} ""  { target *-*-* } 87 } g1_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} ""  { target *-*-* } 88 } g2_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} ""  { target *-*-* } 89 } g4_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} ""  { target *-*-* } 90 } g8_stack */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 93 }  gp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} "" { target *-*-* } 101 } f1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} "" { target *-*-* } 102 } f2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} "" { target *-*-* } 103 } f4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} "" { target *-*-* } 104 } f8_stdarg */
+ 
+ /* Parameter passing for these should not have changed in GCC 9.1 (PR 105549).
+    Fortunately we warn. Note the discrepancy with lines 120-124 below: we warn
+    in the callee, but not in the caller.  */
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1} "" { target *-*-* } 107 }  fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* { dg-message {parameter passing for argument of type 'struct S1' changed in GCC 9.1} ""  { target *-*-* } 114 } g1_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2' changed in GCC 9.1} ""  { target *-*-* } 115 } g2_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4' changed in GCC 9.1} ""  { target *-*-* } 116 } g4_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8' changed in GCC 9.1} ""  { target *-*-* } 117 } g8_stdarg */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 120-124 (gp_stdarg
+    g1p_stdarg, g2p_stdarg, g4p_stdarg, g8p_stdarg), no warning expected.  */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,119 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps" } */
+ 
+ #define ALIGN 32
+ //#define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ 
+ /* In f1, f2, f4, f8, f16 (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[x1\\\]" 10 } } */
+ 
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* In f16p (and stdarg version):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 2 { xfail *-*-* } } } */
+ 
+ /* In f1_stack, f2_stack, f4_stack, f8_stack, f16_stack, f8p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx\[0-9\]+, \\\[sp, 8\\\]" 6 { xfail *-*-* } } } */
+ 
+ /* In fp_stack, f1p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrb\tw0, \\\[sp, 8\\\]" 2 { xfail *-*-* } } } */
+ 
+ /* In f2p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrh\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f4p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f16p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[sp, 16\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 47-51 (f1, f2, f4, f8, f16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 53-57 (fp, f1p, f2p,
+    f4p, f8p) because the argument fits in a single register.  Should not warn,
+    but aarch64_function_arg_boundary would need to take the argument size into
+    account as well as whether it's passed via registers or the stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}  "" { target *-*-* } 53 } fp */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning since GCC 11 (was OK with GCC 9).  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { xfail *-*-* } 58 } f16p */
+ 
+ 
+ /* Bitfield call argument in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 60-64 (g1, g2, g4, g8, g16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 66-70 (gp, g1p, g2p,
+    g4p, g8p), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { xfail *-*-* } 71 } g16p */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 74-78 (f1_stack,
+    f2_stack, f4_stack, f8_stack, f16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* Changed in GCC 9.1.  */
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}  "" { target *-*-* } 80 } fp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 85 (f16p_stack) because
+    the overall alignment is >= 16.  No warning expected.  */
+ 
+ 
+ /* Bitfield call argument in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 87-91 (g1_stack,
+    g2_stack, g4_stack, g8_stack, g16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}  "" { target *-*-* } 93 } gp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* No change in parameter passing in GCC 9.1 for line 98 (g16p_stack).  No
+    warning expected.  */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 101-105 (f1_stdarg,
+    f2_stdarg, f4_stdarg, f8_stdarg, f16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}   "" { target *-*-* } 107 } fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1}  "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1}  "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1}  "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1}  "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 112 (f16p_stdarg).
+    Should not warn.  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { target *-*-* } 112 } f16p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 114-118 (g1_stdarg,
+    g2_stdarg, g4_stdarg, g8_stdarg, g16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 120-124 (gp_stdarg,
+    g1p_stdarg, g2p_stdarg, g4p_stdarg, g8p_stdarg), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { xfail *-*-* } 125 } g16p_stdarg */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,119 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps" } */
+ 
+ #define ALIGN 32
+ #define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, f16 (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[x1\\\]" 10 } } */
+ 
+ /* In fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 10 { xfail *-*-* } } } */
+ 
+ /* In f16p (and stdarg version):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 2 { xfail *-*-* } } } */
+ 
+ /* In f1_stack, f2_stack, f4_stack, f8_stack, f16_stack, f8p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx\[0-9\]+, \\\[sp, 8\\\]" 6 { xfail *-*-* } } } */
+ 
+ /* In fp_stack, f1p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrb\tw0, \\\[sp, 8\\\]" 2 { xfail *-*-* } } } */
+ 
+ /* In f2p_stack:  */
+ /* { dg-final { scan-assembler-times "ldrh\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f4p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tw0, \\\[sp, 8\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* In f16p_stack:  */
+ /* { dg-final { scan-assembler-times "ldr\tx0, \\\[sp, 16\\\]" 1 { xfail *-*-* } } } */
+ 
+ /* Bitfield parameter in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 47-51 (f1, f2, f4, f8, f16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 53-57 (fp, f1p, f2p,
+    f4p, f8p) because the argument fits in a single register.  Should not warn,
+    but aarch64_function_arg_boundary would need to take the argument size into
+    account as well as whether it's passed via registers or the stack.  */
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}  "" { target *-*-* } 53 } fp */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 54 } f1p */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 55 } f2p */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 56 } f4p */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 57 } f8p */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning since GCC 11 (was OK with GCC 9).  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { xfail *-*-* } 58 } f16p */
+ 
+ 
+ /* Bitfield call argument in registers.  */
+ /* No change in parameter passing in GCC 9.1 for lines 60-64 (g1, g2, g4, g8, g16)
+    because the overall alignment is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 66-70 (gp, g1p, g2p,
+    g4p, g8p), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { xfail *-*-* } 71 } g16p */
+ 
+ 
+ /* Bitfield parameter in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 74-78 (f1_stack,
+    f2_stack, f4_stack, f8_stack, f16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}  "" { target *-*-* } 80 } fp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 81 } f1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 82 } f2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 83 } f4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 84 } f8p_stack */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 85 (f16p_stack) because
+    the overall alignment is >= 16.  No warning expected.  */
+ 
+ /* Bitfield call argument in stack.  */
+ /* No change in parameter passing in GCC 9.1 for lines 87-91 (g1_stack,
+    g2_stack, g4_stack, g8_stack, g16_stack) because the overall alignment is >
+    16.  No warning expected.  */
+ 
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}  "" { target *-*-* } 93 } gp_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1} "" { target *-*-* } 94 } g1p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1} "" { target *-*-* } 95 } g2p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1} "" { target *-*-* } 96 } g4p_stack */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1} "" { target *-*-* } 97 } g8p_stack */
+ 
+ 
+ /* No change in parameter passing in GCC 9.1 for line 98 (g16p_stack).  No
+    warning expected.  */
+ 
+ 
+ /* Bitfield parameter in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 101-105 (f1_stdarg,
+    f2_stdarg, f4_stdarg, f8_stdarg, f16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* Parameter passing for these should not have changed in GCC 9.1 (PR 105549).
+    Fortunately we warn. Note the discrepancy with lines 120-124 below: we warn
+    in the callee, but not in the caller.  */
+ /* { dg-message {parameter passing for argument of type 'struct Sp' changed in GCC 9.1}   "" { target *-*-* } 107 } fp_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S1p' changed in GCC 9.1}  "" { target *-*-* } 108 } f1p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S2p' changed in GCC 9.1}  "" { target *-*-* } 109 } f2p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S4p' changed in GCC 9.1}  "" { target *-*-* } 110 } f4p_stdarg */
+ /* { dg-message {parameter passing for argument of type 'struct S8p' changed in GCC 9.1}  "" { target *-*-* } 111 } f8p_stdarg */
+ 
+ /* No change in parameter passing in GCC 9.1 for line 112 (f16p_stdarg).
+    Should not warn.  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { target *-*-* } 112 } f16p_stdarg */
+ 
+ /* Bitfield call argument in stdarg.  */
+ /* No change in parameter passing in GCC 9.1 for lines 114-118 (g1_stdarg,
+    g2_stdarg, g4_stdarg, g8_stdarg, g16_stdarg) because the overall alignment
+    is > 16.  No warning expected.  */
+ 
+ /* No change in parameter passing in GCC 9.1 for lines 120-124 (gp_stdarg,
+    g1p_stdarg, g2p_stdarg, g4p_stdarg, g8p_stdarg), no warning expected.  */
+ 
+ /* Changed in GCC 9.1, but we fail to emit a warning.  */
+ /* { dg-message {parameter passing for argument of type 'struct S16p' changed in GCC 9.1} "" { xfail *-*-* } 125 } g16p_stdarg */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -save-temps" } */
+ 
+ #define ALIGN 8
+ #define EXTRA
+ 
+ #include "bitfield-abi-warning.h"
+ 
+ /* In f1, f2, f4, f8, fp, f1p, f2p, f4p, f8p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w1, 1" 18 } } */
+ 
+ /* In f16, f16p (and stdarg versions):  */
+ /* { dg-final { scan-assembler-times "and\tw0, w2, 1" 4 } } */
+ 
+ /* In f1, f2, f4, f8, f16, fp, f1p, f2p, f4p, f8p, f16p stack versions:  */
+ /* { dg-final { scan-assembler-times "and\tw0, w0, 1" 11 } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,125 ----
+ #include <stdarg.h>
+ 
+ typedef unsigned long long ull __attribute__((aligned(ALIGN)));
+ 
+ #ifndef EXTRA
+ #define EXTRA unsigned long long x;
+ #endif
+ 
+ struct S1  { __attribute__((aligned(1))) ull i : 1; EXTRA };
+ struct S2  { __attribute__((aligned(2))) ull i : 1; EXTRA };
+ struct S4  { __attribute__((aligned(4))) ull i : 1; EXTRA };
+ struct S8  { __attribute__((aligned(8))) ull i : 1; EXTRA };
+ struct S16 { __attribute__((aligned(16))) ull i : 1; EXTRA };
+ 
+ struct Sp   { ull i : 1; EXTRA }__attribute__((packed));
+ struct S1p  { __attribute__((packed, aligned(1))) ull i : 1; EXTRA };
+ struct S2p  { __attribute__((packed, aligned(2))) ull i : 1; EXTRA };
+ struct S4p  { __attribute__((packed, aligned(4))) ull i : 1; EXTRA };
+ struct S8p  { __attribute__((packed, aligned(8))) ull i : 1; EXTRA };
+ struct S16p { __attribute__((packed, aligned(16))) ull i : 1; EXTRA };
+ 
+ /* Bitfield in registers.  */
+ #define PARAMS(xx) int a0, struct S##xx s, ull a1
+ /* Bitfield passed by the stack.  */
+ #define PARAMS_STACK(xx) int a0, ull a1, ull a2, ull a3, ull a4, ull a5, ull a6, ull a7, ull a8, struct S##xx t
+ /* Bitfield passed via stdarg.  */
+ #define PARAMS_STDARG(xx) int a0, ...
+ 
+ #define CODE(xx)				\
+   return s.i;
+ 
+ #define CODE_STACK(xx)				\
+   return t.i;
+ 
+ #define CODE_STDARG(xx)				\
+   va_list ap;					\
+   struct S##xx arg;				\
+   __builtin_va_start(ap,a0);			\
+   arg = __builtin_va_arg(ap, struct S##xx);	\
+   return arg.i;
+ 
+ #define ARGS(xx) x, (struct S##xx) { x }, x
+ #define ARGS_STACK(xx) x, x, x, x, x, x, x, x, x, (struct S##xx) { x }
+ #define ARGS_STDARG(xx) x, (struct S##xx) { x }
+ 
+ /* Bitfield in registers.  */
+ int __attribute__ ((noipa)) f1 (PARAMS(1))  { CODE(1) }
+ int __attribute__ ((noipa)) f2 (PARAMS(2))  { CODE(2) }
+ int __attribute__ ((noipa)) f4 (PARAMS(4))  { CODE(4) }
+ int __attribute__ ((noipa)) f8 (PARAMS(8))  { CODE(8) }
+ int __attribute__ ((noipa)) f16(PARAMS(16)) { CODE(16) }
+ 
+ int __attribute__ ((noipa)) fp  (PARAMS(p))   { CODE(p) }
+ int __attribute__ ((noipa)) f1p (PARAMS(1p))  { CODE(1p) }
+ int __attribute__ ((noipa)) f2p (PARAMS(2p))  { CODE(2p) }
+ int __attribute__ ((noipa)) f4p (PARAMS(4p))  { CODE(4p) }
+ int __attribute__ ((noipa)) f8p (PARAMS(8p))  { CODE(8p) }
+ int __attribute__ ((noipa)) f16p(PARAMS(16p)) { CODE(16p) }
+ 
+ int g1 (int x) { return f1 (ARGS(1)); }
+ int g2 (int x) { return f2 (ARGS(2)); }
+ int g4 (int x) { return f4 (ARGS(4)); }
+ int g8 (int x) { return f8 (ARGS(8)); }
+ int g16(int x) { return f16 (ARGS(16)); }
+ 
+ int gp  (int x) { return fp   (ARGS(p)); }
+ int g1p (int x) { return f1p  (ARGS(1p)); }
+ int g2p (int x) { return f2p  (ARGS(2p)); }
+ int g4p (int x) { return f4p  (ARGS(4p)); }
+ int g8p (int x) { return f8p  (ARGS(8p)); }
+ int g16p(int x) { return f16p (ARGS(16p)); }
+ 
+ /* Bitfield in the stack.  */
+ int __attribute__ ((noipa)) f1_stack (PARAMS_STACK(1))  { CODE_STACK(1) }
+ int __attribute__ ((noipa)) f2_stack (PARAMS_STACK(2))  { CODE_STACK(2) }
+ int __attribute__ ((noipa)) f4_stack (PARAMS_STACK(4))  { CODE_STACK(4) }
+ int __attribute__ ((noipa)) f8_stack (PARAMS_STACK(8))  { CODE_STACK(8) }
+ int __attribute__ ((noipa)) f16_stack(PARAMS_STACK(16)) { CODE_STACK(16) }
+ 
+ int __attribute__ ((noipa)) fp_stack  (PARAMS_STACK(p))   { CODE_STACK(p) }
+ int __attribute__ ((noipa)) f1p_stack (PARAMS_STACK(1p))  { CODE_STACK(1p) }
+ int __attribute__ ((noipa)) f2p_stack (PARAMS_STACK(2p))  { CODE_STACK(2p) }
+ int __attribute__ ((noipa)) f4p_stack (PARAMS_STACK(4p))  { CODE_STACK(4p) }
+ int __attribute__ ((noipa)) f8p_stack (PARAMS_STACK(8p))  { CODE_STACK(8p) }
+ int __attribute__ ((noipa)) f16p_stack(PARAMS_STACK(16p)) { CODE_STACK(16p) }
+ 
+ int g1_stack (int x) { return f1_stack (ARGS_STACK(1)); }
+ int g2_stack (int x) { return f2_stack (ARGS_STACK(2)); }
+ int g4_stack (int x) { return f4_stack (ARGS_STACK(4)); }
+ int g8_stack (int x) { return f8_stack (ARGS_STACK(8)); }
+ int g16_stack(int x) { return f16_stack (ARGS_STACK(16)); }
+ 
+ int gp_stack  (int x) { return fp_stack (ARGS_STACK(p)); }
+ int g1p_stack (int x) { return f1p_stack (ARGS_STACK(1p)); }
+ int g2p_stack (int x) { return f2p_stack (ARGS_STACK(2p)); }
+ int g4p_stack (int x) { return f4p_stack (ARGS_STACK(4p)); }
+ int g8p_stack (int x) { return f8p_stack (ARGS_STACK(8p)); }
+ int g16p_stack(int x) { return f16p_stack (ARGS_STACK(16p)); }
+ 
+ /* Bitfield  via stdarg.  */
+ int __attribute__ ((noipa)) f1_stdarg (PARAMS_STDARG(1))  { CODE_STDARG(1) }
+ int __attribute__ ((noipa)) f2_stdarg (PARAMS_STDARG(2))  { CODE_STDARG(2) }
+ int __attribute__ ((noipa)) f4_stdarg (PARAMS_STDARG(4))  { CODE_STDARG(4) }
+ int __attribute__ ((noipa)) f8_stdarg (PARAMS_STDARG(8))  { CODE_STDARG(8) }
+ int __attribute__ ((noipa)) f16_stdarg(PARAMS_STDARG(16)) { CODE_STDARG(16) }
+ 
+ int __attribute__ ((noipa)) fp_stdarg  (PARAMS_STDARG(p))   { CODE_STDARG(p) }
+ int __attribute__ ((noipa)) f1p_stdarg (PARAMS_STDARG(1p))  { CODE_STDARG(1p) }
+ int __attribute__ ((noipa)) f2p_stdarg (PARAMS_STDARG(2p))  { CODE_STDARG(2p) }
+ int __attribute__ ((noipa)) f4p_stdarg (PARAMS_STDARG(4p))  { CODE_STDARG(4p) }
+ int __attribute__ ((noipa)) f8p_stdarg (PARAMS_STDARG(8p))  { CODE_STDARG(8p) }
+ int __attribute__ ((noipa)) f16p_stdarg(PARAMS_STDARG(16p)) { CODE_STDARG(16p) }
+ 
+ int g1_stdarg (int x) { return f1_stdarg (ARGS_STDARG(1)); }
+ int g2_stdarg (int x) { return f2_stdarg (ARGS_STDARG(2)); }
+ int g4_stdarg (int x) { return f4_stdarg (ARGS_STDARG(4)); }
+ int g8_stdarg (int x) { return f8_stdarg (ARGS_STDARG(8)); }
+ int g16_stdarg(int x) { return f16_stdarg (ARGS_STDARG(16)); }
+ 
+ int gp_stdarg  (int x) { return fp_stdarg (ARGS_STDARG(p)); }
+ int g1p_stdarg (int x) { return f1p_stdarg (ARGS_STDARG(1p)); }
+ int g2p_stdarg (int x) { return f2p_stdarg (ARGS_STDARG(2p)); }
+ int g4p_stdarg (int x) { return f4p_stdarg (ARGS_STDARG(4p)); }
+ int g8p_stdarg (int x) { return f8p_stdarg (ARGS_STDARG(8p)); }
+ int g16p_stdarg(int x) { return f16p_stdarg (ARGS_STDARG(16p)); }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/cpunative/info_18 gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/cpunative/info_18
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/cpunative/info_18	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/cpunative/info_18	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ processor	: 0
+ BogoMIPS	: 2000.00
+ Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp flagm2 frint i8mm bf16 rng ecv
+ CPU implementer	: 0xc0
+ CPU architecture: 8
+ CPU variant	: 0x0
+ CPU part	: 0xac3
+ CPU revision	: 0
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */
+ /* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpunative/info_18" } */
+ /* { dg-additional-options "-mcpu=native" } */
+ 
+ int main()
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler {\.arch armv8.6-a\+crc\+fp16\+aes\+sha3\+rng} } } */
+ 
+ /* Test one where the boundary of buffer size would overwrite the last
+    character read when stitching the fgets-calls together.  With the
+    test data provided, this would truncate the 'sha512' into 'ha512'
+    (dropping the 'sha3' feature). */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr104921-1.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr104921-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr104921-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr104921-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O2 -march=armv8.2-a+bf16 -std=gnu99 -save-temps" }  */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "pr104921.x"
+ 
+ /*
+ **foo:
+ **	mov	v([0-9]|1[0-5])\.8b, v16\.8b
+ **	bfmlalb	v0\.4s, v1\.8h, v([0-9]|1[0-5])\.h\[0\]
+ **	ret
+ */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr104921-2.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr104921-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr104921-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr104921-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do assemble } */
+ /* { dg-add-options arm_v8_2a_bf16_neon }  */
+ /* { dg-additional-options "-O2 -std=gnu99" }  */
+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
+ 
+ #include "pr104921.x"
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr104921.x gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr104921.x
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr104921.x	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr104921.x	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ #include <arm_neon.h>
+ 
+ float32x4_t
+ foo(float32x4_t x, bfloat16x8_t a)
+ {
+   register bfloat16x4_t b asm ("v16");
+   asm volatile ("" : "=w"(b));
+   return vbfmlalbq_lane_f32 (x, a, b, 0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr108589.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr108589.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr108589.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr108589.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-Os -O2 -mtune=ampere1a -fno-split-wide-types" } */
+ 
+ int i;
+ __int128 j;
+ short s;
+ 
+ void
+ foo (void)
+ {
+   j -= i;
+   int l = i - __builtin_sub_overflow_p (0, 61680, s);
+   j -= __builtin_mul_overflow_p (i, l, 0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr92424-2.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr92424-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr92424-2.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr92424-2.c	Mon May 29 08:46:31 2023
*************** __attribute__ ((target("branch-protectio
*** 9,12 ****
  f10_bti ()
  {
  }
! /* { dg-final { scan-assembler "f10_bti:\n\thint\t34 // bti c\n.*\.LPFE1:\n\tnop\n.*\tret\n" } } */
--- 9,12 ----
  f10_bti ()
  {
  }
! /* { dg-final { scan-assembler "hint\t34 // bti c\n.*\.LPFE1:\n\tnop\n.*\tret\n" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr92424-3.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr92424-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr92424-3.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr92424-3.c	Mon May 29 08:46:31 2023
*************** __attribute__ ((target("branch-protectio
*** 9,12 ****
  f10_pac ()
  {
  }
! /* { dg-final { scan-assembler "f10_pac:\n\thint\t34 // bti c\n.*\.LPFE1:\n\tnop\n.*\thint\t25 // paciasp\n.*\thint\t29 // autiasp\n.*\tret\n" } } */
--- 9,12 ----
  f10_pac ()
  {
  }
! /* { dg-final { scan-assembler "hint\t34 // bti c\n.*\.LPFE1:\n\tnop\n.*\thint\t25 // paciasp\n.*\thint\t29 // autiasp\n.*\tret\n" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr98776.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr98776.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pr98776.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr98776.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do "compile" } */
+ /* { dg-options "-O1 -fpatchable-function-entry=1 -fasynchronous-unwind-tables" } */
+ 
+ /* Test the placement of the .LPFE1 label.  */
+ 
+ void
+ foo (void)
+ {
+ }
+ 
+ /* { dg-final { scan-assembler "\t\.cfi_startproc\n.*\.LPFE1:\n\tnop\n\tret\n" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c	Mon May 29 08:46:31 2023
***************
*** 248,253 ****
--- 248,273 ----
  #error "__ARM_FEATURE_CRC32 is not defined but should be!"
  #endif
  
+ #pragma GCC target ("arch=armv8.2-a")
+ #ifdef __ARM_FEATURE_RCPC
+ #error "__ARM_FEATURE_RCPC is defined but should not be!"
+ #endif
+ 
+ #pragma GCC target ("arch=armv8.2-a+rcpc")
+ #ifndef __ARM_FEATURE_RCPC
+ #error "__ARM_FEATURE_RCPC is not defined but should be!"
+ #endif
+ 
+ #pragma GCC target ("+norcpc")
+ #ifdef __ARM_FEATURE_RCPC
+ #error "__ARM_FEATURE_RCPC is defined but should not be!"
+ #endif
+ 
+ #pragma GCC target ("arch=armv8.3-a")
+ #ifndef __ARM_FEATURE_RCPC
+ #error "__ARM_FEATURE_RCPC is not defined but should be!"
+ #endif
+ 
  int
  foo (int a)
  {
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c	Mon May 29 08:46:31 2023
*************** test2 (svbool_t pg, svbool_t x, svbool_t
*** 18,22 ****
    return svptest_any (pg, res);
  }
  
! /* { dg-final { scan-assembler-times {\tbrkas\tp[0-9]+\.b, p[0-9]+/m,} 2 } } */
! /* { dg-final { scan-assembler-not {\tbrka\t} } } */
--- 18,23 ----
    return svptest_any (pg, res);
  }
  
! /* { dg-final { scan-assembler-times {\tbrka\t} 2 } } */
! /* { dg-final { scan-assembler-times {\tptest\t} 2 } } */
! /* { dg-final { scan-assembler-not {\tbrkas\t} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c	Mon May 29 08:46:31 2023
*************** test2 (svbool_t pg, svbool_t x, svbool_t
*** 18,22 ****
    return svptest_any (pg, res);
  }
  
! /* { dg-final { scan-assembler-times {\tbrkbs\tp[0-9]+\.b, p[0-9]+/m,} 2 } } */
! /* { dg-final { scan-assembler-not {\tbrkb\t} } } */
--- 18,23 ----
    return svptest_any (pg, res);
  }
  
! /* { dg-final { scan-assembler-times {\tbrkb\t} 2 } } */
! /* { dg-final { scan-assembler-times {\tptest\t} 2 } } */
! /* { dg-final { scan-assembler-not {\tbrkbs\t} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c	Mon May 29 08:46:31 2023
*************** test2 (svbool_t pg, svbool_t x, svbool_t
*** 18,22 ****
    return svptest_any (pg, res);
  }
  
! /* { dg-final { scan-assembler-times {\tbrkns\t} 2 } } */
! /* { dg-final { scan-assembler-not {\tbrkn\t} } } */
--- 18,23 ----
    return svptest_any (pg, res);
  }
  
! /* { dg-final { scan-assembler-times {\tbrkn\t} 2 } } */
! /* { dg-final { scan-assembler-times {\tptest\t} 2 } } */
! /* { dg-final { scan-assembler-not {\tbrkns\t} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ #include <arm_sve.h>
+ 
+ void
+ test1 (svbool_t pg, svbool_t x, svbool_t y, int *any, svbool_t *ptr)
+ {
+   svbool_t res = svbrkn_z (pg, x, y);
+   *any = svptest_any (svptrue_b8 (), res);
+   *ptr = res;
+ }
+ 
+ int
+ test2 (svbool_t pg, svbool_t x, svbool_t y, int *any)
+ {
+   svbool_t res = svbrkn_z (pg, x, y);
+   return svptest_any (svptrue_b8 (), res);
+ }
+ 
+ /* { dg-final { scan-assembler-times {\tbrkns\t} 2 } } */
+ /* { dg-final { scan-assembler-not {\tbrkn\t} } } */
+ /* { dg-final { scan-assembler-not {\tptest\t} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/pr109176.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pr109176.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sve/pr109176.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pr109176.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,12 ----
+ /* PR tree-optimization/109176 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O2" } */
+ 
+ #include <arm_sve.h>
+ 
+ svbool_t
+ foo (svint8_t a, svint8_t b, svbool_t c)
+ {
+   svbool_t d = svcmplt_s8 (svptrue_pat_b8 (SV_ALL), a, b);
+   return svsel_b (d, c, d);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8-a+nolse -O2 -fno-ipa-icf -moutline-atomics" } */
+ 
+ #include "sync-comp-swap.x"
+ 
+ /* { dg-final { scan-assembler-times "bl.*__aarch64_cas4_sync" 1 } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8-a+nolse -O2 -moutline-atomics" } */
+ 
+ #include "sync-op-acquire.x"
+ 
+ /* { dg-final { scan-assembler-times "bl.*__aarch64_swp4_sync" 1 } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8-a+nolse -O2 -moutline-atomics" } */
+ 
+ #include "sync-op-full.x"
+ 
+ /* { dg-final { scan-assembler-times "bl.*__aarch64_ldadd4_sync" 1 } } */
+ /* { dg-final { scan-assembler-times "bl.*__aarch64_ldclr4_sync" 1 } } */
+ /* { dg-final { scan-assembler-times "bl.*__aarch64_ldeor4_sync" 1 } } */
+ /* { dg-final { scan-assembler-times "bl.*__aarch64_ldset4_sync" 1 } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c	Mon May 29 08:46:31 2023
*************** bar (void)
*** 24,27 ****
      }
  }
  
! /* { dg-final { scan-assembler-not "bl.*__aarch64_cas2_acq_rel" } } */
--- 24,27 ----
      }
  }
  
! /* { dg-final { scan-assembler-not "bl.*__aarch64_cas2_sync" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c	Thu Apr 21 07:58:54 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c	Mon May 29 08:46:31 2023
*************** bar (void)
*** 24,27 ****
      }
  }
  
! /* { dg-final { scan-assembler-times "bl.*__aarch64_cas2_acq_rel" 1 } } */
--- 24,27 ----
      }
  }
  
! /* { dg-final { scan-assembler-times "bl.*__aarch64_cas2_sync" 1 } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/alpha/pr105209.c gcc-11.4.0/gcc/testsuite/gcc.target/alpha/pr105209.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/alpha/pr105209.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/alpha/pr105209.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftrapv -mcpu=ev4" } */
+ 
+ typedef struct tnode_t {
+         struct tnode_t *tn_left, *tn_right;
+         int v_quad;
+ } tnode_t;
+ 
+ int constant_addr(const tnode_t *, long *);
+ int constant_addr(const tnode_t *tn, long *offsp)
+ {
+         long offs1 = 0, offs2 = 0;
+ 
+         if (tn->v_quad > 0) {
+                 offs1 = tn->v_quad;
+                 return 0;
+         } else if (tn->v_quad > -1) {
+                 offs2 = tn->tn_right->v_quad;
+                 if (!constant_addr(tn->tn_left, &offs1))
+                         return 0;
+         } else {
+                 return 0;
+         }
+         *offsp = offs1 + offs2;
+         return 1;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c gcc-11.4.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,300 ----
+ /* { dg-require-effective-target arm_v8_1m_mve_ok } */
+ /* { dg-add-options arm_v8_1m_mve } */
+ /* { dg-additional-options "-O1" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "arm_mve.h"
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ /*
+ **test:
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test(const uint8_t * in, uint8_t * out, int width)
+ {
+   uint8x16x2_t rg = vld2q(in);
+   uint8x16x2_t gb = vld2q(in + width);
+   vst2q (out, rg);
+   vst2q (out + width, gb);
+ }
+ 
+ /*
+ **test2:
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]!
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]!
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test2(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x2_t rg = vld2q(in);
+   uint8x16x2_t gb = vld2q(in + 32);
+   vst2q (out, rg);
+   vst2q (out + 32, gb);
+ }
+ 
+ /*
+ **test3:
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test3(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x2_t rg = vld2q(in);
+   uint8x16x2_t gb = vld2q(in - 32);
+   vst2q (out, rg);
+   vst2q (out - 32, gb);
+ }
+ 
+ /*
+ **test4:
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test4(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x2_t rg = vld2q(in);
+   uint8x16x2_t gb = vld2q(in + 64);
+   vst2q (out, rg);
+   vst2q (out + 64, gb);
+ }
+ 
+ /*
+ **test5:
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst20.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst21.8	{q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test5(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x2_t rg = vld2q(in);
+   uint8x16x2_t gb = vld2q(in + 42);
+   vst2q (out, rg);
+   vst2q (out + 42, gb);
+ }
+ 
+ /*
+ **test6:
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test6(const uint8_t * in, uint8_t * out, int width)
+ {
+   uint8x16x4_t rg = vld4q(in);
+   uint8x16x4_t gb = vld4q(in + width);
+   vst4q (out, rg);
+   vst4q (out + width, gb);
+ }
+ 
+ /*
+ **test7:
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test7(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x4_t rg = vld4q(in);
+   uint8x16x4_t gb = vld4q(in + 32);
+   vst4q (out, rg);
+   vst4q (out + 32, gb);
+ }
+ 
+ /*
+ **test8:
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]!
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]!
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test8(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x4_t rg = vld4q(in);
+   uint8x16x4_t gb = vld4q(in + 64);
+   vst4q (out, rg);
+   vst4q (out + 64, gb);
+ }
+ 
+ /*
+ **test9:
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test9(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x4_t rg = vld4q(in);
+   uint8x16x4_t gb = vld4q(in - 64);
+   vst4q (out, rg);
+   vst4q (out - 64, gb);
+ }
+ 
+ /*
+ **test10:
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vld40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vld43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ **	vst40.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst41.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst42.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	vst43.8	{q[0-9]+, q[0-9]+, q[0-9]+, q[0-9]+}, \[(?:ip|fp|r[0-9]+)\]
+ **	...
+ */
+ void
+ test10(const uint8_t * in, uint8_t * out)
+ {
+   uint8x16x4_t rg = vld4q(in);
+   uint8x16x4_t gb = vld4q(in + 42);
+   vst4q (out, rg);
+   vst4q (out + 42, gb);
+ }
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ /* { dg-final { scan-assembler-not "__ARM_undef" } } */
\ No newline at end of file
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/arm/pr105312.c gcc-11.4.0/gcc/testsuite/gcc.target/arm/pr105312.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/arm/pr105312.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/arm/pr105312.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target arm_neon_ok } */
+ /* { dg-options "-mcpu=cortex-a15" } */
+ /* { dg-add-options arm_neon } */
+ 
+ typedef float stress_matrix_type_t;
+ typedef unsigned int size_t;
+ static void __attribute__((optimize("-O3"))) stress_matrix_xy_identity(
+  const size_t n,
+  stress_matrix_type_t a[restrict n][n],
+  stress_matrix_type_t b[restrict n][n],
+  stress_matrix_type_t r[restrict n][n])
+ {
+  register size_t i;
+  (void)a;
+  (void)b;
+  for (i = 0; i < n; i++) {
+   register size_t j;
+   for (j = 0; j < n; j++)
+    r[i][j] = (i == j) ? 1.0 : 0.0;
+    return;
+  }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/108881 */
+ /* { dg-do compile } */
+ /* { dg-options "-mavx512bf16 -mno-avx512vl" } */
+ 
+ typedef float __m256 __attribute__((__vector_size__(32)));
+ typedef short __v16hi __attribute__((__vector_size__(32)));
+ __v16hi a;
+ __m256 b, c;
+ 
+ void
+ foo (void)
+ {
+   a = __builtin_ia32_cvtne2ps2bf16_v16hi (b, c);	/* { dg-warning "implicit declaration of function" } */
+ }							/* { dg-error "incompatible types when assigning to type" "" { target *-*-* } .-1 } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/iamcu/asm-support.S gcc-11.4.0/gcc/testsuite/gcc.target/i386/iamcu/asm-support.S
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/iamcu/asm-support.S	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/iamcu/asm-support.S	Mon May 29 08:46:31 2023
*************** iamcu_noprintf:
*** 300,302 ****
--- 300,305 ----
  	.align 4
  .LCiamcu_noprintf1:
  	.long	1132527616
+ #ifdef __linux__
+ 	.section	.note.GNU-stack,"",@progbits
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c	Mon May 29 08:46:31 2023
***************
*** 6,12 ****
  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\]*%xmm0,\[^\\n\\r\]*" } } */
  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\]*%xmm1,\[^\\n\\r\]*16\[^\\n\\r\]*" } } */
  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\]*%xmm2,\[^\\n\\r\]*32\[^\\n\\r\]*" } } */
- /* { dg-final { scan-assembler "(?:movdqa|movaps)\[ \\t\]+\[^\\n\]*%xmm\[4-6\],\[^\\n\\r\]*" } } */
  
  #include <immintrin.h>
  
--- 6,11 ----
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c	Mon May 29 08:46:31 2023
***************
*** 8,14 ****
  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\]*%xmm1,\[^\\n\\r\]*16\[^\\n\\r\]*" } } */
  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\]*%xmm2,\[^\\n\\r\]*32\[^\\n\\r\]*" } } */
  /* { dg-final { scan-assembler "(?:movdqu|movups)\[ \\t\]+\[^\\n\]*%xmm3,\[^\\n\\r\]*48\[^\\n\\r\]*" } } */
- /* { dg-final { scan-assembler "(?:movdqa|movaps)\[ \\t\]+\[^\\n\]*%xmm\[4-6\],\[^\\n\\r\]*" } } */
  
  #include <immintrin.h>
  
--- 8,13 ----
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr104637.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr104637.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr104637.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr104637.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-Og -fno-forward-propagate -mavx -Wno-div-by-zero" } */
+ 
+ typedef short __attribute__((__vector_size__ (64))) U;
+ typedef unsigned long long __attribute__((__vector_size__ (32))) V;
+ typedef long double __attribute__((__vector_size__ (64))) F;
+ 
+ int i;
+ U u;
+ F f;
+ 
+ void
+ foo (char a, char b, _Complex char c, V v)
+ {
+   u = (U) { u[0] / 0, u[1] / 0, u[2] / 0, u[3] / 0, u[4] / 0, u[5] / 0, u[6] / 0, u[7] / 0,
+ 	    u[8] / 0, u[9] / 0, u[10] / 0, u[11] / 0, u[12] / 0, u[13] / 0, u[14] / 0, u[15] / 0,
+ 	    u[16] / 0, u[17] / 0, u[18] / 0, u[19] / 0, u[20] / 0, u[21] / 0, u[22] / 0, u[23] / 0,
+ 	    u[24] / 0, u[25] / 0, u[26] / 0, u[27] / 0, u[28] / 0, u[29] / 0, u[30] / 0, u[31] / 0 };
+   c += i;
+   f = (F) { v[0], v[1], v[2], v[3] };
+   i = (char) (__imag__ c + i);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr105554.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr105554.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr105554.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr105554.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,10 ----
+ /* PR target/105554 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wno-psabi -mno-sse3" } */
+ 
+ typedef long long v4di __attribute__((__vector_size__(32)));
+ 
+ __attribute__((target_clones ("arch=core-avx2", "default"))) void
+ foo (v4di x)
+ {
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr105970.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr105970.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr105970.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr105970.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,6 ----
+ /* PR target/105970 */
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -mgeneral-regs-only -maddress-mode=long" } */
+ 
+ #include "../../gcc.dg/torture/pr68037-1.c"
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr107304.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr107304.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr107304.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr107304.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -march=tigerlake" } */
+ 
+ #include <stdint.h>
+ 
+ typedef union {
+   uint8_t v __attribute__((aligned(256))) __attribute__ ((vector_size(64 * sizeof(uint8_t))));
+   uint8_t i[64] __attribute__((aligned(256)));
+ } stress_vec_u8_64_t;
+ 
+ typedef struct {
+  struct {
+   stress_vec_u8_64_t s;
+   stress_vec_u8_64_t o;
+   stress_vec_u8_64_t mask1;
+   stress_vec_u8_64_t mask2;
+  } u8_64;
+ } stress_vec_data_t;
+ 
+ __attribute__((target_clones("arch=alderlake", "default"))) 
+ void
+ stress_vecshuf_u8_64(stress_vec_data_t *data)
+ {
+   stress_vec_u8_64_t *__restrict s;
+   stress_vec_u8_64_t *__restrict mask1;
+   stress_vec_u8_64_t *__restrict mask2;
+   register int i;
+ 
+   s = &data->u8_64.s;
+   mask1 = &data->u8_64.mask1;
+   mask2 = &data->u8_64.mask2;
+ 
+   for (i = 0; i < 256; i++) {	/* was i < 65536 */
+       stress_vec_u8_64_t tmp;
+ 
+       tmp.v = __builtin_shuffle(s->v, mask1->v);
+       s->v = __builtin_shuffle(tmp.v, mask2->v);
+   }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr107863.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr107863.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr107863.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr107863.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mavx2 -O" } */
+ 
+ typedef char v16qi __attribute__((vector_size(16)));
+ 
+ v16qi foo(v16qi a){
+   return __builtin_ia32_vec_set_v16qi (a, -1, 2);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr109276.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr109276.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr109276.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr109276.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ /* PR target/109276 */
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64" } */
+ /* { dg-additional-options "-mpreferred-stack-boundary=2" { target ia32 } } */
+ 
+ long long a;
+ long double b;
+ 
+ void
+ foo (void)
+ {
+   b += a;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr89261.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr89261.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/pr89261.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr89261.c	Mon May 29 08:46:31 2023
***************
*** 5,10 ****
  typedef double __v2df __attribute__ ((vector_size (16), aligned (1 << 28)));
  
  __v2df foo = { 1.0, 2.0 };
! /* { dg-error {alignment of 'foo' is greater than maximum object file alignment 32768} "" { target *-*-darwin* } .-1 } */
  
  /* { dg-final { scan-assembler "\.align\[ \t]+268435456" { target { ! *-*-darwin* } } } } */
--- 5,11 ----
  typedef double __v2df __attribute__ ((vector_size (16), aligned (1 << 28)));
  
  __v2df foo = { 1.0, 2.0 };
! /* { dg-error {alignment of 'foo' is greater than maximum object file alignment 32768} "" { target { *-*-darwin[89]*  *-*-darwin10* } } .-1 } */
  
  /* { dg-final { scan-assembler "\.align\[ \t]+268435456" { target { ! *-*-darwin* } } } } */
+ /* { dg-final { scan-assembler "\.align\[ \t]+28" { target { *-*-darwin1[1-9]* *-*-darwin2* } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/sse-14.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/sse-14.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/sse-14.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/sse-14.c	Mon May 29 08:46:31 2023
*************** test_3 (_mm_maskz_mul_round_sd, __m128d,
*** 429,435 ****
--- 429,437 ----
  test_3 (_mm512_maskz_mul_round_ps, __m512, __mmask16, __m512, __m512, 9)
  test_3 (_mm_maskz_mul_round_ss, __m128, __mmask8, __m128, __m128, 9)
  test_3 (_mm512_maskz_scalef_round_pd, __m512d, __mmask8, __m512d, __m512d, 9)
+ test_3 (_mm_maskz_scalef_round_sd, __m128d, __mmask8, __m128d, __m128d, 9)
  test_3 (_mm512_maskz_scalef_round_ps, __m512, __mmask16, __m512, __m512, 9)
+ test_3 (_mm_maskz_scalef_round_ss, __m128, __mmask8, __m128, __m128, 9)
  test_3 (_mm512_maskz_shuffle_f32x4, __m512, __mmask16, __m512, __m512, 1)
  test_3 (_mm512_maskz_shuffle_f64x2, __m512d, __mmask8, __m512d, __m512d, 1)
  test_3 (_mm512_maskz_shuffle_i32x4, __m512i, __mmask16, __m512i, __m512i, 1)
*************** test_4 (_mm_mask_mul_round_sd, __m128d,
*** 543,549 ****
--- 545,553 ----
  test_4 (_mm512_mask_mul_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
  test_4 (_mm_mask_mul_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9)
  test_4 (_mm512_mask_scalef_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9)
+ test_4 (_mm_mask_scalef_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9)
  test_4 (_mm512_mask_scalef_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9)
+ test_4 (_mm_mask_scalef_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9)
  test_4 (_mm512_mask_shuffle_f32x4, __m512, __m512, __mmask16, __m512, __m512, 1)
  test_4 (_mm512_mask_shuffle_f64x2, __m512d, __m512d, __mmask8, __m512d, __m512d, 1)
  test_4 (_mm512_mask_shuffle_i32x4, __m512i, __m512i, __mmask16, __m512i, __m512i, 1)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used" } */
  
  void
  foo (void)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used -fno-stack-protector -fno-PIC" } */
  
  void
  foo (void)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c	Mon May 29 08:46:31 2023
*************** foo (int x)
*** 11,21 ****
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r11d" { target { ! ia32 } } } } */
--- 11,21 ----
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[\t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all -march=corei7" } */
  
  void
  foo (void)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all -march=corei7 -msse" } */
  
  void
  foo (void)
*************** foo (void)
*** 7,21 ****
  }
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm0, %xmm0" } } */
! /* { dg-final { scan-assembler-times "movaps\[ \t\]+%xmm0, %xmm\[0-9\]+" 7 { target { ia32 } } } } */
! /* { dg-final { scan-assembler-times "movaps\[ \t\]+%xmm0, %xmm\[0-9\]+" 15 { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
--- 7,34 ----
  }
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm0, %xmm0" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm1, %xmm1" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm2, %xmm2" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm3, %xmm3" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm4, %xmm4" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm5, %xmm5" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm6, %xmm6" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm7, %xmm7" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm8, %xmm8" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm9, %xmm9" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm10, %xmm10" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm11, %xmm11" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm12, %xmm12" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm13, %xmm13" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm14, %xmm14" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm15, %xmm15" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c	Mon May 29 08:46:31 2023
*************** foo (void)
*** 9,19 ****
  /* { dg-final { scan-assembler-times "vzeroall" 1 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
--- 9,19 ----
  /* { dg-final { scan-assembler-times "vzeroall" 1 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("used")));
  
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip -fno-stack-protector -fno-PIC" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("used")));
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("skip")));
  
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all -fno-stack-protector -fno-PIC" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("skip")));
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used" } */
  
  int
  foo (int x)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used -fno-stack-protector" } */
  
  int
  foo (int x)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used -march=corei7" } */
  
  float
  foo (float z, float y, float x)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used -march=corei7 -fno-stack-protector -fno-PIC" } */
  
  float
  foo (float z, float y, float x)
*************** foo (float z, float y, float x)
*** 9,13 ****
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm1, %xmm1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm1, %xmm2" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-not "xorl\[ \t\]+%" } } */
--- 9,13 ----
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm1, %xmm1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm2, %xmm2" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-not "xorl\[ \t\]+%" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used -march=corei7" } */
  
  float
  foo (float z, float y, float x)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used -march=corei7 -fno-stack-protector -fno-PIC" } */
  
  float
  foo (float z, float y, float x)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c	Mon May 29 08:46:31 2023
*************** foo (void)
*** 9,19 ****
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
--- 9,19 ----
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all -march=corei7" } */
  
  float
  foo (float z, float y, float x)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all -march=corei7 -msse" } */
  
  float
  foo (float z, float y, float x)
*************** foo (float z, float y, float x)
*** 8,23 ****
  }
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm0, %xmm0" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm1, %xmm1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-times "movaps\[ \t\]+%xmm0, %xmm\[0-9\]+" 7 { target { ia32 } } } } */
! /* { dg-final { scan-assembler-times "movaps\[ \t\]+%xmm1, %xmm\[0-9\]+" 14 { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
--- 8,35 ----
  }
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm0, %xmm0" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm1, %xmm1" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm2, %xmm2" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm3, %xmm3" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm4, %xmm4" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm5, %xmm5" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm6, %xmm6" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm7, %xmm7" { target { ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm8, %xmm8" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm9, %xmm9" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm10, %xmm10" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm11, %xmm11" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm12, %xmm12" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm13, %xmm13" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm14, %xmm14" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm15, %xmm15" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip -march=corei7" } */
  
  __attribute__ ((zero_call_used_regs("used")))
  float
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip -march=corei7 -fno-stack-protector -fno-PIC" } */
  
  __attribute__ ((zero_call_used_regs("used")))
  float
*************** foo (float z, float y, float x)
*** 10,14 ****
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm1, %xmm1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm1, %xmm2" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-not "xorl\[ \t\]+%" } } */
--- 10,14 ----
  
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm1, %xmm1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm2, %xmm2" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-not "xorl\[ \t\]+%" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c	Mon May 29 08:46:31 2023
*************** foo (void)
*** 11,21 ****
  /* { dg-final { scan-assembler-times "fstp\[ \t\]+%st\\(0\\)" 8 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
--- 11,21 ----
  /* { dg-final { scan-assembler-times "fstp\[ \t\]+%st\\(0\\)" 8 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c	Mon May 29 08:46:31 2023
*************** foo (void)
*** 11,29 ****
  /* { dg-final { scan-assembler-times "fstp\[ \t\]+%st\\(0\\)" 8 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "kxorw\[ \t\]+%k0, %k0, %k0" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k2" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k3" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k4" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k5" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k6" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kmovw\[ \t\]+%k0, %k7" { target { ! ia32 } } } } */
--- 11,29 ----
  /* { dg-final { scan-assembler-times "fstp\[ \t\]+%st\\(0\\)" 8 } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "kxorw\[ \t\]+%k0, %k0, %k0" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k1, %k1, %k1" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k2, %k2, %k2" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k3, %k3, %k3" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k4, %k4, %k4" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k5, %k5, %k5" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k6, %k6, %k6" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "kxorw\[ \t\]+%k7, %k7, %k7" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c	Mon May 29 08:46:31 2023
*************** foo (int x)
*** 8,23 ****
  }
  
  /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%xmm0, %xmm0" } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm1" } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm2" } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm3" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm4" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm5" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm6" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movaps\[ \t\]+%xmm0, %xmm7" { target { ! ia32 } } } } */
--- 8,23 ----
  }
  
  /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm0, %xmm0" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm1, %xmm1" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm2, %xmm2" } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm3, %xmm3" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm4, %xmm4" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm5, %xmm5" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm6, %xmm6" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "\[a-z\]*xor\[a-z\]*\[ \t\]+%xmm7, %xmm7" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c	Mon May 29 08:46:31 2023
*************** foo (int x)
*** 8,15 ****
  }
  
  /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r9d" { target { ! ia32 } } } } */
--- 8,15 ----
  }
  
  /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c	Mon May 29 08:46:31 2023
*************** __v2si ret_mmx (void)
*** 10,18 ****
  }
  
  /* { dg-final { scan-assembler "pxor\[ \t\]+%mm1, %mm1" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm2" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm3" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm4" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm5" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm6" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm7" } } */
--- 10,18 ----
  }
  
  /* { dg-final { scan-assembler "pxor\[ \t\]+%mm1, %mm1" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm2, %mm2" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm3, %mm3" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm4, %mm4" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm5, %mm5" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm6, %mm6" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm7, %mm7" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip" } */
  
  void
  foo (void)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip -fno-stack-protector" } */
  
  void
  foo (void)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c	Mon May 29 08:46:31 2023
*************** __v2si ret_mmx (void)
*** 10,14 ****
  }
  
  /* { dg-final { scan-assembler "pxor\[ \t\]+%mm1, %mm1" } } */
! /* { dg-final { scan-assembler "movq\[ \t\]+%mm1, %mm2" } } */
! /* { dg-final { scan-assembler-not "movq\[ \t\]+%mm1, %mm\[34567\]" } } */
--- 10,14 ----
  }
  
  /* { dg-final { scan-assembler "pxor\[ \t\]+%mm1, %mm1" } } */
! /* { dg-final { scan-assembler "pxor\[ \t\]+%mm2, %mm2" } } */
! /* { dg-final { scan-assembler-not "pxor\[ \t\]+%mm\[34567\], %mm\[34567\]" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("used-gpr")));
  
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip -fno-stack-protector -fno-PIC" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("used-gpr")));
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c	Mon May 29 08:46:31 2023
*************** foo (void)
*** 10,20 ****
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%eax, %r11d" { target { ! ia32 } } } } */
--- 10,20 ----
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%eax, %eax" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all-gpr" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("skip")));
  
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=all-gpr -fno-stack-protector" } */
  
  extern void foo (void) __attribute__ ((zero_call_used_regs("skip")));
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used-gpr" } */
  
  int
  foo (int x)
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=used-gpr -fno-stack-protector" } */
  
  int
  foo (int x)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c	Mon May 29 08:46:31 2023
*************** foo (int x)
*** 10,19 ****
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %ecx" } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]+%edx, %r11d" { target { ! ia32 } } } } */
--- 10,19 ----
  /* { dg-final { scan-assembler-not "vzeroall" } } */
  /* { dg-final { scan-assembler-not "%xmm" } } */
  /* { dg-final { scan-assembler "xorl\[ \t\]+%edx, %edx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%ecx, %ecx" } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%esi, %esi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%edi, %edi" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r8d, %r8d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r9d, %r9d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r10d, %r10d" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xorl\[ \t\]+%r11d, %r11d" { target { ! ia32 } } } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip" } */
  
  extern int foo (int) __attribute__ ((zero_call_used_regs("used-gpr")));
  
--- 1,5 ----
  /* { dg-do compile { target *-*-linux* } } */
! /* { dg-options "-O2 -fzero-call-used-regs=skip -fno-stack-protector" } */
  
  extern int foo (int) __attribute__ ((zero_call_used_regs("used-gpr")));
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/bswap-brw.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/bswap-brw.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/bswap-brw.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/bswap-brw.c	Mon May 29 08:46:31 2023
*************** bswap_int_dbl (unsigned int a)
*** 17,22 ****
    /* Force the value to be loaded into a vector register.  */
    __asm__ (" # %x0" : "+wa" (b));
  
!   /* { dg-final { scan-assembler {\mxxbrw\M} } } */
    return (double) __builtin_bswap32 (b);
  }
--- 17,22 ----
    /* Force the value to be loaded into a vector register.  */
    __asm__ (" # %x0" : "+wa" (b));
  
!   /* { dg-final { scan-assembler {\mxxbrw\M} {xfail {has_arch_pwr10 && {! has_arch_ppc64}}} } } */
    return (double) __builtin_bswap32 (b);
  }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/divic3-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/divic3-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/divic3-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/divic3-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ppc_float128_sw } */
+ /* { dg-options "-O2 -mabi=ieeelongdouble -Wno-psabi" } */
+ 
+ /* When GCC is configured with an older library that does not support IEEE
+    128-bit, it issues a warning if you change the long double type. We use
+    -Wno-psabi to silence this warning.  Since this is a code generation test,
+    it does not matter if the library has full IEEE 128-bit support.  */
+ 
+ /* Check that complex divide generates the right call for __ibm128 when long
+    double is IEEE 128-bit floating point.  */
+ 
+ typedef _Complex long double c_ibm128_t __attribute__((mode(__IC__)));
+ 
+ void
+ divide (c_ibm128_t *p, c_ibm128_t *q, c_ibm128_t *r)
+ {
+   *p = *q / *r;
+ }
+ 
+ /* { dg-final { scan-assembler {\mbl .*__divtc3\M} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/divic3-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/divic3-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/divic3-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/divic3-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ppc_float128_sw } */
+ /* { dg-require-effective-target longdouble128 } */
+ /* { dg-options "-O2 -mabi=ibmlongdouble -Wno-psabi" } */
+ 
+ /* When GCC is configured with an older library that does not support IEEE
+    128-bit, it issues a warning if you change the long double type. We use
+    -Wno-psabi to silence this warning.  Since this is a code generation test,
+    it does not matter if the library has full IEEE 128-bit support.
+ 
+    We also need to require that the default long double is 128-bits, otherwise
+    the TC/TF modes might not be available.  */
+ 
+ /* Check that complex divide generates the right call for __ibm128 when long
+    double is IBM 128-bit floating point.  */
+ 
+ typedef _Complex long double c_ibm128_t __attribute__((mode(__TC__)));
+ 
+ void
+ divide (c_ibm128_t *p, c_ibm128_t *q, c_ibm128_t *r)
+ {
+   *p = *q / *r;
+ }
+ 
+ /* { dg-final { scan-assembler {\mbl .*__divtc3\M} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/fusion.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/fusion.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/fusion.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/fusion.c	Mon May 29 08:46:31 2023
***************
*** 1,7 ****
  /* { dg-do compile { target { powerpc*-*-* } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power7 -mtune=power8 -O3 -dp" } */
  
  #define LARGE 0x12345
  
--- 1,7 ----
  /* { dg-do compile { target { powerpc*-*-* } } } */
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power7 -mdejagnu-tune=power8 -O3 -dp" } */
  
  #define LARGE 0x12345
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/fusion2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/fusion2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/fusion2.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/fusion2.c	Mon May 29 08:46:31 2023
***************
*** 2,8 ****
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-skip-if "" { powerpc*le-*-* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power7 -mtune=power8 -O3" } */
  
  vector double fusion_vector (vector double *p) { return p[2]; }
  
--- 2,8 ----
  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
  /* { dg-skip-if "" { powerpc*le-*-* } } */
  /* { dg-require-effective-target powerpc_p8vector_ok } */
! /* { dg-options "-mdejagnu-cpu=power7 -mdejagnu-tune=power8 -O3" } */
  
  vector double fusion_vector (vector double *p) { return p[2]; }
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do run } */
! /* { dg-options "-mcpu=power10 -save-temps" } */
  /* { dg-require-effective-target power10_hw } */
  
  /* Check that the expected 128-bit instructions are generated if the processor
--- 1,5 ----
  /* { dg-do run } */
! /* { dg-options "-mdejagnu-cpu=power10 -save-temps" } */
  /* { dg-require-effective-target power10_hw } */
  
  /* Check that the expected 128-bit instructions are generated if the processor
*************** int main ()
*** 90,96 ****
--- 90,100 ----
    vec_arg1_di[0] = 1000;
    vec_arg1_di[1] = -123456;
  
+ #ifdef __BIG_ENDIAN__
+   expected_result = -123456;
+ #else
    expected_result = 1000;
+ #endif
  
    vec_result = vec_signextq (vec_arg1_di);
  
*************** int main ()
*** 109,115 ****
--- 113,123 ----
    vec_arg1_di[0] = -123456;
    vec_arg1_di[1] = 1000;
  
+ #ifdef __BIG_ENDIAN__
+   expected_result = 1000;
+ #else
    expected_result = -123456;
+ #endif
  
    vec_result = vec_signextq (vec_arg1_di);
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/mulic3-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mulic3-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/mulic3-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mulic3-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ppc_float128_sw } */
+ /* { dg-options "-O2 -mabi=ieeelongdouble -Wno-psabi" } */
+ 
+ /* When GCC is configured with an older library that does not support IEEE
+    128-bit, it issues a warning if you change the long double type. We use
+    -Wno-psabi to silence this warning.  Since this is a code generation test,
+    it does not matter if the library has full IEEE 128-bit support.  */
+ 
+ /* Check that complex multiply generates the right call for __ibm128 when long
+    double is IEEE 128-bit floating point.  */
+ 
+ typedef _Complex long double c_ibm128_t __attribute__((mode(__IC__)));
+ 
+ void
+ multiply (c_ibm128_t *p, c_ibm128_t *q, c_ibm128_t *r)
+ {
+   *p = *q * *r;
+ }
+ 
+ /* { dg-final { scan-assembler {\mbl .*__multc3\M} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/mulic3-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mulic3-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/mulic3-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mulic3-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target ppc_float128_sw } */
+ /* { dg-require-effective-target longdouble128 } */
+ /* { dg-options "-O2 -mabi=ibmlongdouble -Wno-psabi" } */
+ 
+ /* When GCC is configured with an older library that does not support IEEE
+    128-bit, it issues a warning if you change the long double type. We use
+    -Wno-psabi to silence this warning.  Since this is a code generation test,
+    it does not matter if the library has full IEEE 128-bit support.
+ 
+    We also need to require that the default long double is 128-bits, otherwise
+    the TC/TF modes might not be available.  */
+ 
+ /* Check that complex multiply generates the right call for __ibm128 when long
+    double is IBM 128-bit floating point.  */
+ 
+ typedef _Complex long double c_ibm128_t __attribute__((mode(__TC__)));
+ 
+ void
+ multiply (c_ibm128_t *p, c_ibm128_t *q, c_ibm128_t *r)
+ {
+   *p = *q * *r;
+ }
+ 
+ /* { dg-final { scan-assembler {\mbl .*__multc3\M} } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c	Mon May 29 08:46:31 2023
*************** int main ()
*** 34,40 ****
--- 34,45 ----
    /* test sign extend byte to word */
    vec_arg_qi = (vector signed char) {1, 2, 3, 4, 5, 6, 7, 8,
  				     -1, -2, -3, -4, -5, -6, -7, -8};
+ 
+ #ifdef __BIG_ENDIAN__
+   vec_expected_wi = (vector signed int) {4, 8, -4, -8};
+ #else
    vec_expected_wi = (vector signed int) {1, 5, -1, -5};
+ #endif
  
    vec_result_wi = vec_signexti (vec_arg_qi);
  
*************** int main ()
*** 54,60 ****
--- 59,70 ----
    /* test sign extend byte to double */
    vec_arg_qi = (vector signed char){1, 2, 3, 4, 5, 6, 7, 8,
  				    -1, -2, -3, -4, -5, -6, -7, -8};
+ 
+ #ifdef __BIG_ENDIAN__
+   vec_expected_di = (vector signed long long int){8, -8};
+ #else
    vec_expected_di = (vector signed long long int){1, -1};
+ #endif
  
    vec_result_di = vec_signextll(vec_arg_qi);
  
*************** int main ()
*** 72,78 ****
--- 82,93 ----
  
    /* test sign extend short to word */
    vec_arg_hi = (vector signed short int){1, 2, 3, 4, -1, -2, -3, -4};
+ 
+ #ifdef __BIG_ENDIAN__
+   vec_expected_wi = (vector signed int){2, 4, -2, -4};
+ #else
    vec_expected_wi = (vector signed int){1, 3, -1, -3};
+ #endif
  
    vec_result_wi = vec_signexti(vec_arg_hi);
  
*************** int main ()
*** 90,96 ****
--- 105,116 ----
  
    /* test sign extend short to double word */
    vec_arg_hi = (vector signed short int ){1, 3, 5, 7,  -1, -3, -5, -7};
+ 
+ #ifdef __BIG_ENDIAN__
+   vec_expected_di = (vector signed long long int){7, -7};
+ #else
    vec_expected_di = (vector signed long long int){1, -1};
+ #endif
  
    vec_result_di = vec_signextll(vec_arg_hi);
  
*************** int main ()
*** 108,114 ****
--- 128,139 ----
  
    /* test sign extend word to double word */
    vec_arg_wi = (vector signed int ){1, 3, -1, -3};
+ 
+ #ifdef __BIG_ENDIAN__
+   vec_expected_di = (vector signed long long int){3, -3};
+ #else
    vec_expected_di = (vector signed long long int){1, -1};
+ #endif
  
    vec_result_di = vec_signextll(vec_arg_wi);
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && powerpc_p9vector_ok } } } */
! /* { dg-options "-mdejagnu-cpu=power9 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vparity.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vparity.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/p9-vparity.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p9-vparity.c	Mon May 29 08:46:31 2023
*************** parity_ti_4u (__uint128_t a)
*** 105,107 ****
--- 105,108 ----
  /* { dg-final { scan-assembler "vprtybd" } } */
  /* { dg-final { scan-assembler "vprtybq" } } */
  /* { dg-final { scan-assembler "vprtybw" } } */
+ /* { dg-final { scan-assembler-not "vpopcntb" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr102059-4.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr102059-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr102059-4.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr102059-4.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mdejagnu-cpu=power10" } */
+ /* { dg-require-effective-target power10_ok } */
+ 
+ /* Verify that power10 can explicity include functions compiled for power8.
+    The issue was -mcpu=power8 enables -mpower8-fusion, but -mcpu=power9 or
+    -mcpu=power10 do not set power8-fusion by default.  Thus when doing this
+    compilation, they would get an error that the inline function failed in its
+    inlining due to having incompatible options.  */
+ 
+ static inline int __attribute__ ((always_inline,target("cpu=power8,no-htm")))
+ foo (int *b)
+ {
+   *b += 10;
+   return *b;
+ }
+ 
+ int
+ bar (int *a)
+ {
+   *a = foo (a);
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr103353.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr103353.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr103353.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr103353.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-require-effective-target powerpc_altivec_ok } */
+ /* If the default cpu type is power10 or later, MMA is enabled by default.
+    To keep the test point available all the time, this case specifies
+    -mdejagnu-cpu=power6 to make it be tested without MMA.  */
+ /* { dg-options "-maltivec -mdejagnu-cpu=power6" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on MMA
+    requirement since they could be fragile and are not test points
+    of this case.  */
+ /* { dg-excess-errors "pr103353" } */
+ 
+ void
+ foo (__vector_pair *dst, double *x)
+ {
+   dst[0] = __builtin_vsx_lxvp (0, (__vector_pair *)(void *)x);
+ }
+ 
+ void
+ bar (__vector_pair *src, double *x)
+ {
+   __builtin_vsx_stxvp (src[0], 0, (__vector_pair *)(void *)x);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr105041.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr105041.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr105041.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr105041.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-options "-mdejagnu-cpu=power4 -O2 -fcompare-debug -frename-registers" } */
+ 
+ double m;
+ int n;
+ 
+ unsigned int
+ foo (unsigned int x, int y)
+ {
+   long long int a = y, b = !a;
+   int c = 0;
+ 
+   if (b != x)
+     while ((int) m == a)
+       {
+         c = a;
+         a = 0;
+       }
+ 
+   n = b = y;
+ 
+   return x + c;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106016.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106016.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106016.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106016.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/106016 */
+ /* { dg-require-effective-target power10_ok } */
+ /* { dg-options "-O2 -mdejagnu-cpu=power10" } */
+ 
+ /* Make sure we do not ICE on the following test case.  */
+ 
+ extern void bar (__vector_quad *);
+ 
+ void
+ foo (__vector_quad *a, __vector_quad *b)
+ {
+   __vector_quad arr[2] = {*a, *b};
+   bar (&arr[0]);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106017.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106017.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106017.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106017.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/106017 */
+ /* { dg-options "-O1 -mdejagnu-cpu=power10" } */
+ /* { dg-require-effective-target power10_ok } */
+ 
+ /* Make sure we do not flag any errors on the following test cases.  */
+ 
+ void takeacc(__vector_quad *);
+ void
+ foo (void)
+ {
+   __vector_quad arr[4];
+   takeacc (arr);
+ }
+ 
+ unsigned char *
+ bar (__vector_quad *a)
+ {
+   return (unsigned char *)a;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106091.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106091.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106091.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106091.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-options "-O -fnon-call-exceptions -fno-tree-dce -fno-tree-forwprop -w" } */
+ 
+ /* Verify there is no ICE.  */
+ 
+ typedef short __attribute__ ((__vector_size__ (64))) V;
+ V v, w;
+ 
+ inline V foo (V a, V b);
+ 
+ V
+ foo (V a, V b)
+ {
+   b &= v < b;
+   return (V){foo (b, w)[3], (V){}[3]};
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_quad is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr106736-1" } */
+ 
+ extern void bar (__vector_quad *);
+ 
+ void
+ foo (__vector_quad *a, __vector_quad *b)
+ {
+   __vector_quad arr[2] = {*a, *b};
+   bar (&arr[0]);
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_pair is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr106736-2" } */
+ 
+ void
+ foo (__vector_pair *a, __vector_pair *b)
+ {
+   *a = *b;
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-3.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-3.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-3.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_quad is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr106736-3" } */
+ 
+ __vector_quad ga;
+ void
+ foo (__vector_quad *a)
+ {
+   ga = *a;
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-4.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-4.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-4.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_quad is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr106736-4" } */
+ 
+ __vector_quad ga;
+ __vector_quad gb;
+ void
+ foo ()
+ {
+   gb = ga;
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-5.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-5.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr106736-5.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr106736-5.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_pair is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr106736-5" } */
+ 
+ __vector_pair ga;
+ void
+ foo (__vector_pair *a)
+ {
+   *a = ga;
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_quad is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr108272-1" } */
+ 
+ void
+ foo (void)
+ {
+   __vector_quad acc;
+   asm("#..." : "=d"(acc));
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_pair is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr108272-2" } */
+ 
+ void
+ foo (void)
+ {
+   __vector_pair acc;
+   asm("#..." :: "d"(acc));
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-3.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-3.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-3.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_quad is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr108272-3" } */
+ 
+ void
+ foo (void)
+ {
+   volatile __vector_quad acc;
+   asm("#..." : "=d"(acc));
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-4.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108272-4.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108272-4.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-require-effective-target powerpc_p9modulo_ok } */
+ /* If the default cpu type is power10 or later, type __vector_pair is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  */
+ /* { dg-options "-mdejagnu-cpu=power9" } */
+ 
+ /* Verify there is no ICE and don't check the error messages on unsupported
+    type since they could be fragile and are not test points of this case.  */
+ 
+ /* { dg-excess-errors "pr108272-4" } */
+ 
+ typedef __vector_pair vpair_t;
+ void
+ foo (void)
+ {
+   vpair_t acc;
+   asm("#..." : "=d"(acc));
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108348-1.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108348-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108348-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108348-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-require-effective-target powerpc_altivec_ok } */
+ /* If the default cpu type is power10 or later, type __vector_quad is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  This needs -mabi=no-altivec
+    to do the copying for pass-by-reference function argument on 32 bit
+    environment.  */
+ /* { dg-options "-mdejagnu-cpu=power9 -mabi=no-altivec" } */
+ 
+ /* Verify there is no ICE on 32 bit and don't check the error messages
+    on unsupported type since they could be fragile and are not test
+    points of this case.  */
+ 
+ /* { dg-excess-errors "pr108348-1" } */
+ 
+ extern void bar (__vector_quad v);
+ 
+ void
+ foo (void)
+ {
+   __vector_quad v;
+   bar (v);
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108348-2.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108348-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108348-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108348-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-require-effective-target powerpc_altivec_ok } */
+ /* If the default cpu type is power10 or later, type __vector_pair is
+    supported.  To keep the test point available all the time, this case
+    specifies -mdejagnu-cpu=power9 here.  This needs -mabi=no-altivec
+    to do the copying for pass-by-reference function argument on 32 bit
+    environment.  */
+ /* { dg-options "-mdejagnu-cpu=power9 -mabi=no-altivec" } */
+ 
+ /* Verify there is no ICE on 32 bit and don't check the error messages
+    on unsupported type since they could be fragile and are not test
+    points of this case.  */
+ 
+ /* { dg-excess-errors "pr108348-2" } */
+ 
+ extern void bar (__vector_pair v);
+ 
+ void
+ foo (void)
+ {
+   __vector_pair v;
+   bar (v);
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108699.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108699.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr108699.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr108699.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-run } */
+ /* { dg-options "-O2 -ftree-vectorize -fno-vect-cost-model" } */
+ 
+ #define N 16
+ 
+ unsigned long long vals[N];
+ unsigned int res[N];
+ unsigned int expects[N] = {0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ 
+ unsigned long long inputs[N]
+   = {0x0000000000000000ULL, 0x0000000000000001ULL, 0x8000000000000000ULL,
+      0x0000000000000002ULL, 0x4000000000000000ULL, 0x0000000100000000ULL,
+      0x0000000080000000ULL, 0xa5a5a5a5a5a5a5a5ULL, 0x5a5a5a5a5a5a5a5aULL,
+      0xcafecafe00000000ULL, 0x0000cafecafe0000ULL, 0x00000000cafecafeULL,
+      0x8070600000000000ULL, 0xffffffffffffffffULL};
+ 
+ __attribute__ ((noipa)) void
+ init ()
+ {
+   for (int i = 0; i < N; i++)
+     vals[i] = inputs[i];
+ }
+ 
+ __attribute__ ((noipa)) void
+ do_parity ()
+ {
+   for (int i = 0; i < N; i++)
+     res[i] = __builtin_parityll (vals[i]);
+ }
+ 
+ int
+ main (void)
+ {
+   init ();
+   do_parity ();
+   for (int i = 0; i < N; i++)
+     if (res[i] != expects[i])
+       __builtin_abort();
+ 
+   return 0;
+ }
+ 
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr70243.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr70243.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr70243.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr70243.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile */
+ /* { dg-require-effective-target powerpc_vsx_ok } */
+ /* { dg-options "-O2 -mvsx" } */
+ 
+ /* PR 70423, Make sure we don't generate vmaddfp or vnmsubfp.  These
+    instructions have different rounding modes than the VSX instructions
+    xvmaddsp and xvnmsubsp.  These tests are written where the 3 inputs and
+    target are all separate registers.  Because vmaddfp and vnmsubfp are no
+    longer generated the compiler will have to generate an xsmaddsp or xsnmsubsp
+    instruction followed by a move operation.  */
+ 
+ #include <altivec.h>
+ 
+ vector float
+ do_add1 (vector float dummy, vector float a, vector float b, vector float c)
+ {
+   return (a * b) + c;
+ }
+ 
+ vector float
+ do_nsub1 (vector float dummy, vector float a, vector float b, vector float c)
+ {
+   return -((a * b) - c);
+ }
+ 
+ vector float
+ do_add2 (vector float dummy, vector float a, vector float b, vector float c)
+ {
+   return vec_madd (a, b, c);
+ }
+ 
+ vector float
+ do_nsub2 (vector float dummy, vector float a, vector float b, vector float c)
+ {
+   return vec_nmsub (a, b, c);
+ }
+ 
+ /* { dg-final { scan-assembler     {\mxvmadd[am]sp\M}  } } */
+ /* { dg-final { scan-assembler     {\mxvnmsub[am]sp\M} } } */
+ /* { dg-final { scan-assembler-not {\mvmaddfp\M}       } } */
+ /* { dg-final { scan-assembler-not {\mvnmsubfp\M}      } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr96072.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr96072.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr96072.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr96072.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-options "-O2" } */
+ 
+ /* This used to ICE with the SYSV ABI (PR96072).  */
+ 
+ void
+ he (int jn)
+ {
+   {
+     int bh[jn];
+     if (jn != 0)
+       goto wa;
+   }
+ wa:;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr96373.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr96373.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/pr96373.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr96373.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do run { target { powerpc*-*-linux* } } } */
+ /* { dg-options "-O2 -ftree-vectorize" } */
+ 
+ /* Verify it can run successfully, especially on Power10 and later.   */
+ 
+ #define _GNU_SOURCE
+ #include <fenv.h>
+ 
+ __attribute__ ((noipa)) void
+ div (double *d, double *s, int n)
+ {
+   for (; n; n--, d++, s++)
+     *d = *d / *s;
+ }
+ 
+ int main()
+ {
+   double d[] = {1,2,3,4,5,6,7,8,9,10,11};
+   double s[] = {11,10,9,8,7,6,5,4,3,2,1};
+ 
+   feenableexcept(FE_DIVBYZERO|FE_INVALID);
+   div(d, s, 11);
+ 
+   int i;
+   for (i = 0; i < 11; i++)
+     __builtin_printf(" %f", d[i]);
+ 
+   __builtin_printf("\n");
+ 
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/test_mffsl.c gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/test_mffsl.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/powerpc/test_mffsl.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/test_mffsl.c	Mon May 29 08:46:31 2023
***************
*** 1,5 ****
  /* { dg-do run { target { powerpc*-*-* } } } */
! /* { dg-options "-O2 -std=c99" } */
  
  #ifdef DEBUG
  #include <stdio.h>
--- 1,6 ----
  /* { dg-do run { target { powerpc*-*-* } } } */
! /* { dg-options "-O2 -std=c99 -mdejagnu-cpu=power9" } */
! /* { dg-require-effective-target p9vector_hw } */
  
  #ifdef DEBUG
  #include <stdio.h>
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355-1.c gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile } */
+ /* { dg-options "-foptimize-sibling-calls" } */
+ /* { dg-final { scan-assembler {brasl\t%r\d+,bar4} } } */
+ /* { dg-final { scan-assembler {brasl\t%r\d+,bar8} } } */
+ 
+ /* Parameter E is passed in GPR 6 which is call-saved which prohibits
+    sibling call optimization.  This must hold true also if the mode of the
+    parameter is BLKmode.  */
+ 
+ /* 4 byte */
+ 
+ typedef struct
+ {
+   char x;
+   char y[3];
+ } t4;
+ 
+ extern t4 e4;
+ 
+ extern void bar4 (int a, int b, int c, int d, t4 e4);
+ 
+ void foo4 (int a, int b, int c, int d)
+ {
+   bar4 (a, b, c, d, e4);
+ }
+ 
+ /* 8 byte */
+ 
+ typedef struct
+ {
+   short x;
+   char y[6];
+ } t8;
+ 
+ extern t8 e8;
+ 
+ extern void bar8 (int a, int b, int c, int d, t8 e8);
+ 
+ void foo8 (int a, int b, int c, int d)
+ {
+   bar8 (a, b, c, d, e8);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355-2.c gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target { s390-*-* } } } */
+ /* { dg-options "-foptimize-sibling-calls -mzarch" } */
+ /* { dg-final { scan-assembler {brasl\t%r\d+,bar} } } */
+ 
+ /* This tests function s390_call_saved_register_used where
+    GET_CODE (parm_rtx) == PARALLEL holds.  */
+ 
+ #include "pr106355.h"
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355-3.c gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355-3.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355-3.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target { s390-*-* } } } */
+ /* { dg-options "-foptimize-sibling-calls -mesa" } */
+ /* { dg-final { scan-assembler {brasl\t%r\d+,bar} } } */
+ 
+ /* This tests function s390_call_saved_register_used where
+    REG_P (parm_rtx) and nregs == 2 holds.  */
+ 
+ #include "pr106355.h"
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355.h gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355.h
*** gcc-11.3.0/gcc/testsuite/gcc.target/s390/pr106355.h	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/s390/pr106355.h	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,18 ----
+ /* For the S/390 ABI parameter D is passed in GPR 5 and 6 and the latter is
+    call-saved which prohibits sibling call optimization.  This must hold true
+    also if the mode of the parameter is BLKmode.  */
+ 
+ typedef struct
+ {
+   short x;
+   char y[6];
+ } t;
+ 
+ extern t d;
+ 
+ extern void bar (int a, int b, int c, t d);
+ 
+ void foo (int a, int b, int c)
+ {
+   bar (a, b, c, d);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20220510-1.c gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20220510-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20220510-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20220510-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,31 ----
+ /* PR target/105292 */
+ /* Reported by Koakuma <koachan+gccbugs@protonmail.com> */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mvis2" } */
+ 
+ extern void get_vbytes_v2 (unsigned);
+ 
+ typedef struct {
+   unsigned ctt_info;
+   unsigned ctt_size;
+ } ctf_type_t;
+ 
+ typedef struct {
+   unsigned short cts_offset;
+   unsigned short cts_bits;
+ } ctf_slice_t;
+ 
+ void flip_types_len (ctf_type_t *t, int bsx1, int bsx2)
+ {
+   const int kind = t->ctt_info;
+ 
+   get_vbytes_v2 (t->ctt_size);
+ 
+   if (kind == 4)
+     {
+       ctf_slice_t *s = (ctf_slice_t *)t;
+       s->cts_offset = __builtin_bswap16(bsx1);
+       s->cts_bits   = __builtin_bswap16(bsx2);
+     }
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-1.c gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-1.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-1.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-1.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/109140 */
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mvis3 -std=c99" } */
+ 
+ #define TYPE unsigned char
+ 
+ struct S { TYPE ub[8]; };
+ 
+ struct S s;
+ 
+ TYPE v;
+ 
+ void foo (void)
+ {
+   for (int i = 0; i < 8; i++)
+     s.ub[i] = s.ub[i] > v;
+ }
+ 
+ /* { dg-final { scan-assembler "fucmpgt8\t%" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-2.c gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-2.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-2.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-2.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/109140 */
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mvis4 -std=c99" } */
+ 
+ #define TYPE char
+ 
+ struct S { TYPE ub[8]; };
+ 
+ struct S s;
+ 
+ TYPE v;
+ 
+ void foo (void)
+ {
+   for (int i = 0; i < 8; i++)
+     s.ub[i] = s.ub[i] > v;
+ }
+ 
+ /* { dg-final { scan-assembler "fpcmpgt8\t%" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-3.c gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-3.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-3.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-3.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/109140 */
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mvis4 -std=c99" } */
+ 
+ #define TYPE unsigned short
+ 
+ struct S { TYPE ub[4]; };
+ 
+ struct S s;
+ 
+ TYPE v;
+ 
+ void foo (void)
+ {
+   for (int i = 0; i < 4; i++)
+     s.ub[i] = s.ub[i] > v;
+ }
+ 
+ /* { dg-final { scan-assembler "fpcmpugt16\t%" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-4.c gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-4.c
*** gcc-11.3.0/gcc/testsuite/gcc.target/sparc/20230328-4.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gcc.target/sparc/20230328-4.c	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/109140 */
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mvis3 -std=c99" } */
+ 
+ #define TYPE short
+ 
+ struct S { TYPE ub[4]; };
+ 
+ struct S s;
+ 
+ TYPE v;
+ 
+ void foo (void)
+ {
+   for (int i = 0; i < 4; i++)
+     s.ub[i] = s.ub[i] > v;
+ }
+ 
+ /* { dg-final { scan-assembler "fcmpgt16\t%" } } */
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
*** gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/asm-support.S	Mon May 29 08:46:31 2023
*************** snapshot_ret:
*** 82,84 ****
--- 82,87 ----
  	.comm	xmm_regs,256,32
  	.comm	x87_regs,128,32
  	.comm   volatile_var,8,8
+ #ifdef __linux__
+ 	.section	.note.GNU-stack,"",@progbits
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
*** gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S	Mon May 29 08:46:31 2023
*************** snapshot_ret:
*** 79,81 ****
--- 79,84 ----
  	.comm	ymm_regs,512,32
  	.comm	x87_regs,128,32
  	.comm   volatile_var,8,8
+ #ifdef __linux__
+ 	.section	.note.GNU-stack,"",@progbits
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
*** gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S	Mon May 29 08:46:31 2023
*************** snapshot_ret:
*** 95,97 ****
--- 95,100 ----
  	.comm	zmm_regs,2048,64
  	.comm	x87_regs,128,32
  	.comm   volatile_var,8,8
+ #ifdef __linux__
+ 	.section	.note.GNU-stack,"",@progbits
+ #endif
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S
*** gcc-11.3.0/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S	Mon May 29 08:46:31 2023
*************** see the files COPYING3 and COPYING.RUNTI
*** 30,35 ****
--- 30,38 ----
  #ifdef __ELF__
  # define FN_TYPE(fn) .type fn,@function
  # define FN_SIZE(fn) .size fn,.-fn
+ # ifdef __linux__
+ 	.section	.note.GNU-stack,"",@progbits
+ # endif
  #else
  # define FN_TYPE(fn)
  # define FN_SIZE(fn)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/Wpadded.d gcc-11.4.0/gcc/testsuite/gdc.dg/Wpadded.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/Wpadded.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/Wpadded.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,4 ----
+ // { dg-do compile }
+ // { dg-options "-Wpadded" }
+ 
+ class EmptyClass { }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108050/mod1.d gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108050/mod1.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108050/mod1.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108050/mod1.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,2 ----
+ module imports.pr108050.mod1;
+ string[] split() { return null; }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108050/mod2.d gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108050/mod2.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108050/mod2.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108050/mod2.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,2 ----
+ module imports.pr108050.mod2;
+ string[] split() { return null; }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108050/package.d gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108050/package.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108050/package.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108050/package.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,2 ----
+ module imports.pr108050;
+ public import imports.pr108050.mod1, imports.pr108050.mod2;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108877a.d gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108877a.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/imports/pr108877a.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr108877a.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,6 ----
+ immutable struct ImmutableS { }
+ const struct ConstS { }
+ immutable class ImmutableC { }
+ const class ConstC { }
+ immutable enum ImmutableE { _ }
+ const enum ConstE { _ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139a.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139a.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139a.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139a.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,36 ----
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106139
+ // { dg-do compile }
+ 
+ alias A = int[4];
+ 
+ static if (__traits(compiles, __vector(A))):
+ 
+ A vector2array(__vector(A) v)
+ {
+     return cast(A)v;
+ }
+ 
+ void vector2array(ref A a, __vector(A) v)
+ {
+     a = cast(A)v;
+ }
+ 
+ __vector(A) array2vector(A a)
+ {
+     return cast(__vector(A)) a;
+ }
+ 
+ void array2vector(ref __vector(A) v, A a)
+ {
+     v = cast(__vector(A))a;
+ }
+ 
+ A vector2array_array(__vector(A) v)
+ {
+     return v.array;
+ }
+ 
+ void vector2array_array(ref A a, __vector(A) v)
+ {
+     a = v.array;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139b.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139b.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139b.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139b.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,36 ----
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106139
+ // { dg-do compile }
+ 
+ alias A = float[4];
+ 
+ static if (__traits(compiles, __vector(A))):
+ 
+ A vector2array(__vector(A) v)
+ {
+     return cast(A)v;
+ }
+ 
+ void vector2array(ref A a, __vector(A) v)
+ {
+     a = cast(A)v;
+ }
+ 
+ __vector(A) array2vector(A a)
+ {
+     return cast(__vector(A)) a;
+ }
+ 
+ void array2vector(ref __vector(A) v, A a)
+ {
+     v = cast(__vector(A))a;
+ }
+ 
+ A vector2array_array(__vector(A) v)
+ {
+     return v.array;
+ }
+ 
+ void vector2array_array(ref A a, __vector(A) v)
+ {
+     a = v.array;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139c.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139c.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139c.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139c.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,27 ----
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106139
+ // { dg-do compile }
+ 
+ alias V = int[4];
+ alias A = float[4];
+ 
+ static if (__traits(compiles, __vector(V))):
+ 
+ A vector2array(__vector(V) v)
+ {
+     return cast(A)v;
+ }
+ 
+ void vector2array(ref A a, __vector(V) v)
+ {
+     a = cast(A)v;
+ }
+ 
+ __vector(V) array2vector(A a)
+ {
+     return cast(__vector(V)) a;
+ }
+ 
+ void array2vector(ref __vector(V) v, A a)
+ {
+     v = cast(__vector(V))a;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139d.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139d.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr106139d.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr106139d.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,27 ----
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106139
+ // { dg-do compile }
+ 
+ alias V = float[4];
+ alias A = int[4];
+ 
+ static if (__traits(compiles, __vector(V))):
+ 
+ A vector2array(__vector(V) v)
+ {
+     return cast(A)v;
+ }
+ 
+ void vector2array(ref A a, __vector(V) v)
+ {
+     a = cast(A)v;
+ }
+ 
+ __vector(V) array2vector(A a)
+ {
+     return cast(__vector(V)) a;
+ }
+ 
+ void array2vector(ref __vector(V) v, A a)
+ {
+     v = cast(__vector(V))a;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr107592.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr107592.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr107592.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr107592.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107592
+ // { dg-do compile }
+ 
+ void test107592(Things...)(Things things)
+ {
+     label:
+     foreach (thing; things)
+     {
+         continue label;
+     }
+ }
+ 
+ alias a107592 = test107592!(string);
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr108050.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr108050.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr108050.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr108050.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,4 ----
+ // { dg-do compile }
+ // { dg-additional-sources "imports/pr108050/package.d imports/pr108050/mod1.d imports/pr108050/mod2.d" }
+ // { dg-options "-g" }
+ import imports.pr108050 : split;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/pr108877.d gcc-11.4.0/gcc/testsuite/gdc.dg/pr108877.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/pr108877.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/pr108877.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ // { dg-options "-I $srcdir/gdc.dg" }
+ // { dg-do compile }
+ import imports.pr108877a :
+     ImmutableS,
+     ConstS,
+     ImmutableC,
+     ConstC,
+     ImmutableE,
+     ConstE;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/torture/imports/pr109108.d gcc-11.4.0/gcc/testsuite/gdc.dg/torture/imports/pr109108.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/torture/imports/pr109108.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/torture/imports/pr109108.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ module imports.pr109108;
+ private enum int function(ref int)[] funs =
+ [
+     0: (ref idx) => 0,
+     1: (ref idx) => 1,
+ ];
+ 
+ int test109108(I)(I idx)
+ {
+     return funs[idx](idx);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/torture/pr109108.d gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr109108.d
*** gcc-11.3.0/gcc/testsuite/gdc.dg/torture/pr109108.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr109108.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,10 ----
+ // { dg-additional-files "imports/pr109108.d" }
+ // { dg-additional-options "-I[srcdir] -fno-moduleinfo" }
+ // { dg-do link }
+ // { dg-skip-if "needs gcc/config.d" { ! d_runtime } }
+ import imports.pr109108;
+ 
+ extern(C) int main()
+ {
+     return test109108(0);
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.dg/torture/torture.exp gcc-11.4.0/gcc/testsuite/gdc.dg/torture/torture.exp
*** gcc-11.3.0/gcc/testsuite/gdc.dg/torture/torture.exp	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gdc.dg/torture/torture.exp	Mon May 29 08:46:31 2023
***************
*** 19,24 ****
--- 19,33 ----
  # Load support procs.
  load_lib gdc-dg.exp
  
+ # Helper function allows adding tests that use imports/*, but don't compile
+ # the sources in with dg-additional-sources.
+ global testdir
+ set testdir $srcdir/$subdir
+ proc srcdir {} {
+     global testdir
+     return $testdir
+ }
+ 
  # The default option list can be overridden by
  # TORTURE_OPTIONS="{ { list1 } ... { listN } }"
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gdc.test/fail_compilation/ice20264.d gcc-11.4.0/gcc/testsuite/gdc.test/fail_compilation/ice20264.d
*** gcc-11.3.0/gcc/testsuite/gdc.test/fail_compilation/ice20264.d	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gdc.test/fail_compilation/ice20264.d	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ /*
+ DISABLED: freebsd32 linux32 osx32 win32
+ TEST_OUTPUT:
+ ---
+ fail_compilation/ice20264.d(12): Error: `cast(__vector(float[4]))a` is not an lvalue and cannot be modified
+ ---
+ */
+ 
+ void foo(float *a)
+ {
+     alias float4 = __vector(float[4]);
+     cast(float4)(a) = 1.0f;
+ }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100029.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100029.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100029.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100029.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR100029
+ !
+ 
+ program foo_p
+   implicit none
+ 
+   type :: foo_t
+   end type foo_t
+   
+   class(foo_t), allocatable :: pout
+ 
+   call foo_s(pout)
+ 
+ contains
+ 
+   subroutine foo_s(that)
+     class(foo_t), allocatable, intent(out) :: that(..)
+   end subroutine foo_s
+ 
+ end program foo_p
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100040.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100040.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100040.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100040.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR100040
+ !
+ 
+ program foo_p
+   implicit none
+ 
+   integer, parameter :: n = 11
+ 
+   type :: foo_t
+     integer :: i
+   end type foo_t
+   
+   type(foo_t), parameter :: a = foo_t(n)
+   
+   class(foo_t), allocatable :: pout
+ 
+   call foo_s(pout)
+   if(.not.allocated(pout)) stop 1
+   if(pout%i/=n) stop 2
+ 
+ contains
+ 
+   subroutine foo_s(that)
+     class(foo_t), allocatable, intent(out) :: that(..)
+ 
+     select rank(that)
+     rank(0)
+       that = a
+     rank default
+       stop 3
+     end select
+   end subroutine foo_s
+ 
+ end program foo_p
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100097.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100097.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100097.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100097.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,41 ----
+ ! { dg-do run }
+ ! { dg-options "-fdump-tree-original" }
+ !
+ ! Test the fix for PR100097
+ !
+ 
+ program main_p
+   implicit none
+ 
+   class(*), pointer     :: bar_p(:)
+   class(*), allocatable :: bar_a(:)
+ 
+   call foo_p(bar_p)
+   call foo_a(bar_a)
+ 
+ contains
+ 
+   subroutine foo_p(that)
+     class(*), pointer, intent(out) :: that(..)
+ 
+     select rank(that)
+     rank(1)
+     rank default
+       stop 1
+     end select
+   end subroutine foo_p
+ 
+   subroutine foo_a(that)
+     class(*), allocatable, intent(out) :: that(..)
+ 
+     select rank(that)
+     rank(1)
+     rank default
+       stop 2
+     end select
+   end subroutine foo_a
+ 
+ end program main_p
+ 
+ ! { dg-final { scan-tree-dump "bar_a._data.dtype = \\{.* .rank=1,.*\\}" "original" } }
+ ! { dg-final { scan-tree-dump "bar_p._data.dtype = \\{.* .rank=1,.*\\}" "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100098.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100098.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100098.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100098.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,45 ----
+ ! { dg-do run }
+ ! { dg-options "-fdump-tree-original" }
+ !
+ ! Test the fix for PR100098
+ !
+ 
+ program main_p
+   implicit none
+ 
+   type :: foo_t
+     integer :: i
+   end type foo_t
+ 
+   class(foo_t), pointer     :: bar_p(:)
+   class(foo_t), allocatable :: bar_a(:)
+ 
+   call foo_p(bar_p)
+   call foo_a(bar_a)
+ 
+ contains
+ 
+   subroutine foo_p(that)
+     class(foo_t), pointer, intent(out) :: that(..)
+ 
+     select rank(that)
+     rank(1)
+     rank default
+       stop 1
+     end select
+   end subroutine foo_p
+ 
+   subroutine foo_a(that)
+     class(foo_t), allocatable, intent(out) :: that(..)
+ 
+     select rank(that)
+     rank(1)
+     rank default
+       stop 2
+     end select
+   end subroutine foo_a
+ 
+ end program main_p
+ 
+ ! { dg-final { scan-tree-dump "bar_a._data.dtype = \\{.* .rank=1,.*\\}" "original" } }
+ ! { dg-final { scan-tree-dump "bar_p._data.dtype = \\{.* .rank=1,.*\\}" "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100132.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100132.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100132.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100132.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,75 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR100132
+ !
+ 
+ module main_m
+   implicit none
+ 
+   private
+ 
+   public :: &
+     foo_t
+ 
+   public :: &
+     set,    &
+     get
+ 
+   type :: foo_t
+     integer :: i
+   end type foo_t
+ 
+   type(foo_t), save, pointer :: data => null()
+ 
+ contains
+ 
+   subroutine set(this)
+     class(foo_t), pointer, intent(in) :: this
+ 
+     if(associated(data)) stop 1
+     data => this
+   end subroutine set
+ 
+   subroutine get(this)
+     type(foo_t), pointer, intent(out) :: this
+ 
+     if(.not.associated(data)) stop 4
+     this => data
+     nullify(data)
+   end subroutine get
+ 
+ end module main_m
+ 
+ program main_p
+ 
+   use :: main_m, only: &
+     foo_t, set, get
+ 
+   implicit none
+ 
+   integer, parameter :: n = 1000
+ 
+   type(foo_t), pointer :: ps
+   type(foo_t),  target :: s
+   integer              :: i, j, yay, nay
+ 
+   yay = 0
+   nay = 0
+   do i = 1, n
+     s%i = i
+     call set(s)
+     call get(ps)
+     if(.not.associated(ps)) stop 13
+     j = ps%i
+     if(i/=j) stop 14
+     if(i/=s%i) stop 15
+     if(ps%i/=s%i) stop 16
+     if(associated(ps, s))then
+       yay = yay + 1
+     else
+       nay = nay + 1
+     end if
+   end do
+   if((yay/=n).or.(nay/=0)) stop 17
+ 
+ end program main_p
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100136.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100136.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100136.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100136.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,39 ----
+ ! { dg-do run }
+ ! { dg-options "-fcheck=pointer" }
+ ! { dg-shouldfail "Argument not allocated" }
+ ! { dg-output "Fortran runtime error: Allocatable actual argument 'c_init2' is not allocated" }
+ !
+ ! Tests fix for PR100136
+ !
+ ! Test cut down from PR58586
+ !
+ 
+ module test_pr58586_mod
+   implicit none
+ 
+   type :: a
+   end type
+ 
+   type :: c
+      type(a), allocatable :: a
+   end type
+ 
+ contains
+ 
+   subroutine add_class_c (d)
+     class(c), value :: d
+   end subroutine
+ 
+   class(c) function c_init2()
+     allocatable :: c_init2
+   end function
+ 
+ end module test_pr58586_mod
+ 
+ program test_pr58586
+   use test_pr58586_mod
+ 
+   ! This needs to execute, to see whether the segfault at runtime is resolved
+   call add_class_c(c_init2())
+ 
+ end program
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100245.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100245.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/PR100245.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/PR100245.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR100245
+ !
+ 
+ program main_p
+ 
+   implicit none
+ 
+   type :: foo_t
+     integer :: a
+   end type foo_t
+ 
+   integer, parameter :: a = 42
+ 
+   class(foo_t), allocatable :: val
+   class(foo_t), allocatable :: rs1
+   type(foo_t),  allocatable :: rs2
+ 
+   allocate(val, source=foo_t(42))
+   if (val%a/=a) stop 1
+   rs1 = val
+   if (rs1%a/=a) stop 2
+   rs2 = val
+   if (rs2%a/=a) stop 3
+   deallocate(val, rs1, rs2)
+ 
+ end program main_p
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/associate_26a.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/associate_26a.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/associate_26a.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/associate_26a.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! { dg-options "-fcoarray=lib" }
+ !
+ ! Test the fix for PR78152 and the followup in PR82868
+ !
+ ! Contributed by <physiker@toast2.net>
+ !
+ program co_assoc
+   implicit none
+   integer, parameter :: p = 5
+   real, allocatable :: a(:,:)[:,:]
+   allocate (a(p,p)[2,*])
+   associate (i => a(1:p, 1:p))
+   end associate
+ end program co_assoc
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/bind_c_usage_34.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/bind_c_usage_34.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/bind_c_usage_34.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/bind_c_usage_34.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! PR fortran/104332 - ICE with bind(c) in block data
+ ! Contributed by G. Steinmetz
+ 
+ block data
+   bind(c) :: a ! { dg-error "cannot be BIND\\(C\\)" }
+ end
+ 
+ block data aa
+    real, bind(c) :: a ! { dg-error "cannot be BIND\\(C\\)" }
+ end
+ 
+ block data bb
+    real    :: a ! { dg-error "cannot be BIND\\(C\\)" }
+    bind(c) :: a
+ end
+ 
+ block data cc
+    common /a/ x
+    bind(c) :: /a/
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/class_58.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/class_58.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/class_58.f90	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/class_58.f90	Mon May 29 08:46:31 2023
*************** subroutine s
*** 9,13 ****
    end type
    class(t), parameter :: x = t()  ! { dg-error "cannot have the PARAMETER attribute" }
    class(t), parameter :: y = x    ! { dg-error "cannot have the PARAMETER attribute" }
!   class(t) :: z = x               ! { dg-error "must be dummy, allocatable or pointer" }
  end
--- 9,13 ----
    end type
    class(t), parameter :: x = t()  ! { dg-error "cannot have the PARAMETER attribute" }
    class(t), parameter :: y = x    ! { dg-error "cannot have the PARAMETER attribute" }
!   class(t) :: z = t()             ! { dg-error "must be dummy, allocatable or pointer" }
  end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/class_73.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/class_73.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/class_73.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/class_73.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! Error recovery on invalid CLASS(), PARAMETER declarations
+ ! PR fortran/103137
+ ! PR fortran/103138
+ ! PR fortran/103693
+ ! PR fortran/105243
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   type t
+      character(3) :: c = '(a)'
+   end type
+   class(t), parameter :: x = 1.  ! { dg-error "PARAMETER attribute" }
+   class(*), parameter :: y = t() ! { dg-error "PARAMETER attribute" }
+   class(*), parameter :: z = 1   ! { dg-error "PARAMETER attribute" }
+   print x%c                      ! { dg-error "Syntax error" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/common_27.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/common_27.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/common_27.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/common_27.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! PR fortran/108453 - a use associated variable cannot occur in COMMON
+ ! Contributed by G.Steinmetz
+ 
+ module m
+   type t
+   end type
+   real :: r
+ end
+ program p
+   use m, only: t, r
+   common t      ! { dg-error "USE associated from module" }
+   common /cm/ r ! { dg-error "USE associated from module" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/dec_union_12.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/dec_union_12.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/dec_union_12.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/dec_union_12.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,43 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=legacy -ffree-form -finit-local-zero -finit-derived -fdec-structure" }
+ !
+ ! PR fortran/105310
+ !
+ ! Test that gfc_conv_union_initializer does not cause an ICE when called
+ ! to build the constructor for a field which triggers a vector resize.
+ !
+ 
+ program dec_union_12
+   implicit none
+ STRUCTURE /foo8u/
+   ! 8 fields
+   INTEGER(4) :: a,b,c,d,e,f,g,h
+   UNION
+   MAP
+   ENDMAP
+   ENDUNION
+ ENDSTRUCTURE
+ STRUCTURE /foo16u/
+   ! 16 fields
+   INTEGER(4) :: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p
+   UNION
+   MAP
+   ENDMAP
+   ENDUNION
+ ENDSTRUCTURE
+ STRUCTURE /foo32u/
+   ! 32 fields
+   INTEGER(4) :: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p
+   INTEGER(4) :: aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap
+   UNION
+   MAP
+   ENDMAP
+   ENDUNION
+ ENDSTRUCTURE
+   record /foo8u/ bar8u
+   record /foo16u/ bar16u
+   record /foo32u/ bar32u
+   bar8u.a = 1
+   bar16u.a = 1
+   bar32u.a = 1
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/extends_type_of_4.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/extends_type_of_4.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/extends_type_of_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/extends_type_of_4.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do compile }
+ ! PR fortran/106121 - ICE in gfc_simplify_extends_type_of
+ ! Contributed by G.Steinmetz
+ 
+ program p
+    type t
+    end type
+    type(t)  :: x
+    class(t) :: y               ! { dg-error "dummy, allocatable or pointer" }
+    print *, extends_type_of (x, y)
+ end
+ 
+ subroutine s
+    type t
+       integer :: i
+    end type
+    type(t)  :: x
+    class(t) :: y               ! { dg-error "dummy, allocatable or pointer" }
+    stop extends_type_of (x, y) ! { dg-error "STOP code" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/g77/pr105203.f gcc-11.4.0/gcc/testsuite/gfortran.dg/g77/pr105203.f
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/g77/pr105203.f	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/g77/pr105203.f	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,20 ----
+ C Test case for PR debug/105203
+ C Origin: kmccarty@princeton.edu
+ C
+ C { dg-do compile }
+ C { dg-options "-O2 -fcompare-debug -ftracer -w" }
+ C { dg-additional-options "-fPIC" { target fpic } }
+       SUBROUTINE FOO (B)
+ 
+   10  CALL BAR (A)
+       ASSIGN 20 TO M
+       IF (100.LT.A) GOTO 10
+       GOTO 40
+ C
+   20  IF (B.LT.ABS(A)) GOTO 10
+       ASSIGN 30 TO M
+       GOTO 40
+ C
+   30  ASSIGN 10 TO M
+   40  GOTO M,(10,20,30)
+       END
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/guality/guality.exp gcc-11.4.0/gcc/testsuite/gfortran.dg/guality/guality.exp
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/guality/guality.exp	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/guality/guality.exp	Mon May 29 08:46:31 2023
*************** if { [istarget *-*-darwin*] } {
*** 8,13 ****
--- 8,17 ----
    return
  }
  
+ if { [istarget hppa*-*-hpux*] } {
+     return
+ }
+ 
  if { [istarget "powerpc-ibm-aix*"] } {
      set torture_execute_xfail "powerpc-ibm-aix*"
      return
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/ibits_2.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/ibits_2.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/ibits_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/ibits_2.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,32 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-fcheck=bits" }
+ ! PR fortran/108937 - Intrinsic IBITS(I,POS,LEN) fails when LEN equals
+ !                     to BIT_SIZE(I)
+ ! Contributed by saitofuyuki@jamstec.go.jp
+ 
+ program test_bits
+   implicit none
+   integer, parameter :: KT = kind (1)
+   integer, parameter :: lbits = bit_size (0_KT)
+   integer(kind=KT) :: x, y0, y1
+   integer(kind=KT) :: p, l
+ 
+   x = -1
+   p = 0
+   do l = 0, lbits
+      y0 = ibits  (x, p, l)
+      y1 = ibits_1(x, p, l)
+      if (y0 /= y1) then
+         print *, l, y0, y1
+         stop 1+l
+      end if
+   end do
+ contains
+   elemental integer(kind=KT) function ibits_1(I, POS, LEN) result(n)
+     !! IBITS(I, POS, LEN) = (I >> POS) & ~((~0) << LEN)
+     implicit none
+     integer(kind=KT),intent(in) :: I
+     integer,         intent(in) :: POS, LEN
+     n = IAND (ISHFT(I, - POS), NOT(ISHFT(-1_KT, LEN)))
+   end function ibits_1
+ end program test_bits
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f2018" }
+ ! PR fortran/103413
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   type t
+      class(*), allocatable :: a
+   end type
+   type(t) :: x
+   allocate (x%a, source=z'1') ! { dg-error "type incompatible" }
+   allocate (x%a, mold=z'1')   ! { dg-error "type incompatible" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/index_6.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/index_6.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/index_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/index_6.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do compile }
+ ! { dg-options "-fdump-tree-original" }
+ ! PR fortran/105691 - Incorrect calculation of INDEX(str1,str2) at compile time
+ 
+ program main
+   implicit none
+   integer :: i
+   character(*), parameter :: s1 = "fortran.f90"
+   character(*), parameter :: s2 = "fortran"
+   character(*), parameter :: s3 = s2 // "*"
+   integer, parameter :: i0    = index(s1, s2)
+   integer, parameter :: i1    = index(s1, s2, back= .true.)
+   integer, parameter :: i2(*) = index(s1, s2, back=[.true.,.false.])
+   integer, parameter :: i3(*) = index(s1, s2, back=[(i==1, i=1,2)] )
+   integer, parameter :: i4    = index(s1, s3)
+   integer, parameter :: i5    = index(s1, s3, back= .true.)
+   integer, parameter :: i6(*) = index(s1, s3, back=[.true.,.false.])
+   integer, parameter :: i7(*) = index(s1, s3, back=[(i==1, i=1,2)] )
+   integer, parameter :: i8    = index(s1, "f", back= .true.)
+   if (     i0 /= 1 ) stop 1
+   if (     i1 /= 1 ) stop 2
+   if (any (i2 /= 1)) stop 3
+   if (any (i3 /= 1)) stop 4
+   if (     i4 /= 0 ) stop 5
+   if (     i5 /= 0 ) stop 6
+   if (any (i6 /= 0)) stop 7
+   if (any (i7 /= 0)) stop 8
+   if (i8 /= len(s1)-2) stop 9
+ end program
+ 
+ ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/intent_optimize_4.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/intent_optimize_4.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/intent_optimize_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/intent_optimize_4.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,43 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-fdump-tree-original" }
+ ! { dg-final { scan-tree-dump-times "CLOBBER" 2 "original" } }
+ !
+ ! PR fortran/106817
+ ! Check that for an actual argument whose dummy is INTENT(OUT),
+ ! the clobber that is emitted in the caller before a procedure call
+ ! happens after any expression depending on the argument value has been
+ ! evaluated.
+ ! 
+ 
+ module m
+   implicit none
+ contains
+   subroutine copy1(out, in)
+     integer, intent(in) :: in
+     integer, intent(out) :: out
+     out = in
+   end subroutine copy1
+   subroutine copy2(in, out)
+     integer, intent(in) :: in
+     integer, intent(out) :: out
+     out = in
+   end subroutine copy2
+ end module m
+ 
+ program p
+   use m
+   implicit none
+   integer :: a, b
+ 
+   ! Clobbering of a should happen after a+1 has been evaluated.
+   a = 3
+   call copy1(a, a+1)
+   if (a /= 4) stop 1
+ 
+   ! Clobbering order does not depend on the order of arguments.
+   ! It should also come last with reversed arguments.
+   b = 12
+   call copy2(b+1, b)
+   if (b /= 13) stop 2
+ 
+ end program p
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/intent_out_15.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/intent_out_15.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/intent_out_15.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/intent_out_15.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fdump-tree-original" }
+ !
+ ! PR fortran/105012
+ ! The following case was triggering an ICE because of a clobber
+ ! on the DERFC function decl instead of its result.
+ 
+ module error_function
+ integer, parameter :: r8 = selected_real_kind(12) ! 8 byte real
+ contains
+ SUBROUTINE CALERF_r8(ARG, RESULT, JINT)
+    integer, parameter :: rk = r8
+    real(rk), intent(in)  :: arg
+    real(rk), intent(out) :: result
+    IF (Y .LE. THRESH) THEN
+    END IF
+ end SUBROUTINE CALERF_r8
+ FUNCTION DERFC(X)
+    integer, parameter :: rk = r8 ! 8 byte real
+    real(rk), intent(in) :: X
+    real(rk) :: DERFC
+    CALL CALERF_r8(X, DERFC, JINT)
+ END FUNCTION DERFC
+ end module error_function
+ 
+ ! { dg-final { scan-tree-dump-times "CLOBBER" 1 "original" } }
+ ! { dg-final { scan-tree-dump "__result_derfc = {CLOBBER};" "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/nearest_6.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/nearest_6.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/nearest_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/nearest_6.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do run }
+ ! PR fortran/109186 - Verify that NEAREST produces same results at
+ !                     compile-time and run-time for corner cases
+ ! Reported by John Harper
+ 
+ program p
+   implicit none
+   integer,  parameter :: sp = selected_real_kind (6)
+   integer,  parameter :: dp = selected_real_kind (13)
+   real(sp), parameter :: x1 = huge (1._sp), t1 = tiny (1._sp)
+   real(dp), parameter :: x2 = huge (1._dp), t2 = tiny (1._dp)
+   real(sp), volatile  :: y1, z1
+   real(dp), volatile  :: y2, z2
+   y1 = x1
+   z1 = nearest (y1, -1._sp)
+   if (nearest (x1,  -1._sp) /= z1) stop 1
+   y2 = x2
+   z2 = nearest (y2, -1._dp)
+   if (nearest (x2,  -1._dp) /= z2) stop 2
+   y1 = t1
+   z1 = nearest (y1,  1._sp)
+   if (nearest (t1,   1._sp) /= z1) stop 3
+   y2 = t2
+   z2 = nearest (y2,  1._dp)
+   if (nearest (t2,   1._dp) /= z2) stop 4
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/nint_p7.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/nint_p7.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/nint_p7.f90	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/nint_p7.f90	Mon May 29 08:46:31 2023
***************
*** 1,8 ****
  ! Fortran
  ! { dg-do compile { target { powerpc*-*-* } } }
  ! { dg-require-effective-target powerpc_vsx_ok } 
! ! { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } 
! ! { dg-options "-O2 -mcpu=power7 -ffast-math" } 
  ! { dg-final { scan-assembler-times "xsrdpi" 2 } } 
  
  	subroutine test_nint(x4,x8)
--- 1,7 ----
  ! Fortran
  ! { dg-do compile { target { powerpc*-*-* } } }
  ! { dg-require-effective-target powerpc_vsx_ok } 
! ! { dg-options "-O2 -mdejagnu-cpu=power7 -ffast-math" } 
  ! { dg-final { scan-assembler-times "xsrdpi" 2 } } 
  
  	subroutine test_nint(x4,x8)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/null_actual_3.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/null_actual_3.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/null_actual_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/null_actual_3.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do compile }
+ ! { dg-options "-fallow-argument-mismatch -w" }
+ ! PR fortran/107576
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   implicit none
+   interface
+      subroutine r(y)
+        integer, pointer :: y(:)
+      end subroutine r
+   end interface
+   integer, pointer :: z(:) => null()
+   call r(z)
+   call s(z)
+   call r(null(z))
+   call s(null(z)) ! { dg-error "requires an explicit interface" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr102860.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr102860.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr102860.f90	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr102860.f90	Mon May 29 08:46:31 2023
***************
*** 1,8 ****
  ! PR middle-end/102860
  ! { dg-do compile { target { powerpc*-*-* } } }
  ! { dg-require-effective-target powerpc_vsx_ok } 
! ! { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power10" } } 
! ! { dg-options "-O2 -mcpu=power10" } 
  
  function foo(a)
    integer(kind=4) :: a(1024)
--- 1,7 ----
  ! PR middle-end/102860
  ! { dg-do compile { target { powerpc*-*-* } } }
  ! { dg-require-effective-target powerpc_vsx_ok } 
! ! { dg-options "-O2 -mdejagnu-cpu=power10" } 
  
  function foo(a)
    integer(kind=4) :: a(1024)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103259.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103259.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103259.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103259.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR fortran/103259 - ICE in resolve_common_vars
+ ! Contributed by G.Steinmetz
+ 
+ module m
+   integer :: p
+   common /c/ p
+ end
+ program p ! { dg-error "cannot appear in a COMMON block" }
+   use m   ! { dg-error "is also the name of the current program unit" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103504.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103504.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103504.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103504.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do compile }
+ ! PR fortran/103504 - ICE in get_sym_storage_size, at fortran/interface.c:2800
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   implicit none
+   real      :: y(1)
+   character :: b
+   call s(y)
+   call t(y)
+   call u(y)
+   call c(b)
+ contains
+   subroutine s(x)
+     real :: x(abs(1.):1)        ! { dg-error "must be of INTEGER type" }
+   end
+   subroutine t(x)
+     real :: x(abs(1.):1)        ! { dg-error "must be of INTEGER type" }
+   end
+   subroutine u(x)
+     real :: x(1:abs(1.))        ! { dg-error "must be of INTEGER type" }
+   end
+   subroutine c(z)
+     character(len=abs(1.)) :: z ! { dg-error "must be of INTEGER type" }
+   end subroutine c
+ end
+ 
+ ! { dg-prune-output "must be of INTEGER type" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103505.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103505.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103505.f90	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103505.f90	Mon May 29 08:46:31 2023
***************
*** 3,9 ****
  ! Testcase by G.Steinmetz
  
  program p
!   integer, parameter :: a((2.))   = [4,8] ! { dg-error "scalar INTEGER" }
!   integer, parameter :: z(1:(2.)) = [4,8] ! { dg-error "scalar INTEGER" }
!   print *, a(1:1)                         ! { dg-error "Syntax error" }
  end
--- 3,11 ----
  ! Testcase by G.Steinmetz
  
  program p
!   integer, parameter :: a((2.))   = [4,8] ! { dg-error "INTEGER type" }
!   integer, parameter :: z(1:(2.)) = [4,8] ! { dg-error "INTEGER type" }
!   print *, a(1:1)
  end
+ 
+ ! { dg-prune-output "Parameter array" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103694.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103694.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr103694.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103694.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR fortran/103694 - ICE in gfc_conv_expr_op
+ ! Contributed by G.Steinmetz
+ 
+ subroutine s
+   type t
+      integer :: a(2)
+   end type
+   type(t) :: x((0.)/0)
+   integer :: n = size(x(1)%a) ! { dg-error "does not reduce to a constant expression" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr104313.f gcc-11.4.0/gcc/testsuite/gfortran.dg/pr104313.f
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr104313.f	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr104313.f	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-ff2c -fdump-tree-original" }
+ !
+ ! PR fortran/104313 - ICE verify_gimple failed with -ff2c
+ ! Contributed by G.Steinmetz
+ 
+       function f(a)
+       return
+       end
+ 
+ ! { dg-final { scan-tree-dump-times "return" 1 "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr104849.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr104849.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr104849.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr104849.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! PR fortran/104849 - ICE in find_array_section
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(:) = [1, 2] ! { dg-error "deferred shape" }
+   integer :: x(2)
+   data x /a(:)/                       ! { dg-error "Invalid" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr105230.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr105230.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr105230.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr105230.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR fortran/105230 - ICE in find_array_section
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(:) = [1, 2] ! { dg-error "deferred shape" }
+   print *, reshape([3, 4], a(1:2))
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr105633.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr105633.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr105633.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr105633.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR fortran/105633 - ICE in find_array_section
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(:) = [1,2] ! { dg-error "deferred shape" }
+   print *, [a([1,2])]
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr105954.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr105954.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr105954.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr105954.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do compile }
+ ! { dg-options "-fdump-tree-original" }
+ ! PR fortran/105954 - ICE in gfc_element_size, at fortran/target-memory.cc:132
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   use iso_c_binding, only: c_float, c_sizeof
+   implicit none
+   integer, parameter :: n = -99
+   type t
+      real :: b(3,7:n)
+   end type
+   type, bind(c) :: u
+      real(c_float) :: b(3,7:n)
+   end type
+   type(t) :: d
+   type(u) :: e
+   integer, parameter :: k = storage_size(d)
+   integer, parameter :: m = sizeof(d)
+   integer, parameter :: l = c_sizeof(e)
+   if (k /= 0) stop 1
+   if (m /= 0) stop 2
+   if (l /= 0) stop 3
+ end
+ 
+ ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106209.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106209.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106209.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106209.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! PR fortran/106209 - ICE in add_init_expr_to_sym
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(:) = 0   ! { dg-error "of deferred shape" }
+   integer, parameter :: b(*) = a   ! { dg-error "Bad shape of initializer" }
+   integer, parameter :: c(*) = [a] ! { dg-error "Cannot determine shape" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106331.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106331.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106331.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106331.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do run }
+ ! { dg-options "-Og" }
+ 
+ PROGRAM main
+   CHARACTER(LEN=24) :: a(2)
+   a = ''
+ END PROGRAM
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106857.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106857.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106857.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106857.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do compile }
+ ! PR fortran/106857 - ICE in gfc_simplify_pack
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   type t
+      integer :: n
+   end type
+   type(t), parameter :: a(2,2) = t(1)
+   type(t), parameter :: b(4) = reshape(a, [2])                          ! { dg-error "Different shape" }
+   type(t), parameter :: c(2) = pack(b, [.false.,.true.,.false.,.true.]) ! { dg-error "Different shape" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106934.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106934.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106934.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106934.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! { dg-options "-O" }
+ subroutine s
+    logical(1) :: a = .true.
+    logical(2) :: b
+    a = transfer(b, a)
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106945.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106945.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106945.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106945.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-options "-fcoarray=single -fcheck=bounds -ftrapv" }
+ ! PR fortran/106945
+ ! Contributed by G. Steinmetz
+ 
+ module m
+   implicit none
+   type t
+      class(*), allocatable :: a[:]
+   end type
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106985.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106985.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106985.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106985.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR fortran/106985 - ICE in gfc_simplify_expr
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(2) = 1
+   integer, parameter :: b = a(2) + b ! { dg-error "before its definition is complete" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106986.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106986.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr106986.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr106986.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR fortran/106986 - ICE in simplify_findloc_nodim
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(:) = [1] ! { dg-error "deferred shape" }
+   print *, findloc (a, 1)
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr107054.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr107054.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr107054.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr107054.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! PR fortran/107054 - ICE in gfc_simplify_unpack
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   type t
+      integer :: n = 0
+   end type
+   type(t), parameter :: a(4) = t(2)
+   type(t), parameter :: b(4) = reshape(a,[2]) ! { dg-error "Different shape" }
+   type(t), parameter :: c(2) = pack(b,[.false.,.true.,.false.,.true.]) ! { dg-error "Different shape" }
+   type(t), parameter :: d(4) = unpack(c,[.false.,.true.,.false.,.true.],a)
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr107872.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr107872.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr107872.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr107872.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,40 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR107872, where an ICE occurred in
+ ! resolve.cc(derived_inaccessible) because derived types with
+ ! recursive allocatable components were not catered for.
+ !
+ module mod1
+   type t
+      integer :: data
+      type(t), allocatable :: next
+    contains
+      procedure, private :: write_t
+      generic :: write(formatted) => write_t
+   end type
+ contains
+   recursive subroutine write_t(this, unit, iotype, v_list, iostat, iomsg)
+     class(t), intent(in) :: this
+     integer, intent(in) :: unit
+     character(*), intent(in) :: iotype
+     integer, intent(in) :: v_list(:)
+     integer, intent(out) :: iostat
+     character(*), intent(inout) :: iomsg
+     if (ALLOCATED(this%next)) &
+          write (unit, '(dt)') this%next
+     write (unit, '(i2)') this%data
+   end subroutine
+ end module
+ 
+   use mod1
+   type(t) :: a
+   character (8) :: buffer
+   a%data = 1
+   allocate (a%next)
+   a%next%data = 2
+   allocate (a%next%next)
+   a%next%next%data = 3
+   write (buffer, '(dt)')a
+   deallocate (a%next)
+   if (trim (buffer) .ne. ' 3 2 1') stop 1
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108131.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108131.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108131.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108131.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-fdump-tree-original" }
+ ! PR fortran/108131
+ !
+ ! Incorrect array bounds when bound intrinsic used in declaration
+ 
+ program test
+   implicit none
+   integer, parameter :: mg(7:10)                 = 0
+   integer, parameter :: u =   ubound(mg, dim=1)
+   integer, parameter :: cx(-1:ubound(mg, dim=1)) = 1
+   integer, parameter :: dx(lbound(mg, dim=1):ubound(cx, dim=1)) = 2
+ 
+   write(*,*) ubound(mg, dim=1)
+   write(*,*) ubound(cx, dim=1)
+   if (u /= 10) stop 1
+   if (ubound(mg, dim=1) /= 10) stop 2
+   if (ubound(cx, dim=1) /= 10) stop 3
+   if (ubound(dx, dim=1) /= 10) stop 4
+   if (lbound(mg, dim=1) /=  7) stop 5
+   if (lbound(cx, dim=1) /= -1) stop 6
+   if (lbound(dx, dim=1) /=  7) stop 7
+ end program test
+ 
+ ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "original" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108193.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108193.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108193.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108193.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,24 ----
+ ! PR rtl-optimization/108193
+ ! { dg-do compile { target pthread } }
+ ! { dg-options "-O2 -fsplit-loops -ftree-parallelize-loops=2 -fno-tree-dominator-opts" }
+ 
+ subroutine foo (n, r)
+   implicit none
+   integer :: i, j, n
+   real :: s, r(*)
+ 
+   s = 0.0
+ 
+   do j = 1, 2
+      do i = j, n
+         s = r(i)
+      end do
+   end do
+ 
+   do i = 1, n
+      do j = i, n
+         s = s + 1
+      end do
+      r(i) = s
+   end do
+ end subroutine foo
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108420.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108420.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108420.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108420.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! PR fortran/108420
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   character :: c = 'c'
+   logical   :: m = .true.
+   print *, merge(transfer('a', 'b', 0), c, .true.)
+   print *, merge(transfer('a', 'b', 0), c, m)
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108421.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108421.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108421.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108421.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR fortran/108421
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   character(real(3)) :: c ! { dg-error "must be of INTEGER type" }
+   call s(c)
+ end
+ subroutine s(x)
+   character(*) :: x
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108501.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108501.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108501.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108501.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! PR fortran/108501 - ICE in get_expr_storage_size
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   real, parameter :: n = 2
+   real :: a(1,(n),2) ! { dg-error "must be of INTEGER type" }
+   call s(a(:,:,1))
+ end
+ subroutine s(x)
+   real :: x(2)
+ end
+ 
+ ! { dg-prune-output "must have constant shape" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108502.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108502.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108502.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108502.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do compile }
+ ! { dg-options "-O2 -ffrontend-optimize" }
+ ! PR fortran/108502 - ICE in gfc_check_dependency
+ ! Contributed by G.Steinmetz
+ 
+ integer function n()
+   integer :: a(1)
+   a = [1] / 0
+ end
+ program p
+   integer :: b = n() ! { dg-error "must be an intrinsic function" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108527.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108527.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108527.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108527.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! PR fortran/108527 - ICE in compare_bound_int
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a((2.)) = [4,8] ! { dg-error "must be of INTEGER type" }
+   integer(a(1:1)) :: b                  ! { dg-error "Unclassifiable statement" }
+ end
+ 
+ ! { dg-prune-output "Parameter array" }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108529.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108529.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr108529.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr108529.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! PR fortran/108529 - ICE in transformational_result
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   integer, parameter :: a(*,*) = reshape([1, 2, 3, 4], [2, 2])
+   logical, parameter :: b(2,*) = a > 2     ! { dg-error "Assumed size" }
+   logical, parameter :: c(*)   = all(b, 1) ! { dg-error "Bad shape" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr47614.f gcc-11.4.0/gcc/testsuite/gfortran.dg/pr47614.f
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr47614.f	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr47614.f	Mon May 29 08:46:31 2023
***************
*** 1,6 ****
  ! { dg-do run { target { powerpc*-*-* } } }
  ! { dg-skip-if "" { powerpc*-*-darwin* } }
! ! { dg-options "-O3 -funroll-loops -ffast-math -mcpu=power4" }
  
  
        SUBROUTINE SFCPAR(ZET,NZ,ZMH,TSL,TMES)
--- 1,7 ----
  ! { dg-do run { target { powerpc*-*-* } } }
  ! { dg-skip-if "" { powerpc*-*-darwin* } }
! ! { dg-options "-O3 -funroll-loops -ffast-math -mdejagnu-cpu=power4" }
! ! { dg-options "-O3 -funroll-loops -ffast-math" { target powerpc64le*-*-linux* } }
  
  
        SUBROUTINE SFCPAR(ZET,NZ,ZMH,TSL,TMES)
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr58968.f gcc-11.4.0/gcc/testsuite/gfortran.dg/pr58968.f
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr58968.f	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr58968.f	Mon May 29 08:46:31 2023
***************
*** 1,6 ****
  C PR rtl-optimization/58968.f
  C { dg-do compile { target powerpc*-*-* } }
! C { dg-options "-mcpu=power7 -O3 -w -ffast-math  -funroll-loops" }
        SUBROUTINE MAKTABS(IW,SOME,LBOX1,LBOX2,LBOX3,NSPACE,NA,NB,
       *            LBST,X,
       *            NX,IAMA,IAMI,IBMA,IBMI,MNUM,IDIM,MSTA,IBO,
--- 1,6 ----
  C PR rtl-optimization/58968.f
  C { dg-do compile { target powerpc*-*-* } }
! C { dg-options "-mdejagnu-cpu=power7 -O3 -w -ffast-math  -funroll-loops" }
        SUBROUTINE MAKTABS(IW,SOME,LBOX1,LBOX2,LBOX3,NSPACE,NA,NB,
       *            LBST,X,
       *            NX,IAMA,IAMI,IBMA,IBMI,MNUM,IDIM,MSTA,IBO,
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr85877.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr85877.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr85877.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr85877.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ ! PR fortran/85877
+ ! A procedure with the bind(c) attribute shall have an explicit interface
+ ! Contributed by G. Steinmetz
+ 
+ function f() bind(c)
+   f = 42.
+ end
+ 
+ subroutine p
+   bind(c) f     ! { dg-error "must be explicit" }
+   x = f()
+ end
+ 
+ function g() bind(c)
+   g = 42.
+ end
+ 
+ subroutine s
+   interface
+      function g() bind(c)
+      end function g
+   end interface
+   x = g()
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr96024.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr96024.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr96024.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr96024.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR fortran/96024 - ICE in mio_name_expr_t
+ ! Contributed by G.Steinmetz
+ 
+ module m
+   implicit none
+   type t
+      character(char(1)) :: a ! { dg-error "must be of INTEGER type" }
+   end type
+   type(t) :: z = t('a')
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr96025.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr96025.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr96025.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr96025.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR fortran/96025 - ICE in expr_check_typed_help
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   print *, f()
+ contains
+   character(char(1)) function f() ! { dg-error "must be of INTEGER type" }
+     f = 'f'
+   end
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/pr99036.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/pr99036.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/pr99036.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/pr99036.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! PR fortran/99036 - ICE in gfc_current_interface_head
+ ! Contributed by G. Steinmetz
+ 
+ module m
+ contains
+   module procedure s ! { dg-error "must be in a generic module interface" }
+   end
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/ptr-func-5.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/ptr-func-5.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/ptr-func-5.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/ptr-func-5.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,39 ----
+ ! { dg-do compile }
+ ! PR fortran/109846
+ ! CLASS pointer function result in variable definition context
+ 
+ module foo
+   implicit none
+   type :: parameter_list
+   contains
+     procedure :: sublist, sublist_nores
+   end type
+ contains
+   function sublist (this) result (slist)
+     class(parameter_list), intent(inout) :: this
+     class(parameter_list), pointer       :: slist
+     allocate (slist)
+   end function
+   function sublist_nores (this)
+     class(parameter_list), intent(inout) :: this
+     class(parameter_list), pointer       :: sublist_nores
+     allocate (sublist_nores)
+   end function
+ end module
+ 
+ program example
+   use foo
+   implicit none
+   type(parameter_list) :: plist
+   call sub1 (plist%sublist())
+   call sub1 (plist%sublist_nores())
+   call sub2 (plist%sublist())
+   call sub2 (plist%sublist_nores())
+ contains
+   subroutine sub1 (plist)
+     type(parameter_list), intent(inout) :: plist
+   end subroutine
+   subroutine sub2 (plist)
+     type(parameter_list) :: plist
+   end subroutine
+ end program
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/save_7.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/save_7.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/save_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/save_7.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! { dg-options "-O2 -fno-automatic" }
+ !
+ ! PR fortran/95107 - do not make associate variables TREE_STATIC
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   type t
+      real, pointer :: a => null()
+   end type
+   type t2
+      type(t) :: b(1)
+   end type
+   type(t2), save :: x
+   associate (y => x%b)
+   end associate
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/set_exponent_1.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/set_exponent_1.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/set_exponent_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/set_exponent_1.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ ! PR fortran/109511
+ ! Check compile-time simplification of SET_EXPONENT against runtime
+ 
+ program exponent
+   implicit none
+   integer :: i
+   i = 0
+   print *, i, set_exponent(1., 0), set_exponent(1., i)
+   if (set_exponent(1., 0) /= set_exponent(1., i)) stop 1
+   i = 1
+   print *, i, set_exponent(1., 1), set_exponent(1., i)
+   if (set_exponent(1., 1) /= set_exponent(1., i)) stop 2
+   i = 2
+   print *, i, set_exponent(-1.75, 2), set_exponent(-1.75, i)
+   if (set_exponent(-1.75, 2) /= set_exponent(-1.75, i)) stop 3
+   print *, i, set_exponent(0.1875, 2), set_exponent(0.1875, i)
+   if (set_exponent(0.1875, 2) /= set_exponent(0.1875, i)) stop 4
+   i = 3
+   print *, i, set_exponent(0.75, 3), set_exponent(0.75, i)
+   if (set_exponent(0.75, 3) /= set_exponent(0.75, i)) stop 5
+   i = 4
+   print *, i, set_exponent(-2.5, 4), set_exponent(-2.5, i)
+   if (set_exponent(-2.5, 4) /= set_exponent(-2.5, i)) stop 6
+   i = -1
+   print *, i, set_exponent(1., -1), set_exponent(1., i)
+   if (set_exponent(1., -1) /= set_exponent(1., i)) stop 7
+   i = -2
+   print *, i, set_exponent(1.125, -2), set_exponent(1.125, i)
+   if (set_exponent(1.125, -2) /= set_exponent(1.125, i)) stop 8
+   print *, i, set_exponent(-0.25, -2), set_exponent(-0.25, i)
+   if (set_exponent(-0.25, -2) /= set_exponent(-0.25, i)) stop 9
+   i = -3
+   print *, i, set_exponent(0.75, -3), set_exponent(0.75, i)
+   if (set_exponent(0.75, -3) /= set_exponent(0.75, i)) stop 10
+ end program exponent
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/unpack_vector_1.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/unpack_vector_1.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/unpack_vector_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/unpack_vector_1.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do compile }
+ ! PR fortran/105813
+ ! Fix checking of VECTOR argument to UNPACK when MASK is a variable.
+ ! Contributed by G.Steinmetz
+ 
+ program p
+   logical, parameter :: mask(2,2) = reshape ([.true.,  .true.,  &
+                                               .false., .true.], &
+                                               shape (mask))
+   print *, unpack ([1,2,3], mask, 0) ! OK
+   print *, unpack ([1,2],   mask, 0) ! { dg-error "must provide at least" }
+ end
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gfortran.dg/vect/pr107254.f90 gcc-11.4.0/gcc/testsuite/gfortran.dg/vect/pr107254.f90
*** gcc-11.3.0/gcc/testsuite/gfortran.dg/vect/pr107254.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gfortran.dg/vect/pr107254.f90	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,49 ----
+ ! { dg-do run }
+ 
+ subroutine dlartg( f, g, s, r )
+   implicit none
+   double precision :: f, g, r, s
+   double precision :: d, p
+ 
+   d = sqrt( f*f + g*g )
+   p = 1.d0 / d
+   if( abs( f ) > 1 ) then
+      s = g*sign( p, f )
+      r = sign( d, f )
+   else
+      s = g*sign( p, f )
+      r = sign( d, f )
+   end if
+ end subroutine
+ 
+ subroutine dhgeqz( n, h, t )
+   implicit none
+   integer            n
+   double precision   h( n, * ), t( n, * )
+   integer            jc
+   double precision   c, s, temp, temp2, tempr
+   temp2 = 10d0
+   call dlartg( 10d0, temp2, s, tempr )
+   c = 0.9d0
+   s = 1.d0
+   do jc = 1, n
+      temp = c*h( 1, jc ) + s*h( 2, jc )
+      h( 2, jc ) = -s*h( 1, jc ) + c*h( 2, jc )
+      h( 1, jc ) = temp
+      temp2 = c*t( 1, jc ) + s*t( 2, jc )
+      t( 2, jc ) = -s*t( 1, jc ) + c*t( 2, jc )
+      t( 1, jc ) = temp2
+   enddo
+ end subroutine dhgeqz
+ 
+ program test
+   implicit none
+   double precision h(2,2), t(2,2)  
+   h = 0
+   t(1,1) = 1
+   t(2,1) = 0
+   t(1,2) = 0
+   t(2,2) = 0
+   call dhgeqz( 2, h, t )
+   if (t(2,2).ne.0) STOP 1
+ end program test
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt100.adb gcc-11.4.0/gcc/testsuite/gnat.dg/opt100.adb
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt100.adb	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt100.adb	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ -- { dg-do run }
+ -- { dg-options "-O2 -gnatp" }
+ 
+ with Opt100_Pkg; use Opt100_Pkg;
+ 
+ procedure Opt100 is
+   R : constant Rec := (K => B, N => 1);
+ 
+ begin
+   if Func (R) /= 1 then
+      raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt100_pkg.adb gcc-11.4.0/gcc/testsuite/gnat.dg/opt100_pkg.adb
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt100_pkg.adb	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt100_pkg.adb	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,17 ----
+ package body Opt100_Pkg is
+ 
+    function Func (R : Rec) return Integer is
+    begin
+       if R in Small_Rec then
+          case R.K is
+             when A => return 0;
+             when B => return 1;
+             when C => return 2;
+             when others => raise Program_Error;
+          end case;
+       else
+          return -1;
+       end if;
+    end;
+ 
+ end Opt100_Pkg;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt100_pkg.ads gcc-11.4.0/gcc/testsuite/gnat.dg/opt100_pkg.ads
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt100_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt100_pkg.ads	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,23 ----
+ with Interfaces; use Interfaces;
+ 
+ package Opt100_Pkg is
+ 
+   A : constant Unsigned_8 := 0;
+   B : constant Unsigned_8 := 1;
+   C : constant Unsigned_8 := 2;
+ 
+   subtype Small_Unsigned_8 is Unsigned_8 range A .. C;
+ 
+   type Rec is record
+     K : Unsigned_8;
+     N : Natural;
+   end record;
+ 
+   subtype Small_Rec is Rec
+     with Dynamic_Predicate =>
+       Small_Rec.K in Small_Unsigned_8 and
+         ((Small_Rec.N in Positive) = (Small_Rec.K in B | C));
+ 
+    function Func (R : Rec) return Integer;
+ 
+ end Opt100_Pkg;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt99.adb gcc-11.4.0/gcc/testsuite/gnat.dg/opt99.adb
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt99.adb	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt99.adb	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,15 ----
+ -- { dg-do run }
+ -- { dg-options "-O" }
+ 
+ with Opt99_Pkg1; use Opt99_Pkg1;
+ 
+ procedure Opt99 is
+   C : constant My_Character := (D => True, C => ' ');
+   D : Derived;
+ 
+ begin
+   Set (D, C, C);
+   if not D.C2.D then
+     raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt99_pkg1.adb gcc-11.4.0/gcc/testsuite/gnat.dg/opt99_pkg1.adb
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt99_pkg1.adb	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt99_pkg1.adb	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,10 ----
+ package body Opt99_Pkg1 is
+ 
+   procedure Set (D: in out Derived; C1, C2 : My_Character) is
+   begin
+     D.I  := 0;
+     D.C1 := C1;
+     D.C2 := C2;
+   end;
+ 
+ end Opt99_Pkg1;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt99_pkg1.ads gcc-11.4.0/gcc/testsuite/gnat.dg/opt99_pkg1.ads
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt99_pkg1.ads	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt99_pkg1.ads	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,19 ----
+ with Opt99_Pkg2;
+ 
+ package Opt99_Pkg1 is
+ 
+   type My_Character (D : Boolean := False) is record
+     case D is
+       when False => null;
+       when True  => C : Character;
+     end case;
+   end record;
+ 
+   type Derived is new Opt99_Pkg2.Root with record
+     I : Integer;
+     C1, C2 : My_Character;
+   end record;
+ 
+   procedure Set (D: in out Derived; C1, C2 : My_Character);
+ 
+ end Opt99_Pkg1;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/opt99_pkg2.ads gcc-11.4.0/gcc/testsuite/gnat.dg/opt99_pkg2.ads
*** gcc-11.3.0/gcc/testsuite/gnat.dg/opt99_pkg2.ads	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/opt99_pkg2.ads	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,13 ----
+ package Opt99_Pkg2 is
+ 
+   function Get_Max return Positive is (4);
+ 
+   C : constant Positive := Get_Max;
+ 
+   type Arr is array (1 .. C) of Integer;
+ 
+   type Root is tagged record
+     Data : Arr;
+   end record;
+ 
+ end Opt99_Pkg2;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/gnat.dg/sso18.adb gcc-11.4.0/gcc/testsuite/gnat.dg/sso18.adb
*** gcc-11.3.0/gcc/testsuite/gnat.dg/sso18.adb	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/gcc/testsuite/gnat.dg/sso18.adb	Mon May 29 08:46:31 2023
***************
*** 0 ****
--- 1,21 ----
+ --  { dg-do run }
+ --  { dg-options "-O2" }
+ 
+ with System;
+ 
+ procedure SSO18 is
+ 
+   type Arr is array (1..32) of Short_Integer;
+   type Rev_Arr is array (1..32) of Short_Integer
+     with Scalar_Storage_Order => System.High_Order_First;
+   C : constant Arr := (others => 16);
+   RA : Rev_Arr;
+   A  : Arr;
+ 
+ begin
+   RA := Rev_Arr(C);
+   A := Arr (RA);
+   if A /= C or else RA(1) /= 16 then
+      raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-11.3.0/gcc/testsuite/lib/lto.exp gcc-11.4.0/gcc/testsuite/lib/lto.exp
*** gcc-11.3.0/gcc/testsuite/lib/lto.exp	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/lib/lto.exp	Mon May 29 08:46:31 2023
*************** proc lto_prune_warns { text } {
*** 159,164 ****
--- 159,167 ----
      regsub -all "(^|\n)\[ \t\]*\[\(\]file \[^\n\]* value=\[^\n\]*; file \[^\n\]* value=\[^\n\]*\[)\];" $text "" text
      regsub -all "(^|\n)\[ \t\]*\[^\n\]* definition taken" $text "" text
  
+     # Ignore missing jobserver for tests that do more than 1 LTRANS unit
+     regsub -all "(^|\n)\[^\n\]*: warning: using serial compilation of \[^\n\]*" $text "" text
+ 
      # Ignore informational notes.
      regsub -all "(^|\n)\[^\n\]*: note: \[^\n\]*" $text "" text
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/lib/prune.exp gcc-11.4.0/gcc/testsuite/lib/prune.exp
*** gcc-11.3.0/gcc/testsuite/lib/prune.exp	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/lib/prune.exp	Mon May 29 08:46:31 2023
*************** proc prune_gcc_output { text } {
*** 76,81 ****
--- 76,86 ----
      regsub -all "(^|\n)\[^\n\]*file path prefix \[^\n\]* never used" $text "" text
      regsub -all "(^|\n)\[^\n\]*linker input file unused since linking not done" $text "" text
  
+     # Ideally the tests would indicate that executable stacks were needed
+     # to the linker.  But the option for that varies and may not even exist
+     # on some targets.  So we're stuck pruning the warning.
+     regsub -all "(^|\n)(\[^\n\]*: warning:\[^\n\]*requires executable stack\[^\n\]*\n?)+" $text "\\1" text
+ 
      # Ignore harmless warnings from Xcode 3.2.x.
      regsub -all "(^|\n)\[^\n\]*ld: warning: can't add line info to anonymous symbol\[^\n\]*" $text "" text
      regsub -all "(^|\n)\[^\n\]*warning: DWARFDebugInfoEntry::AppendDependants\[^\n\]*AT_\[^\n\]*FORM_ref4\[^\n\]*" $text "" text
*************** proc prune_gcc_output { text } {
*** 87,92 ****
--- 92,104 ----
      # Ignore dsymutil warning (tool bug is actually linker)
      regsub -all "(^|\n)\[^\n\]*could not find object file symbol for symbol\[^\n\]*" $text "" text
  
+     # Ignore missing lto jobserver for tests that do more than 1 LTRANS unit
+     regsub -all "(^|\n)\[^\n\]*lto\[^\n\]*: warning: using serial compilation of \[^\n\]*" $text "" text
+     regsub -all "(^|\n)\[^\n\]*lto\[^\n\]*: note: see the \[^\n\]*'-flto' option documentation\[^\n\]* for more information" $text "" text
+ 
+     # Many tests that use visibility will still pass on platforms that don't support it.
+     regsub -all "(^|\n)\[^\n\]*lto1: warning: visibility attribute not supported in this configuration; ignored\[^\n\]*" $text "" text
+ 
      # If dg-enable-nn-line-numbers was provided, then obscure source-margin
      # line numbers by converting them to "NN" form.
      set text [maybe-handle-nn-line-numbers $text]
diff -Nrcpad gcc-11.3.0/gcc/testsuite/lib/target-supports.exp gcc-11.4.0/gcc/testsuite/lib/target-supports.exp
*** gcc-11.3.0/gcc/testsuite/lib/target-supports.exp	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/lib/target-supports.exp	Mon May 29 08:46:31 2023
*************** proc check_effective_target_powerpc_sqrt
*** 6087,6095 ****
--- 6087,6098 ----
      }
  
      return [check_no_compiler_messages powerpc_sqrt object {
+ 	void test (void)
+ 	{
  	#ifndef _ARCH_PPCSQ
  	#error _ARCH_PPCSQ is not defined
  	#endif
+ 	}
      } {}]
  }
  
*************** proc check_effective_target_powerpc_p9mo
*** 6196,6258 ****
  # return 1 if our compiler returns the ARCH_PWR defines with the options
  # as provided by the test.
  proc check_effective_target_has_arch_pwr5 { } {
! 	return [check_no_compiler_messages arch_pwr5 assembly {
  		#ifndef _ARCH_PWR5
  		#error does not have power5 support.
  		#else
  		/* "has power5 support" */
  		#endif
! 	}]
  }
  
  proc check_effective_target_has_arch_pwr6 { } {
! 	return [check_no_compiler_messages arch_pwr6 assembly {
  		#ifndef _ARCH_PWR6
  		#error does not have power6 support.
  		#else
  		/* "has power6 support" */
  		#endif
! 	}]
  }
  
  proc check_effective_target_has_arch_pwr7 { } {
! 	return [check_no_compiler_messages arch_pwr7 assembly {
  		#ifndef _ARCH_PWR7
  		#error does not have power7 support.
  		#else
  		/* "has power7 support" */
  		#endif
! 	}]
  }
  
  proc check_effective_target_has_arch_pwr8 { } {
! 	return [check_no_compiler_messages arch_pwr8 assembly {
  		#ifndef _ARCH_PWR8
  		#error does not have power8 support.
  		#else
  		/* "has power8 support" */
  		#endif
! 	}]
  }
  
  proc check_effective_target_has_arch_pwr9 { } {
! 	return [check_no_compiler_messages arch_pwr9 assembly {
  		#ifndef _ARCH_PWR9
  		#error does not have power9 support.
  		#else
  		/* "has power9 support" */
  		#endif
! 	}]
  }
  
  proc check_effective_target_has_arch_pwr10 { } {
! 	return [check_no_compiler_messages arch_pwr10 assembly {
  		#ifndef _ARCH_PWR10
  		#error does not have power10 support.
  		#else
  		/* "has power10 support" */
  		#endif
! 	}]
  }
  
  # Return 1 if this is a PowerPC target supporting -mcpu=power10.
--- 6199,6292 ----
  # return 1 if our compiler returns the ARCH_PWR defines with the options
  # as provided by the test.
  proc check_effective_target_has_arch_pwr5 { } {
! 	return [check_no_compiler_messages_nocache arch_pwr5 assembly {
! 		void test (void)
! 		{
  		#ifndef _ARCH_PWR5
  		#error does not have power5 support.
  		#else
  		/* "has power5 support" */
  		#endif
! 		}
! 	} [current_compiler_flags]]
  }
  
  proc check_effective_target_has_arch_pwr6 { } {
! 	return [check_no_compiler_messages_nocache arch_pwr6 assembly {
! 		void test (void)
! 		{
  		#ifndef _ARCH_PWR6
  		#error does not have power6 support.
  		#else
  		/* "has power6 support" */
  		#endif
! 		}
! 	} [current_compiler_flags]]
  }
  
  proc check_effective_target_has_arch_pwr7 { } {
! 	return [check_no_compiler_messages_nocache arch_pwr7 assembly {
! 		void test (void)
! 		{
  		#ifndef _ARCH_PWR7
  		#error does not have power7 support.
  		#else
  		/* "has power7 support" */
  		#endif
! 		}
! 	} [current_compiler_flags]]
  }
  
  proc check_effective_target_has_arch_pwr8 { } {
! 	return [check_no_compiler_messages_nocache arch_pwr8 assembly {
! 		void test (void)
! 		{
  		#ifndef _ARCH_PWR8
  		#error does not have power8 support.
  		#else
  		/* "has power8 support" */
  		#endif
! 		}
! 	} [current_compiler_flags]]
  }
  
  proc check_effective_target_has_arch_pwr9 { } {
! 	return [check_no_compiler_messages_nocache arch_pwr9 assembly {
! 		void test (void)
! 		{
  		#ifndef _ARCH_PWR9
  		#error does not have power9 support.
  		#else
  		/* "has power9 support" */
  		#endif
! 		}
! 	} [current_compiler_flags]]
  }
  
  proc check_effective_target_has_arch_pwr10 { } {
! 	return [check_no_compiler_messages_nocache arch_pwr10 assembly {
! 		void test (void)
! 		{
  		#ifndef _ARCH_PWR10
  		#error does not have power10 support.
  		#else
  		/* "has power10 support" */
  		#endif
! 		}
! 	} [current_compiler_flags]]
! }
! 
! proc check_effective_target_has_arch_ppc64 { } {
! 	return [check_no_compiler_messages_nocache arch_ppc64 assembly {
! 		void test (void)
! 		{
! 		#ifndef _ARCH_PPC64
! 		#error does not have ppc64 support.
! 		#else
! 		/* "has ppc64 support" */
! 		#endif
! 		}
! 	} [current_compiler_flags]]
  }
  
  # Return 1 if this is a PowerPC target supporting -mcpu=power10.
*************** proc check_effective_target_powerpc_floa
*** 6338,6346 ****
--- 6372,6383 ----
  
  proc check_effective_target_ppc_float128 { } {
      return [check_no_compiler_messages_nocache ppc_float128 object {
+ 	void test (void)
+ 	{
  	#ifndef __FLOAT128__
  	  nope no good
  	#endif
+ 	}
      }]
  }
  
*************** proc check_effective_target_ppc_float128
*** 6348,6356 ****
--- 6385,6396 ----
  
  proc check_effective_target_ppc_float128_insns { } {
      return [check_no_compiler_messages_nocache ppc_float128 object {
+ 	void test (void)
+ 	{
  	#ifndef __FLOAT128_HARDWARE__
  	  nope no good
  	#endif
+ 	}
      }]
  }
  
*************** proc check_effective_target_ppc_float128
*** 6358,6366 ****
--- 6398,6409 ----
  
  proc check_effective_target_powerpc_vsx { } {
      return [check_no_compiler_messages_nocache powerpc_vsx object {
+ 	void test (void)
+ 	{
  	#ifndef __VSX__
  	  nope no vsx
  	#endif
+ 	}
      }]
  }
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc-11.4.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
*** gcc-11.3.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	Mon May 29 08:46:31 2023
***************
*** 2,8 ****
  
  // { dg-do run { target *-*-darwin* } }
  // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
! // { dg-skip-if "Headers incompatible with 10.4 APIs" { *-*-darwin1[1-9]* *-*-darwin2[0-9]* } { "-fnext-runtime" } { "" } }
  // { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
  // This test has no equivalent or meaning for m64/ABI V2
  // { dg-xfail-run-if "No Test Avail" {  *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
--- 2,8 ----
  
  // { dg-do run { target *-*-darwin* } }
  // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
! // { dg-skip-if "Headers incompatible with 10.4 APIs" { *-*-darwin1[1-9]* *-*-darwin2* } { "-fnext-runtime" } { "" } }
  // { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
  // This test has no equivalent or meaning for m64/ABI V2
  // { dg-xfail-run-if "No Test Avail" {  *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
diff -Nrcpad gcc-11.3.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm gcc-11.4.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm
*** gcc-11.3.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm	Mon May 29 08:46:31 2023
***************
*** 3,9 ****
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
  
  /* { dg-do compile } */
! /* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2[0-9]* } { "-fnext-runtime" } { "" } } */
  /* { dg-options "-fobjc-gc" } */
  /* { dg-prune-output "cc1objplus: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
  
--- 3,9 ----
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
  
  /* { dg-do compile } */
! /* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2* } { "-fnext-runtime" } { "" } } */
  /* { dg-options "-fobjc-gc" } */
  /* { dg-prune-output "cc1objplus: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
  
diff -Nrcpad gcc-11.3.0/gcc/testsuite/objc.dg/objc-gc-4.m gcc-11.4.0/gcc/testsuite/objc.dg/objc-gc-4.m
*** gcc-11.3.0/gcc/testsuite/objc.dg/objc-gc-4.m	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/testsuite/objc.dg/objc-gc-4.m	Mon May 29 08:46:31 2023
***************
*** 3,9 ****
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
  
  /* { dg-do compile } */
! /* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2[0-9]* } { "-fnext-runtime" } { "" } } */
  /* { dg-options "-fobjc-gc" } */
  /* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
  
--- 3,9 ----
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
  
  /* { dg-do compile } */
! /* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-9]* *-*-darwin2* } { "-fnext-runtime" } { "" } } */
  /* { dg-options "-fobjc-gc" } */
  /* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
  
diff -Nrcpad gcc-11.3.0/gcc/tree-if-conv.c gcc-11.4.0/gcc/tree-if-conv.c
*** gcc-11.3.0/gcc/tree-if-conv.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-if-conv.c	Mon May 29 08:46:31 2023
*************** if_convertible_loop_p_1 (class loop *loo
*** 1419,1428 ****
--- 1419,1438 ----
        basic_block bb = ifc_bbs[i];
        gimple_stmt_iterator gsi;
  
+       bool may_have_nonlocal_labels
+ 	= bb_with_exit_edge_p (loop, bb) || bb == loop->latch;
        for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
  	switch (gimple_code (gsi_stmt (gsi)))
  	  {
  	  case GIMPLE_LABEL:
+ 	    if (!may_have_nonlocal_labels)
+ 	      {
+ 		tree label
+ 		  = gimple_label_label (as_a <glabel *> (gsi_stmt (gsi)));
+ 		if (DECL_NONLOCAL (label) || FORCED_LABEL (label))
+ 		  return false;
+ 	      }
+ 	    /* Fallthru.  */
  	  case GIMPLE_ASSIGN:
  	  case GIMPLE_CALL:
  	  case GIMPLE_DEBUG:
*************** remove_conditions_and_labels (loop_p loo
*** 2498,2505 ****
        basic_block bb = ifc_bbs[i];
  
        if (bb_with_exit_edge_p (loop, bb)
!         || bb == loop->latch)
!       continue;
  
        for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); )
  	switch (gimple_code (gsi_stmt (gsi)))
--- 2508,2515 ----
        basic_block bb = ifc_bbs[i];
  
        if (bb_with_exit_edge_p (loop, bb)
! 	  || bb == loop->latch)
! 	continue;
  
        for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); )
  	switch (gimple_code (gsi_stmt (gsi)))
diff -Nrcpad gcc-11.3.0/gcc/tree-inline.c gcc-11.4.0/gcc/tree-inline.c
*** gcc-11.3.0/gcc/tree-inline.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-inline.c	Mon May 29 08:46:31 2023
*************** initialize_cfun (tree new_fndecl, tree c
*** 2762,2777 ****
  {
    struct function *src_cfun = DECL_STRUCT_FUNCTION (callee_fndecl);
  
-   if (!DECL_ARGUMENTS (new_fndecl))
-     DECL_ARGUMENTS (new_fndecl) = DECL_ARGUMENTS (callee_fndecl);
-   if (!DECL_RESULT (new_fndecl))
-     DECL_RESULT (new_fndecl) = DECL_RESULT (callee_fndecl);
- 
    /* Register specific tree functions.  */
    gimple_register_cfg_hooks ();
  
    /* Get clean struct function.  */
!   push_struct_function (new_fndecl);
  
    /* We will rebuild these, so just sanity check that they are empty.  */
    gcc_assert (VALUE_HISTOGRAMS (cfun) == NULL);
--- 2762,2773 ----
  {
    struct function *src_cfun = DECL_STRUCT_FUNCTION (callee_fndecl);
  
    /* Register specific tree functions.  */
    gimple_register_cfg_hooks ();
  
    /* Get clean struct function.  */
!   push_struct_function (new_fndecl, true);
!   targetm.target_option.relayout_function (new_fndecl);
  
    /* We will rebuild these, so just sanity check that they are empty.  */
    gcc_assert (VALUE_HISTOGRAMS (cfun) == NULL);
*************** tree_function_versioning (tree old_decl,
*** 6310,6317 ****
    id.transform_parameter = false;
    id.transform_lang_insert_block = NULL;
  
!   old_entry_block = ENTRY_BLOCK_PTR_FOR_FN
!     (DECL_STRUCT_FUNCTION (old_decl));
    DECL_RESULT (new_decl) = DECL_RESULT (old_decl);
    DECL_ARGUMENTS (new_decl) = DECL_ARGUMENTS (old_decl);
    initialize_cfun (new_decl, old_decl,
--- 6306,6312 ----
    id.transform_parameter = false;
    id.transform_lang_insert_block = NULL;
  
!   old_entry_block = ENTRY_BLOCK_PTR_FOR_FN (DECL_STRUCT_FUNCTION (old_decl));
    DECL_RESULT (new_decl) = DECL_RESULT (old_decl);
    DECL_ARGUMENTS (new_decl) = DECL_ARGUMENTS (old_decl);
    initialize_cfun (new_decl, old_decl,
diff -Nrcpad gcc-11.3.0/gcc/tree-into-ssa.c gcc-11.4.0/gcc/tree-into-ssa.c
*** gcc-11.3.0/gcc/tree-into-ssa.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-into-ssa.c	Mon May 29 08:46:31 2023
*************** maybe_register_def (def_operand_p def_p,
*** 1927,1935 ****
  	  tree tracked_var = target_for_debug_bind (sym);
  	  if (tracked_var)
  	    {
! 	      gimple *note = gimple_build_debug_bind (tracked_var, def, stmt);
! 	      /* If stmt ends the bb, insert the debug stmt on the single
! 		 non-EH edge from the stmt.  */
  	      if (gsi_one_before_end_p (gsi) && stmt_ends_bb_p (stmt))
  		{
  		  basic_block bb = gsi_bb (gsi);
--- 1927,1934 ----
  	  tree tracked_var = target_for_debug_bind (sym);
  	  if (tracked_var)
  	    {
! 	      /* If stmt ends the bb, insert the debug stmt on the non-EH
! 		 edge(s) from the stmt.  */
  	      if (gsi_one_before_end_p (gsi) && stmt_ends_bb_p (stmt))
  		{
  		  basic_block bb = gsi_bb (gsi);
*************** maybe_register_def (def_operand_p def_p,
*** 1938,1970 ****
  		  FOR_EACH_EDGE (e, ei, bb->succs)
  		    if (!(e->flags & EDGE_EH))
  		      {
! 			gcc_checking_assert (!ef);
  			ef = e;
! 		      }
! 		  /* If there are other predecessors to ef->dest, then
! 		     there must be PHI nodes for the modified
! 		     variable, and therefore there will be debug bind
! 		     stmts after the PHI nodes.  The debug bind notes
! 		     we'd insert would force the creation of a new
! 		     block (diverging codegen) and be redundant with
! 		     the post-PHI bind stmts, so don't add them.
  
! 		     As for the exit edge, there wouldn't be redundant
! 		     bind stmts, but there wouldn't be a PC to bind
! 		     them to either, so avoid diverging the CFG.  */
! 		  if (ef && single_pred_p (ef->dest)
! 		      && ef->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
! 		    {
! 		      /* If there were PHI nodes in the node, we'd
! 			 have to make sure the value we're binding
! 			 doesn't need rewriting.  But there shouldn't
! 			 be PHI nodes in a single-predecessor block,
! 			 so we just add the note.  */
! 		      gsi_insert_on_edge_immediate (ef, note);
! 		    }
  		}
  	      else
! 		gsi_insert_after (&gsi, note, GSI_SAME_STMT);
  	    }
  	}
  
--- 1937,1982 ----
  		  FOR_EACH_EDGE (e, ei, bb->succs)
  		    if (!(e->flags & EDGE_EH))
  		      {
! 			/* asm goto can have multiple non-EH edges from the
! 			   stmt.  Insert on all of them where it is
! 			   possible.  */
! 			gcc_checking_assert (!ef || (gimple_code (stmt)
! 						     == GIMPLE_ASM));
  			ef = e;
! 			/* If there are other predecessors to ef->dest, then
! 			   there must be PHI nodes for the modified
! 			   variable, and therefore there will be debug bind
! 			   stmts after the PHI nodes.  The debug bind notes
! 			   we'd insert would force the creation of a new
! 			   block (diverging codegen) and be redundant with
! 			   the post-PHI bind stmts, so don't add them.
  
! 			   As for the exit edge, there wouldn't be redundant
! 			   bind stmts, but there wouldn't be a PC to bind
! 			   them to either, so avoid diverging the CFG.  */
! 			if (e
! 			    && single_pred_p (e->dest)
! 			    && gimple_seq_empty_p (phi_nodes (e->dest))
! 			    && e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
! 			  {
! 			    /* If there were PHI nodes in the node, we'd
! 			       have to make sure the value we're binding
! 			       doesn't need rewriting.  But there shouldn't
! 			       be PHI nodes in a single-predecessor block,
! 			       so we just add the note.  */
! 			    gimple *note
! 			      = gimple_build_debug_bind (tracked_var, def,
! 							 stmt);
! 			    gsi_insert_on_edge_immediate (ef, note);
! 			  }
! 		      }
  		}
  	      else
! 		{
! 		  gimple *note
! 		    = gimple_build_debug_bind (tracked_var, def, stmt);
! 		  gsi_insert_after (&gsi, note, GSI_SAME_STMT);
! 		}
  	    }
  	}
  
diff -Nrcpad gcc-11.3.0/gcc/tree-loop-distribution.c gcc-11.4.0/gcc/tree-loop-distribution.c
*** gcc-11.3.0/gcc/tree-loop-distribution.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-loop-distribution.c	Mon May 29 08:46:31 2023
*************** loop_distribution::classify_builtin_ldst
*** 1757,1766 ****
    if (res != 2)
      return;
  
!   /* They much have the same access size.  */
    if (!operand_equal_p (size, src_size, 0))
      return;
  
    /* Load and store in loop nest must access memory in the same way, i.e,
       their must have the same steps in each loop of the nest.  */
    if (dst_steps.length () != src_steps.length ())
--- 1757,1771 ----
    if (res != 2)
      return;
  
!   /* They must have the same access size.  */
    if (!operand_equal_p (size, src_size, 0))
      return;
  
+   /* They must have the same storage order.  */
+   if (reverse_storage_order_for_component_p (DR_REF (dst_dr))
+       != reverse_storage_order_for_component_p (DR_REF (src_dr)))
+     return;
+ 
    /* Load and store in loop nest must access memory in the same way, i.e,
       their must have the same steps in each loop of the nest.  */
    if (dst_steps.length () != src_steps.length ())
*************** struct pg_edge_callback_data
*** 2158,2165 ****
    bitmap sccs_to_merge;
    /* Array constains component information for all vertices.  */
    int *vertices_component;
-   /* Array constains postorder information for all vertices.  */
-   int *vertices_post;
    /* Vector to record all data dependence relations which are needed
       to break strong connected components by runtime alias checks.  */
    vec<ddr_p> *alias_ddrs;
--- 2163,2168 ----
*************** pg_collect_alias_ddrs (struct graph *g,
*** 2409,2414 ****
--- 2412,2444 ----
      cbdata->alias_ddrs->safe_splice (edata->alias_ddrs);
  }
  
+ /* Callback function for traversing edge E.  DATA is private
+    callback data.  */
+ 
+ static void
+ pg_unmark_merged_alias_ddrs (struct graph *, struct graph_edge *e, void *data)
+ {
+   int i, j, component;
+   struct pg_edge_callback_data *cbdata;
+   struct pg_edata *edata = (struct pg_edata *) e->data;
+ 
+   if (edata == NULL || edata->alias_ddrs.length () == 0)
+     return;
+ 
+   cbdata = (struct pg_edge_callback_data *) data;
+   i = e->src;
+   j = e->dest;
+   component = cbdata->vertices_component[i];
+   /* Make sure to not skip vertices inside SCCs we are going to merge.  */
+   if (component == cbdata->vertices_component[j]
+       && bitmap_bit_p (cbdata->sccs_to_merge, component))
+     {
+       edata->alias_ddrs.release ();
+       delete edata;
+       e->data = NULL;
+     }
+ }
+ 
  /* This is the main function breaking strong conected components in
     PARTITIONS giving reduced depdendence graph RDG.  Store data dependence
     relations for runtime alias check in ALIAS_DDRS.  */
*************** loop_distribution::break_alias_scc_parti
*** 2468,2474 ****
        cbdata.sccs_to_merge = sccs_to_merge;
        cbdata.alias_ddrs = alias_ddrs;
        cbdata.vertices_component = XNEWVEC (int, pg->n_vertices);
-       cbdata.vertices_post = XNEWVEC (int, pg->n_vertices);
        /* Record the component information which will be corrupted by next
  	 graph scc finding call.  */
        for (i = 0; i < pg->n_vertices; ++i)
--- 2498,2503 ----
*************** loop_distribution::break_alias_scc_parti
*** 2477,2493 ****
        /* Collect data dependences for runtime alias checks to break SCCs.  */
        if (bitmap_count_bits (sccs_to_merge) != (unsigned) num_sccs)
  	{
! 	  /* Record the postorder information which will be corrupted by next
! 	     graph SCC finding call.  */
! 	  for (i = 0; i < pg->n_vertices; ++i)
! 	    cbdata.vertices_post[i] = pg->vertices[i].post;
  
  	  /* Run SCC finding algorithm again, with alias dependence edges
  	     skipped.  This is to topologically sort partitions according to
  	     compilation time known dependence.  Note the topological order
  	     is stored in the form of pg's post order number.  */
  	  num_sccs_no_alias = graphds_scc (pg, NULL, pg_skip_alias_edge);
! 	  gcc_assert (partitions->length () == (unsigned) num_sccs_no_alias);
  	  /* With topological order, we can construct two subgraphs L and R.
  	     L contains edge <x, y> where x < y in terms of post order, while
  	     R contains edge <x, y> where x > y.  Edges for compilation time
--- 2506,2523 ----
        /* Collect data dependences for runtime alias checks to break SCCs.  */
        if (bitmap_count_bits (sccs_to_merge) != (unsigned) num_sccs)
  	{
! 	  /* For SCCs we want to merge clear all alias_ddrs for edges
! 	     inside the component.  */
! 	  for_each_edge (pg, pg_unmark_merged_alias_ddrs, &cbdata);
  
  	  /* Run SCC finding algorithm again, with alias dependence edges
  	     skipped.  This is to topologically sort partitions according to
  	     compilation time known dependence.  Note the topological order
  	     is stored in the form of pg's post order number.  */
  	  num_sccs_no_alias = graphds_scc (pg, NULL, pg_skip_alias_edge);
! 	  /* We cannot assert partitions->length () == num_sccs_no_alias
! 	     since we are not ignoring alias edges in cycles we are
! 	     going to merge.  That's required to compute correct postorder.  */
  	  /* With topological order, we can construct two subgraphs L and R.
  	     L contains edge <x, y> where x < y in terms of post order, while
  	     R contains edge <x, y> where x > y.  Edges for compilation time
*************** loop_distribution::break_alias_scc_parti
*** 2522,2537 ****
  	      first->type = PTYPE_SEQUENTIAL;
  	    }
  	}
!       /* Restore the postorder information if it's corrupted in finding SCC
! 	 with alias dependence edges skipped.  If reduction partition's SCC is
! 	 broken by runtime alias checks, we force a negative post order to it
! 	 making sure it will be scheduled in the last.  */
        if (num_sccs_no_alias > 0)
  	{
  	  j = -1;
  	  for (i = 0; i < pg->n_vertices; ++i)
  	    {
- 	      pg->vertices[i].post = cbdata.vertices_post[i];
  	      struct pg_vdata *data = (struct pg_vdata *)pg->vertices[i].data;
  	      if (data->partition && partition_reduction_p (data->partition))
  		{
--- 2552,2565 ----
  	      first->type = PTYPE_SEQUENTIAL;
  	    }
  	}
!       /* If reduction partition's SCC is broken by runtime alias checks,
! 	 we force a negative post order to it making sure it will be scheduled
! 	 in the last.  */
        if (num_sccs_no_alias > 0)
  	{
  	  j = -1;
  	  for (i = 0; i < pg->n_vertices; ++i)
  	    {
  	      struct pg_vdata *data = (struct pg_vdata *)pg->vertices[i].data;
  	      if (data->partition && partition_reduction_p (data->partition))
  		{
*************** loop_distribution::break_alias_scc_parti
*** 2544,2550 ****
  	}
  
        free (cbdata.vertices_component);
-       free (cbdata.vertices_post);
      }
  
    sort_partitions_by_post_order (pg, partitions);
--- 2572,2577 ----
diff -Nrcpad gcc-11.3.0/gcc/tree-nested.c gcc-11.4.0/gcc/tree-nested.c
*** gcc-11.3.0/gcc/tree-nested.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-nested.c	Mon May 29 08:46:31 2023
*************** convert_nonlocal_omp_clauses (tree *pcla
*** 1559,1587 ****
  	  break;
  
  	case OMP_CLAUSE_LASTPRIVATE:
- 	  {
- 	    tree save_local_var_chain = info->new_local_var_chain;
- 	    info->new_local_var_chain = NULL;
- 	    gimple_seq *seq = &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause);
- 	    walk_body (convert_nonlocal_reference_stmt,
- 		       convert_nonlocal_reference_op, info, seq);
- 	    if (info->new_local_var_chain)
- 	      declare_vars (info->new_local_var_chain,
- 			    gimple_seq_first_stmt (*seq), false);
- 	    info->new_local_var_chain = save_local_var_chain;
- 	  }
- 	  break;
- 
  	case OMP_CLAUSE_LINEAR:
  	  {
  	    tree save_local_var_chain = info->new_local_var_chain;
  	    info->new_local_var_chain = NULL;
! 	    gimple_seq *seq = &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause);
  	    walk_body (convert_nonlocal_reference_stmt,
  		       convert_nonlocal_reference_op, info, seq);
  	    if (info->new_local_var_chain)
! 	      declare_vars (info->new_local_var_chain,
! 			    gimple_seq_first_stmt (*seq), false);
  	    info->new_local_var_chain = save_local_var_chain;
  	  }
  	  break;
--- 1559,1587 ----
  	  break;
  
  	case OMP_CLAUSE_LASTPRIVATE:
  	case OMP_CLAUSE_LINEAR:
  	  {
  	    tree save_local_var_chain = info->new_local_var_chain;
  	    info->new_local_var_chain = NULL;
! 	    gimple_seq *seq;
! 	    if (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LASTPRIVATE)
! 	      seq = &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause);
! 	    else
! 	      seq = &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause);
  	    walk_body (convert_nonlocal_reference_stmt,
  		       convert_nonlocal_reference_op, info, seq);
  	    if (info->new_local_var_chain)
! 	      {
! 		gimple *g = gimple_seq_first_stmt (*seq);
! 		if (gimple_code (g) != GIMPLE_BIND)
! 		  {
! 		    g = gimple_build_bind (NULL_TREE, *seq, NULL_TREE);
! 		    *seq = NULL;
! 		    gimple_seq_add_stmt_without_update (seq, g);
! 		  }
! 		declare_vars (info->new_local_var_chain,
! 			      gimple_seq_first_stmt (*seq), false);
! 	      }
  	    info->new_local_var_chain = save_local_var_chain;
  	  }
  	  break;
diff -Nrcpad gcc-11.3.0/gcc/tree-predcom.c gcc-11.4.0/gcc/tree-predcom.c
*** gcc-11.3.0/gcc/tree-predcom.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-predcom.c	Mon May 29 08:46:31 2023
*************** ref_at_iteration (data_reference_p dr, i
*** 1651,1660 ****
  	  ref = TREE_OPERAND (ref, 0);
  	}
      }
!   tree addr = fold_build_pointer_plus (DR_BASE_ADDRESS (dr), off);
    addr = force_gimple_operand_1 (unshare_expr (addr), stmts,
  				 is_gimple_mem_ref_addr, NULL_TREE);
-   tree alias_ptr = fold_convert (reference_alias_ptr_type (ref), coff);
    tree type = build_aligned_type (TREE_TYPE (ref),
  				  get_object_alignment (ref));
    ref = build2 (MEM_REF, type, addr, alias_ptr);
--- 1651,1674 ----
  	  ref = TREE_OPERAND (ref, 0);
  	}
      }
!   /* We may not associate the constant offset across the pointer plus
!      expression because that might form a pointer to before the object
!      then.  But for some cases we can retain that to allow tree_could_trap_p
!      to return false - see gcc.dg/tree-ssa/predcom-1.c  */
!   tree addr, alias_ptr;
!   if (integer_zerop  (off))
!     {
!       alias_ptr = fold_convert (reference_alias_ptr_type (ref), coff);
!       addr = DR_BASE_ADDRESS (dr);
!     }
!   else
!     {
!       alias_ptr = build_zero_cst (reference_alias_ptr_type (ref));
!       off = size_binop (PLUS_EXPR, off, coff);
!       addr = fold_build_pointer_plus (DR_BASE_ADDRESS (dr), off);
!     }
    addr = force_gimple_operand_1 (unshare_expr (addr), stmts,
  				 is_gimple_mem_ref_addr, NULL_TREE);
    tree type = build_aligned_type (TREE_TYPE (ref),
  				  get_object_alignment (ref));
    ref = build2 (MEM_REF, type, addr, alias_ptr);
diff -Nrcpad gcc-11.3.0/gcc/tree-sra.c gcc-11.4.0/gcc/tree-sra.c
*** gcc-11.3.0/gcc/tree-sra.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-sra.c	Mon May 29 08:46:31 2023
*************** build_ref_for_offset (location_t loc, tr
*** 1647,1653 ****
  static tree
  build_reconstructed_reference (location_t, tree base, struct access *model)
  {
!   tree expr = model->expr, prev_expr = NULL;
    while (!types_compatible_p (TREE_TYPE (expr), TREE_TYPE (base)))
      {
        if (!handled_component_p (expr))
--- 1647,1664 ----
  static tree
  build_reconstructed_reference (location_t, tree base, struct access *model)
  {
!   tree expr = model->expr;
!   /* We have to make sure to start just below the outermost union.  */
!   tree start_expr = expr;
!   while (handled_component_p (expr))
!     {
!       if (TREE_CODE (TREE_TYPE (TREE_OPERAND (expr, 0))) == UNION_TYPE)
! 	start_expr = expr;
!       expr = TREE_OPERAND (expr, 0);
!     }
! 
!   expr = start_expr;
!   tree prev_expr = NULL_TREE;
    while (!types_compatible_p (TREE_TYPE (expr), TREE_TYPE (base)))
      {
        if (!handled_component_p (expr))
*************** sra_modify_expr (tree *expr, gimple_stmt
*** 3817,3823 ****
  	    }
  	}
        else
! 	*expr = repl;
        sra_stats.exprs++;
      }
    else if (write && access->grp_to_be_debug_replaced)
--- 3828,3850 ----
  	    }
  	}
        else
! 	{
! 	  /* If we are going to replace a scalar field in a structure with
! 	     reverse storage order by a stand-alone scalar, we are going to
! 	     effectively byte-swap the scalar and we also need to byte-swap
! 	     the portion of it represented by the bit-field.  */
! 	  if (bfr && REF_REVERSE_STORAGE_ORDER (bfr))
! 	    {
! 	      REF_REVERSE_STORAGE_ORDER (bfr) = 0;
! 	      TREE_OPERAND (bfr, 2)
! 		= size_binop (MINUS_EXPR, TYPE_SIZE (TREE_TYPE (repl)),
! 			      size_binop (PLUS_EXPR, TREE_OPERAND (bfr, 1),
! 						     TREE_OPERAND (bfr, 2)));
! 	    }
! 
! 	  *expr = repl;
! 	}
! 
        sra_stats.exprs++;
      }
    else if (write && access->grp_to_be_debug_replaced)
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-alias.c gcc-11.4.0/gcc/tree-ssa-alias.c
*** gcc-11.3.0/gcc/tree-ssa-alias.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-alias.c	Mon May 29 08:46:31 2023
*************** aliasing_component_refs_p (tree ref1,
*** 1274,1280 ****
    /* If we didn't find a common base, try the other way around.  */
    if (cmp_outer <= 0 
        || (end_struct_ref1
! 	  && compare_type_sizes (TREE_TYPE (end_struct_ref1), type1) <= 0))
      {
        int res = aliasing_component_refs_walk (ref2, type2, base2,
  					      offset2, max_size2,
--- 1274,1280 ----
    /* If we didn't find a common base, try the other way around.  */
    if (cmp_outer <= 0 
        || (end_struct_ref1
! 	  && compare_type_sizes (TREE_TYPE (end_struct_ref1), type2) <= 0))
      {
        int res = aliasing_component_refs_walk (ref2, type2, base2,
  					      offset2, max_size2,
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-ccp.c gcc-11.4.0/gcc/tree-ssa-ccp.c
*** gcc-11.3.0/gcc/tree-ssa-ccp.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-ccp.c	Mon May 29 08:46:31 2023
*************** bit_value_binop (enum tree_code code, si
*** 1412,1417 ****
--- 1412,1419 ----
  		  *mask = wi::lrotate (r1mask, shift, width);
  		  *val = wi::lrotate (r1val, shift, width);
  		}
+ 	      *mask = wi::ext (*mask, width, sgn);
+ 	      *val = wi::ext (*val, width, sgn);
  	    }
  	}
        break;
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-dom.c gcc-11.4.0/gcc/tree-ssa-dom.c
*** gcc-11.3.0/gcc/tree-ssa-dom.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-dom.c	Mon May 29 08:46:31 2023
*************** record_edge_info (basic_block bb)
*** 540,548 ****
              {
                tree cond = build2 (code, boolean_type_node, op0, op1);
                tree inverted = invert_truthvalue_loc (loc, cond);
!               bool can_infer_simple_equiv
!                 = !(HONOR_SIGNED_ZEROS (op0)
!                     && real_zerop (op0));
  	      class edge_info *edge_info;
  
  	      edge_info = new class edge_info (true_edge);
--- 540,548 ----
              {
                tree cond = build2 (code, boolean_type_node, op0, op1);
                tree inverted = invert_truthvalue_loc (loc, cond);
! 	      bool can_infer_simple_equiv
! 		= !(HONOR_SIGNED_ZEROS (op0) && real_maybe_zerop (op0))
! 		  && !DECIMAL_FLOAT_MODE_P (element_mode (TREE_TYPE (op0)));
  	      class edge_info *edge_info;
  
  	      edge_info = new class edge_info (true_edge);
*************** record_edge_info (basic_block bb)
*** 564,572 ****
              {
                tree cond = build2 (code, boolean_type_node, op0, op1);
                tree inverted = invert_truthvalue_loc (loc, cond);
!               bool can_infer_simple_equiv
!                 = !(HONOR_SIGNED_ZEROS (op1)
!                     && (TREE_CODE (op1) == SSA_NAME || real_zerop (op1)));
  	      class edge_info *edge_info;
  
  	      edge_info = new class edge_info (true_edge);
--- 564,572 ----
              {
                tree cond = build2 (code, boolean_type_node, op0, op1);
                tree inverted = invert_truthvalue_loc (loc, cond);
! 	      bool can_infer_simple_equiv
! 		= !(HONOR_SIGNED_ZEROS (op1) && real_maybe_zerop (op1))
! 		  && !DECIMAL_FLOAT_MODE_P (element_mode (TREE_TYPE (op1)));
  	      class edge_info *edge_info;
  
  	      edge_info = new class edge_info (true_edge);
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-loop-im.c gcc-11.4.0/gcc/tree-ssa-loop-im.c
*** gcc-11.3.0/gcc/tree-ssa-loop-im.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-loop-im.c	Mon May 29 08:46:31 2023
*************** sm_seq_valid_bb (class loop *loop, basic
*** 2463,2468 ****
--- 2463,2476 ----
        gcc_assert (data);
        if (data->ref == UNANALYZABLE_MEM_ID)
  	return -1;
+       /* Stop at memory references which we can't move.  */
+       else if (TREE_THIS_VOLATILE
+ 		 (memory_accesses.refs_list[data->ref]->mem.ref))
+ 	{
+ 	  /* Mark refs_not_in_seq as unsupported.  */
+ 	  bitmap_ior_into (refs_not_supported, refs_not_in_seq);
+ 	  return 1;
+ 	}
        /* One of the stores we want to apply SM to and we've not yet seen.  */
        else if (bitmap_clear_bit (refs_not_in_seq, data->ref))
  	{
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-loop-ivopts.c gcc-11.4.0/gcc/tree-ssa-loop-ivopts.c
*** gcc-11.3.0/gcc/tree-ssa-loop-ivopts.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-loop-ivopts.c	Mon May 29 08:46:31 2023
*************** along with GCC; see the file COPYING3.
*** 131,136 ****
--- 131,137 ----
  #include "builtins.h"
  #include "tree-vectorizer.h"
  #include "dbgcnt.h"
+ #include "cfganal.h"
  
  /* For lang_hooks.types.type_for_mode.  */
  #include "langhooks.h"
*************** idx_record_use (tree base, tree *idx,
*** 2125,2132 ****
    find_interesting_uses_op (data, *idx);
    if (TREE_CODE (base) == ARRAY_REF || TREE_CODE (base) == ARRAY_RANGE_REF)
      {
!       find_interesting_uses_op (data, array_ref_element_size (base));
!       find_interesting_uses_op (data, array_ref_low_bound (base));
      }
    return true;
  }
--- 2126,2135 ----
    find_interesting_uses_op (data, *idx);
    if (TREE_CODE (base) == ARRAY_REF || TREE_CODE (base) == ARRAY_RANGE_REF)
      {
!       if (TREE_OPERAND (base, 2))
! 	find_interesting_uses_op (data, TREE_OPERAND (base, 2));
!       if (TREE_OPERAND (base, 3))
! 	find_interesting_uses_op (data, TREE_OPERAND (base, 3));
      }
    return true;
  }
*************** create_new_iv (struct ivopts_data *data,
*** 7107,7112 ****
--- 7110,7121 ----
      case IP_END:
        incr_pos = gsi_last_bb (ip_end_pos (data->current_loop));
        after = true;
+       if (!gsi_end_p (incr_pos) && stmt_ends_bb_p (gsi_stmt (incr_pos)))
+ 	{
+ 	  edge e = find_edge (gsi_bb (incr_pos), data->current_loop->header);
+ 	  incr_pos = gsi_after_labels (split_edge (e));
+ 	  after = false;
+ 	}
        break;
  
      case IP_AFTER_USE:
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-math-opts.c gcc-11.4.0/gcc/tree-ssa-math-opts.c
*** gcc-11.3.0/gcc/tree-ssa-math-opts.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-math-opts.c	Mon May 29 08:46:31 2023
*************** powi_cost (HOST_WIDE_INT n)
*** 1459,1465 ****
      return 0;
  
    /* Ignore the reciprocal when calculating the cost.  */
!   val = (n < 0) ? -n : n;
  
    /* Initialize the exponent cache.  */
    memset (cache, 0, POWI_TABLE_SIZE * sizeof (bool));
--- 1459,1465 ----
      return 0;
  
    /* Ignore the reciprocal when calculating the cost.  */
!   val = absu_hwi (n);
  
    /* Initialize the exponent cache.  */
    memset (cache, 0, POWI_TABLE_SIZE * sizeof (bool));
*************** powi_cost (HOST_WIDE_INT n)
*** 1492,1498 ****
  
  static tree
  powi_as_mults_1 (gimple_stmt_iterator *gsi, location_t loc, tree type,
! 		 HOST_WIDE_INT n, tree *cache)
  {
    tree op0, op1, ssa_target;
    unsigned HOST_WIDE_INT digit;
--- 1492,1498 ----
  
  static tree
  powi_as_mults_1 (gimple_stmt_iterator *gsi, location_t loc, tree type,
! 		 unsigned HOST_WIDE_INT n, tree *cache)
  {
    tree op0, op1, ssa_target;
    unsigned HOST_WIDE_INT digit;
*************** powi_as_mults (gimple_stmt_iterator *gsi
*** 1545,1551 ****
    memset (cache, 0, sizeof (cache));
    cache[1] = arg0;
  
!   result = powi_as_mults_1 (gsi, loc, type, (n < 0) ? -n : n, cache);
    if (n >= 0)
      return result;
  
--- 1545,1551 ----
    memset (cache, 0, sizeof (cache));
    cache[1] = arg0;
  
!   result = powi_as_mults_1 (gsi, loc, type, absu_hwi (n), cache);
    if (n >= 0)
      return result;
  
*************** static tree
*** 1569,1579 ****
  gimple_expand_builtin_powi (gimple_stmt_iterator *gsi, location_t loc, 
  			    tree arg0, HOST_WIDE_INT n)
  {
!   /* Avoid largest negative number.  */
!   if (n != -n
!       && ((n >= -1 && n <= 2)
! 	  || (optimize_function_for_speed_p (cfun)
! 	      && powi_cost (n) <= POWI_MAX_MULTS)))
      return powi_as_mults (gsi, loc, arg0, n);
  
    return NULL_TREE;
--- 1569,1577 ----
  gimple_expand_builtin_powi (gimple_stmt_iterator *gsi, location_t loc, 
  			    tree arg0, HOST_WIDE_INT n)
  {
!   if ((n >= -1 && n <= 2)
!       || (optimize_function_for_speed_p (cfun)
! 	  && powi_cost (n) <= POWI_MAX_MULTS))
      return powi_as_mults (gsi, loc, arg0, n);
  
    return NULL_TREE;
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-reassoc.c gcc-11.4.0/gcc/tree-ssa-reassoc.c
*** gcc-11.3.0/gcc/tree-ssa-reassoc.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-reassoc.c	Mon May 29 08:46:31 2023
*************** build_and_add_sum (tree type, tree op1,
*** 1520,1525 ****
--- 1520,1534 ----
        && (!op2def || gimple_nop_p (op2def)))
      {
        gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun)));
+       if (!gsi_end_p (gsi)
+ 	  && is_gimple_call (gsi_stmt (gsi))
+ 	  && (gimple_call_flags (gsi_stmt (gsi)) & ECF_RETURNS_TWICE))
+ 	{
+ 	  /* Don't add statements before a returns_twice call at the start
+ 	     of a function.  */
+ 	  split_edge (single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (cfun)));
+ 	  gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun)));
+ 	}
        if (gsi_end_p (gsi))
  	{
  	  gimple_stmt_iterator gsi2
*************** swap_ops_for_binary_stmt (vec<operand_en
*** 5054,5070 ****
  }
  
  /* If definition of RHS1 or RHS2 dominates STMT, return the later of those
!    two definitions, otherwise return STMT.  */
  
  static inline gimple *
! find_insert_point (gimple *stmt, tree rhs1, tree rhs2)
  {
    if (TREE_CODE (rhs1) == SSA_NAME
        && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs1)))
!     stmt = SSA_NAME_DEF_STMT (rhs1);
    if (TREE_CODE (rhs2) == SSA_NAME
        && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs2)))
!     stmt = SSA_NAME_DEF_STMT (rhs2);
    return stmt;
  }
  
--- 5063,5088 ----
  }
  
  /* If definition of RHS1 or RHS2 dominates STMT, return the later of those
!    two definitions, otherwise return STMT.  Sets INSERT_BEFORE to indicate
!    whether RHS1 op RHS2 can be inserted before or needs to be inserted
!    after the returned stmt.  */
  
  static inline gimple *
! find_insert_point (gimple *stmt, tree rhs1, tree rhs2, bool &insert_before)
  {
+   insert_before = true;
    if (TREE_CODE (rhs1) == SSA_NAME
        && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs1)))
!     {
!       stmt = SSA_NAME_DEF_STMT (rhs1);
!       insert_before = false;
!     }
    if (TREE_CODE (rhs2) == SSA_NAME
        && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs2)))
!     {
!       stmt = SSA_NAME_DEF_STMT (rhs2);
!       insert_before = false;
!     }
    return stmt;
  }
  
*************** insert_stmt_before_use (gimple *stmt, gi
*** 5076,5082 ****
    gcc_assert (is_gimple_assign (stmt_to_insert));
    tree rhs1 = gimple_assign_rhs1 (stmt_to_insert);
    tree rhs2 = gimple_assign_rhs2 (stmt_to_insert);
!   gimple *insert_point = find_insert_point (stmt, rhs1, rhs2);
    gimple_stmt_iterator gsi = gsi_for_stmt (insert_point);
    gimple_set_uid (stmt_to_insert, gimple_uid (insert_point));
  
--- 5094,5101 ----
    gcc_assert (is_gimple_assign (stmt_to_insert));
    tree rhs1 = gimple_assign_rhs1 (stmt_to_insert);
    tree rhs2 = gimple_assign_rhs2 (stmt_to_insert);
!   bool insert_before;
!   gimple *insert_point = find_insert_point (stmt, rhs1, rhs2, insert_before);
    gimple_stmt_iterator gsi = gsi_for_stmt (insert_point);
    gimple_set_uid (stmt_to_insert, gimple_uid (insert_point));
  
*************** insert_stmt_before_use (gimple *stmt, gi
*** 5084,5090 ****
       the point where operand rhs1 or rhs2 is defined. In this case,
       stmt_to_insert has to be inserted afterwards. This would
       only happen when the stmt insertion point is flexible. */
!   if (stmt == insert_point)
      gsi_insert_before (&gsi, stmt_to_insert, GSI_NEW_STMT);
    else
      insert_stmt_after (stmt_to_insert, insert_point);
--- 5103,5109 ----
       the point where operand rhs1 or rhs2 is defined. In this case,
       stmt_to_insert has to be inserted afterwards. This would
       only happen when the stmt insertion point is flexible. */
!   if (insert_before)
      gsi_insert_before (&gsi, stmt_to_insert, GSI_NEW_STMT);
    else
      insert_stmt_after (stmt_to_insert, insert_point);
*************** rewrite_expr_tree (gimple *stmt, enum tr
*** 5143,5164 ****
  	     return lhs), force creation of a new SSA_NAME.  */
  	  if (changed || ((rhs1 != oe2->op || rhs2 != oe1->op) && opindex))
  	    {
  	      gimple *insert_point
! 		= find_insert_point (stmt, oe1->op, oe2->op);
  	      lhs = make_ssa_name (TREE_TYPE (lhs));
  	      stmt
  		= gimple_build_assign (lhs, rhs_code,
  				       oe1->op, oe2->op);
  	      gimple_set_uid (stmt, uid);
  	      gimple_set_visited (stmt, true);
! 	      if (insert_point == gsi_stmt (gsi))
  		gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
  	      else
  		insert_stmt_after (stmt, insert_point);
  	    }
  	  else
  	    {
! 	      gcc_checking_assert (find_insert_point (stmt, oe1->op, oe2->op)
  				   == stmt);
  	      gimple_assign_set_rhs1 (stmt, oe1->op);
  	      gimple_assign_set_rhs2 (stmt, oe2->op);
--- 5162,5186 ----
  	     return lhs), force creation of a new SSA_NAME.  */
  	  if (changed || ((rhs1 != oe2->op || rhs2 != oe1->op) && opindex))
  	    {
+ 	      bool insert_before;
  	      gimple *insert_point
! 		= find_insert_point (stmt, oe1->op, oe2->op, insert_before);
  	      lhs = make_ssa_name (TREE_TYPE (lhs));
  	      stmt
  		= gimple_build_assign (lhs, rhs_code,
  				       oe1->op, oe2->op);
  	      gimple_set_uid (stmt, uid);
  	      gimple_set_visited (stmt, true);
! 	      if (insert_before)
  		gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
  	      else
  		insert_stmt_after (stmt, insert_point);
  	    }
  	  else
  	    {
! 	      bool insert_before;
! 	      gcc_checking_assert (find_insert_point (stmt, oe1->op, oe2->op,
! 						      insert_before)
  				   == stmt);
  	      gimple_assign_set_rhs1 (stmt, oe1->op);
  	      gimple_assign_set_rhs2 (stmt, oe2->op);
*************** rewrite_expr_tree (gimple *stmt, enum tr
*** 5214,5234 ****
  	{
  	  gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
  	  unsigned int uid = gimple_uid (stmt);
! 	  gimple *insert_point = find_insert_point (stmt, new_rhs1, oe->op);
  
  	  lhs = make_ssa_name (TREE_TYPE (lhs));
  	  stmt = gimple_build_assign (lhs, rhs_code,
  				      new_rhs1, oe->op);
  	  gimple_set_uid (stmt, uid);
  	  gimple_set_visited (stmt, true);
! 	  if (insert_point == gsi_stmt (gsi))
  	    gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
  	  else
  	    insert_stmt_after (stmt, insert_point);
  	}
        else
  	{
! 	  gcc_checking_assert (find_insert_point (stmt, new_rhs1, oe->op)
  			       == stmt);
  	  gimple_assign_set_rhs1 (stmt, new_rhs1);
  	  gimple_assign_set_rhs2 (stmt, oe->op);
--- 5236,5260 ----
  	{
  	  gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
  	  unsigned int uid = gimple_uid (stmt);
! 	  bool insert_before;
! 	  gimple *insert_point = find_insert_point (stmt, new_rhs1, oe->op,
! 						    insert_before);
  
  	  lhs = make_ssa_name (TREE_TYPE (lhs));
  	  stmt = gimple_build_assign (lhs, rhs_code,
  				      new_rhs1, oe->op);
  	  gimple_set_uid (stmt, uid);
  	  gimple_set_visited (stmt, true);
! 	  if (insert_before)
  	    gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
  	  else
  	    insert_stmt_after (stmt, insert_point);
  	}
        else
  	{
! 	  bool insert_before;
! 	  gcc_checking_assert (find_insert_point (stmt, new_rhs1, oe->op,
! 						  insert_before)
  			       == stmt);
  	  gimple_assign_set_rhs1 (stmt, new_rhs1);
  	  gimple_assign_set_rhs2 (stmt, oe->op);
*************** try_special_add_to_ops (vec<operand_entr
*** 5708,5714 ****
  	   && gimple_assign_rhs_code (def_stmt) == NEGATE_EXPR
  	   && !HONOR_SNANS (TREE_TYPE (op))
  	   && (!HONOR_SIGNED_ZEROS (TREE_TYPE (op))
! 	       || !COMPLEX_FLOAT_TYPE_P (TREE_TYPE (op))))
      {
        tree rhs1 = gimple_assign_rhs1 (def_stmt);
        tree cst = build_minus_one_cst (TREE_TYPE (op));
--- 5734,5742 ----
  	   && gimple_assign_rhs_code (def_stmt) == NEGATE_EXPR
  	   && !HONOR_SNANS (TREE_TYPE (op))
  	   && (!HONOR_SIGNED_ZEROS (TREE_TYPE (op))
! 	       || !COMPLEX_FLOAT_TYPE_P (TREE_TYPE (op)))
! 	   && (!FLOAT_TYPE_P (TREE_TYPE (op))
! 	       || !DECIMAL_FLOAT_MODE_P (element_mode (op))))
      {
        tree rhs1 = gimple_assign_rhs1 (def_stmt);
        tree cst = build_minus_one_cst (TREE_TYPE (op));
*************** repropagate_negates (void)
*** 5838,5847 ****
    FOR_EACH_VEC_ELT (plus_negates, i, negate)
      {
        gimple *user = get_single_immediate_use (negate);
- 
        if (!user || !is_gimple_assign (user))
  	continue;
  
        /* The negate operand can be either operand of a PLUS_EXPR
  	 (it can be the LHS if the RHS is a constant for example).
  
--- 5866,5879 ----
    FOR_EACH_VEC_ELT (plus_negates, i, negate)
      {
        gimple *user = get_single_immediate_use (negate);
        if (!user || !is_gimple_assign (user))
  	continue;
  
+       tree negateop = gimple_assign_rhs1 (SSA_NAME_DEF_STMT (negate));
+       if (TREE_CODE (negateop) == SSA_NAME
+ 	  && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (negateop))
+ 	continue;
+ 
        /* The negate operand can be either operand of a PLUS_EXPR
  	 (it can be the LHS if the RHS is a constant for example).
  
*************** repropagate_negates (void)
*** 5864,5872 ****
  	  if (gimple_assign_rhs2 (user) == negate)
  	    {
  	      tree rhs1 = gimple_assign_rhs1 (user);
- 	      tree rhs2 = gimple_assign_rhs1 (SSA_NAME_DEF_STMT (negate));
  	      gimple_stmt_iterator gsi = gsi_for_stmt (user);
! 	      gimple_assign_set_rhs_with_ops (&gsi, MINUS_EXPR, rhs1, rhs2);
  	      update_stmt (user);
  	    }
  	}
--- 5896,5904 ----
  	  if (gimple_assign_rhs2 (user) == negate)
  	    {
  	      tree rhs1 = gimple_assign_rhs1 (user);
  	      gimple_stmt_iterator gsi = gsi_for_stmt (user);
! 	      gimple_assign_set_rhs_with_ops (&gsi, MINUS_EXPR, rhs1,
! 					      negateop);
  	      update_stmt (user);
  	    }
  	}
*************** repropagate_negates (void)
*** 5875,5895 ****
  	  if (gimple_assign_rhs1 (user) == negate)
  	    {
  	      /* We have
! 	           x = -a
  		   y = x - b
  		 which we transform into
! 		   x = a + b
  		   y = -x .
  		 This pushes down the negate which we possibly can merge
  		 into some other operation, hence insert it into the
  		 plus_negates vector.  */
  	      gimple *feed = SSA_NAME_DEF_STMT (negate);
- 	      tree a = gimple_assign_rhs1 (feed);
  	      tree b = gimple_assign_rhs2 (user);
  	      gimple_stmt_iterator gsi = gsi_for_stmt (feed);
  	      gimple_stmt_iterator gsi2 = gsi_for_stmt (user);
  	      tree x = make_ssa_name (TREE_TYPE (gimple_assign_lhs (feed)));
! 	      gimple *g = gimple_build_assign (x, PLUS_EXPR, a, b);
  	      gsi_insert_before (&gsi2, g, GSI_SAME_STMT);
  	      gimple_assign_set_rhs_with_ops (&gsi2, NEGATE_EXPR, x);
  	      user = gsi_stmt (gsi2);
--- 5907,5926 ----
  	  if (gimple_assign_rhs1 (user) == negate)
  	    {
  	      /* We have
! 		   x = -negateop
  		   y = x - b
  		 which we transform into
! 		   x = negateop + b
  		   y = -x .
  		 This pushes down the negate which we possibly can merge
  		 into some other operation, hence insert it into the
  		 plus_negates vector.  */
  	      gimple *feed = SSA_NAME_DEF_STMT (negate);
  	      tree b = gimple_assign_rhs2 (user);
  	      gimple_stmt_iterator gsi = gsi_for_stmt (feed);
  	      gimple_stmt_iterator gsi2 = gsi_for_stmt (user);
  	      tree x = make_ssa_name (TREE_TYPE (gimple_assign_lhs (feed)));
! 	      gimple *g = gimple_build_assign (x, PLUS_EXPR, negateop, b);
  	      gsi_insert_before (&gsi2, g, GSI_SAME_STMT);
  	      gimple_assign_set_rhs_with_ops (&gsi2, NEGATE_EXPR, x);
  	      user = gsi_stmt (gsi2);
*************** repropagate_negates (void)
*** 5900,5912 ****
  	    }
  	  else
  	    {
! 	      /* Transform "x = -a; y = b - x" into "y = b + a", getting
! 	         rid of one operation.  */
! 	      gimple *feed = SSA_NAME_DEF_STMT (negate);
! 	      tree a = gimple_assign_rhs1 (feed);
  	      tree rhs1 = gimple_assign_rhs1 (user);
  	      gimple_stmt_iterator gsi = gsi_for_stmt (user);
! 	      gimple_assign_set_rhs_with_ops (&gsi, PLUS_EXPR, rhs1, a);
  	      update_stmt (gsi_stmt (gsi));
  	    }
  	}
--- 5931,5941 ----
  	    }
  	  else
  	    {
! 	      /* Transform "x = -negateop; y = b - x" into "y = b + negateop",
! 		 getting rid of one operation.  */
  	      tree rhs1 = gimple_assign_rhs1 (user);
  	      gimple_stmt_iterator gsi = gsi_for_stmt (user);
! 	      gimple_assign_set_rhs_with_ops (&gsi, PLUS_EXPR, rhs1, negateop);
  	      update_stmt (gsi_stmt (gsi));
  	    }
  	}
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-sccvn.c gcc-11.4.0/gcc/tree-ssa-sccvn.c
*** gcc-11.3.0/gcc/tree-ssa-sccvn.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-sccvn.c	Mon May 29 08:46:31 2023
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 3197,3208 ****
        poly_int64 extra_off = 0;
        if (j == 0 && i >= 0
  	  && lhs_ops[0].opcode == MEM_REF
! 	  && maybe_ne (lhs_ops[0].off, -1))
  	{
  	  if (known_eq (lhs_ops[0].off, vr->operands[i].off))
  	    i--, j--;
  	  else if (vr->operands[i].opcode == MEM_REF
! 		   && maybe_ne (vr->operands[i].off, -1))
  	    {
  	      extra_off = vr->operands[i].off - lhs_ops[0].off;
  	      i--, j--;
--- 3197,3208 ----
        poly_int64 extra_off = 0;
        if (j == 0 && i >= 0
  	  && lhs_ops[0].opcode == MEM_REF
! 	  && known_ne (lhs_ops[0].off, -1))
  	{
  	  if (known_eq (lhs_ops[0].off, vr->operands[i].off))
  	    i--, j--;
  	  else if (vr->operands[i].opcode == MEM_REF
! 		   && known_ne (vr->operands[i].off, -1))
  	    {
  	      extra_off = vr->operands[i].off - lhs_ops[0].off;
  	      i--, j--;
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 3229,3234 ****
--- 3229,3235 ----
        copy_reference_ops_from_ref (rhs1, &rhs);
  
        /* Apply an extra offset to the inner MEM_REF of the RHS.  */
+       bool force_no_tbaa = false;
        if (maybe_ne (extra_off, 0))
  	{
  	  if (rhs.length () < 2)
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 3241,3246 ****
--- 3242,3251 ----
  	  rhs[ix].op0 = int_const_binop (PLUS_EXPR, rhs[ix].op0,
  					 build_int_cst (TREE_TYPE (rhs[ix].op0),
  							extra_off));
+ 	  /* When we have offsetted the RHS, reading only parts of it,
+ 	     we can no longer use the original TBAA type, force alias-set
+ 	     zero.  */
+ 	  force_no_tbaa = true;
  	}
  
        /* Save the operands since we need to use the original ones for
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 3293,3300 ****
        /* Adjust *ref from the new operands.  */
        ao_ref rhs1_ref;
        ao_ref_init (&rhs1_ref, rhs1);
!       if (!ao_ref_init_from_vn_reference (&r, ao_ref_alias_set (&rhs1_ref),
! 					  ao_ref_base_alias_set (&rhs1_ref),
  					  vr->type, vr->operands))
  	return (void *)-1;
        /* This can happen with bitfields.  */
--- 3298,3308 ----
        /* Adjust *ref from the new operands.  */
        ao_ref rhs1_ref;
        ao_ref_init (&rhs1_ref, rhs1);
!       if (!ao_ref_init_from_vn_reference (&r,
! 					  force_no_tbaa ? 0
! 					  : ao_ref_alias_set (&rhs1_ref),
! 					  force_no_tbaa ? 0
! 					  : ao_ref_base_alias_set (&rhs1_ref),
  					  vr->type, vr->operands))
  	return (void *)-1;
        /* This can happen with bitfields.  */
*************** dominated_by_p_w_unex (basic_block bb1,
*** 4586,4626 ****
      }
  
    /* Iterate to the single executable bb2 successor.  */
!   edge succe = NULL;
!   FOR_EACH_EDGE (e, ei, bb2->succs)
!     if ((e->flags & EDGE_EXECUTABLE)
! 	|| (!allow_back && (e->flags & EDGE_DFS_BACK)))
!       {
! 	if (succe)
! 	  {
! 	    succe = NULL;
! 	    break;
! 	  }
! 	succe = e;
!       }
!   if (succe)
      {
!       /* Verify the reached block is only reached through succe.
! 	 If there is only one edge we can spare us the dominator
! 	 check and iterate directly.  */
!       if (EDGE_COUNT (succe->dest->preds) > 1)
! 	{
! 	  FOR_EACH_EDGE (e, ei, succe->dest->preds)
! 	    if (e != succe
! 		&& ((e->flags & EDGE_EXECUTABLE)
! 		    || (!allow_back && (e->flags & EDGE_DFS_BACK))))
  	      {
  		succe = NULL;
  		break;
  	      }
! 	}
        if (succe)
  	{
! 	  bb2 = succe->dest;
  
! 	  /* Re-do the dominance check with changed bb2.  */
! 	  if (dominated_by_p (CDI_DOMINATORS, bb1, bb2))
! 	    return true;
  	}
      }
  
--- 4594,4637 ----
      }
  
    /* Iterate to the single executable bb2 successor.  */
!   if (EDGE_COUNT (bb2->succs) > 1)
      {
!       edge succe = NULL;
!       FOR_EACH_EDGE (e, ei, bb2->succs)
! 	if ((e->flags & EDGE_EXECUTABLE)
! 	    || (!allow_back && (e->flags & EDGE_DFS_BACK)))
! 	  {
! 	    if (succe)
  	      {
  		succe = NULL;
  		break;
  	      }
! 	    succe = e;
! 	  }
        if (succe)
  	{
! 	  /* Verify the reached block is only reached through succe.
! 	     If there is only one edge we can spare us the dominator
! 	     check and iterate directly.  */
! 	  if (EDGE_COUNT (succe->dest->preds) > 1)
! 	    {
! 	      FOR_EACH_EDGE (e, ei, succe->dest->preds)
! 		if (e != succe
! 		    && ((e->flags & EDGE_EXECUTABLE)
! 			|| (!allow_back && (e->flags & EDGE_DFS_BACK))))
! 		  {
! 		    succe = NULL;
! 		    break;
! 		  }
! 	    }
! 	  if (succe)
! 	    {
! 	      bb2 = succe->dest;
  
! 	      /* Re-do the dominance check with changed bb2.  */
! 	      if (dominated_by_p (CDI_DOMINATORS, bb1, bb2))
! 		return true;
! 	    }
  	}
      }
  
*************** valueized_wider_op (tree wide_type, tree
*** 4843,4849 ****
  
    /* For constants simply extend it.  */
    if (TREE_CODE (op) == INTEGER_CST)
!     return wide_int_to_tree (wide_type, wi::to_wide (op));
  
    return NULL_TREE;
  }
--- 4854,4860 ----
  
    /* For constants simply extend it.  */
    if (TREE_CODE (op) == INTEGER_CST)
!     return wide_int_to_tree (wide_type, wi::to_widest (op));
  
    return NULL_TREE;
  }
*************** visit_reference_op_store (tree lhs, tree
*** 5239,5257 ****
  
    if (!resultsame)
      {
-       /* Only perform the following when being called from PRE
- 	 which embeds tail merging.  */
-       if (default_vn_walk_kind == VN_WALK)
- 	{
- 	  assign = build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, op);
- 	  vn_reference_lookup (assign, vuse, VN_NOWALK, &vnresult, false);
- 	  if (vnresult)
- 	    {
- 	      VN_INFO (vdef)->visited = true;
- 	      return set_ssa_val_to (vdef, vnresult->result_vdef);
- 	    }
- 	}
- 
        if (dump_file && (dump_flags & TDF_DETAILS))
  	{
  	  fprintf (dump_file, "No store match\n");
--- 5250,5255 ----
*************** visit_reference_op_store (tree lhs, tree
*** 5276,5282 ****
        if (default_vn_walk_kind == VN_WALK)
  	{
  	  assign = build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, op);
! 	  vn_reference_insert (assign, lhs, vuse, vdef);
  	}
      }
    else
--- 5274,5282 ----
        if (default_vn_walk_kind == VN_WALK)
  	{
  	  assign = build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, op);
! 	  vn_reference_lookup (assign, vuse, VN_NOWALK, &vnresult, false);
! 	  if (!vnresult)
! 	    vn_reference_insert (assign, lhs, vuse, vdef);
  	}
      }
    else
*************** expressions_equal_p (tree e1, tree e2)
*** 5789,5794 ****
--- 5789,5801 ----
    if (e1 == VN_TOP || e2 == VN_TOP)
      return true;
  
+   /* If only one of them is null, they cannot be equal.  While in general
+      this should not happen for operations like TARGET_MEM_REF some
+      operands are optional and an identity value we could substitute
+      has differing semantics.  */
+   if (!e1 || !e2)
+     return false;
+ 
    /* SSA_NAME compare pointer equal.  */
    if (TREE_CODE (e1) == SSA_NAME || TREE_CODE (e2) == SSA_NAME)
      return false;
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-sink.c gcc-11.4.0/gcc/tree-ssa-sink.c
*** gcc-11.3.0/gcc/tree-ssa-sink.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-sink.c	Mon May 29 08:46:31 2023
*************** statement_sink_location (gimple *stmt, b
*** 390,395 ****
--- 390,398 ----
  		 with the use.  */
  	      if (gimple_code (use_stmt) == GIMPLE_PHI)
  		{
+ 		  /* If the PHI defines the virtual operand, ignore it.  */
+ 		  if (gimple_phi_result (use_stmt) == gimple_vuse (stmt))
+ 		    continue;
  		  /* In case the PHI node post-dominates the current insert
  		     location we can disregard it.  But make sure it is not
  		     dominating it as well as can happen in a CFG cycle.  */
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa-strlen.c gcc-11.4.0/gcc/tree-ssa-strlen.c
*** gcc-11.3.0/gcc/tree-ssa-strlen.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa-strlen.c	Mon May 29 08:46:31 2023
*************** count_nonzero_bytes (tree exp, unsigned
*** 4523,4529 ****
  
    /* Compute the number of leading nonzero bytes in the representation
       and update the minimum and maximum.  */
!   unsigned n = prep ? strnlen (prep, nbytes) : nbytes;
  
    if (n < lenrange[0])
      lenrange[0] = n;
--- 4523,4529 ----
  
    /* Compute the number of leading nonzero bytes in the representation
       and update the minimum and maximum.  */
!   unsigned HOST_WIDE_INT n = prep ? strnlen (prep, nbytes) : nbytes;
  
    if (n < lenrange[0])
      lenrange[0] = n;
diff -Nrcpad gcc-11.3.0/gcc/tree-ssa.c gcc-11.4.0/gcc/tree-ssa.c
*** gcc-11.3.0/gcc/tree-ssa.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-ssa.c	Mon May 29 08:46:31 2023
*************** maybe_rewrite_mem_ref_base (tree *tp, bi
*** 1416,1421 ****
--- 1416,1423 ----
  	       && (! INTEGRAL_TYPE_P (TREE_TYPE (*tp)) 
  		   || (wi::to_offset (TYPE_SIZE (TREE_TYPE (*tp)))
  		       == TYPE_PRECISION (TREE_TYPE (*tp))))
+ 	       && (! INTEGRAL_TYPE_P (TREE_TYPE (sym))
+ 		   || type_has_mode_precision_p (TREE_TYPE (sym)))
  	       && wi::umod_trunc (wi::to_offset (TYPE_SIZE (TREE_TYPE (*tp))),
  				  BITS_PER_UNIT) == 0)
  	{
*************** non_rewritable_mem_ref_base (tree ref)
*** 1488,1493 ****
--- 1490,1499 ----
  	  && (! INTEGRAL_TYPE_P (TREE_TYPE (base))
  	      || (wi::to_offset (TYPE_SIZE (TREE_TYPE (base)))
  		  == TYPE_PRECISION (TREE_TYPE (base))))
+ 	  /* ???  Likewise for extracts from bitfields, we'd have
+ 	     to pun the base object to a size precision mode first.  */
+ 	  && (! INTEGRAL_TYPE_P (TREE_TYPE (decl))
+ 	      || type_has_mode_precision_p (TREE_TYPE (decl)))
  	  && wi::umod_trunc (wi::to_offset (TYPE_SIZE (TREE_TYPE (base))),
  			     BITS_PER_UNIT) == 0)
  	return NULL_TREE;
diff -Nrcpad gcc-11.3.0/gcc/tree-vect-generic.c gcc-11.4.0/gcc/tree-vect-generic.c
*** gcc-11.3.0/gcc/tree-vect-generic.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-vect-generic.c	Mon May 29 08:46:32 2023
*************** expand_vector_condition (gimple_stmt_ite
*** 1007,1012 ****
--- 1007,1021 ----
        return true;
      }
  
+   /* If a has vector boolean type and is a comparison, above
+      expand_vec_cond_expr_p might fail, even if both the comparison and
+      VEC_COND_EXPR could be supported individually.  See PR109176.  */
+   if (a_is_comparison
+       && VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (a))
+       && expand_vec_cond_expr_p (type, TREE_TYPE (a), SSA_NAME)
+       && expand_vec_cmp_expr_p (TREE_TYPE (a1), TREE_TYPE (a), code))
+     return true;
+ 
    /* Handle vector boolean types with bitmasks.  If there is a comparison
       and we can expand the comparison into the vector boolean bitmask,
       or otherwise if it is compatible with type, we can transform
diff -Nrcpad gcc-11.3.0/gcc/tree-vect-loop.c gcc-11.4.0/gcc/tree-vect-loop.c
*** gcc-11.3.0/gcc/tree-vect-loop.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-vect-loop.c	Mon May 29 08:46:32 2023
*************** get_initial_def_for_reduction (loop_vec_
*** 4730,4739 ****
          else
            def_for_init = build_int_cst (scalar_type, int_init_val);
  
! 	if (adjustment_def || operand_equal_p (def_for_init, init_val, 0))
  	  {
  	    /* Option1: the first element is '0' or '1' as well.  */
! 	    if (!operand_equal_p (def_for_init, init_val, 0))
  	      *adjustment_def = init_val;
  	    init_def = gimple_build_vector_from_val (&stmts, vectype,
  						     def_for_init);
--- 4730,4743 ----
          else
            def_for_init = build_int_cst (scalar_type, int_init_val);
  
! 	bool same_p = operand_equal_p (def_for_init, init_val, 0);
! 	init_val = gimple_convert (&stmts, TREE_TYPE (vectype), init_val);
! 	def_for_init = gimple_convert (&stmts, TREE_TYPE (vectype), def_for_init);
! 
! 	if (adjustment_def || same_p)
  	  {
  	    /* Option1: the first element is '0' or '1' as well.  */
! 	    if (!same_p)
  	      *adjustment_def = init_val;
  	    init_def = gimple_build_vector_from_val (&stmts, vectype,
  						     def_for_init);
*************** vect_create_epilog_for_reduction (loop_v
*** 5945,5953 ****
  	{
            new_temp = scalar_results[0];
  	  gcc_assert (TREE_CODE (TREE_TYPE (adjustment_def)) != VECTOR_TYPE);
! 	  adjustment_def = gimple_convert (&stmts, scalar_type, adjustment_def);
! 	  new_temp = gimple_build (&stmts, code, scalar_type,
  				   new_temp, adjustment_def);
  	}
  
        epilog_stmt = gimple_seq_last_stmt (stmts);
--- 5949,5960 ----
  	{
            new_temp = scalar_results[0];
  	  gcc_assert (TREE_CODE (TREE_TYPE (adjustment_def)) != VECTOR_TYPE);
! 	  adjustment_def = gimple_convert (&stmts, TREE_TYPE (vectype),
! 					   adjustment_def);
! 	  new_temp = gimple_convert (&stmts, TREE_TYPE (vectype), new_temp);
! 	  new_temp = gimple_build (&stmts, code, TREE_TYPE (vectype),
  				   new_temp, adjustment_def);
+ 	  new_temp = gimple_convert (&stmts, scalar_type, new_temp);
  	}
  
        epilog_stmt = gimple_seq_last_stmt (stmts);
*************** vectorizable_reduction (loop_vec_info lo
*** 6476,6481 ****
--- 6483,6489 ----
  {
    tree scalar_dest;
    tree vectype_in = NULL_TREE;
+   tree vectype_op[3] = { NULL_TREE, NULL_TREE, NULL_TREE };
    class loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
    enum vect_def_type cond_reduc_dt = vect_unknown_def_type;
    stmt_vec_info cond_stmt_vinfo = NULL;
*************** vectorizable_reduction (loop_vec_info lo
*** 6486,6492 ****
    bool nested_cycle = false;
    bool double_reduc = false;
    int vec_num;
-   tree tem;
    tree cr_index_scalar_type = NULL_TREE, cr_index_vector_type = NULL_TREE;
    tree cond_reduc_val = NULL_TREE;
  
--- 6494,6499 ----
*************** vectorizable_reduction (loop_vec_info lo
*** 6589,6598 ****
  	}
        if (!REDUC_GROUP_FIRST_ELEMENT (vdef))
  	only_slp_reduc_chain = false;
!       /* ???  For epilogue generation live members of the chain need
           to point back to the PHI via their original stmt for
! 	 info_for_reduction to work.  */
!       if (STMT_VINFO_LIVE_P (vdef))
  	STMT_VINFO_REDUC_DEF (def) = phi_info;
        gassign *assign = dyn_cast <gassign *> (vdef->stmt);
        if (!assign)
--- 6596,6615 ----
  	}
        if (!REDUC_GROUP_FIRST_ELEMENT (vdef))
  	only_slp_reduc_chain = false;
!       /* For epilogue generation live members of the chain need
           to point back to the PHI via their original stmt for
! 	 info_for_reduction to work.  For SLP we need to look at
! 	 all lanes here - even though we only will vectorize from
! 	 the SLP node with live lane zero the other live lanes also
! 	 need to be identified as part of a reduction to be able
! 	 to skip code generation for them.  */
!       if (slp_for_stmt_info)
! 	{
! 	  for (auto s : SLP_TREE_SCALAR_STMTS (slp_for_stmt_info))
! 	    if (STMT_VINFO_LIVE_P (s))
! 	      STMT_VINFO_REDUC_DEF (vect_orig_stmt (s)) = phi_info;
! 	}
!       else if (STMT_VINFO_LIVE_P (vdef))
  	STMT_VINFO_REDUC_DEF (def) = phi_info;
        gassign *assign = dyn_cast <gassign *> (vdef->stmt);
        if (!assign)
*************** vectorizable_reduction (loop_vec_info lo
*** 6723,6730 ****
        enum vect_def_type dt;
        tree op;
        if (!vect_is_simple_use (loop_vinfo, stmt_info, slp_for_stmt_info,
! 			       i + opno_adjust, &op, &slp_op[i], &dt, &tem,
! 			       &def_stmt_info))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 6740,6747 ----
        enum vect_def_type dt;
        tree op;
        if (!vect_is_simple_use (loop_vinfo, stmt_info, slp_for_stmt_info,
! 			       i + opno_adjust, &op, &slp_op[i], &dt,
! 			       &vectype_op[i], &def_stmt_info))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_reduction (loop_vec_info lo
*** 6739,6753 ****
        if (VECTORIZABLE_CYCLE_DEF (dt))
  	return false;
  
        /* To properly compute ncopies we are interested in the widest
  	 non-reduction input type in case we're looking at a widening
  	 accumulation that we later handle in vect_transform_reduction.  */
        if (lane_reduc_code_p
! 	  && tem
  	  && (!vectype_in
  	      || (GET_MODE_SIZE (SCALAR_TYPE_MODE (TREE_TYPE (vectype_in)))
! 		  < GET_MODE_SIZE (SCALAR_TYPE_MODE (TREE_TYPE (tem))))))
! 	vectype_in = tem;
  
        if (code == COND_EXPR)
  	{
--- 6756,6775 ----
        if (VECTORIZABLE_CYCLE_DEF (dt))
  	return false;
  
+       if (!vectype_op[i])
+ 	vectype_op[i]
+ 	  = get_vectype_for_scalar_type (loop_vinfo,
+ 					 TREE_TYPE (op), slp_op[i]);
+ 
        /* To properly compute ncopies we are interested in the widest
  	 non-reduction input type in case we're looking at a widening
  	 accumulation that we later handle in vect_transform_reduction.  */
        if (lane_reduc_code_p
! 	  && vectype_op[i]
  	  && (!vectype_in
  	      || (GET_MODE_SIZE (SCALAR_TYPE_MODE (TREE_TYPE (vectype_in)))
! 		  < GET_MODE_SIZE (SCALAR_TYPE_MODE (TREE_TYPE (vectype_op[i]))))))
! 	vectype_in = vectype_op[i];
  
        if (code == COND_EXPR)
  	{
*************** vectorizable_reduction (loop_vec_info lo
*** 7270,7276 ****
  	   && code != SAD_EXPR
  	   && reduction_type != FOLD_LEFT_REDUCTION))
      for (i = 0; i < op_type; i++)
!       if (!vect_maybe_update_slp_op_vectype (slp_op[i], vectype_in))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 7292,7298 ----
  	   && code != SAD_EXPR
  	   && reduction_type != FOLD_LEFT_REDUCTION))
      for (i = 0; i < op_type; i++)
!       if (!vect_maybe_update_slp_op_vectype (slp_op[i], vectype_op[i]))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_live_operation (vec_info *v
*** 8578,8587 ****
  	     all involved stmts together.  */
  	  else if (slp_index != 0)
  	    return true;
- 	  else
- 	    /* For SLP reductions the meta-info is attached to
- 	       the representative.  */
- 	    stmt_info = SLP_TREE_REPRESENTATIVE (slp_node);
  	}
        stmt_vec_info reduc_info = info_for_reduction (loop_vinfo, stmt_info);
        gcc_assert (reduc_info->is_reduc_info);
--- 8600,8605 ----
*************** vectorizable_live_operation (vec_info *v
*** 8864,8872 ****
  						use_stmt))
  	      {
  		enum tree_code code = gimple_assign_rhs_code (use_stmt);
! 		gcc_assert (code == CONSTRUCTOR
! 			    || code == VIEW_CONVERT_EXPR
! 			    || CONVERT_EXPR_CODE_P (code));
  		if (dump_enabled_p ())
  		  dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
  				   "Using original scalar computation for "
--- 8882,8891 ----
  						use_stmt))
  	      {
  		enum tree_code code = gimple_assign_rhs_code (use_stmt);
! 		gcc_checking_assert (code == SSA_NAME
! 				     || code == CONSTRUCTOR
! 				     || code == VIEW_CONVERT_EXPR
! 				     || CONVERT_EXPR_CODE_P (code));
  		if (dump_enabled_p ())
  		  dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
  				   "Using original scalar computation for "
diff -Nrcpad gcc-11.3.0/gcc/tree-vect-patterns.c gcc-11.4.0/gcc/tree-vect-patterns.c
*** gcc-11.3.0/gcc/tree-vect-patterns.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-vect-patterns.c	Mon May 29 08:46:32 2023
*************** vect_widened_op_tree (vec_info *vinfo, s
*** 579,585 ****
  	  if (shift_p && i == 1)
  	    return 0;
  
! 	  if (!vect_look_through_possible_promotion (vinfo, op, this_unprom))
  	    return 0;
  
  	  if (TYPE_PRECISION (this_unprom->type) == TYPE_PRECISION (type))
--- 579,603 ----
  	  if (shift_p && i == 1)
  	    return 0;
  
! 	  if (rhs_code != code)
! 	    {
! 	      /* If rhs_code is widened_code, don't look through further
! 		 possible promotions, there is a promotion already embedded
! 		 in the WIDEN_*_EXPR.  */
! 	      if (TREE_CODE (op) != SSA_NAME
! 		  || !INTEGRAL_TYPE_P (TREE_TYPE (op)))
! 		return 0;
! 
! 	      stmt_vec_info def_stmt_info;
! 	      gimple *def_stmt;
! 	      vect_def_type dt;
! 	      if (!vect_is_simple_use (op, vinfo, &dt, &def_stmt_info,
! 				       &def_stmt))
! 		return 0;
! 	      this_unprom->set_op (op, dt, NULL);
! 	    }
! 	  else if (!vect_look_through_possible_promotion (vinfo, op,
! 							  this_unprom))
  	    return 0;
  
  	  if (TYPE_PRECISION (this_unprom->type) == TYPE_PRECISION (type))
*************** vect_recog_widen_sum_pattern (vec_info *
*** 1519,1525 ****
       of the above pattern.  */
  
    if (!vect_reassociating_reduction_p (vinfo, stmt_vinfo, PLUS_EXPR,
! 				       &oprnd0, &oprnd1))
      return NULL;
  
    type = gimple_expr_type (last_stmt);
--- 1537,1545 ----
       of the above pattern.  */
  
    if (!vect_reassociating_reduction_p (vinfo, stmt_vinfo, PLUS_EXPR,
! 				       &oprnd0, &oprnd1)
!       || TREE_CODE (oprnd0) != SSA_NAME
!       || !vinfo->lookup_def (oprnd0))
      return NULL;
  
    type = gimple_expr_type (last_stmt);
diff -Nrcpad gcc-11.3.0/gcc/tree-vect-slp.c gcc-11.4.0/gcc/tree-vect-slp.c
*** gcc-11.3.0/gcc/tree-vect-slp.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-vect-slp.c	Mon May 29 08:46:32 2023
*************** vect_slp_analyze_node_operations_1 (vec_
*** 3824,3830 ****
  
    /* Handle purely internal nodes.  */
    if (SLP_TREE_CODE (node) == VEC_PERM_EXPR)
!     return vectorizable_slp_permutation (vinfo, NULL, node, cost_vec);
  
    gcc_assert (STMT_SLP_TYPE (stmt_info) != loop_vect);
    if (is_a <bb_vec_info> (vinfo)
--- 3824,3846 ----
  
    /* Handle purely internal nodes.  */
    if (SLP_TREE_CODE (node) == VEC_PERM_EXPR)
!     {
!       if (!vectorizable_slp_permutation (vinfo, NULL, node, cost_vec))
! 	return false;
! 
!       stmt_vec_info slp_stmt_info;
!       unsigned int i;
!       FOR_EACH_VEC_ELT (SLP_TREE_SCALAR_STMTS (node), i, slp_stmt_info)
! 	{
! 	  if (STMT_VINFO_LIVE_P (slp_stmt_info)
! 	      && !vectorizable_live_operation (vinfo,
! 					       slp_stmt_info, NULL, node,
! 					       node_instance, i,
! 					       false, cost_vec))
! 	    return false;
! 	}
!       return true;
!     }
  
    gcc_assert (STMT_SLP_TYPE (stmt_info) != loop_vect);
    if (is_a <bb_vec_info> (vinfo)
*************** vect_schedule_slp_node (vec_info *vinfo,
*** 6319,6324 ****
--- 6335,6347 ----
  	  gcc_assert (seen_vector_def);
  	  si = gsi_after_labels (as_a <bb_vec_info> (vinfo)->bbs[0]);
  	}
+       else if (is_ctrl_altering_stmt (last_stmt))
+ 	{
+ 	  /* We split regions to vectorize at control altering stmts
+ 	     with a definition so this must be an external which
+ 	     we can insert at the start of the region.  */
+ 	  si = gsi_after_labels (as_a <bb_vec_info> (vinfo)->bbs[0]);
+ 	}
        else if (is_a <bb_vec_info> (vinfo)
  	       && gimple_bb (last_stmt) != gimple_bb (stmt_info->stmt)
  	       && gimple_could_trap_p (stmt_info->stmt))
*************** vect_schedule_slp_node (vec_info *vinfo,
*** 6343,6350 ****
  	}
      }
  
-   bool done_p = false;
- 
    /* Handle purely internal nodes.  */
    if (SLP_TREE_CODE (node) == VEC_PERM_EXPR)
      {
--- 6366,6371 ----
*************** vect_schedule_slp_node (vec_info *vinfo,
*** 6355,6363 ****
  	 but open-code it here (partly).  */
        bool done = vectorizable_slp_permutation (vinfo, &si, node, NULL);
        gcc_assert (done);
!       done_p = true;
      }
!   if (!done_p)
      vect_transform_stmt (vinfo, stmt_info, &si, node, instance);
  }
  
--- 6376,6393 ----
  	 but open-code it here (partly).  */
        bool done = vectorizable_slp_permutation (vinfo, &si, node, NULL);
        gcc_assert (done);
!       stmt_vec_info slp_stmt_info;
!       unsigned int i;
!       FOR_EACH_VEC_ELT (SLP_TREE_SCALAR_STMTS (node), i, slp_stmt_info)
! 	if (STMT_VINFO_LIVE_P (slp_stmt_info))
! 	  {
! 	    done = vectorizable_live_operation (vinfo,
! 						slp_stmt_info, &si, node,
! 						instance, i, true, NULL);
! 	    gcc_assert (done);
! 	  }
      }
!   else
      vect_transform_stmt (vinfo, stmt_info, &si, node, instance);
  }
  
diff -Nrcpad gcc-11.3.0/gcc/tree-vect-stmts.c gcc-11.4.0/gcc/tree-vect-stmts.c
*** gcc-11.3.0/gcc/tree-vect-stmts.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree-vect-stmts.c	Mon May 29 08:46:32 2023
*************** get_group_load_store_type (vec_info *vin
*** 2207,2212 ****
--- 2207,2243 ----
  	      gcc_assert (!loop_vinfo || cmp > 0);
  	      *memory_access_type = VMAT_CONTIGUOUS;
  	    }
+ 
+ 	  /* When we have a contiguous access across loop iterations
+ 	     but the access in the loop doesn't cover the full vector
+ 	     we can end up with no gap recorded but still excess
+ 	     elements accessed, see PR103116.  Make sure we peel for
+ 	     gaps if necessary and sufficient and give up if not.  */
+ 	  if (loop_vinfo
+ 	      && *memory_access_type == VMAT_CONTIGUOUS
+ 	      && SLP_TREE_LOAD_PERMUTATION (slp_node).exists ()
+ 	      && !multiple_p (group_size * LOOP_VINFO_VECT_FACTOR (loop_vinfo),
+ 			      nunits))
+ 	    {
+ 	      unsigned HOST_WIDE_INT cnunits, cvf;
+ 	      if (!can_overrun_p
+ 		  || !nunits.is_constant (&cnunits)
+ 		  || !LOOP_VINFO_VECT_FACTOR (loop_vinfo).is_constant (&cvf)
+ 		  /* Peeling for gaps assumes that a single scalar iteration
+ 		     is enough to make sure the last vector iteration doesn't
+ 		     access excess elements.
+ 		     ???  Enhancements include peeling multiple iterations
+ 		     or using masked loads with a static mask.  */
+ 		  || (group_size * cvf) % cnunits + group_size < cnunits)
+ 		{
+ 		  if (dump_enabled_p ())
+ 		    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
+ 				     "peeling for gaps insufficient for "
+ 				     "access\n");
+ 		  return false;
+ 		}
+ 	      overrun_p = true;
+ 	    }
  	}
      }
    else
*************** vectorizable_assignment (vec_info *vinfo
*** 5232,5239 ****
  		       GET_MODE_SIZE (TYPE_MODE (vectype_in)))))
      return false;
  
!   if (VECTOR_BOOLEAN_TYPE_P (vectype)
!       && !VECTOR_BOOLEAN_TYPE_P (vectype_in))
      {
        if (dump_enabled_p ())
  	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
--- 5263,5269 ----
  		       GET_MODE_SIZE (TYPE_MODE (vectype_in)))))
      return false;
  
!   if (VECTOR_BOOLEAN_TYPE_P (vectype) != VECTOR_BOOLEAN_TYPE_P (vectype_in))
      {
        if (dump_enabled_p ())
  	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
*************** vectorizable_load (vec_info *vinfo,
*** 8911,8916 ****
--- 8941,8947 ----
        unsigned int group_el = 0;
        unsigned HOST_WIDE_INT
  	elsz = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (vectype)));
+       unsigned int n_groups = 0;
        for (j = 0; j < ncopies; j++)
  	{
  	  if (nloads > 1)
*************** vectorizable_load (vec_info *vinfo,
*** 8932,8943 ****
  	      if (! slp
  		  || group_el == group_size)
  		{
! 		  tree newoff = copy_ssa_name (running_off);
! 		  gimple *incr = gimple_build_assign (newoff, POINTER_PLUS_EXPR,
! 						      running_off, stride_step);
! 		  vect_finish_stmt_generation (vinfo, stmt_info, incr, gsi);
! 
! 		  running_off = newoff;
  		  group_el = 0;
  		}
  	    }
--- 8963,8981 ----
  	      if (! slp
  		  || group_el == group_size)
  		{
! 		  n_groups++;
! 		  /* When doing SLP make sure to not load elements from
! 		     the next vector iteration, those will not be accessed
! 		     so just use the last element again.  See PR107451.  */
! 		  if (!slp || known_lt (n_groups, vf))
! 		    {
! 		      tree newoff = copy_ssa_name (running_off);
! 		      gimple *incr
! 			= gimple_build_assign (newoff, POINTER_PLUS_EXPR,
! 					       running_off, stride_step);
! 		      vect_finish_stmt_generation (vinfo, stmt_info, incr, gsi);
! 		      running_off = newoff;
! 		    }
  		  group_el = 0;
  		}
  	    }
diff -Nrcpad gcc-11.3.0/gcc/tree.c gcc-11.4.0/gcc/tree.c
*** gcc-11.3.0/gcc/tree.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree.c	Mon May 29 08:46:32 2023
*************** real_minus_onep (const_tree expr)
*** 3025,3030 ****
--- 3025,3059 ----
      }
  }
  
+ /* Return true if T could be a floating point zero.  */
+ 
+ bool
+ real_maybe_zerop (const_tree expr)
+ {
+   switch (TREE_CODE (expr))
+     {
+     case REAL_CST:
+       /* Can't use real_zerop here, as it always returns false for decimal
+ 	 floats.  And can't use TREE_REAL_CST (expr).cl == rvc_zero
+ 	 either, as decimal zeros are rvc_normal.  */
+       return real_equal (&TREE_REAL_CST (expr), &dconst0);
+     case COMPLEX_CST:
+       return (real_maybe_zerop (TREE_REALPART (expr))
+ 	      || real_maybe_zerop (TREE_IMAGPART (expr)));
+     case VECTOR_CST:
+       {
+ 	unsigned count = vector_cst_encoded_nelts (expr);
+ 	for (unsigned int i = 0; i < count; ++i)
+ 	  if (real_maybe_zerop (VECTOR_CST_ENCODED_ELT (expr, i)))
+ 	    return true;
+ 	return false;
+       }
+     default:
+       /* Perhaps for SSA_NAMEs we could query frange.  */
+       return true;
+     }
+ }
+ 
  /* Nonzero if EXP is a constant or a cast of a constant.  */
  
  bool
diff -Nrcpad gcc-11.3.0/gcc/tree.h gcc-11.4.0/gcc/tree.h
*** gcc-11.3.0/gcc/tree.h	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/tree.h	Mon May 29 08:46:32 2023
*************** extern bool needs_to_live_in_memory (con
*** 5282,5287 ****
--- 5282,5288 ----
  extern tree reconstruct_complex_type (tree, tree);
  extern bool real_onep (const_tree);
  extern bool real_minus_onep (const_tree);
+ extern bool real_maybe_zerop (const_tree);
  extern void init_ttree (void);
  extern void build_common_tree_nodes (bool);
  extern void build_common_builtin_nodes (void);
diff -Nrcpad gcc-11.3.0/gcc/value-prof.c gcc-11.4.0/gcc/value-prof.c
*** gcc-11.3.0/gcc/value-prof.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/value-prof.c	Mon May 29 08:46:32 2023
*************** stream_out_histogram_value (struct outpu
*** 336,341 ****
--- 336,345 ----
  	/* Note that the IOR counter tracks pointer values and these can have
  	   sign bit set.  */
  	;
+       else if (hist->type == HIST_TYPE_INDIR_CALL && i == 0)
+ 	/* 'all' counter overflow is stored as a negative value. Individual
+ 	   counters and values are expected to be non-negative.  */
+ 	;
        else
  	gcc_assert (value >= 0);
  
diff -Nrcpad gcc-11.3.0/gcc/varasm.c gcc-11.4.0/gcc/varasm.c
*** gcc-11.3.0/gcc/varasm.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/varasm.c	Mon May 29 08:46:32 2023
*************** assemble_variable (tree decl, int top_le
*** 2380,2386 ****
    else
      {
        /* Special-case handling of vtv comdat sections.  */
!       if (sect->named.name
  	  && (strcmp (sect->named.name, ".vtable_map_vars") == 0))
  	handle_vtv_comdat_section (sect, decl);
        else
--- 2380,2386 ----
    else
      {
        /* Special-case handling of vtv comdat sections.  */
!       if (SECTION_STYLE (sect) == SECTION_NAMED
  	  && (strcmp (sect->named.name, ".vtable_map_vars") == 0))
  	handle_vtv_comdat_section (sect, decl);
        else
*************** narrowing_initializer_constant_valid_p (
*** 4691,4697 ****
      {
        tree inner = TREE_OPERAND (op0, 0);
        if (inner == error_mark_node
! 	  || ! INTEGRAL_MODE_P (TYPE_MODE (TREE_TYPE (inner)))
  	  || (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (op0)))
  	      > GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (inner)))))
  	break;
--- 4691,4700 ----
      {
        tree inner = TREE_OPERAND (op0, 0);
        if (inner == error_mark_node
! 	  || ! INTEGRAL_TYPE_P (TREE_TYPE (op0))
! 	  || ! SCALAR_INT_MODE_P (TYPE_MODE (TREE_TYPE (op0)))
! 	  || ! INTEGRAL_TYPE_P (TREE_TYPE (inner))
! 	  || ! SCALAR_INT_MODE_P (TYPE_MODE (TREE_TYPE (inner)))
  	  || (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (op0)))
  	      > GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (inner)))))
  	break;
*************** narrowing_initializer_constant_valid_p (
*** 4703,4709 ****
      {
        tree inner = TREE_OPERAND (op1, 0);
        if (inner == error_mark_node
! 	  || ! INTEGRAL_MODE_P (TYPE_MODE (TREE_TYPE (inner)))
  	  || (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (op1)))
  	      > GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (inner)))))
  	break;
--- 4706,4715 ----
      {
        tree inner = TREE_OPERAND (op1, 0);
        if (inner == error_mark_node
! 	  || ! INTEGRAL_TYPE_P (TREE_TYPE (op1))
! 	  || ! SCALAR_INT_MODE_P (TYPE_MODE (TREE_TYPE (op1)))
! 	  || ! INTEGRAL_TYPE_P (TREE_TYPE (inner))
! 	  || ! SCALAR_INT_MODE_P (TYPE_MODE (TREE_TYPE (inner)))
  	  || (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (op1)))
  	      > GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (inner)))))
  	break;
diff -Nrcpad gcc-11.3.0/gcc/wide-int.cc gcc-11.4.0/gcc/wide-int.cc
*** gcc-11.3.0/gcc/wide-int.cc	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/wide-int.cc	Mon May 29 08:46:32 2023
*************** wi::shifted_mask (HOST_WIDE_INT *val, un
*** 842,847 ****
--- 842,854 ----
  	val[i++] = negate ? block : ~block;
      }
  
+   if (end >= prec)
+     {
+       if (!shift)
+ 	val[i++] = negate ? 0 : -1;
+       return i;
+     }
+ 
    while (i < end / HOST_BITS_PER_WIDE_INT)
      /* 1111111 */
      val[i++] = negate ? 0 : -1;
*************** wi::shifted_mask (HOST_WIDE_INT *val, un
*** 853,859 ****
        HOST_WIDE_INT block = (HOST_WIDE_INT_1U << shift) - 1;
        val[i++] = negate ? ~block : block;
      }
!   else if (end < prec)
      val[i++] = negate ? -1 : 0;
  
    return i;
--- 860,866 ----
        HOST_WIDE_INT block = (HOST_WIDE_INT_1U << shift) - 1;
        val[i++] = negate ? ~block : block;
      }
!   else
      val[i++] = negate ? -1 : 0;
  
    return i;
*************** wide_int_cc_tests ()
*** 2582,2587 ****
--- 2589,2598 ----
    run_all_wide_int_tests <widest_int> ();
    test_overflow ();
    test_round_for_mask ();
+   ASSERT_EQ (wi::mask (128, false, 128),
+ 	     wi::shifted_mask (0, 128, false, 128));
+   ASSERT_EQ (wi::mask (128, true, 128),
+ 	     wi::shifted_mask (0, 128, true, 128));
  }
  
  } // namespace selftest
diff -Nrcpad gcc-11.3.0/gcc/wide-int.h gcc-11.4.0/gcc/wide-int.h
*** gcc-11.3.0/gcc/wide-int.h	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gcc/wide-int.h	Mon May 29 08:46:32 2023
*************** wi::lrotate (const T1 &x, const T2 &y, u
*** 3169,3177 ****
      width = precision;
    WI_UNARY_RESULT (T2) ymod = umod_trunc (y, width);
    WI_UNARY_RESULT (T1) left = wi::lshift (x, ymod);
!   WI_UNARY_RESULT (T1) right = wi::lrshift (x, wi::sub (width, ymod));
    if (width != precision)
!     return wi::zext (left, width) | wi::zext (right, width);
    return left | right;
  }
  
--- 3169,3179 ----
      width = precision;
    WI_UNARY_RESULT (T2) ymod = umod_trunc (y, width);
    WI_UNARY_RESULT (T1) left = wi::lshift (x, ymod);
!   WI_UNARY_RESULT (T1) right
!     = wi::lrshift (width != precision ? wi::zext (x, width) : x,
! 		   wi::sub (width, ymod));
    if (width != precision)
!     return wi::zext (left, width) | right;
    return left | right;
  }
  
*************** wi::rrotate (const T1 &x, const T2 &y, u
*** 3186,3195 ****
    if (width == 0)
      width = precision;
    WI_UNARY_RESULT (T2) ymod = umod_trunc (y, width);
!   WI_UNARY_RESULT (T1) right = wi::lrshift (x, ymod);
    WI_UNARY_RESULT (T1) left = wi::lshift (x, wi::sub (width, ymod));
    if (width != precision)
!     return wi::zext (left, width) | wi::zext (right, width);
    return left | right;
  }
  
--- 3188,3198 ----
    if (width == 0)
      width = precision;
    WI_UNARY_RESULT (T2) ymod = umod_trunc (y, width);
!   WI_UNARY_RESULT (T1) right
!     = wi::lrshift (width != precision ? wi::zext (x, width) : x, ymod);
    WI_UNARY_RESULT (T1) left = wi::lshift (x, wi::sub (width, ymod));
    if (width != precision)
!     return wi::zext (left, width) | right;
    return left | right;
  }
  
diff -Nrcpad gcc-11.3.0/gnattools/ChangeLog gcc-11.4.0/gnattools/ChangeLog
*** gcc-11.3.0/gnattools/ChangeLog	Thu Apr 21 07:59:17 2022
--- gcc-11.4.0/gnattools/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,13 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-04-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* configure.ac (TOOLS_TARGET_PAIRS): Remove obsolete settings.
+ 	(EXTRA_GNATTOOLS): Likewise.
+ 	* configure: Regenerate.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/gnattools/configure gcc-11.4.0/gnattools/configure
*** gcc-11.3.0/gnattools/configure	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gnattools/configure	Mon May 29 08:46:32 2023
*************** fi
*** 2052,2127 ****
  
  # Target-specific stuff (defaults)
  TOOLS_TARGET_PAIRS=
- 
  EXTRA_GNATTOOLS=
  
- 
  # Per-target case statement
  # -------------------------
  case "${target}" in
    *-*-aix*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
!     indepsw.adb<indepsw-aix.adb"
      ;;
    *-*-darwin*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
!     indepsw.adb<indepsw-darwin.adb"
      ;;
    *-*-dragonfly*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
!     indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-freebsd*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
!     indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-linux*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
!     indepsw.adb<indepsw-gnu.adb"
!     ;;
!   *-*-solaris*)
!     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
      ;;
    *-*-vxworks*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
!     indepsw.adb<indepsw-gnu.adb"
!     ;;
!   hppa*-hp-hpux10*)
!     ;;
!   hppa*-hp-hpux11*)
!     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb"
!     ;;
!   ia64-hp-hpux11*)
!     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb"
!     ;;
!   alpha*-*-vms* | alpha*-*-openvms*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
!     symbols.adb<symbols-vms.adb \
!     symbols-processing.adb<symbols-processing-vms-alpha.adb"
!     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
!     ;;
!   ia64-*-vms* | ia64-*-openvms*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
!     symbols.adb<symbols-vms.adb \
!     symbols-processing.adb<symbols-processing-vms-ia64.adb"
!     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
      ;;
    *-*-cygwin32* | *-*-mingw32* | *-*-pe)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
!     indepsw.adb<indepsw-mingw.adb"
      EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
      ;;
  esac
  
  # From user or toplevel makefile.
  
  
--- 2052,2089 ----
  
  # Target-specific stuff (defaults)
  TOOLS_TARGET_PAIRS=
  EXTRA_GNATTOOLS=
  
  # Per-target case statement
  # -------------------------
  case "${target}" in
    *-*-aix*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-aix.adb"
      ;;
    *-*-darwin*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-darwin.adb"
      ;;
    *-*-dragonfly*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-freebsd*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-linux*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-vxworks*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-cygwin32* | *-*-mingw32* | *-*-pe)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
      ;;
  esac
  
+ 
+ 
+ 
  # From user or toplevel makefile.
  
  
diff -Nrcpad gcc-11.3.0/gnattools/configure.ac gcc-11.4.0/gnattools/configure.ac
*** gcc-11.3.0/gnattools/configure.ac	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/gnattools/configure.ac	Mon May 29 08:46:32 2023
*************** AC_PROG_LN_S
*** 53,128 ****
  
  # Target-specific stuff (defaults)
  TOOLS_TARGET_PAIRS=
- AC_SUBST(TOOLS_TARGET_PAIRS)
  EXTRA_GNATTOOLS=
- AC_SUBST(EXTRA_GNATTOOLS)
  
  # Per-target case statement
  # -------------------------
  case "${target}" in
    *-*-aix*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
!     indepsw.adb<indepsw-aix.adb"
      ;;
    *-*-darwin*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
!     indepsw.adb<indepsw-darwin.adb"
      ;;
    *-*-dragonfly*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
!     indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-freebsd*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
!     indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-linux*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
!     indepsw.adb<indepsw-gnu.adb"
!     ;;
!   *-*-solaris*)
!     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
      ;;
    *-*-vxworks*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
!     indepsw.adb<indepsw-gnu.adb"
!     ;;
!   hppa*-hp-hpux10*)
!     ;;
!   hppa*-hp-hpux11*)
!     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb"
!     ;;
!   ia64-hp-hpux11*)
!     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb"
!     ;;
!   alpha*-*-vms* | alpha*-*-openvms*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
!     symbols.adb<symbols-vms.adb \
!     symbols-processing.adb<symbols-processing-vms-alpha.adb"
!     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
!     ;;
!   ia64-*-vms* | ia64-*-openvms*)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
!     symbols.adb<symbols-vms.adb \
!     symbols-processing.adb<symbols-processing-vms-ia64.adb"
!     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
      ;;
    *-*-cygwin32* | *-*-mingw32* | *-*-pe)
!     TOOLS_TARGET_PAIRS="\
!     mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
!     indepsw.adb<indepsw-mingw.adb"
      EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
      ;;
  esac
  
  # From user or toplevel makefile.
  AC_SUBST(ADA_CFLAGS)
  
--- 53,90 ----
  
  # Target-specific stuff (defaults)
  TOOLS_TARGET_PAIRS=
  EXTRA_GNATTOOLS=
  
  # Per-target case statement
  # -------------------------
  case "${target}" in
    *-*-aix*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-aix.adb"
      ;;
    *-*-darwin*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-darwin.adb"
      ;;
    *-*-dragonfly*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-freebsd*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-linux*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-vxworks*)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      ;;
    *-*-cygwin32* | *-*-mingw32* | *-*-pe)
!     TOOLS_TARGET_PAIRS="indepsw.adb<indepsw-gnu.adb"
      EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
      ;;
  esac
  
+ AC_SUBST(TOOLS_TARGET_PAIRS)
+ AC_SUBST(EXTRA_GNATTOOLS)
+ 
  # From user or toplevel makefile.
  AC_SUBST(ADA_CFLAGS)
  
diff -Nrcpad gcc-11.3.0/gotools/ChangeLog gcc-11.4.0/gotools/ChangeLog
*** gcc-11.3.0/gotools/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/gotools/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/include/ChangeLog gcc-11.4.0/include/ChangeLog
*** gcc-11.3.0/include/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/include/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/intl/ChangeLog gcc-11.4.0/intl/ChangeLog
*** gcc-11.3.0/intl/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/intl/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libada/ChangeLog gcc-11.4.0/libada/ChangeLog
*** gcc-11.3.0/libada/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libada/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libatomic/ChangeLog gcc-11.4.0/libatomic/ChangeLog
*** gcc-11.3.0/libatomic/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libatomic/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,25 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-03-03  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2023-03-03  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+ 
+ 	* config/s390/cas_n.c: New file.
+ 	* config/s390/load_n.c: New file.
+ 	* config/s390/store_n.c: New file.
+ 
+ 2022-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/104688
+ 	* config/x86/init.c (__libat_feat1_init): Don't clear
+ 	bit_AVX on AMD CPUs.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libatomic/config/s390/cas_n.c gcc-11.4.0/libatomic/config/s390/cas_n.c
*** gcc-11.3.0/libatomic/config/s390/cas_n.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libatomic/config/s390/cas_n.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,65 ----
+ /* Copyright (C) 2018-2023 Free Software Foundation, Inc.
+ 
+    This file is part of the GNU Atomic Library (libatomic).
+ 
+    Libatomic 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.
+ 
+    Libatomic 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/>.  */
+ 
+ #include <libatomic_i.h>
+ 
+ 
+ /* Analog to config/s390/exch_n.c.  */
+ 
+ #if !DONE && N == 16
+ bool
+ SIZE(libat_compare_exchange) (UTYPE *mptr, UTYPE *eptr, UTYPE newval,
+ 			      int smodel, int fmodel UNUSED)
+ {
+   if (!((uintptr_t)mptr & 0xf))
+     {
+       return __atomic_compare_exchange_n (
+ 	(UTYPE *)__builtin_assume_aligned (mptr, 16), eptr, newval, false,
+ 	__ATOMIC_SEQ_CST, __ATOMIC_RELAXED);
+     }
+   else
+     {
+       UTYPE oldval;
+       UWORD magic;
+       bool ret;
+ 
+       pre_seq_barrier (smodel);
+       magic = protect_start (mptr);
+ 
+       oldval = *mptr;
+       ret = (oldval == *eptr);
+       if (ret)
+ 	*mptr = newval;
+       else
+ 	*eptr = oldval;
+ 
+       protect_end (mptr, magic);
+       post_seq_barrier (smodel);
+ 
+       return ret;
+     }
+ }
+ #define DONE 1
+ #endif /* N == 16 */
+ 
+ #include "../../cas_n.c"
diff -Nrcpad gcc-11.3.0/libatomic/config/s390/load_n.c gcc-11.4.0/libatomic/config/s390/load_n.c
*** gcc-11.3.0/libatomic/config/s390/load_n.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libatomic/config/s390/load_n.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,57 ----
+ /* Copyright (C) 2018-2023 Free Software Foundation, Inc.
+ 
+    This file is part of the GNU Atomic Library (libatomic).
+ 
+    Libatomic 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.
+ 
+    Libatomic 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/>.  */
+ 
+ #include <libatomic_i.h>
+ 
+ 
+ /* Analog to config/s390/exch_n.c.  */
+ 
+ #if !DONE && N == 16
+ UTYPE
+ SIZE(libat_load) (UTYPE *mptr, int smodel)
+ {
+   if (!((uintptr_t)mptr & 0xf))
+     {
+       return __atomic_load_n ((UTYPE *)__builtin_assume_aligned (mptr, 16),
+ 			      __ATOMIC_SEQ_CST);
+     }
+   else
+     {
+       UTYPE ret;
+       UWORD magic;
+ 
+       pre_seq_barrier (smodel);
+       magic = protect_start (mptr);
+ 
+       ret = *mptr;
+ 
+       protect_end (mptr, magic);
+       post_seq_barrier (smodel);
+ 
+       return ret;
+     }
+ }
+ #define DONE 1
+ #endif /* N == 16 */
+ 
+ #include "../../load_n.c"
diff -Nrcpad gcc-11.3.0/libatomic/config/s390/store_n.c gcc-11.4.0/libatomic/config/s390/store_n.c
*** gcc-11.3.0/libatomic/config/s390/store_n.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libatomic/config/s390/store_n.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,54 ----
+ /* Copyright (C) 2018-2023 Free Software Foundation, Inc.
+ 
+    This file is part of the GNU Atomic Library (libatomic).
+ 
+    Libatomic 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.
+ 
+    Libatomic 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/>.  */
+ 
+ #include <libatomic_i.h>
+ 
+ 
+ /* Analog to config/s390/exch_n.c.  */
+ 
+ #if !DONE && N == 16
+ void
+ SIZE(libat_store) (UTYPE *mptr, UTYPE newval, int smodel)
+ {
+   if (!((uintptr_t)mptr & 0xf))
+     {
+       __atomic_store_n ((UTYPE *)__builtin_assume_aligned (mptr, 16), newval,
+ 			__ATOMIC_SEQ_CST);
+     }
+   else
+     {
+       UWORD magic;
+ 
+       pre_seq_barrier (smodel);
+       magic = protect_start (mptr);
+ 
+       *mptr = newval;
+ 
+       protect_end (mptr, magic);
+       post_seq_barrier (smodel);
+     }
+ }
+ #define DONE 1
+ #endif /* N == 16 */
+ 
+ #include "../../store_n.c"
diff -Nrcpad gcc-11.3.0/libatomic/config/x86/init.c gcc-11.4.0/libatomic/config/x86/init.c
*** gcc-11.3.0/libatomic/config/x86/init.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/libatomic/config/x86/init.c	Mon May 29 08:46:32 2023
*************** __libat_feat1_init (void)
*** 39,48 ****
        == (bit_AVX | bit_CMPXCHG16B))
      {
        /* Intel SDM guarantees that 16-byte VMOVDQA on 16-byte aligned address
! 	 is atomic, but so far we don't have this guarantee from AMD.  */
        unsigned int ecx2 = 0;
        __get_cpuid (0, &eax, &ebx, &ecx2, &edx);
!       if (ecx2 != signature_INTEL_ecx)
  	FEAT1_REGISTER &= ~bit_AVX;
      }
  #endif
--- 39,50 ----
        == (bit_AVX | bit_CMPXCHG16B))
      {
        /* Intel SDM guarantees that 16-byte VMOVDQA on 16-byte aligned address
! 	 is atomic, and AMD is going to do something similar soon.
! 	 We don't have a guarantee from vendors of other CPUs with AVX,
! 	 like Zhaoxin and VIA.  */
        unsigned int ecx2 = 0;
        __get_cpuid (0, &eax, &ebx, &ecx2, &edx);
!       if (ecx2 != signature_INTEL_ecx && ecx2 != signature_AMD_ecx)
  	FEAT1_REGISTER &= ~bit_AVX;
      }
  #endif
diff -Nrcpad gcc-11.3.0/libbacktrace/ChangeLog gcc-11.4.0/libbacktrace/ChangeLog
*** gcc-11.3.0/libbacktrace/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libbacktrace/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libcc1/ChangeLog gcc-11.4.0/libcc1/ChangeLog
*** gcc-11.3.0/libcc1/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libcc1/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libcody/ChangeLog gcc-11.4.0/libcody/ChangeLog
*** gcc-11.3.0/libcody/ChangeLog	Thu Apr 21 07:59:17 2022
--- gcc-11.4.0/libcody/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libcpp/ChangeLog gcc-11.4.0/libcpp/ChangeLog
*** gcc-11.3.0/libcpp/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libcpp/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,26 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2022-08-02  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	Backported from master:
+ 	2022-07-10  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR preprocessor/97498
+ 	* directives.c (destringize_and_run): Override the location of
+ 	the CPP_PRAGMA token from a _Pragma directive to the location of
+ 	the expansion point, as is done for the tokens lexed from it.
+ 
+ 2022-06-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/105732
+ 	* expr.c (_cpp_parse_expr): Handle CPP_PADDING by just another
+ 	token.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libcpp/directives.c gcc-11.4.0/libcpp/directives.c
*** gcc-11.3.0/libcpp/directives.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/libcpp/directives.c	Mon May 29 08:46:32 2023
*************** destringize_and_run (cpp_reader *pfile,
*** 1905,1910 ****
--- 1905,1911 ----
        maxcount = 50;
        toks = XNEWVEC (cpp_token, maxcount);
        toks[0] = pfile->directive_result;
+       toks[0].src_loc = expansion_loc;
  
        do
  	{
diff -Nrcpad gcc-11.3.0/libcpp/expr.c gcc-11.4.0/libcpp/expr.c
*** gcc-11.3.0/libcpp/expr.c	Thu Apr 21 07:58:55 2022
--- gcc-11.4.0/libcpp/expr.c	Mon May 29 08:46:32 2023
*************** _cpp_parse_expr (cpp_reader *pfile, bool
*** 1370,1375 ****
--- 1370,1379 ----
  	    op.op = CPP_UMINUS;
  	  break;
  
+ 	case CPP_PADDING:
+ 	  lex_count--;
+ 	  continue;
+ 
  	default:
  	  if ((int) op.op <= (int) CPP_EQ || (int) op.op >= (int) CPP_PLUS_EQ)
  	    SYNTAX_ERROR2_AT (op.loc,
diff -Nrcpad gcc-11.3.0/libcpp/po/ChangeLog gcc-11.4.0/libcpp/po/ChangeLog
*** gcc-11.3.0/libcpp/po/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libcpp/po/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libdecnumber/ChangeLog gcc-11.4.0/libdecnumber/ChangeLog
*** gcc-11.3.0/libdecnumber/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libdecnumber/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libffi/ChangeLog gcc-11.4.0/libffi/ChangeLog
*** gcc-11.3.0/libffi/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libffi/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libgcc/ChangeLog gcc-11.4.0/libgcc/ChangeLog
*** gcc-11.3.0/libgcc/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libgcc/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,38 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2023-05-19  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.host: Arrange to set min Darwin OS versions from
+ 	the configured host version.
+ 	* config/darwin10-unwind-find-enc-func.c: Do not use current
+ 	headers, but declare the nexessary structures locally to the
+ 	versions in use for Mac OSX 10.6.
+ 	* config/t-darwin: Amend to handle configured min OS
+ 	versions.
+ 	* config/t-darwin-min-1: New.
+ 	* config/t-darwin-min-5: New.
+ 	* config/t-darwin-min-8: New.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2022-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/t-slibgcc-darwin (install-darwin-libgcc-stubs): Skip the
+ 	install of libgcc_s.1.dylib when the installation is into the build
+ 	gcc directory.
+ 
+ 2022-05-16  Sebastian Pop  <spop@amazon.com>
+ 
+ 	PR target/105162
+ 	* config/aarch64/lse.S: Define BARRIER and handle memory MODEL 5.
+ 	* config/aarch64/t-lse: Add a 5th memory model for _sync functions.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libgcc/config/aarch64/lse.S gcc-11.4.0/libgcc/config/aarch64/lse.S
*** gcc-11.3.0/libgcc/config/aarch64/lse.S	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config/aarch64/lse.S	Mon May 29 08:46:32 2023
*************** see the files COPYING3 and COPYING.RUNTI
*** 87,110 ****
--- 87,130 ----
  # define L
  # define M     0x000000
  # define N     0x000000
+ # define BARRIER
  #elif MODEL == 2
  # define SUFF  _acq
  # define A     a
  # define L
  # define M     0x400000
  # define N     0x800000
+ # define BARRIER
  #elif MODEL == 3
  # define SUFF  _rel
  # define A
  # define L     l
  # define M     0x008000
  # define N     0x400000
+ # define BARRIER
  #elif MODEL == 4
  # define SUFF  _acq_rel
  # define A     a
  # define L     l
  # define M     0x408000
  # define N     0xc00000
+ # define BARRIER
+ #elif MODEL == 5
+ # define SUFF  _sync
+ #ifdef L_swp
+ /* swp has _acq semantics.  */
+ #  define A    a
+ #  define L
+ #  define M    0x400000
+ #  define N    0x800000
+ #else
+ /* All other _sync functions have _seq semantics.  */
+ #  define A    a
+ #  define L    l
+ #  define M    0x408000
+ #  define N    0xc00000
+ #endif
+ # define BARRIER dmb		ish
  #else
  # error
  #endif
*************** see the files COPYING3 and COPYING.RUNTI
*** 127,133 ****
  #endif
  
  #define NAME(BASE)		glue4(__aarch64_, BASE, SIZE, SUFF)
! #define LDXR			glue4(ld, A, xr, S)
  #define STXR			glue4(st, L, xr, S)
  
  /* Temporary registers used.  Other than these, only the return value
--- 147,158 ----
  #endif
  
  #define NAME(BASE)		glue4(__aarch64_, BASE, SIZE, SUFF)
! #if MODEL == 5
! /* Drop A for _sync functions.  */
! # define LDXR			glue3(ld, xr, S)
! #else
! # define LDXR			glue4(ld, A, xr, S)
! #endif
  #define STXR			glue4(st, L, xr, S)
  
  /* Temporary registers used.  Other than these, only the return value
*************** STARTFN	NAME(cas)
*** 183,192 ****
  	bne		1f
  	STXR		w(tmp1), s(1), [x2]
  	cbnz		w(tmp1), 0b
! 1:	ret
  
  #else
! #define LDXP	glue3(ld, A, xp)
  #define STXP	glue3(st, L, xp)
  #ifdef HAVE_AS_LSE
  # define CASP	glue3(casp, A, L)	x0, x1, x2, x3, [x4]
--- 208,223 ----
  	bne		1f
  	STXR		w(tmp1), s(1), [x2]
  	cbnz		w(tmp1), 0b
! 1:	BARRIER
! 	ret
  
  #else
! #if MODEL == 5
! /* Drop A for _sync functions.  */
! # define LDXP	glue2(ld, xp)
! #else
! # define LDXP	glue3(ld, A, xp)
! #endif
  #define STXP	glue3(st, L, xp)
  #ifdef HAVE_AS_LSE
  # define CASP	glue3(casp, A, L)	x0, x1, x2, x3, [x4]
*************** STARTFN	NAME(cas)
*** 205,211 ****
  	bne		1f
  	STXP		w(tmp2), x2, x3, [x4]
  	cbnz		w(tmp2), 0b
! 1:	ret
  
  #endif
  
--- 236,243 ----
  	bne		1f
  	STXP		w(tmp2), x2, x3, [x4]
  	cbnz		w(tmp2), 0b
! 1:	BARRIER
! 	ret
  
  #endif
  
*************** STARTFN	NAME(swp)
*** 229,234 ****
--- 261,267 ----
  0:	LDXR		s(0), [x1]
  	STXR		w(tmp1), s(tmp0), [x1]
  	cbnz		w(tmp1), 0b
+ 	BARRIER
  	ret
  
  ENDFN	NAME(swp)
*************** STARTFN	NAME(LDNM)
*** 273,278 ****
--- 306,312 ----
  	OP		s(tmp1), s(0), s(tmp0)
  	STXR		w(tmp2), s(tmp1), [x1]
  	cbnz		w(tmp2), 0b
+ 	BARRIER
  	ret
  
  ENDFN	NAME(LDNM)
diff -Nrcpad gcc-11.3.0/libgcc/config/aarch64/t-lse gcc-11.4.0/libgcc/config/aarch64/t-lse
*** gcc-11.3.0/libgcc/config/aarch64/t-lse	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config/aarch64/t-lse	Mon May 29 08:46:32 2023
***************
*** 18,30 ****
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
  
! # Compare-and-swap has 5 sizes and 4 memory models.
  S0 := $(foreach s, 1 2 4 8 16, $(addsuffix _$(s), cas))
! O0 := $(foreach m, 1 2 3 4, $(addsuffix _$(m)$(objext), $(S0)))
  
! # Swap, Load-and-operate have 4 sizes and 4 memory models
  S1 := $(foreach s, 1 2 4 8, $(addsuffix _$(s), swp ldadd ldclr ldeor ldset))
! O1 := $(foreach m, 1 2 3 4, $(addsuffix _$(m)$(objext), $(S1)))
  
  LSE_OBJS := $(O0) $(O1)
  
--- 18,30 ----
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
  
! # Compare-and-swap has 5 sizes and 5 memory models.
  S0 := $(foreach s, 1 2 4 8 16, $(addsuffix _$(s), cas))
! O0 := $(foreach m, 1 2 3 4 5, $(addsuffix _$(m)$(objext), $(S0)))
  
! # Swap, Load-and-operate have 4 sizes and 5 memory models
  S1 := $(foreach s, 1 2 4 8, $(addsuffix _$(s), swp ldadd ldclr ldeor ldset))
! O1 := $(foreach m, 1 2 3 4 5, $(addsuffix _$(m)$(objext), $(S1)))
  
  LSE_OBJS := $(O0) $(O1)
  
diff -Nrcpad gcc-11.3.0/libgcc/config/avr/libf7/ChangeLog gcc-11.4.0/libgcc/config/avr/libf7/ChangeLog
*** gcc-11.3.0/libgcc/config/avr/libf7/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libgcc/config/avr/libf7/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,16 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2022-09-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2022-09-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/99184
+ 	* libf7-asm.sx (to_integer, to_unsigned): Don't round 16-bit
+ 	and 32-bit integers.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libgcc/config/avr/libf7/libf7-asm.sx gcc-11.4.0/libgcc/config/avr/libf7/libf7-asm.sx
*** gcc-11.3.0/libgcc/config/avr/libf7/libf7-asm.sx	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config/avr/libf7/libf7-asm.sx	Mon May 29 08:46:32 2023
*************** DEFUN to_integer
*** 601,609 ****
      tst     C6
      brmi    .Lsaturate.T    ;   > INTxx_MAX  =>  saturate
  
-     rcall   .Lround
-     brmi    .Lsaturate.T    ;   > INTxx_MAX  =>  saturate
- 
      brtc 9f                 ;   >= 0         =>  return
      sbrc    Mask,   5
      .global __negdi2
--- 601,606 ----
*************** DEFUN to_integer
*** 658,687 ****
      .global __clr_8
      XJMP    __clr_8
  
- .Lround:
-     ;; C6.7 is known to be 0 here.
-     ;; Return N = 1 iff we have to saturate.
-     cpi     Mask,   0xf
-     breq .Lround16
-     cpi     Mask,   0x1f
-     breq .Lround32
- 
-     ;; For now, no rounding in the 64-bit case.  This rounding
-     ;; would have to be integrated into the right-shift.
-     cln
-     ret
- 
- .Lround32:
-     rol     C2
-     adc     C3,     ZERO
-     adc     C4,     ZERO
-     rjmp 2f
- 
- .Lround16:
-     rol     C4
- 2:  adc     C5,     ZERO
-     adc     C6,     ZERO
-     ret
  ENDF to_integer
  #endif /* F7MOD_to_integer_ */
  
--- 655,660 ----
*************** DEFUN to_unsigned
*** 725,753 ****
      clr     CA
      F7call  lshrdi3
      POP     r16
- 
-     ;; Rounding
-     ;; ??? C6.7 is known to be 0 here.
-     cpi     Mask,   0xf
-     breq .Lround16
-     cpi     Mask,   0x1f
-     breq .Lround32
- 
-     ;; For now, no rounding in the 64-bit case.  This rounding
-     ;; would have to be integrated into the right-shift.
-     ret
- 
- .Lround32:
-     rol     C2
-     adc     C3,     ZERO
-     adc     C4,     ZERO
-     rjmp 2f
- 
- .Lround16:
-     rol     C4
- 2:  adc     C5,     ZERO
-     adc     C6,     ZERO
-     brcs    .Lset_0xffff    ; Rounding overflow  =>  saturate
      ret
  
  .Lset_0xffff:
--- 698,703 ----
diff -Nrcpad gcc-11.3.0/libgcc/config/darwin10-unwind-find-enc-func.c gcc-11.4.0/libgcc/config/darwin10-unwind-find-enc-func.c
*** gcc-11.3.0/libgcc/config/darwin10-unwind-find-enc-func.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config/darwin10-unwind-find-enc-func.c	Mon May 29 08:46:32 2023
***************
*** 1,8 ****
- #include "tconfig.h"
- #include "tsystem.h"
- #include "unwind-dw2-fde.h"
  #include "libgcc_tm.h"
  
  void *
  _darwin10_Unwind_FindEnclosingFunction (void *pc)
  {
--- 1,34 ----
  #include "libgcc_tm.h"
  
+ /* This shim is special, it needs to be built for Mac OSX 10.6
+    regardless of the current system version.
+    We must also build it to use the unwinder layout that was
+    present for 10.6 (and not update that).
+    So we copy the referenced structures from unwind-dw2-fde.h
+    to avoid pulling in newer system headers and/or changed
+    layouts.  */
+ struct dwarf_eh_bases
+ {
+   void *tbase;
+   void *dbase;
+   void *func;
+ };
+ 
+ typedef          int  sword __attribute__ ((mode (SI)));
+ typedef unsigned int  uword __attribute__ ((mode (SI)));
+ 
+ /* The first few fields of an FDE.  */
+ struct dwarf_fde
+ {
+   uword length;
+   sword CIE_delta;
+   unsigned char pc_begin[];
+ } __attribute__ ((packed, aligned (__alignof__ (void *))));
+ 
+ typedef struct dwarf_fde fde;
+ 
+ extern const fde * _Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
+ 
  void *
  _darwin10_Unwind_FindEnclosingFunction (void *pc)
  {
*************** _darwin10_Unwind_FindEnclosingFunction (
*** 10,14 ****
    const struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
    if (fde)
      return bases.func;
!   return NULL;
  }
--- 36,40 ----
    const struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
    if (fde)
      return bases.func;
!   return (void *) 0;
  }
diff -Nrcpad gcc-11.3.0/libgcc/config/libbid/ChangeLog gcc-11.4.0/libgcc/config/libbid/ChangeLog
*** gcc-11.3.0/libgcc/config/libbid/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libgcc/config/libbid/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libgcc/config/t-darwin gcc-11.4.0/libgcc/config/t-darwin
*** gcc-11.3.0/libgcc/config/t-darwin	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config/t-darwin	Mon May 29 08:46:32 2023
***************
*** 1,15 ****
  # Set this as a minimum (unless overriden by arch t-files) since it's a
  # reasonable lowest common denominator that works for all our archs.
! HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.4
  
  crt3.o: $(srcdir)/config/darwin-crt3.c
! 	$(crt_compile) -mmacosx-version-min=10.4 -c $<
  
  crttms.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) -mmacosx-version-min=10.4 -DSTART -c $<
  
  crttme.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) -mmacosx-version-min=10.4 -DEND -c $<
  
  # Make emutls weak so that we can deal with -static-libgcc, override the
  # hidden visibility when this is present in libgcc_eh.
--- 1,15 ----
  # Set this as a minimum (unless overriden by arch t-files) since it's a
  # reasonable lowest common denominator that works for all our archs.
! HOST_LIBGCC2_CFLAGS += $(DARWIN_MIN_LIB_VERSION)
  
  crt3.o: $(srcdir)/config/darwin-crt3.c
! 	$(crt_compile) $(DARWIN_MIN_CRT_VERSION) -c $<
  
  crttms.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) $(DARWIN_MIN_CRT_VERSION) -DSTART -c $<
  
  crttme.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) $(DARWIN_MIN_CRT_VERSION) -DEND -c $<
  
  # Make emutls weak so that we can deal with -static-libgcc, override the
  # hidden visibility when this is present in libgcc_eh.
*************** libemutls_w.a: emutls_s.o
*** 25,30 ****
--- 25,32 ----
  	$(RANLIB_FOR_TARGET) $@
  
  # Patch to __Unwind_Find_Enclosing_Function for Darwin10.
+ # This needs to be built for darwin10, regardless of the current platform
+ # version.
  d10-uwfef.o: $(srcdir)/config/darwin10-unwind-find-enc-func.c libgcc_tm.h
  	$(crt_compile) -mmacosx-version-min=10.6 -c $<
  
diff -Nrcpad gcc-11.3.0/libgcc/config/t-darwin-min-1 gcc-11.4.0/libgcc/config/t-darwin-min-1
*** gcc-11.3.0/libgcc/config/t-darwin-min-1	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgcc/config/t-darwin-min-1	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,3 ----
+ # Support building with -mmacosx-version-min back to 10.1.
+ DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.4
+ DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.1
diff -Nrcpad gcc-11.3.0/libgcc/config/t-darwin-min-5 gcc-11.4.0/libgcc/config/t-darwin-min-5
*** gcc-11.3.0/libgcc/config/t-darwin-min-5	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgcc/config/t-darwin-min-5	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,3 ----
+ # Support building with -mmacosx-version-min back to 10.5.
+ DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.5
+ DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.5
diff -Nrcpad gcc-11.3.0/libgcc/config/t-darwin-min-8 gcc-11.4.0/libgcc/config/t-darwin-min-8
*** gcc-11.3.0/libgcc/config/t-darwin-min-8	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgcc/config/t-darwin-min-8	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,3 ----
+ # Support building with -mmacosx-version-min back to 10.8.
+ DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.8
+ DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.8
diff -Nrcpad gcc-11.3.0/libgcc/config/t-slibgcc-darwin gcc-11.4.0/libgcc/config/t-slibgcc-darwin
*** gcc-11.3.0/libgcc/config/t-slibgcc-darwin	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config/t-slibgcc-darwin	Mon May 29 08:46:32 2023
*************** all: libgcc_ehs$(SHLIB_EXT)
*** 72,85 ****
  LGCC_FILES += libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
  
  endif
- 
- # Provide libgcc_s.1 for backwards compatibility.
- LGCC_FILES += libgcc_s.1.dylib
- 
  endif
  
  INSTALL_FILES=$(LGCC_FILES)
  
  # For the toplevel multilib, build FAT dylibs including all the multilibs.
  ifeq ($(MULTIBUILDTOP),)
  
--- 72,86 ----
  LGCC_FILES += libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
  
  endif
  endif
  
  INSTALL_FILES=$(LGCC_FILES)
  
+ ifeq ($(BUILD_LIBGCCS1),YES)
+ # Provide libgcc_s.1 for backwards compatibility.
+ INSTALL_FILES += libgcc_s.1.dylib
+ endif
+ 
  # For the toplevel multilib, build FAT dylibs including all the multilibs.
  ifeq ($(MULTIBUILDTOP),)
  
*************** endif
*** 158,166 ****
  
  install-darwin-libgcc-stubs :
  	$(mkinstalldirs) $(DESTDIR)$(slibdir)
! 	for d in $(INSTALL_FILES) ; do \
! 	  $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
! 	done
  
  else
  
--- 159,173 ----
  
  install-darwin-libgcc-stubs :
  	$(mkinstalldirs) $(DESTDIR)$(slibdir)
! 	if test x$(slibdir) = x; then \
! 	  for d in $(LGCC_FILES) ; do \
! 	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
! 	  done; \
! 	else \
! 	  for d in $(INSTALL_FILES) ; do \
! 	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
! 	  done; \
! 	fi
  
  else
  
diff -Nrcpad gcc-11.3.0/libgcc/config.host gcc-11.4.0/libgcc/config.host
*** gcc-11.3.0/libgcc/config.host	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgcc/config.host	Mon May 29 08:46:32 2023
*************** case ${host} in
*** 225,230 ****
--- 225,248 ----
        ;;
    esac
    tmake_file="$tmake_file t-slibgcc-darwin"
+   # newer toolsets produce warnings when building for unsupported versions.
+   case ${host} in
+     *-*-darwin1[89]* | *-*-darwin2* )
+       tmake_file="t-darwin-min-8 $tmake_file"
+       ;;
+     *-*-darwin9* | *-*-darwin1[0-7]*)
+       tmake_file="t-darwin-min-5 $tmake_file"
+       ;;
+     *-*-darwin[4-8]*)
+       tmake_file="t-darwin-min-1 $tmake_file"
+       ;;
+     *)
+       # Fall back to configuring for the oldest system known to work with
+       # all archs and the current sources.
+       tmake_file="t-darwin-min-5 $tmake_file"
+       echo "Warning: libgcc configured to support macOS 10.5" 1>&2
+       ;;
+   esac
    extra_parts="crt3.o libd10-uwfef.a crttms.o crttme.o libemutls_w.a"
    ;;
  *-*-dragonfly*)
diff -Nrcpad gcc-11.3.0/libgfortran/ChangeLog gcc-11.4.0/libgfortran/ChangeLog
*** gcc-11.3.0/libgfortran/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libgfortran/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libgo/go/syscall/libcall_linux.go gcc-11.4.0/libgo/go/syscall/libcall_linux.go
*** gcc-11.3.0/libgo/go/syscall/libcall_linux.go	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgo/go/syscall/libcall_linux.go	Mon May 29 08:46:32 2023
*************** func Gettid() (tid int) {
*** 188,193 ****
--- 188,201 ----
  //sys	PivotRoot(newroot string, putold string) (err error)
  //pivot_root(newroot *byte, putold *byte) _C_int
  
+ // Used by golang.org/x/sys/unix.
+ //sys	prlimit(pid int, resource int, newlimit *Rlimit, oldlimit *Rlimit) (err error)
+ //prlimit(pid Pid_t, resource _C_int, newlimit *Rlimit, oldlimit *Rlimit) _C_int
+ 
+ func Prlimit(pid int, resource int, newlimit *Rlimit, oldlimit *Rlimit) error {
+ 	return prlimit(pid, resource, newlimit, oldlimit)
+ }
+ 
  //sys	Removexattr(path string, attr string) (err error)
  //removexattr(path *byte, name *byte) _C_int
  
diff -Nrcpad gcc-11.3.0/libgo/sysinfo.c gcc-11.4.0/libgo/sysinfo.c
*** gcc-11.3.0/libgo/sysinfo.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgo/sysinfo.c	Mon May 29 08:46:32 2023
***************
*** 158,166 ****
  #if defined(HAVE_LINUX_ETHER_H)
  #include <linux/ether.h>
  #endif
- #if defined(HAVE_LINUX_FS_H)
- #include <linux/fs.h>
- #endif
  #if defined(HAVE_LINUX_REBOOT_H)
  #include <linux/reboot.h>
  #endif
--- 158,163 ----
diff -Nrcpad gcc-11.3.0/libgomp/ChangeLog gcc-11.4.0/libgomp/ChangeLog
*** gcc-11.3.0/libgomp/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libgomp/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,69 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* libgomp.texi: Fix typos - theads -> threads.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/108459
+ 	* testsuite/libgomp.c/pr108459.c: New test.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/108180
+ 	* testsuite/libgomp.c++/pr108180.C: New test.
+ 
+ 2023-03-09  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	Backported from master:
+ 	2023-03-01  Tobias Burnus  <tobias@codesourcery.com>
+ 
+ 	PR middle-end/108546
+ 	* testsuite/libgomp.fortran/is_device_ptr-3.f90: New test.
+ 	* testsuite/libgomp.fortran/use_device_ptr-optional-4.f90: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* task.c (gomp_create_artificial_team): Fix up handling of invocations
+ 	from within explicit task.
+ 	* target.c (GOMP_target_ext): Likewise.
+ 	* testsuite/libgomp.c/task-7.c: New test.
+ 	* testsuite/libgomp.c/task-8.c: New test.
+ 	* testsuite/libgomp.c-c++-common/task-reduction-17.c: New test.
+ 	* testsuite/libgomp.c-c++-common/task-reduction-18.c: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/106981
+ 	* testsuite/libgomp.c-c++-common/pr106981.c: New test.
+ 
+ 2022-11-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 		    Paul Iannetta  <piannetta@kalrayinc.com>
+ 
+ 	PR libgomp/106045
+ 	* testsuite/libgomp.c/target-31.c: Add private (i) clause.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libgomp/libgomp.info gcc-11.4.0/libgomp/libgomp.info
*** gcc-11.3.0/libgomp/libgomp.info	Thu Apr 21 08:27:26 2022
--- gcc-11.4.0/libgomp/libgomp.info	Mon May 29 09:05:54 2023
***************
*** 1,4 ****
! This is libgomp.info, produced by makeinfo version 6.5 from
  libgomp.texi.
  
  Copyright (C) 2006-2021 Free Software Foundation, Inc.
--- 1,4 ----
! This is libgomp.info, produced by makeinfo version 6.8 from
  libgomp.texi.
  
  Copyright (C) 2006-2021 Free Software Foundation, Inc.
*************** software.  Copies published by the Free
*** 54,60 ****
  for GNU development.
  
  
! File: libgomp.info,  Node: Top,  Next: Enabling OpenMP
  
  Introduction
  ************
--- 54,60 ----
  for GNU development.
  
  
! File: libgomp.info,  Node: Top,  Next: Enabling OpenMP,  Up: (dir)
  
  Introduction
  ************
*************** linkage, and do not throw exceptions.
*** 151,157 ****
  * omp_get_num_procs::           Number of processors online
  * omp_get_num_teams::           Number of teams
  * omp_get_num_threads::         Size of the active team
! * omp_get_proc_bind::           Whether theads may be moved between CPUs
  * omp_get_schedule::            Obtain the runtime scheduling method
  * omp_get_supported_active_levels:: Maximum number of active regions supported
  * omp_get_team_num::            Get team number
--- 151,157 ----
  * omp_get_num_procs::           Number of processors online
  * omp_get_num_teams::           Number of teams
  * omp_get_num_threads::         Size of the active team
! * omp_get_proc_bind::           Whether threads may be moved between CPUs
  * omp_get_schedule::            Obtain the runtime scheduling method
  * omp_get_supported_active_levels:: Maximum number of active regions supported
  * omp_get_team_num::            Get team number
*************** _Reference_:
*** 547,554 ****
  
  File: libgomp.info,  Node: omp_get_proc_bind,  Next: omp_get_schedule,  Prev: omp_get_num_threads,  Up: Runtime Library Routines
  
! 2.16 'omp_get_proc_bind' - Whether theads may be moved between CPUs
! ===================================================================
  
  _Description_:
       This functions returns the currently active thread affinity policy,
--- 547,554 ----
  
  File: libgomp.info,  Node: omp_get_proc_bind,  Next: omp_get_schedule,  Prev: omp_get_num_threads,  Up: Runtime Library Routines
  
! 2.16 'omp_get_proc_bind' - Whether threads may be moved between CPUs
! ====================================================================
  
  _Description_:
       This functions returns the currently active thread affinity policy,
*************** beginning with 'GOMP_' are GNU extension
*** 1275,1282 ****
  * OMP_MAX_TASK_PRIORITY::   Set the maximum task priority value
  * OMP_NESTED::              Nested parallel regions
  * OMP_NUM_THREADS::         Specifies the number of threads to use
! * OMP_PROC_BIND::           Whether theads may be moved between CPUs
! * OMP_PLACES::              Specifies on which CPUs the theads should be placed
  * OMP_STACKSIZE::           Set default thread stack size
  * OMP_SCHEDULE::            How threads are scheduled
  * OMP_TARGET_OFFLOAD::      Controls offloading behaviour
--- 1275,1282 ----
  * OMP_MAX_TASK_PRIORITY::   Set the maximum task priority value
  * OMP_NESTED::              Nested parallel regions
  * OMP_NUM_THREADS::         Specifies the number of threads to use
! * OMP_PROC_BIND::           Whether threads may be moved between CPUs
! * OMP_PLACES::              Specifies on which CPUs the threads should be placed
  * OMP_STACKSIZE::           Set default thread stack size
  * OMP_SCHEDULE::            How threads are scheduled
  * OMP_TARGET_OFFLOAD::      Controls offloading behaviour
*************** _Reference_:
*** 1445,1456 ****
  
  File: libgomp.info,  Node: OMP_PROC_BIND,  Next: OMP_PLACES,  Prev: OMP_NUM_THREADS,  Up: Environment Variables
  
! 3.9 'OMP_PROC_BIND' - Whether theads may be moved between CPUs
! ==============================================================
  
  _Description_:
       Specifies whether threads may be moved between processors.  If set
!      to 'TRUE', OpenMP theads should not be moved; if set to 'FALSE'
       they may be moved.  Alternatively, a comma separated list with the
       values 'MASTER', 'CLOSE' and 'SPREAD' can be used to specify the
       thread affinity policy for the corresponding nesting level.  With
--- 1445,1456 ----
  
  File: libgomp.info,  Node: OMP_PROC_BIND,  Next: OMP_PLACES,  Prev: OMP_NUM_THREADS,  Up: Environment Variables
  
! 3.9 'OMP_PROC_BIND' - Whether threads may be moved between CPUs
! ===============================================================
  
  _Description_:
       Specifies whether threads may be moved between processors.  If set
!      to 'TRUE', OpenMP threads should not be moved; if set to 'FALSE'
       they may be moved.  Alternatively, a comma separated list with the
       values 'MASTER', 'CLOSE' and 'SPREAD' can be used to specify the
       thread affinity policy for the corresponding nesting level.  With
*************** _Reference_:
*** 1474,1481 ****
  
  File: libgomp.info,  Node: OMP_PLACES,  Next: OMP_STACKSIZE,  Prev: OMP_PROC_BIND,  Up: Environment Variables
  
! 3.10 'OMP_PLACES' - Specifies on which CPUs the theads should be placed
! =======================================================================
  
  _Description_:
       The thread placement can be either specified using an abstract name
--- 1474,1481 ----
  
  File: libgomp.info,  Node: OMP_PLACES,  Next: OMP_STACKSIZE,  Prev: OMP_PROC_BIND,  Up: Environment Variables
  
! 3.10 'OMP_PLACES' - Specifies on which CPUs the threads should be placed
! ========================================================================
  
  _Description_:
       The thread placement can be either specified using an abstract name
*************** Library Index
*** 5114,5261 ****
  
  Tag Table:
  Node: Top2083
! Node: Enabling OpenMP4633
! Node: Runtime Library Routines5409
! Node: omp_get_active_level8729
! Node: omp_get_ancestor_thread_num9429
! Node: omp_get_cancellation10359
! Node: omp_get_default_device11173
! Node: omp_get_dynamic11849
! Node: omp_get_initial_device12733
! Node: omp_get_level13477
! Node: omp_get_max_active_levels14104
! Node: omp_get_max_task_priority14825
! Node: omp_get_max_threads15445
! Node: omp_get_nested16204
! Node: omp_get_num_devices17812
! Node: omp_get_num_procs18333
! Node: omp_get_num_teams18872
! Node: omp_get_num_threads19388
! Node: omp_get_proc_bind20477
! Node: omp_get_schedule21398
! Node: omp_get_supported_active_levels22367
! Node: omp_get_team_num23153
! Node: omp_get_team_size23667
! Node: omp_get_thread_limit24627
! Node: omp_get_thread_num25246
! Node: omp_in_parallel26117
! Node: omp_in_final26766
! Node: omp_is_initial_device27440
! Node: omp_set_default_device28133
! Node: omp_set_dynamic28924
! Node: omp_set_max_active_levels29810
! Node: omp_set_nested30732
! Node: omp_set_num_threads31929
! Node: omp_set_schedule32797
! Node: omp_init_lock33878
! Node: omp_set_lock34531
! Node: omp_test_lock35386
! Node: omp_unset_lock36362
! Node: omp_destroy_lock37293
! Node: omp_init_nest_lock37970
! Node: omp_set_nest_lock38705
! Node: omp_test_nest_lock39620
! Node: omp_unset_nest_lock40647
! Node: omp_destroy_nest_lock41662
! Node: omp_get_wtick42413
! Node: omp_get_wtime43005
! Node: omp_fulfill_event43807
! Node: Environment Variables44828
! Node: OMP_CANCELLATION46455
! Node: OMP_DISPLAY_ENV46988
! Node: OMP_DEFAULT_DEVICE47691
! Node: OMP_DYNAMIC48471
! Node: OMP_MAX_ACTIVE_LEVELS49067
! Node: OMP_MAX_TASK_PRIORITY49994
! Node: OMP_NESTED50652
! Node: OMP_NUM_THREADS51681
! Node: OMP_PROC_BIND52483
! Node: OMP_PLACES53794
! Node: OMP_STACKSIZE55971
! Node: OMP_SCHEDULE56795
! Node: OMP_TARGET_OFFLOAD57495
! Node: OMP_THREAD_LIMIT58451
! Node: OMP_WAIT_POLICY59057
! Node: GOMP_CPU_AFFINITY59749
! Node: GOMP_DEBUG61479
! Node: GOMP_STACKSIZE61986
! Node: GOMP_SPINCOUNT62817
! Node: GOMP_RTEMS_THREAD_POOLS64021
! Node: Enabling OpenACC66199
! Node: OpenACC Runtime Library Routines67100
! Node: acc_get_num_devices71381
! Node: acc_set_device_type72107
! Node: acc_get_device_type72871
! Node: acc_set_device_num73884
! Node: acc_get_device_num74701
! Node: acc_get_property75500
! Node: acc_async_test77723
! Node: acc_async_test_all78711
! Node: acc_wait79611
! Node: acc_wait_all80474
! Node: acc_wait_all_async81235
! Node: acc_wait_async81987
! Node: acc_init82695
! Node: acc_shutdown83340
! Node: acc_on_device84007
! Node: acc_malloc85011
! Node: acc_free85510
! Node: acc_copyin85937
! Node: acc_present_or_copyin87524
! Node: acc_create89302
! Node: acc_present_or_create90934
! Node: acc_copyout92720
! Node: acc_delete95024
! Node: acc_update_device97271
! Node: acc_update_self98845
! Node: acc_map_data100435
! Node: acc_unmap_data101120
! Node: acc_deviceptr101641
! Node: acc_hostptr102211
! Node: acc_is_present102775
! Node: acc_memcpy_to_device104302
! Node: acc_memcpy_from_device104965
! Node: acc_attach105632
! Node: acc_detach106279
! Node: acc_get_current_cuda_device107058
! Node: acc_get_current_cuda_context107643
! Node: acc_get_cuda_stream108243
! Node: acc_set_cuda_stream108834
! Node: acc_prof_register109505
! Node: acc_prof_unregister110064
! Node: acc_prof_lookup110631
! Node: acc_register_library111152
! Node: OpenACC Environment Variables111718
! Node: ACC_DEVICE_TYPE112290
! Node: ACC_DEVICE_NUM112526
! Node: ACC_PROFLIB112780
! Node: GCC_ACC_NOTIFY113111
! Node: CUDA Streams Usage113331
! Ref: CUDA Streams Usage-Footnote-1115232
! Node: OpenACC Library Interoperability115341
! Ref: OpenACC Library Interoperability-Footnote-1121709
! Ref: OpenACC Library Interoperability-Footnote-2121961
! Node: OpenACC Profiling Interface122169
! Node: The libgomp ABI132193
! Node: Implementing MASTER construct133046
! Node: Implementing CRITICAL construct133462
! Node: Implementing ATOMIC construct134203
! Node: Implementing FLUSH construct134686
! Node: Implementing BARRIER construct134959
! Node: Implementing THREADPRIVATE construct135230
! Node: Implementing PRIVATE clause135885
! Node: Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses136468
! Node: Implementing REDUCTION clause137794
! Node: Implementing PARALLEL construct138353
! Node: Implementing FOR construct139612
! Node: Implementing ORDERED construct141612
! Node: Implementing SECTIONS construct141920
! Node: Implementing SINGLE construct142688
! Node: Implementing OpenACC's PARALLEL construct143402
! Node: Reporting Bugs143662
! Node: Copying144025
! Node: GNU Free Documentation License181571
! Node: Funding206694
! Node: Library Index209220
  
  End Tag Table
--- 5114,5266 ----
  
  Tag Table:
  Node: Top2083
! Node: Enabling OpenMP4645
! Node: Runtime Library Routines5421
! Node: omp_get_active_level8742
! Node: omp_get_ancestor_thread_num9442
! Node: omp_get_cancellation10372
! Node: omp_get_default_device11186
! Node: omp_get_dynamic11862
! Node: omp_get_initial_device12746
! Node: omp_get_level13490
! Node: omp_get_max_active_levels14117
! Node: omp_get_max_task_priority14838
! Node: omp_get_max_threads15458
! Node: omp_get_nested16217
! Node: omp_get_num_devices17825
! Node: omp_get_num_procs18346
! Node: omp_get_num_teams18885
! Node: omp_get_num_threads19401
! Node: omp_get_proc_bind20490
! Node: omp_get_schedule21413
! Node: omp_get_supported_active_levels22382
! Node: omp_get_team_num23168
! Node: omp_get_team_size23682
! Node: omp_get_thread_limit24642
! Node: omp_get_thread_num25261
! Node: omp_in_parallel26132
! Node: omp_in_final26781
! Node: omp_is_initial_device27455
! Node: omp_set_default_device28148
! Node: omp_set_dynamic28939
! Node: omp_set_max_active_levels29825
! Node: omp_set_nested30747
! Node: omp_set_num_threads31944
! Node: omp_set_schedule32812
! Node: omp_init_lock33893
! Node: omp_set_lock34546
! Node: omp_test_lock35401
! Node: omp_unset_lock36377
! Node: omp_destroy_lock37308
! Node: omp_init_nest_lock37985
! Node: omp_set_nest_lock38720
! Node: omp_test_nest_lock39635
! Node: omp_unset_nest_lock40662
! Node: omp_destroy_nest_lock41677
! Node: omp_get_wtick42428
! Node: omp_get_wtime43020
! Node: omp_fulfill_event43822
! Node: Environment Variables44843
! Node: OMP_CANCELLATION46472
! Node: OMP_DISPLAY_ENV47005
! Node: OMP_DEFAULT_DEVICE47708
! Node: OMP_DYNAMIC48488
! Node: OMP_MAX_ACTIVE_LEVELS49084
! Node: OMP_MAX_TASK_PRIORITY50011
! Node: OMP_NESTED50669
! Node: OMP_NUM_THREADS51698
! Node: OMP_PROC_BIND52500
! Node: OMP_PLACES53814
! Node: OMP_STACKSIZE55993
! Node: OMP_SCHEDULE56817
! Node: OMP_TARGET_OFFLOAD57517
! Node: OMP_THREAD_LIMIT58473
! Node: OMP_WAIT_POLICY59079
! Node: GOMP_CPU_AFFINITY59771
! Node: GOMP_DEBUG61501
! Node: GOMP_STACKSIZE62008
! Node: GOMP_SPINCOUNT62839
! Node: GOMP_RTEMS_THREAD_POOLS64043
! Node: Enabling OpenACC66221
! Node: OpenACC Runtime Library Routines67122
! Node: acc_get_num_devices71403
! Node: acc_set_device_type72129
! Node: acc_get_device_type72893
! Node: acc_set_device_num73906
! Node: acc_get_device_num74723
! Node: acc_get_property75522
! Node: acc_async_test77745
! Node: acc_async_test_all78733
! Node: acc_wait79633
! Node: acc_wait_all80496
! Node: acc_wait_all_async81257
! Node: acc_wait_async82009
! Node: acc_init82717
! Node: acc_shutdown83362
! Node: acc_on_device84029
! Node: acc_malloc85033
! Node: acc_free85532
! Node: acc_copyin85959
! Node: acc_present_or_copyin87546
! Node: acc_create89324
! Node: acc_present_or_create90956
! Node: acc_copyout92742
! Node: acc_delete95046
! Node: acc_update_device97293
! Node: acc_update_self98867
! Node: acc_map_data100457
! Node: acc_unmap_data101142
! Node: acc_deviceptr101663
! Node: acc_hostptr102233
! Node: acc_is_present102797
! Node: acc_memcpy_to_device104324
! Node: acc_memcpy_from_device104987
! Node: acc_attach105654
! Node: acc_detach106301
! Node: acc_get_current_cuda_device107080
! Node: acc_get_current_cuda_context107665
! Node: acc_get_cuda_stream108265
! Node: acc_set_cuda_stream108856
! Node: acc_prof_register109527
! Node: acc_prof_unregister110086
! Node: acc_prof_lookup110653
! Node: acc_register_library111174
! Node: OpenACC Environment Variables111740
! Node: ACC_DEVICE_TYPE112312
! Node: ACC_DEVICE_NUM112548
! Node: ACC_PROFLIB112802
! Node: GCC_ACC_NOTIFY113133
! Node: CUDA Streams Usage113353
! Ref: CUDA Streams Usage-Footnote-1115254
! Node: OpenACC Library Interoperability115363
! Ref: OpenACC Library Interoperability-Footnote-1121731
! Ref: OpenACC Library Interoperability-Footnote-2121983
! Node: OpenACC Profiling Interface122191
! Node: The libgomp ABI132215
! Node: Implementing MASTER construct133068
! Node: Implementing CRITICAL construct133484
! Node: Implementing ATOMIC construct134225
! Node: Implementing FLUSH construct134708
! Node: Implementing BARRIER construct134981
! Node: Implementing THREADPRIVATE construct135252
! Node: Implementing PRIVATE clause135907
! Node: Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses136490
! Node: Implementing REDUCTION clause137816
! Node: Implementing PARALLEL construct138375
! Node: Implementing FOR construct139634
! Node: Implementing ORDERED construct141634
! Node: Implementing SECTIONS construct141942
! Node: Implementing SINGLE construct142710
! Node: Implementing OpenACC's PARALLEL construct143424
! Node: Reporting Bugs143684
! Node: Copying144047
! Node: GNU Free Documentation License181593
! Node: Funding206716
! Node: Library Index209242
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/libgomp/libgomp.texi gcc-11.4.0/libgomp/libgomp.texi
*** gcc-11.3.0/libgomp/libgomp.texi	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgomp/libgomp.texi	Mon May 29 08:46:32 2023
*************** linkage, and do not throw exceptions.
*** 176,182 ****
  * omp_get_num_procs::           Number of processors online
  * omp_get_num_teams::           Number of teams
  * omp_get_num_threads::         Size of the active team
! * omp_get_proc_bind::           Whether theads may be moved between CPUs
  * omp_get_schedule::            Obtain the runtime scheduling method
  * omp_get_supported_active_levels:: Maximum number of active regions supported
  * omp_get_team_num::            Get team number
--- 176,182 ----
  * omp_get_num_procs::           Number of processors online
  * omp_get_num_teams::           Number of teams
  * omp_get_num_threads::         Size of the active team
! * omp_get_proc_bind::           Whether threads may be moved between CPUs
  * omp_get_schedule::            Obtain the runtime scheduling method
  * omp_get_supported_active_levels:: Maximum number of active regions supported
  * omp_get_team_num::            Get team number
*************** one thread per CPU online is used.
*** 626,632 ****
  
  
  @node omp_get_proc_bind
! @section @code{omp_get_proc_bind} -- Whether theads may be moved between CPUs
  @table @asis
  @item @emph{Description}:
  This functions returns the currently active thread affinity policy, which is
--- 626,632 ----
  
  
  @node omp_get_proc_bind
! @section @code{omp_get_proc_bind} -- Whether threads may be moved between CPUs
  @table @asis
  @item @emph{Description}:
  This functions returns the currently active thread affinity policy, which is
*************** beginning with @env{GOMP_} are GNU exten
*** 1455,1462 ****
  * OMP_MAX_TASK_PRIORITY::   Set the maximum task priority value
  * OMP_NESTED::              Nested parallel regions
  * OMP_NUM_THREADS::         Specifies the number of threads to use
! * OMP_PROC_BIND::           Whether theads may be moved between CPUs
! * OMP_PLACES::              Specifies on which CPUs the theads should be placed
  * OMP_STACKSIZE::           Set default thread stack size
  * OMP_SCHEDULE::            How threads are scheduled
  * OMP_TARGET_OFFLOAD::      Controls offloading behaviour
--- 1455,1462 ----
  * OMP_MAX_TASK_PRIORITY::   Set the maximum task priority value
  * OMP_NESTED::              Nested parallel regions
  * OMP_NUM_THREADS::         Specifies the number of threads to use
! * OMP_PROC_BIND::           Whether threads may be moved between CPUs
! * OMP_PLACES::              Specifies on which CPUs the threads should be placed
  * OMP_STACKSIZE::           Set default thread stack size
  * OMP_SCHEDULE::            How threads are scheduled
  * OMP_TARGET_OFFLOAD::      Controls offloading behaviour
*************** nesting by default.  If undefined one th
*** 1634,1645 ****
  
  
  @node OMP_PROC_BIND
! @section @env{OMP_PROC_BIND} -- Whether theads may be moved between CPUs
  @cindex Environment Variable
  @table @asis
  @item @emph{Description}:
  Specifies whether threads may be moved between processors.  If set to
! @code{TRUE}, OpenMP theads should not be moved; if set to @code{FALSE}
  they may be moved.  Alternatively, a comma separated list with the
  values @code{MASTER}, @code{CLOSE} and @code{SPREAD} can be used to specify
  the thread affinity policy for the corresponding nesting level.  With
--- 1634,1645 ----
  
  
  @node OMP_PROC_BIND
! @section @env{OMP_PROC_BIND} -- Whether threads may be moved between CPUs
  @cindex Environment Variable
  @table @asis
  @item @emph{Description}:
  Specifies whether threads may be moved between processors.  If set to
! @code{TRUE}, OpenMP threads should not be moved; if set to @code{FALSE}
  they may be moved.  Alternatively, a comma separated list with the
  values @code{MASTER}, @code{CLOSE} and @code{SPREAD} can be used to specify
  the thread affinity policy for the corresponding nesting level.  With
*************** When undefined, @env{OMP_PROC_BIND} defa
*** 1663,1669 ****
  
  
  @node OMP_PLACES
! @section @env{OMP_PLACES} -- Specifies on which CPUs the theads should be placed
  @cindex Environment Variable
  @table @asis
  @item @emph{Description}:
--- 1663,1669 ----
  
  
  @node OMP_PLACES
! @section @env{OMP_PLACES} -- Specifies on which CPUs the threads should be placed
  @cindex Environment Variable
  @table @asis
  @item @emph{Description}:
diff -Nrcpad gcc-11.3.0/libgomp/target.c gcc-11.4.0/libgomp/target.c
*** gcc-11.3.0/libgomp/target.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgomp/target.c	Mon May 29 08:46:32 2023
*************** GOMP_target_ext (int device, void (*fn)
*** 2192,2197 ****
--- 2192,2198 ----
  	{
  	  struct gomp_team *team = gomp_new_team (1);
  	  struct gomp_task *task = thr->task;
+ 	  struct gomp_task **implicit_task = &task;
  	  struct gomp_task_icv *icv = task ? &task->icv : &gomp_global_icv;
  	  team->prev_ts = thr->ts;
  	  thr->ts.team = team;
*************** GOMP_target_ext (int device, void (*fn)
*** 2204,2218 ****
  	  thr->ts.static_trip = 0;
  	  thr->task = &team->implicit_task[0];
  	  gomp_init_task (thr->task, NULL, icv);
! 	  if (task)
  	    {
! 	      thr->task = task;
  	      gomp_end_task ();
! 	      free (task);
  	      thr->task = &team->implicit_task[0];
  	    }
  	  else
  	    pthread_setspecific (gomp_thread_destructor, thr);
  	}
        if (thr->ts.team
  	  && !thr->task->final_task)
--- 2205,2227 ----
  	  thr->ts.static_trip = 0;
  	  thr->task = &team->implicit_task[0];
  	  gomp_init_task (thr->task, NULL, icv);
! 	  while (*implicit_task
! 		 && (*implicit_task)->kind != GOMP_TASK_IMPLICIT)
! 	    implicit_task = &(*implicit_task)->parent;
! 	  if (*implicit_task)
  	    {
! 	      thr->task = *implicit_task;
  	      gomp_end_task ();
! 	      free (*implicit_task);
  	      thr->task = &team->implicit_task[0];
  	    }
  	  else
  	    pthread_setspecific (gomp_thread_destructor, thr);
+ 	  if (implicit_task != &task)
+ 	    {
+ 	      *implicit_task = thr->task;
+ 	      thr->task = task;
+ 	    }
  	}
        if (thr->ts.team
  	  && !thr->task->final_task)
diff -Nrcpad gcc-11.3.0/libgomp/task.c gcc-11.4.0/libgomp/task.c
*** gcc-11.3.0/libgomp/task.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgomp/task.c	Mon May 29 08:46:32 2023
*************** gomp_create_artificial_team (void)
*** 2202,2207 ****
--- 2202,2208 ----
    struct gomp_task_icv *icv;
    struct gomp_team *team = gomp_new_team (1);
    struct gomp_task *task = thr->task;
+   struct gomp_task **implicit_task = &task;
    icv = task ? &task->icv : &gomp_global_icv;
    team->prev_ts = thr->ts;
    thr->ts.team = team;
*************** gomp_create_artificial_team (void)
*** 2214,2230 ****
    thr->ts.static_trip = 0;
    thr->task = &team->implicit_task[0];
    gomp_init_task (thr->task, NULL, icv);
!   if (task)
      {
!       thr->task = task;
        gomp_end_task ();
!       free (task);
        thr->task = &team->implicit_task[0];
      }
  #ifdef LIBGOMP_USE_PTHREADS
    else
      pthread_setspecific (gomp_thread_destructor, thr);
  #endif
  }
  
  /* The format of data is:
--- 2215,2239 ----
    thr->ts.static_trip = 0;
    thr->task = &team->implicit_task[0];
    gomp_init_task (thr->task, NULL, icv);
!   while (*implicit_task
! 	 && (*implicit_task)->kind != GOMP_TASK_IMPLICIT)
!     implicit_task = &(*implicit_task)->parent;
!   if (*implicit_task)
      {
!       thr->task = *implicit_task;
        gomp_end_task ();
!       free (*implicit_task);
        thr->task = &team->implicit_task[0];
      }
  #ifdef LIBGOMP_USE_PTHREADS
    else
      pthread_setspecific (gomp_thread_destructor, thr);
  #endif
+   if (implicit_task != &task)
+     {
+       *implicit_task = thr->task;
+       thr->task = task;
+     }
  }
  
  /* The format of data is:
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c/pr108459.c gcc-11.4.0/libgomp/testsuite/libgomp.c/pr108459.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c/pr108459.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c/pr108459.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,41 ----
+ /* PR middle-end/108459 */
+ 
+ char a[17][17];
+ 
+ __attribute__((noipa)) void
+ foo (int x, int y)
+ {
+   #pragma omp for collapse(2)
+   for (int i = 1; i <= 16; i++)
+     for (int j = i * x + y; j <= 16; j++)
+       a[i][j] = 1;
+ }
+ 
+ int
+ main ()
+ {
+   #pragma omp parallel
+   foo (1, 1);
+   for (int i = 0; i <= 16; i++)
+     for (int j = 0; j <= 16; j++)
+       if (i >= 1 && j >= i + 1)
+ 	{
+ 	  if (a[i][j] != 1)
+ 	    __builtin_abort ();
+ 	  a[i][j] = 0;
+ 	}
+       else if (a[i][j])
+ 	__builtin_abort ();
+   #pragma omp parallel
+   foo (2, -2);
+   for (int i = 0; i <= 16; i++)
+     for (int j = 0; j <= 16; j++)
+       if (i >= 1 && j >= 2 * i - 2)
+ 	{
+ 	  if (a[i][j] != 1)
+ 	    __builtin_abort ();
+ 	}
+       else if (a[i][j])
+ 	__builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c/target-31.c gcc-11.4.0/libgomp/testsuite/libgomp.c/target-31.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c/target-31.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libgomp/testsuite/libgomp.c/target-31.c	Mon May 29 08:46:32 2023
*************** main ()
*** 76,82 ****
        m[1] += 3 * b;
      }
      use (&a, &b, &c, &d, e, f, g, h);
!     #pragma omp parallel firstprivate (u1, u2)
      {
        int w = omp_get_thread_num ();
        int x = 19;
--- 76,82 ----
        m[1] += 3 * b;
      }
      use (&a, &b, &c, &d, e, f, g, h);
!     #pragma omp parallel firstprivate (u1, u2) private (i)
      {
        int w = omp_get_thread_num ();
        int x = 19;
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c/task-7.c gcc-11.4.0/libgomp/testsuite/libgomp.c/task-7.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c/task-7.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c/task-7.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do run } */
+ 
+ #include <omp.h>
+ #include <stdlib.h>
+ 
+ int
+ main ()
+ {
+   #pragma omp task final (1)
+   {
+     if (!omp_in_final ())
+       abort ();
+     #pragma omp task
+     {
+       if (!omp_in_final ())
+ 	abort ();
+       #pragma omp target nowait
+       if (omp_in_final ())
+ 	abort ();
+       if (!omp_in_final ())
+ 	abort ();
+       #pragma omp taskwait
+     }
+   }
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c/task-8.c gcc-11.4.0/libgomp/testsuite/libgomp.c/task-8.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c/task-8.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c/task-8.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do run } */
+ 
+ int
+ main ()
+ {
+   int i = 0;
+   #pragma omp task
+   {
+     #pragma omp target nowait private (i)
+     i = 1;
+     #pragma omp taskwait
+   }
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c++/pr108180.C gcc-11.4.0/libgomp/testsuite/libgomp.c++/pr108180.C
*** gcc-11.3.0/libgomp/testsuite/libgomp.c++/pr108180.C	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c++/pr108180.C	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,55 ----
+ // PR c++/108180
+ // { dg-do run }
+ 
+ struct A {
+   A () { ++a; }
+   A (A &&) = delete;
+   A (const A &) { ++a; }
+   A &operator= (const A &) = delete;
+   A &operator= (A &&) = delete;
+   ~A () { --a; }
+   static int a;
+ };
+ int A::a = 0;
+ 
+ struct B {
+   A a;
+   template <int N>
+   int
+   foo ()
+   {
+     int res = 0;
+     #pragma omp parallel for if(false) firstprivate(a)
+     for (int i = 0; i < 64; ++i)
+       res += i;
+     return res;
+   }
+   int
+   bar ()
+   {
+     int res = 0;
+     #pragma omp parallel for if(false) firstprivate(a)
+     for (int i = 0; i < 64; ++i)
+       res += i;
+     return res;
+   }
+ };
+ 
+ int
+ main ()
+ {
+   {
+     B b;
+     if (b.foo<0> () != 2016)
+       __builtin_abort ();
+   }
+   if (A::a != 0)
+     __builtin_abort ();
+   {
+     B b;
+     if (b.bar () != 2016)
+       __builtin_abort ();
+   }
+   if (A::a != 0)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c-c++-common/pr106981.c gcc-11.4.0/libgomp/testsuite/libgomp.c-c++-common/pr106981.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c-c++-common/pr106981.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c-c++-common/pr106981.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,19 ----
+ /* PR c/106981 */
+ 
+ int
+ main ()
+ {
+   int a[0x101];
+   unsigned int b = 0x100;
+   if ((unsigned char) b || (unsigned short) b != 0x100)
+     return 0;
+   a[0] = 0;
+   a[0x100] = 42;
+   #pragma omp atomic update
+   a[(unsigned char) b] = a[(unsigned short) b] + a[(unsigned char) b];
+   #pragma omp atomic update
+   a[(unsigned char) b] = a[(unsigned char) b] + a[(unsigned short) b];
+   if (a[0] != 84 || a[0x100] != 42)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c gcc-11.4.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do run } */
+ 
+ #include <omp.h>
+ #include <stdlib.h>
+ 
+ int a;
+ 
+ int
+ main ()
+ {
+   #pragma omp task final (1)
+   {
+     if (!omp_in_final ())
+       abort ();
+     #pragma omp task
+     {
+       if (!omp_in_final ())
+ 	abort ();
+       #pragma omp taskgroup task_reduction (+: a)
+       {
+ 	if (!omp_in_final ())
+ 	  abort ();
+ 	#pragma omp task in_reduction (+: a)
+ 	{
+ 	  ++a;
+ 	  if (!omp_in_final ())
+ 	    abort ();
+ 	}
+       }
+       if (!omp_in_final ())
+ 	abort ();
+       #pragma omp taskwait
+     }
+   }
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c gcc-11.4.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c
*** gcc-11.3.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do run } */
+ 
+ int a;
+ 
+ int
+ main ()
+ {
+   #pragma omp task
+   {
+     #pragma omp taskgroup task_reduction (+: a)
+     {
+       #pragma omp task in_reduction (+: a)
+       ++a;
+     }
+   }
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90 gcc-11.4.0/libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90
*** gcc-11.3.0/libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,47 ----
+ module m
+    use iso_c_binding
+    implicit none
+ contains
+    subroutine s(x,y,z)
+       type(c_ptr), optional :: x
+       integer, pointer, optional :: y
+       integer, allocatable, optional :: z
+       logical is_present, is_null
+       is_present = present(x)
+       if (is_present) &
+         is_null = .not. c_associated(x)
+ 
+       !$omp target is_device_ptr(x)
+         if (is_present) then
+           if (is_null) then
+             if (c_associated(x)) stop 1
+ !            if (associated(y)) stop 2
+ !            if (allocated(z)) stop 3
+           else
+             if (.not. c_associated(x)) stop 4
+ !            if (.not. c_associated(x, c_loc(y))) stop 4
+ !            if (y /= 7) stop 5
+ !            if (z /= 9) stop 6
+           end if
+         end if
+       !$omp end target
+    end
+ end
+ 
+ use m
+ implicit none
+ integer, pointer :: p
+ integer, allocatable :: a
+ p => null()
+ call s()
+ !$omp target data map(p,a) use_device_addr(p,a)
+   call s(c_null_ptr, p, a)
+ !$omp end target data
+ allocate(p,a)
+ p = 7
+ a = 9
+ !$omp target data map(p,a) use_device_addr(p,a)
+   call s(c_loc(p), p, a)
+ !$omp end target data
+ deallocate(p,a)
+ end
diff -Nrcpad gcc-11.3.0/libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90 gcc-11.4.0/libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90
*** gcc-11.3.0/libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90	Mon May 29 08:46:32 2023
***************
*** 0 ****
--- 1,53 ----
+ ! PR middle-end/108546
+ !
+ module m
+    use iso_c_binding
+    implicit none
+    type(c_ptr) :: p2, p3
+ contains
+    subroutine s(x,y,z)
+       type(c_ptr), optional :: x
+       integer, pointer, optional :: y
+       integer, allocatable, optional, target :: z
+       logical is_present, is_null
+       is_present = present(x)
+       if (is_present) &
+         is_null = .not. c_associated(x)
+ 
+       !$omp target data use_device_ptr(x) use_device_addr(y) use_device_addr(z)
+         if (is_present) then
+           if (is_null) then
+             if (c_associated(x)) stop 1
+             if (associated(y)) stop 2
+             if (allocated(z)) stop 3
+           else
+             if (.not. c_associated(x, p2)) stop 4
+             if (.not. c_associated(c_loc(y), p2)) stop 5
+             if (.not. c_associated(c_loc(z), p3)) stop 6
+           end if
+         end if
+       !$omp end target data
+    end
+ end
+ 
+ use m
+ implicit none
+ type(c_ptr) :: cp
+ integer, pointer :: p
+ integer, allocatable, target :: a
+ call s()
+ p => null()
+ call s(c_null_ptr, p, a)
+ allocate(p,a)
+ p = 7
+ a = 9
+ cp = c_loc(p)
+ !$omp target enter data map(to: cp, p, a)
+ !$omp target map(from: p2, p3)
+   p2 = c_loc(p)
+   p3 = c_loc(a)
+ !$omp end target
+ call s(cp, p, a)
+ !$omp target exit data map(delete: cp, p, a)
+ deallocate(p,a)
+ end
diff -Nrcpad gcc-11.3.0/libhsail-rt/ChangeLog gcc-11.4.0/libhsail-rt/ChangeLog
*** gcc-11.3.0/libhsail-rt/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libhsail-rt/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libiberty/ChangeLog gcc-11.4.0/libiberty/ChangeLog
*** gcc-11.3.0/libiberty/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libiberty/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,30 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/109306
+ 	* strstr.c: Revert the 2020-11-13 changes.
+ 	(strstr): Return s1 if len is 0.
+ 
+ 2023-01-04  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-18  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* acinclude.m4 (ac_cv_func_strncmp_works): Add missing
+ 	int return type and parameter list to the definition of main.
+ 	Include <stdlib.h> and <string.h> for prototypes.
+ 	(ac_cv_c_stack_direction): Add missing
+ 	int return type and parameter list to the definitions of
+ 	main, find_stack_direction.  Include <stdlib.h> for exit
+ 	prototype.
+ 	* configure: Regenerate.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libiberty/acinclude.m4 gcc-11.4.0/libiberty/acinclude.m4
*** gcc-11.3.0/libiberty/acinclude.m4	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libiberty/acinclude.m4	Mon May 29 08:46:32 2023
*************** AC_CACHE_CHECK([for working strncmp], ac
*** 24,29 ****
--- 24,31 ----
  [AC_TRY_RUN([
  /* Test by Jim Wilson and Kaveh Ghazi.
     Check whether strncmp reads past the end of its string parameters. */
+ #include <stdlib.h>
+ #include <string.h>
  #include <sys/types.h>
  
  #ifdef HAVE_FCNTL_H
*************** AC_CACHE_CHECK([for working strncmp], ac
*** 51,57 ****
  
  #define MAP_LEN 0x10000
  
! main ()
  {
  #if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
    char *p;
--- 53,60 ----
  
  #define MAP_LEN 0x10000
  
! int
! main (void)
  {
  #if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
    char *p;
*************** if test $ac_cv_os_cray = yes; then
*** 157,163 ****
  fi
  
  AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
! [AC_TRY_RUN([find_stack_direction ()
  {
    static char *addr = 0;
    auto char dummy;
--- 160,169 ----
  fi
  
  AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
! [AC_TRY_RUN([#include <stdlib.h>
! 
! int
! find_stack_direction (void)
  {
    static char *addr = 0;
    auto char dummy;
*************** AC_CACHE_CHECK(stack direction for C all
*** 169,175 ****
    else
      return (&dummy > addr) ? 1 : -1;
  }
! main ()
  {
    exit (find_stack_direction() < 0);
  }],
--- 175,183 ----
    else
      return (&dummy > addr) ? 1 : -1;
  }
! 
! int
! main (void)
  {
    exit (find_stack_direction() < 0);
  }],
diff -Nrcpad gcc-11.3.0/libiberty/configure gcc-11.4.0/libiberty/configure
*** gcc-11.3.0/libiberty/configure	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libiberty/configure	Mon May 29 08:46:32 2023
*************** else
*** 6745,6751 ****
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
! find_stack_direction ()
  {
    static char *addr = 0;
    auto char dummy;
--- 6745,6754 ----
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
! #include <stdlib.h>
! 
! int
! find_stack_direction (void)
  {
    static char *addr = 0;
    auto char dummy;
*************** find_stack_direction ()
*** 6757,6763 ****
    else
      return (&dummy > addr) ? 1 : -1;
  }
! main ()
  {
    exit (find_stack_direction() < 0);
  }
--- 6760,6768 ----
    else
      return (&dummy > addr) ? 1 : -1;
  }
! 
! int
! main (void)
  {
    exit (find_stack_direction() < 0);
  }
*************** else
*** 7582,7587 ****
--- 7587,7594 ----
  
  /* Test by Jim Wilson and Kaveh Ghazi.
     Check whether strncmp reads past the end of its string parameters. */
+ #include <stdlib.h>
+ #include <string.h>
  #include <sys/types.h>
  
  #ifdef HAVE_FCNTL_H
*************** else
*** 7609,7615 ****
  
  #define MAP_LEN 0x10000
  
! main ()
  {
  #if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
    char *p;
--- 7616,7623 ----
  
  #define MAP_LEN 0x10000
  
! int
! main (void)
  {
  #if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
    char *p;
diff -Nrcpad gcc-11.3.0/libiberty/strstr.c gcc-11.4.0/libiberty/strstr.c
*** gcc-11.3.0/libiberty/strstr.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libiberty/strstr.c	Mon May 29 08:46:32 2023
*************** length, the function returns @var{string
*** 18,35 ****
  
  #include <stddef.h>
  
! extern int memcmp (const void *, const void *, size_t);
  extern size_t strlen (const char *);
  
  char *
  strstr (const char *s1, const char *s2)
  {
    const size_t len = strlen (s2);
!   while (*s1)
      {
!       if (!memcmp (s1, s2, len))
! 	return (char *)s1;
!       ++s1;
      }
    return (0);
  }
--- 18,40 ----
  
  #include <stddef.h>
  
! extern char *strchr (const char *, int);
! extern int strncmp (const void *, const void *, size_t);
  extern size_t strlen (const char *);
  
  char *
  strstr (const char *s1, const char *s2)
  {
+   const char *p = s1;
    const size_t len = strlen (s2);
! 
!   if (!len)
!     return s1;
! 
!   for (; (p = strchr (p, *s2)) != 0; p++)
      {
!       if (strncmp (p, s2, len) == 0)
! 	return (char *)p;
      }
    return (0);
  }
diff -Nrcpad gcc-11.3.0/libitm/ChangeLog gcc-11.4.0/libitm/ChangeLog
*** gcc-11.3.0/libitm/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libitm/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libitm/libitm.info gcc-11.4.0/libitm/libitm.info
*** gcc-11.3.0/libitm/libitm.info	Thu Apr 21 08:29:55 2022
--- gcc-11.4.0/libitm/libitm.info	Mon May 29 09:07:36 2023
***************
*** 1,4 ****
! This is libitm.info, produced by makeinfo version 6.5 from libitm.texi.
  
  Copyright (C) 2011-2021 Free Software Foundation, Inc.
  
--- 1,4 ----
! This is libitm.info, produced by makeinfo version 6.8 from libitm.texi.
  
  Copyright (C) 2011-2021 Free Software Foundation, Inc.
  
*************** Node: GNU Free Documentation License358
*** 1306,1308 ****
--- 1306,1313 ----
  Node: Library Index61021
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/libobjc/ChangeLog gcc-11.4.0/libobjc/ChangeLog
*** gcc-11.3.0/libobjc/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libobjc/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/liboffloadmic/ChangeLog gcc-11.4.0/liboffloadmic/ChangeLog
*** gcc-11.3.0/liboffloadmic/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/liboffloadmic/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libphobos/ChangeLog gcc-11.4.0/libphobos/ChangeLog
*** gcc-11.3.0/libphobos/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libphobos/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,44 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2022-12-13  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* libdruntime/core/stdc/fenv.d: Compile in MIPS uClibc bindings on
+ 	MIPS_Any targets.
+ 	* libdruntime/core/stdc/math.d: Likewise.
+ 	* libdruntime/core/sys/posix/dlfcn.d: Likewise.
+ 	* libdruntime/core/sys/posix/setjmp.d: Add MIPS64 definitions for
+ 	CRuntime_UClibc.
+ 	* libdruntime/core/sys/posix/sys/types.d: Likewise.
+ 	* src/std/path.d (expandTilde): Handle more errno codes that could be
+ 	left set by getpwnam_r.
+ 	* src/std/stdio.d: Set CRuntime_UClibc as GENERIC_IO target.
+ 
+ 2022-06-15  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2021-12-01  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* testsuite/testsuite_flags.in: Add libphobos library directory as
+ 	search path to --gdcldflags.
+ 
+ 2022-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2021-09-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* libdruntime/gcc/unwind/generic.d (__aligned__): Define.
+ 	(_Unwind_Exception): Align struct to __aligned__.
+ 
+ 2022-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2022-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* libdruntime/gcc/emutls.d (emutlsDestroyThread): Clear the per-thread
+ 	TLS array, don't call free().
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/core/stdc/fenv.d gcc-11.4.0/libphobos/libdruntime/core/stdc/fenv.d
*** gcc-11.3.0/libphobos/libdruntime/core/stdc/fenv.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/core/stdc/fenv.d	Mon May 29 08:46:32 2023
*************** else version (CRuntime_UClibc)
*** 481,487 ****
  
          alias fexcept_t = ushort;
      }
!     else version (MIPS32)
      {
          struct fenv_t
          {
--- 481,487 ----
  
          alias fexcept_t = ushort;
      }
!     else version (MIPS_Any)
      {
          struct fenv_t
          {
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/core/stdc/math.d gcc-11.4.0/libphobos/libdruntime/core/stdc/math.d
*** gcc-11.3.0/libphobos/libdruntime/core/stdc/math.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/core/stdc/math.d	Mon May 29 08:46:32 2023
*************** else version (CRuntime_UClibc)
*** 113,119 ****
          ///
          enum int FP_ILOGBNAN      = int.min;
      }
!     else version (MIPS32)
      {
          ///
          enum int FP_ILOGB0        = -int.max;
--- 113,119 ----
          ///
          enum int FP_ILOGBNAN      = int.min;
      }
!     else version (MIPS_Any)
      {
          ///
          enum int FP_ILOGB0        = -int.max;
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/core/sys/posix/dlfcn.d gcc-11.4.0/libphobos/libdruntime/core/sys/posix/dlfcn.d
*** gcc-11.3.0/libphobos/libdruntime/core/sys/posix/dlfcn.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/core/sys/posix/dlfcn.d	Mon May 29 08:46:32 2023
*************** else version (CRuntime_UClibc)
*** 316,322 ****
          enum RTLD_LOCAL             = 0;
          enum RTLD_NODELETE          = 0x01000;
      }
!     else version (MIPS32)
      {
          enum RTLD_LAZY              = 0x0001;
          enum RTLD_NOW               = 0x0002;
--- 316,322 ----
          enum RTLD_LOCAL             = 0;
          enum RTLD_NODELETE          = 0x01000;
      }
!     else version (MIPS_Any)
      {
          enum RTLD_LAZY              = 0x0001;
          enum RTLD_NOW               = 0x0002;
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/core/sys/posix/setjmp.d gcc-11.4.0/libphobos/libdruntime/core/sys/posix/setjmp.d
*** gcc-11.3.0/libphobos/libdruntime/core/sys/posix/setjmp.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/core/sys/posix/setjmp.d	Mon May 29 08:46:32 2023
*************** else version (CRuntime_UClibc)
*** 366,371 ****
--- 366,387 ----
                  double[6] __fpregs;
          }
      }
+     else version (MIPS64)
+     {
+         struct __jmp_buf
+         {
+             long __pc;
+             long __sp;
+             long[8] __regs;
+             long __fp;
+             long __gp;
+             int __fpc_csr;
+             version (MIPS_N64)
+                 double[8] __fpregs;
+             else
+                 double[6] __fpregs;
+         }
+     }
      else
          static assert(0, "unimplemented");
  
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/core/sys/posix/sys/types.d gcc-11.4.0/libphobos/libdruntime/core/sys/posix/sys/types.d
*** gcc-11.3.0/libphobos/libdruntime/core/sys/posix/sys/types.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/core/sys/posix/sys/types.d	Mon May 29 08:46:33 2023
*************** else version (CRuntime_UClibc)
*** 1277,1282 ****
--- 1277,1294 ----
          enum __SIZEOF_PTHREAD_BARRIER_T     = 20;
          enum __SIZEOF_PTHREAD_BARRIERATTR_T = 4;
       }
+      else version (MIPS64)
+      {
+         enum __SIZEOF_PTHREAD_ATTR_T        = 56;
+         enum __SIZEOF_PTHREAD_MUTEX_T       = 40;
+         enum __SIZEOF_PTHREAD_MUTEXATTR_T   = 4;
+         enum __SIZEOF_PTHREAD_COND_T        = 48;
+         enum __SIZEOF_PTHREAD_CONDATTR_T    = 4;
+         enum __SIZEOF_PTHREAD_RWLOCK_T      = 56;
+         enum __SIZEOF_PTHREAD_RWLOCKATTR_T  = 8;
+         enum __SIZEOF_PTHREAD_BARRIER_T     = 32;
+         enum __SIZEOF_PTHREAD_BARRIERATTR_T = 4;
+      }
       else version (ARM)
       {
          enum __SIZEOF_PTHREAD_ATTR_T = 36;
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/gcc/emutls.d gcc-11.4.0/libphobos/libdruntime/gcc/emutls.d
*** gcc-11.3.0/libphobos/libdruntime/gcc/emutls.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/gcc/emutls.d	Mon May 29 08:46:33 2023
*************** void** emutlsAlloc(shared __emutls_objec
*** 222,230 ****
  }
  
  /*
!  * When a thread has finished, remove the TLS array from the GC
!  * scan list emutlsArrays, free all allocated TLS variables and
!  * finally free the array.
   */
  extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc
  {
--- 222,230 ----
  }
  
  /*
!  * When a thread has finished, free all allocated TLS variables and empty the
!  * array.  The pointer is not free'd as it is stil referenced by the GC scan
!  * list emutlsArrays, which gets destroyed when druntime is unloaded.
   */
  extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc
  {
*************** extern (C) void emutlsDestroyThread(void
*** 236,242 ****
              free(entry[-1]);
      }
  
!     free(arr);
  }
  
  /*
--- 236,242 ----
              free(entry[-1]);
      }
  
!     arr.length = 0;
  }
  
  /*
diff -Nrcpad gcc-11.3.0/libphobos/libdruntime/gcc/unwind/generic.d gcc-11.4.0/libphobos/libdruntime/gcc/unwind/generic.d
*** gcc-11.3.0/libphobos/libdruntime/gcc/unwind/generic.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/libdruntime/gcc/unwind/generic.d	Mon May 29 08:46:33 2023
*************** enum : _Unwind_Reason_Code
*** 123,129 ****
  // @@@ The IA-64 ABI says that this structure must be double-word aligned.
  // Taking that literally does not make much sense generically.  Instead we
  // provide the maximum alignment required by any type for the machine.
! struct _Unwind_Exception
  {
      _Unwind_Exception_Class exception_class;
      _Unwind_Exception_Cleanup_Fn exception_cleanup;
--- 123,149 ----
  // @@@ The IA-64 ABI says that this structure must be double-word aligned.
  // Taking that literally does not make much sense generically.  Instead we
  // provide the maximum alignment required by any type for the machine.
!      version (ARM)      private enum __aligned__ = 8;
! else version (AArch64)  private enum __aligned__ = 16;
! else version (HPPA)     private enum __aligned__ = 8;
! else version (HPPA64)   private enum __aligned__ = 16;
! else version (MIPS_N32) private enum __aligned__ = 16;
! else version (MIPS_N64) private enum __aligned__ = 16;
! else version (MIPS32)   private enum __aligned__ = 8;
! else version (MIPS64)   private enum __aligned__ = 8;
! else version (PPC)      private enum __aligned__ = 16;
! else version (PPC64)    private enum __aligned__ = 16;
! else version (RISCV32)  private enum __aligned__ = 16;
! else version (RISCV64)  private enum __aligned__ = 16;
! else version (S390)     private enum __aligned__ = 8;
! else version (SPARC)    private enum __aligned__ = 8;
! else version (SPARC64)  private enum __aligned__ = 16;
! else version (SystemZ)  private enum __aligned__ = 8;
! else version (X86)      private enum __aligned__ = 16;
! else version (X86_64)   private enum __aligned__ = 16;
! else static assert( false, "Platform not supported.");
! 
! align(__aligned__) struct _Unwind_Exception
  {
      _Unwind_Exception_Class exception_class;
      _Unwind_Exception_Cleanup_Fn exception_cleanup;
diff -Nrcpad gcc-11.3.0/libphobos/src/std/path.d gcc-11.4.0/libphobos/src/std/path.d
*** gcc-11.3.0/libphobos/src/std/path.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/src/std/path.d	Mon May 29 08:46:33 2023
*************** string expandTilde(string inputPath) not
*** 3850,3856 ****
      version (Posix)
      {
          import core.exception : onOutOfMemoryError;
!         import core.stdc.errno : errno, ERANGE;
          import core.stdc.stdlib : malloc, free, realloc;
  
          /*  Joins a path from a C string to the remainder of path.
--- 3850,3856 ----
      version (Posix)
      {
          import core.exception : onOutOfMemoryError;
!         import core.stdc.errno : errno, EBADF, ENOENT, EPERM, ERANGE, ESRCH;
          import core.stdc.stdlib : malloc, free, realloc;
  
          /*  Joins a path from a C string to the remainder of path.
*************** string expandTilde(string inputPath) not
*** 3950,3956 ****
                  scope(exit) free(extra_memory);
  
                  passwd result;
!                 while (1)
                  {
                      extra_memory = cast(char*) realloc(extra_memory, extra_memory_size * char.sizeof);
                      if (extra_memory == null)
--- 3950,3956 ----
                  scope(exit) free(extra_memory);
  
                  passwd result;
!                 loop: while (1)
                  {
                      extra_memory = cast(char*) realloc(extra_memory, extra_memory_size * char.sizeof);
                      if (extra_memory == null)
*************** string expandTilde(string inputPath) not
*** 3969,3978 ****
                          break;
                      }
  
!                     if (errno != ERANGE &&
                          // On BSD and OSX, errno can be left at 0 instead of set to ERANGE
!                         errno != 0)
!                         onOutOfMemoryError();
  
                      // extra_memory isn't large enough
                      import core.checkedint : mulu;
--- 3969,3991 ----
                          break;
                      }
  
!                     switch (errno)
!                     {
!                         case ERANGE:
                          // On BSD and OSX, errno can be left at 0 instead of set to ERANGE
!                         case 0:
!                             break;
! 
!                         case ENOENT:
!                         case ESRCH:
!                         case EBADF:
!                         case EPERM:
!                             // The given name or uid was not found.
!                             break loop;
! 
!                         default:
!                             onOutOfMemoryError();
!                     }
  
                      // extra_memory isn't large enough
                      import core.checkedint : mulu;
diff -Nrcpad gcc-11.3.0/libphobos/src/std/stdio.d gcc-11.4.0/libphobos/src/std/stdio.d
*** gcc-11.3.0/libphobos/src/std/stdio.d	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/src/std/stdio.d	Mon May 29 08:46:33 2023
*************** else version (CRuntime_Musl)
*** 52,59 ****
  }
  else version (CRuntime_UClibc)
  {
!     // uClibc supports GCC IO
!     version = GCC_IO;
  }
  else version (OSX)
  {
--- 52,58 ----
  }
  else version (CRuntime_UClibc)
  {
!     version = GENERIC_IO;
  }
  else version (OSX)
  {
diff -Nrcpad gcc-11.3.0/libphobos/testsuite/testsuite_flags.in gcc-11.4.0/libphobos/testsuite/testsuite_flags.in
*** gcc-11.3.0/libphobos/testsuite/testsuite_flags.in	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libphobos/testsuite/testsuite_flags.in	Mon May 29 08:46:33 2023
*************** case ${query} in
*** 46,51 ****
--- 46,52 ----
      --gdcldflags)
        GDCLDFLAGS="-B${BUILD_DIR}/src
                    -B${BUILD_DIR}/libdruntime/gcc
+                   -B${BUILD_DIR}/src/.libs
                    -L${BUILD_DIR}/src/.libs"
        echo ${GDCLDFLAGS}
        ;;
diff -Nrcpad gcc-11.3.0/libquadmath/ChangeLog gcc-11.4.0/libquadmath/ChangeLog
*** gcc-11.3.0/libquadmath/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libquadmath/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,22 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-02  niXman  <i.nixman@autistici.org>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libquadmath/87204
+ 	PR libquadmath/94756
+ 	* strtod/strtod_l.c (round_and_return): Cherry-pick glibc
+ 	9310c284ae9 BZ #16151, 4406c41c1d6 BZ #16965 and fcd6b5ac36a
+ 	BZ #23279 fixes.
+ 	(____STRTOF_INTERNAL): Cherry-pick glibc b0debe14fcf BZ #23007,
+ 	5556d30caee BZ #18247, 09555b9721d and c6aac3bf366 BZ #26137 and
+ 	d84f25c7d87 fixes.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libquadmath/libquadmath.info gcc-11.4.0/libquadmath/libquadmath.info
*** gcc-11.3.0/libquadmath/libquadmath.info	Thu Apr 21 08:29:50 2022
--- gcc-11.4.0/libquadmath/libquadmath.info	Mon May 29 09:07:34 2023
***************
*** 1,4 ****
! This is libquadmath.info, produced by makeinfo version 6.5 from
  libquadmath.texi.
  
  Copyright (C) 2010-2021 Free Software Foundation, Inc.
--- 1,4 ----
! This is libquadmath.info, produced by makeinfo version 6.8 from
  libquadmath.texi.
  
  Copyright (C) 2010-2021 Free Software Foundation, Inc.
*************** Node: GNU Free Documentation License109
*** 809,811 ****
--- 809,816 ----
  Node: Reporting Bugs36065
  
  End Tag Table
+ 
+ 
+ Local Variables:
+ coding: utf-8
+ End:
diff -Nrcpad gcc-11.3.0/libquadmath/strtod/strtod_l.c gcc-11.4.0/libquadmath/strtod/strtod_l.c
*** gcc-11.3.0/libquadmath/strtod/strtod_l.c	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libquadmath/strtod/strtod_l.c	Mon May 29 08:46:33 2023
*************** round_and_return (mp_limb_t *retval, int
*** 200,206 ****
  
  	  round_limb = retval[RETURN_LIMB_SIZE - 1];
  	  round_bit = (MANT_DIG - 1) % BITS_PER_MP_LIMB;
! 	  for (i = 0; i < RETURN_LIMB_SIZE; ++i)
  	    more_bits |= retval[i] != 0;
  	  MPN_ZERO (retval, RETURN_LIMB_SIZE);
  	}
--- 200,206 ----
  
  	  round_limb = retval[RETURN_LIMB_SIZE - 1];
  	  round_bit = (MANT_DIG - 1) % BITS_PER_MP_LIMB;
! 	  for (i = 0; i < RETURN_LIMB_SIZE - 1; ++i)
  	    more_bits |= retval[i] != 0;
  	  MPN_ZERO (retval, RETURN_LIMB_SIZE);
  	}
*************** round_and_return (mp_limb_t *retval, int
*** 215,223 ****
  	  more_bits |= ((round_limb & ((((mp_limb_t) 1) << round_bit) - 1))
  			!= 0);
  
! 	  (void) mpn_rshift (retval, &retval[shift / BITS_PER_MP_LIMB],
! 			     RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB),
! 			     shift % BITS_PER_MP_LIMB);
  	  MPN_ZERO (&retval[RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB)],
  		    shift / BITS_PER_MP_LIMB);
  	}
--- 215,228 ----
  	  more_bits |= ((round_limb & ((((mp_limb_t) 1) << round_bit) - 1))
  			!= 0);
  
! 	  /* mpn_rshift requires 0 < shift < BITS_PER_MP_LIMB.  */
! 	  if ((shift % BITS_PER_MP_LIMB) != 0)
! 	    (void) mpn_rshift (retval, &retval[shift / BITS_PER_MP_LIMB],
! 			       RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB),
! 			       shift % BITS_PER_MP_LIMB);
! 	  else
! 	    for (i = 0; i < RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB); i++)
! 	      retval[i] = retval[i + (shift / BITS_PER_MP_LIMB)];
  	  MPN_ZERO (&retval[RETURN_LIMB_SIZE - (shift / BITS_PER_MP_LIMB)],
  		    shift / BITS_PER_MP_LIMB);
  	}
*************** round_and_return (mp_limb_t *retval, int
*** 276,282 ****
  	}
      }
  
!   if (exponent > MAX_EXP)
      goto overflow;
  
  #ifdef HAVE_FENV_H
--- 281,287 ----
  	}
      }
  
!   if (exponent >= MAX_EXP)
      goto overflow;
  
  #ifdef HAVE_FENV_H
*************** round_and_return (mp_limb_t *retval, int
*** 308,314 ****
      }
  #endif
  
!   if (exponent > MAX_EXP)
    overflow:
      return overflow_value (negative);
  
--- 313,319 ----
      }
  #endif
  
!   if (exponent >= MAX_EXP)
    overflow:
      return overflow_value (negative);
  
*************** ____STRTOF_INTERNAL (nptr, endptr, group
*** 688,694 ****
  	  if (endptr != NULL)
  	    *endptr = (STRING_TYPE *) cp;
  
! 	  return retval;
  	}
  
        /* It is really a text we do not recognize.  */
--- 693,699 ----
  	  if (endptr != NULL)
  	    *endptr = (STRING_TYPE *) cp;
  
! 	  return negative ? -retval : retval;
  	}
  
        /* It is really a text we do not recognize.  */
*************** ____STRTOF_INTERNAL (nptr, endptr, group
*** 1193,1199 ****
    if (__builtin_expect (exponent > MAX_10_EXP + 1 - (intmax_t) int_no, 0))
      return overflow_value (negative);
  
!   if (__builtin_expect (exponent < MIN_10_EXP - (DIG + 1), 0))
      return underflow_value (negative);
  
    if (int_no > 0)
--- 1198,1213 ----
    if (__builtin_expect (exponent > MAX_10_EXP + 1 - (intmax_t) int_no, 0))
      return overflow_value (negative);
  
!   /* 10^(MIN_10_EXP-1) is not normal.  Thus, 10^(MIN_10_EXP-1) /
!      2^MANT_DIG is below half the least subnormal, so anything with a
!      base-10 exponent less than the base-10 exponent (which is
!      MIN_10_EXP - 1 - ceil(MANT_DIG*log10(2))) of that value
!      underflows.  DIG is floor((MANT_DIG-1)log10(2)), so an exponent
!      below MIN_10_EXP - (DIG + 3) underflows.  But EXPONENT is
!      actually an exponent multiplied only by a fractional part, not an
!      integer part, so an exponent below MIN_10_EXP - (DIG + 2)
!      underflows.  */
!   if (__builtin_expect (exponent < MIN_10_EXP - (DIG + 2), 0))
      return underflow_value (negative);
  
    if (int_no > 0)
*************** ____STRTOF_INTERNAL (nptr, endptr, group
*** 1360,1366 ****
  
      assert (dig_no > int_no
  	    && exponent <= 0
! 	    && exponent >= MIN_10_EXP - (DIG + 1));
  
      /* We need to compute MANT_DIG - BITS fractional bits that lie
         within the mantissa of the result, the following bit for
--- 1374,1380 ----
  
      assert (dig_no > int_no
  	    && exponent <= 0
! 	    && exponent >= MIN_10_EXP - (DIG + 2));
  
      /* We need to compute MANT_DIG - BITS fractional bits that lie
         within the mantissa of the result, the following bit for
*************** ____STRTOF_INTERNAL (nptr, endptr, group
*** 1651,1658 ****
  	  d1 = den[densize - 2];
  
  	  /* The division does not work if the upper limb of the two-limb
! 	     numerator is greater than the denominator.  */
! 	  if (mpn_cmp (num, &den[densize - numsize], numsize) > 0)
  	    num[numsize++] = 0;
  
  	  if (numsize < densize)
--- 1665,1672 ----
  	  d1 = den[densize - 2];
  
  	  /* The division does not work if the upper limb of the two-limb
! 	     numerator is greater than or equal to the denominator.  */
! 	  if (mpn_cmp (num, &den[densize - numsize], numsize) >= 0)
  	    num[numsize++] = 0;
  
  	  if (numsize < densize)
*************** ____STRTOF_INTERNAL (nptr, endptr, group
*** 1761,1767 ****
  	      got_limb;
  	    }
  
! 	  for (i = densize; num[i] == 0 && i >= 0; --i)
  	    ;
  	  return round_and_return (retval, exponent - 1, negative,
  				   quot, BITS_PER_MP_LIMB - 1 - used,
--- 1775,1781 ----
  	      got_limb;
  	    }
  
! 	  for (i = densize; i >= 0 && num[i] == 0; --i)
  	    ;
  	  return round_and_return (retval, exponent - 1, negative,
  				   quot, BITS_PER_MP_LIMB - 1 - used,
diff -Nrcpad gcc-11.3.0/libsanitizer/ChangeLog gcc-11.4.0/libsanitizer/ChangeLog
*** gcc-11.3.0/libsanitizer/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libsanitizer/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,24 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from master:
+ 	2023-04-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* configure.tgt: Unsupport Darwin22+ until a mechanism can be found
+ 	to locate dyld in the shared cache.
+ 
+ 2023-01-04  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-18  Florian Weimer  <fweimer@redhat.com>
+ 
+ 	* configure.ac (sanitizer_supported): Include <unistd.h> for
+ 	syscall prototype.
+ 	* configure: Regenerate.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libsanitizer/configure gcc-11.4.0/libsanitizer/configure
*** gcc-11.3.0/libsanitizer/configure	Thu Apr 21 07:59:35 2022
--- gcc-11.4.0/libsanitizer/configure	Mon May 29 08:49:47 2023
*************** case "$target" in
*** 16035,16040 ****
--- 16035,16041 ----
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  #include <sys/syscall.h>
+ #include <unistd.h>
  int
  main ()
  {
diff -Nrcpad gcc-11.3.0/libsanitizer/configure.ac gcc-11.4.0/libsanitizer/configure.ac
*** gcc-11.3.0/libsanitizer/configure.ac	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libsanitizer/configure.ac	Mon May 29 08:46:33 2023
*************** case "$target" in
*** 161,167 ****
    *-*-linux*)
      # Some old Linux distributions miss required syscalls.
      sanitizer_supported=no
!     AC_TRY_COMPILE([#include <sys/syscall.h>],[
        syscall (__NR_gettid);
        syscall (__NR_futex);
        syscall (__NR_exit_group);
--- 161,168 ----
    *-*-linux*)
      # Some old Linux distributions miss required syscalls.
      sanitizer_supported=no
!     AC_TRY_COMPILE([#include <sys/syscall.h>
! #include <unistd.h>],[
        syscall (__NR_gettid);
        syscall (__NR_futex);
        syscall (__NR_exit_group);
diff -Nrcpad gcc-11.3.0/libsanitizer/configure.tgt gcc-11.4.0/libsanitizer/configure.tgt
*** gcc-11.3.0/libsanitizer/configure.tgt	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libsanitizer/configure.tgt	Mon May 29 08:46:33 2023
*************** case "${target}" in
*** 63,69 ****
  		HWASAN_SUPPORTED=yes
  	fi
  	;;
!   x86_64-*-darwin2* | x86_64-*-darwin1[2-9]* | i?86-*-darwin1[2-9]*)
  	TSAN_SUPPORTED=no
  	EXTRA_CXXFLAGS+="-Wl,-undefined,dynamic_lookup"
  	;;
--- 63,69 ----
  		HWASAN_SUPPORTED=yes
  	fi
  	;;
!   x86_64-*-darwin2[01]* | x86_64-*-darwin1[2-9]* | i?86-*-darwin1[2-8]*)
  	TSAN_SUPPORTED=no
  	EXTRA_CXXFLAGS+="-Wl,-undefined,dynamic_lookup"
  	;;
diff -Nrcpad gcc-11.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp gcc-11.4.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
*** gcc-11.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp	Mon May 29 08:46:33 2023
***************
*** 72,78 ****
--- 72,80 ----
  #include <sys/vt.h>
  #include <linux/cdrom.h>
  #include <linux/fd.h>
+ #if SANITIZER_ANDROID
  #include <linux/fs.h>
+ #endif
  #include <linux/hdreg.h>
  #include <linux/input.h>
  #include <linux/ioctl.h>
*************** unsigned struct_ElfW_Phdr_sz = sizeof(El
*** 828,837 ****
    unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
    unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
  #endif
!   unsigned IOCTL_FS_IOC_GETFLAGS = FS_IOC_GETFLAGS;
!   unsigned IOCTL_FS_IOC_GETVERSION = FS_IOC_GETVERSION;
!   unsigned IOCTL_FS_IOC_SETFLAGS = FS_IOC_SETFLAGS;
!   unsigned IOCTL_FS_IOC_SETVERSION = FS_IOC_SETVERSION;
    unsigned IOCTL_GIO_CMAP = GIO_CMAP;
    unsigned IOCTL_GIO_FONT = GIO_FONT;
    unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
--- 830,839 ----
    unsigned IOCTL_EVIOCGPROP = IOCTL_NOT_PRESENT;
    unsigned IOCTL_EVIOCSKEYCODE_V2 = IOCTL_NOT_PRESENT;
  #endif
!   unsigned IOCTL_FS_IOC_GETFLAGS = _IOR('f', 1, long);
!   unsigned IOCTL_FS_IOC_GETVERSION = _IOR('v', 1, long);
!   unsigned IOCTL_FS_IOC_SETFLAGS = _IOW('f', 2, long);
!   unsigned IOCTL_FS_IOC_SETVERSION = _IOW('v', 2, long);
    unsigned IOCTL_GIO_CMAP = GIO_CMAP;
    unsigned IOCTL_GIO_FONT = GIO_FONT;
    unsigned IOCTL_GIO_UNIMAP = GIO_UNIMAP;
diff -Nrcpad gcc-11.3.0/libssp/ChangeLog gcc-11.4.0/libssp/ChangeLog
*** gcc-11.3.0/libssp/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libssp/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/ChangeLog gcc-11.4.0/libstdc++-v3/ChangeLog
*** gcc-11.3.0/libstdc++-v3/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libstdc++-v3/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,1657 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/109261
+ 	* include/experimental/bits/simd.h (_SimdWrapper::_M_set):
+ 	Avoid vector builtin subscripting in constant expressions.
+ 	(resizing_simd_cast): Avoid memcpy if constant_evaluated.
+ 	(const_where_expression, where_expression, where)
+ 	(__extract_part, simd_mask, _SimdIntOperators, simd): Add either
+ 	_GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
+ 	internal APIs).
+ 	* include/experimental/bits/simd_builtin.h (__vector_permute)
+ 	(__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
+ 	(_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
+ 	(_MaskImplBuiltin::_S_store): Add constexpr.
+ 	(_CommonImplBuiltin::_S_store_bool_array)
+ 	(_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
+ 	(_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
+ 	constant_evaluated case.
+ 	* include/experimental/bits/simd_fixed_size.h
+ 	(_S_masked_load): Reword comment.
+ 	(__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
+ 	(_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
+ 	(__make_simd_tuple, __optimize_simd_tuple, __extract_part)
+ 	(__autocvt_to_simd, _Fixed::__traits::_SimdBase)
+ 	(_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
+ 	constexpr.
+ 	(_SimdTuple::operator[], _M_set): Add constexpr and add
+ 	constant_evaluated case.
+ 	(_MaskImplFixedSize::_S_load): Add constant_evaluated case.
+ 	* include/experimental/bits/simd_scalar.h: Add constexpr.
+ 	* include/experimental/bits/simd_x86.h (_CommonImplX86): Add
+ 	constexpr and add constant_evaluated case.
+ 	(_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
+ 	(_S_less_equal): Value-initialize to satisfy constexpr
+ 	evaluation.
+ 	(_MaskImplX86::_S_load): Add constant_evaluated case.
+ 	(_MaskImplX86::_S_store): Add constexpr and constant_evaluated
+ 	case. Value-initialize local variables.
+ 	(_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
+ 	(_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
+ 	case.
+ 	* testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
+ 	test.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/109949
+ 	* include/experimental/bits/simd.h (__intrinsic_type): If
+ 	__ALTIVEC__ is defined, map gnu::vector_size types to their
+ 	corresponding __vector T types without losing unsignedness of
+ 	integer types. Also prefer long long over long.
+ 	* include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
+ 	object to the expected unsigned vector type.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/109261
+ 	* include/experimental/bits/simd.h (__intrinsic_type):
+ 	Specialize __intrinsic_type<double, 8> and
+ 	__intrinsic_type<double, 16> in any case, but provide the member
+ 	type only with __aarch64__.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/109261
+ 	* include/experimental/bits/simd_neon.h (_S_reduce): Add
+ 	constexpr and make NEON implementation conditional on
+ 	not __builtin_is_constant_evaluated.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
+ 	__infn into #ifdef'ed block.
+ 	* testsuite/experimental/simd/tests/fpclassify.cc: Declare
+ 	constants only when used.
+ 	* testsuite/experimental/simd/tests/frexp.cc: Likewise.
+ 	* testsuite/experimental/simd/tests/logarithm.cc: Likewise.
+ 	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
+ 	Likewise.
+ 	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
+ 	Move totest and expect1 into #ifdef'ed block.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd.h (is_simd_flag_type): New.
+ 	(_IsSimdFlagType): New.
+ 	(copy_from, copy_to, load ctors): Constrain _Flags using
+ 	_IsSimdFlagType.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_x86.h (_SimdImplX86): Use
+ 	_Base::_S_divides if the optimized _S_divides function is hidden
+ 	via the preprocessor.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_detail.h: Don't declare the
+ 	simd API as constexpr with Clang.
+ 	* include/experimental/bits/simd_x86.h (__movm): New.
+ 	(_S_blend_avx512): Resolve FIXME. Implement blend using __movm
+ 	and ?:.
+ 	(_SimdImplX86::_S_masked_unary): Clang does not implement the
+ 	same builtins. Implement the function using __movm, ?:, and -
+ 	operators on vector_size types instead.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd.h: Line breaks and indenting
+ 	fixed to follow the libstdc++ standard.
+ 	* include/experimental/bits/simd_builtin.h: Likewise.
+ 	* include/experimental/bits/simd_fixed_size.h: Likewise.
+ 	* include/experimental/bits/simd_neon.h: Likewise.
+ 	* include/experimental/bits/simd_ppc.h: Likewise.
+ 	* include/experimental/bits/simd_scalar.h: Likewise.
+ 	* include/experimental/bits/simd_x86.h: Likewise.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/108030
+ 	* include/experimental/bits/simd_fixed_size.h
+ 	(_SimdImplFixedSize::_S_broadcast): Replace inline with
+ 	_GLIBCXX_SIMD_INTRINSIC.
+ 	(_SimdImplFixedSize::_S_generate): Likewise.
+ 	(_SimdImplFixedSize::_S_load): Likewise.
+ 	(_SimdImplFixedSize::_S_masked_load): Likewise.
+ 	(_SimdImplFixedSize::_S_store): Likewise.
+ 	(_SimdImplFixedSize::_S_masked_store): Likewise.
+ 	(_SimdImplFixedSize::_S_min): Likewise.
+ 	(_SimdImplFixedSize::_S_max): Likewise.
+ 	(_SimdImplFixedSize::_S_complement): Likewise.
+ 	(_SimdImplFixedSize::_S_unary_minus): Likewise.
+ 	(_SimdImplFixedSize::_S_plus): Likewise.
+ 	(_SimdImplFixedSize::_S_minus): Likewise.
+ 	(_SimdImplFixedSize::_S_multiplies): Likewise.
+ 	(_SimdImplFixedSize::_S_divides): Likewise.
+ 	(_SimdImplFixedSize::_S_modulus): Likewise.
+ 	(_SimdImplFixedSize::_S_bit_and): Likewise.
+ 	(_SimdImplFixedSize::_S_bit_or): Likewise.
+ 	(_SimdImplFixedSize::_S_bit_xor): Likewise.
+ 	(_SimdImplFixedSize::_S_bit_shift_left): Likewise.
+ 	(_SimdImplFixedSize::_S_bit_shift_right): Likewise.
+ 	(_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
+ 	explicit about not always-inline, yet).
+ 	(_SimdImplFixedSize::_S_isinf): Likewise.
+ 	(_SimdImplFixedSize::_S_isfinite): Likewise.
+ 	(_SimdImplFixedSize::_S_isnan): Likewise.
+ 	(_SimdImplFixedSize::_S_isnormal): Likewise.
+ 	(_SimdImplFixedSize::_S_signbit): Likewise.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/108856
+ 	* include/experimental/bits/simd_builtin.h
+ 	(_SimdImplBuiltin::_S_masked_unary): More efficient
+ 	implementation of masked inc-/decrement for integers and floats
+ 	without AVX2.
+ 	* include/experimental/bits/simd_x86.h
+ 	(_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
+ 	builtins for masked inc-/decrement.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* testsuite/experimental/simd/tests/reductions.cc: Introduce
+ 	max_distance as the type-dependent max error.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/108030
+ 	* include/experimental/bits/simd_detail.h
+ 	(_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
+ 	__clang__.
+ 
+ 2023-05-25  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/108030
+ 	* include/experimental/bits/simd_detail.h: Define
+ 	_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
+ 	* include/experimental/bits/simd.h: Annotate lambdas with
+ 	_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
+ 	* include/experimental/bits/simd_builtin.h: Ditto.
+ 	* include/experimental/bits/simd_converter.h: Ditto.
+ 	* include/experimental/bits/simd_fixed_size.h: Ditto.
+ 	* include/experimental/bits/simd_math.h: Ditto.
+ 	* include/experimental/bits/simd_neon.h: Ditto.
+ 	* include/experimental/bits/simd_x86.h: Ditto.
+ 
+ 2023-05-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-03-14  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
+ 	Define.
+ 	(__cpp_lib_move_iterator_concept): Define for C++20.
+ 	(move_iterator::iterator_concept): Strengthen as per P2520R0.
+ 	* include/std/version (__cpp_lib_move_iterator_concept): Define
+ 	for C++20.
+ 	* testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/107801
+ 	* src/c++17/memory_resource.cc (chunk::_M_bytes): Change type
+ 	from uint32_t to bitset::size_type. Adjust static assertion.
+ 	(__pool_resource::_Pool::replenish): Cast to size_t after
+ 	multiplication instead of before.
+ 	(__pool_resource::_M_alloc_pools): Ensure both arguments to
+ 	std::max have type size_t.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/107801
+ 	* src/c++17/memory_resource.cc (pool_sizes): Disable large pools
+ 	for targets with 16-bit int.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/91456
+ 	* include/std/type_traits (__is_nothrow_invocable): Remove.
+ 	(__is_invocable_impl::__nothrow_type): New member type which
+ 	checks if the conversion can throw.
+ 	(__is_nt_invocable_impl): Replace class template with alias
+ 	template to __is_nt_invocable_impl::__nothrow_type.
+ 	* testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
+ 	* testsuite/20_util/is_nothrow_convertible/value.cc: Remove
+ 	macro used by value_ext.cc test.
+ 	* testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
+ 	test for non-standard __is_nothrow_invocable trait.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/c_global/cstddef (byte): Add always_inline attribute
+ 	to all operator overloads.
+ 	(to_integer): Add always_inline attribute.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/fs_ops.h: Add nodiscard to all pure functions.
+ 	* include/experimental/bits/fs_ops.h: Likewise.
+ 	* testsuite/27_io/filesystem/operations/all.cc: Do not discard
+ 	results of absolute and canonical.
+ 	* testsuite/27_io/filesystem/operations/absolute.cc: Cast
+ 	discarded result to void.
+ 	* testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
+ 	* testsuite/27_io/filesystem/operations/exists.cc: Likewise.
+ 	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
+ 	* testsuite/27_io/filesystem/operations/read_symlink.cc:
+ 	Likewise.
+ 	* testsuite/27_io/filesystem/operations/status.cc: Likewise.
+ 	* testsuite/27_io/filesystem/operations/symlink_status.cc:
+ 	Likewise.
+ 	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
+ 	Likewise.
+ 	* testsuite/experimental/filesystem/operations/canonical.cc:
+ 	Likewise.
+ 	* testsuite/experimental/filesystem/operations/exists.cc:
+ 	Likewise.
+ 	* testsuite/experimental/filesystem/operations/is_empty.cc:
+ 	Likewise.
+ 	* testsuite/experimental/filesystem/operations/read_symlink.cc:
+ 	Likewise.
+ 	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
+ 	Likewise.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/variant (variant::operator=): Implement resolution
+ 	of LWG 3585.
+ 	* testsuite/20_util/variant/lwg3585.cc: New test.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
+ 	const qualifier.
+ 	* testsuite/26_numerics/valarray/87641.cc (X::operator==):
+ 	Likewise.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-03-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/104875
+ 	* src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
+ 	hold octets that will be left-shifted.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/ranges_algobase.h (__detail::__copy_or_move):
+ 	Move output iterator.
+ 	* testsuite/25_algorithms/copy/constrained.cc: Check copying to
+ 	move-only output iterator.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/108118
+ 	* include/bits/shared_ptr_base.h (weak_ptr::operator=):
+ 	Implement as move-and-swap exactly as specified in the standard.
+ 	* testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
+ 
+ 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/108265
+ 	* include/std/chrono (hh_mm_ss): Do not use chrono::abs if
+ 	duration rep is unsigned. Remove incorrect noexcept-specifier.
+ 	* testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
+ 	floating-point representations. Check default construction.
+ 
+ 2023-05-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-24  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/max_size_type.h (__max_diff_type::operator>>=):
+ 	Fix propagation of sign bit.
+ 	* testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
+ 	non-standard 'signed typedef-name'.  Add some compile-time tests
+ 	for right-shifting a negative __max_diff_type value by more than
+ 	one.
+ 
+ 2023-05-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105844
+ 	* include/experimental/numeric (lcm): Use built-in instead of
+ 	__is_constant_evaluated.
+ 	* include/std/numeric (__abs_r, lcm): Likewise.
+ 	* testsuite/26_numerics/gcd/105844.cc: Add dg-prune-output.
+ 	* testsuite/26_numerics/lcm/105844.cc: Likewise.
+ 
+ 2023-05-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105844
+ 	* include/experimental/numeric (experimental::gcd): Simplify
+ 	assertions. Use __abs_r instead of __absu.
+ 	(experimental::lcm): Likewise. Remove use of __detail::__lcm so
+ 	overflow can be detected.
+ 	* include/std/numeric (__detail::__absu): Rename to __abs_r and
+ 	change to allow signed result type, so overflow can be detected.
+ 	(__detail::__lcm): Remove.
+ 	(gcd): Simplify assertions. Use __abs_r instead of __absu.
+ 	(lcm): Likewise. Remove use of __detail::__lcm so overflow can
+ 	be detected.
+ 	* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
+ 	* testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
+ 	* testsuite/26_numerics/gcd/105844.cc: New test.
+ 	* testsuite/26_numerics/lcm/105844.cc: New test.
+ 
+ 2023-05-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
+ 	from header paths.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/intro.xml: Document LWG 1203.
+ 	* doc/html/*: Regenerate.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/barrier: Add missing runtime exception.
+ 
+ 2023-04-27  François Dumont  <fdumont@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2022-05-26  François Dumont  <fdumont@gcc.gnu.org>
+ 
+ 	* python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
+ 	Strip typename from version namespace.
+ 
+ 2023-04-27  Philipp Fent  <fent@in.tum.de>
+ 
+ 	Backported from master:
+ 	2022-04-25  Philipp Fent  <fent@in.tum.de>
+ 
+ 	* python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
+ 	Rename as iterator.
+ 	(StdInitializerListPrinter): Define new printer.
+ 	(build_libstdcxx_dictionary): Register new printer.
+ 	* testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
+ 	initializer_list.
+ 
+ 2023-04-27  Philipp Fent  <fent@in.tum.de>
+ 
+ 	Backported from master:
+ 	2022-04-19  Philipp Fent  <fent@in.tum.de>
+ 
+ 	* python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
+ 	* testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/atomic: Add missing @endcond doxygen comment.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/extensions.xml: Remove std::bad_exception from
+ 	example program.
+ 	* doc/html/manual/ext_demangling.html: Regenerate.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
+ 	HTML docs.
+ 	* include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
+ 	from doxygen docs.
+ 	* include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
+ 	Likewise.
+ 	* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
+ 	Likewise.
+ 	* include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
+ 	Likewise.
+ 	* include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
+ 	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
+ 	(_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
+ 	(_DEFINE_BINARY_OPERATOR): Likewise.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-10-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/fs_path.h (path::filename()): Fix dangling
+ 	reference.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/109064
+ 	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
+ 	Remove self-recursion in __init__. Add missing _supports.
+ 	* testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
+ 	and unique().
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/108952
+ 	* include/bits/uses_allocator_args.h
+ 	(uses_allocator_construction_args): Implement LWG 3527.
+ 	* testsuite/20_util/pair/astuple/get-2.cc: New test.
+ 	* testsuite/20_util/scoped_allocator/108952.cc: New test.
+ 	* testsuite/20_util/uses_allocator/lwg3527.cc: New test.
+ 
+ 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/experimental/optional: Fix header name in comment.
+ 
+ 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_detail.h: Don't define
+ 	_GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
+ 	* include/experimental/bits/simd_x86.h (_S_divides): Remove
+ 	check for __clang__.
+ 
+ 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* testsuite/experimental/simd/tests/operators.cc: Clang doesn't
+ 	define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
+ 
+ 2023-03-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/108636
+ 	* include/bits/fs_path.h (path::path(string_view, _Type))
+ 	(path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
+ 	definitions to ...
+ 	* src/c++17/fs_path.cc: ... here.
+ 	* testsuite/27_io/filesystem/path/108636.cc: New test.
+ 
+ 2023-03-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++17/fs_ops.cc [AVR] (not_supported): Define as a macro
+ 	for function_not_supported.
+ 	* src/filesystem/ops-common.h [AVR] (ENOTSUP): Define as a macro
+ 	for ENOSYS.
+ 
+ 2023-03-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++11/random.cc (random_device::_M_fini): Do not try to
+ 	close the file handle if the target doesn't support the
+ 	/dev/random and /dev/urandom files.
+ 
+ 2023-03-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* config/os/generic/error_constants.h (errc::value_too_large)
+ 	[__AVR__]: Define.
+ 	* src/c++11/system_error.cc
+ 	(system_category::default_error_condition) [__AVR__]: Only match
+ 	recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
+ 	* src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not use
+ 	getcwd.
+ 	* src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
+ 	close etc.
+ 
+ 2023-03-10  Thomas W Rodgers  <rodgert@twrodgers.com>
+ 
+ 	Backported from master:
+ 	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
+ 
+ 	PR libstdc++/103934
+ 	* include/std/atomic (atomic_flag_wait): Add.
+ 	(atomic_flag_wait_explicit): Add.
+ 	(atomic_flag_notify): Add.
+ 	(atomic_flag_notify_explicit): Add.
+ 	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
+ 	Add test case to cover missing atomic_flag free functions.
+ 
+ 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/108030
+ 	* include/experimental/bits/simd.h (__vector_broadcast):
+ 	Implement via __vector_broadcast_impl instead of
+ 	__call_with_n_evaluations + 2 lambdas.
+ 	(__vector_broadcast_impl): New.
+ 
+ 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_builtin.h (_S_set): Compare as
+ 	int. The actual range of these indexes is very small.
+ 
+ 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_x86.h (_S_bit_shift_left)
+ 	(_S_bit_shift_right): Declare constexpr. The implementation was
+ 	already expecting constexpr evaluation.
+ 
+ 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd.h (__extract_part, split):
+ 	Use reserved name for template parameter.
+ 
+ 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd_x86.h
+ 	(_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
+ 	(_SimdImplX86::_S_less_equal): Do not call
+ 	__builtin_is_constant_evaluated in constexpr-if.
+ 
+ 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* testsuite/experimental/simd/tests/bits/verify.h
+ 	(verify::verify): Use %zx for size_t in format string.
+ 
+ 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/experimental/bits/simd.h
+ 	(_SimdWrapper::_M_is_constprop_none_of)
+ 	(_SimdWrapper::_M_is_constprop_all_of): Return false unless the
+ 	computed result still satisfies __builtin_constant_p.
+ 
+ 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
+ 
+ 	Backported from master:
+ 	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
+ 
+ 	PR libstdc++/103934
+ 	* include/std/atomic (atomic_flag_test): Add.
+ 	(atomic_flag_test_explicit): Add.
+ 	* testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
+ 	test case to cover missing atomic_flag free functions.
+ 	* testsuite/29_atomics/atomic_flag/test/implicit.cc:
+ 	Likewise.
+ 
+ 2023-02-02  Detlef Vollmann  <dv@vollmann.ch>
+ 
+ 	Backported from master:
+ 	2022-03-10  Detlef Vollmann  <dv@vollmann.ch>
+ 
+ 	PR libstdc++/104866
+ 	* include/bits/this_thread_sleep.h: Fix order of #endif and
+ 	closing brace of namespace.
+ 
+ 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/106183
+ 	* include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
+ 	Move increment of _M_ver here.
+ 	[!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
+ 	Use relaxed memory order and always notify all waiters.
+ 	(__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
+ 	Check value again after locking mutex.
+ 	(__waiter_base::_M_notify): Remove increment of _M_ver.
+ 
+ 2022-12-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/107814
+ 	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
+ 	Use a static buffer with space after it.
+ 
+ 2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/authors.xml: Remove empty author element.
+ 	* doc/xml/manual/spine.xml: Likewise.
+ 	* doc/html/*: Regenerate.
+ 
+ 2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/version [!_GLIBCXX_HOSTED]
+ 	(__cpp_lib_bit_cast): Define for freestanding.
+ 	(__cpp_lib_string_contains): Do not define for freestanding.
+ 	(__cpp_lib_to_underlying): Likewise.
+ 
+ 2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/106607
+ 	* include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
+ 	Use built-ins to check for integer overflow in back-reference
+ 	number.
+ 	* testsuite/28_regex/basic_regex/106607.cc: New test.
+ 
+ 2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/106695
+ 	* include/bits/std_thread.h (thread::_State_impl): Forward
+ 	individual arguments to _Invoker constructor.
+ 	(thread::_Invoker): Add constructor. Delete copies.
+ 	* include/std/future (__future_base::_Deferred_state): Forward
+ 	individual arguments to _Invoker constructor.
+ 	(__future_base::_Async_state_impl): Likewise.
+ 	* testsuite/30_threads/async/106695.cc: New test.
+ 	* testsuite/30_threads/thread/106695.cc: New test.
+ 
+ 2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-12  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/106248
+ 	* include/std/istream [C++17] (operator>>(istream&, char*)):
+ 	Set eofbit if we stopped extracting at EOF.
+ 	* testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
+ 	New test.
+ 	* testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
+ 	New test.
+ 
+ 2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/104443
+ 	* include/bits/stl_iterator.h (common_iterator::operator->):
+ 	Change return type to just auto.
+ 
+ 2022-09-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/string_view (basic_string_view(Range&&)): Add
+ 	explicit as per P2499R0.
+ 	* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
+ 	Adjust implicit conversions. Check implicit conversions fail.
+ 	* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
+ 	Likewise.
+ 
+ 2022-07-26  Thomas Rodgers  <trodgers@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-26  Thomas Rodgers  <trodgers@redhat.com>
+ 
+ 	* include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
+ 
+ 2022-07-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/106320
+ 	* include/std/ranges (single_view): Relax constraints on
+ 	default constructor so as to preserve pre-P2325R3 behavior.
+ 	(filter_view): Likewise.
+ 	(transform_view): Likewise.
+ 	(take_while_view): Likewise.
+ 	(drop_while_view): Likewise.
+ 	* testsuite/std/ranges/adaptors/join.cc (test13): New test.
+ 	* testsuite/std/ranges/p2325.cc: Fix S to be only non default
+ 	constructible and not also non copy constructible.  XFAIL the
+ 	tests that verify a non default constructible functor makes a
+ 	view non default constructible (lines 94, 97 and 98).  XFAIL
+ 	the test that effectively verifies a non default constructible
+ 	element type makes single_view non default constructible (line
+ 	114).
+ 
+ 2022-07-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/100823
+ 	* include/bits/stl_iterator.h (common_iterator): Define move
+ 	constructor and move assignment operator.
+ 	(common_iterator::_M_assign): New function implementing
+ 	assignment.
+ 	(common_iterator::operator=): Use _M_assign.
+ 	(common_iterator::_S_valueless): New constant.
+ 	* testsuite/24_iterators/common_iterator/100823.cc: New test.
+ 
+ 2022-07-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_iterator.h (common_iterator): Fix incorrect
+ 	uses of is_nothrow_assignable_v. Fix inconsistent constraints on
+ 	friend declaration. Do not move argument in copy constructor.
+ 	* testsuite/24_iterators/common_iterator/1.cc: Check for
+ 	noexcept constructibnle/assignable.
+ 
+ 2022-07-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/103992
+ 	* include/bits/stl_iterator.h (common_iterator): Use
+ 	std::construct_at instead of placement new.
+ 	* testsuite/24_iterators/common_iterator/1.cc: Check copy
+ 	construction is usable in constant expressions.
+ 
+ 2022-07-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_iterator.h (common_iterator): Add constexpr
+ 	to all member functions (LWG 3574).
+ 	* testsuite/24_iterators/common_iterator/1.cc: Evaluate some
+ 	tests as constant expressions.
+ 	* testsuite/24_iterators/common_iterator/2.cc: Likewise.
+ 
+ 2022-07-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
+ 	functions are available.
+ 
+ 2022-07-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/88881
+ 	* src/filesystem/ops.cc (has_trailing_slash): New helper
+ 	function.
+ 	(fs::status): Strip trailing slashes.
+ 	(fs::symlink_status): Likewise.
+ 	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
+ 	Clean the environment before each test and use TMP instead of
+ 	TMPDIR so the test passes on Windows.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/106162
+ 	* include/Makefile.am (largefile-config.h): Add
+ 	stamp-${host_alias} prerequisite.
+ 	* include/Makefile.in: Regenerate.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
+ 	rmdir to remove directories.
+ 	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
+ 	Likewise.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_iterator.h (counted_iterator::operator++(int)):
+ 	Add 'constexpr' as per LWG 3643.
+ 	* testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105671
+ 	* include/std/sstream (basic_stringbuf::_M_high_mark): Add
+ 	always_inline attribute.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/future (launch): Make operators noexcept.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-12-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/ranges_base.h (ranges::size, ranges::empty): Add
+ 	explicit check for unbounded arrays before using ranges::begin.
+ 	* testsuite/std/ranges/access/empty.cc: Check handling of unbounded
+ 	arrays.
+ 	* testsuite/std/ranges/access/size.cc: Likewise.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
+ 	* include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
+ 	* include/bits/regex_compiler.tcc: Likewise.
+ 	* include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
+ 	* include/bits/regex_scanner.tcc: Likewise.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.h (basic_regex, swap): Add noexcept to
+ 	non-throwing functions.
+ 	* include/bits/regex_automaton.h (_State_base, _State)
+ 	(_NFA_base): Likewise.
+ 	* include/bits/regex_compiler.h (_Compiler): Likewise.
+ 	* include/bits/regex_error.h (regex_error::code()): Likewise.
+ 	* include/bits/regex_scanner.h (_Scanner): Likewise.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-12-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/102447
+ 	* include/bits/regex_compiler.h (_Compiler::_BracketState): New
+ 	class.
+ 	(_Compiler::_BrackeyMatcher): New alias template.
+ 	(_Compiler::_M_expression_term): Change pair<bool, CharT>
+ 	parameter to _BracketState. Process first character for
+ 	ECMAScript syntax as well as POSIX.
+ 	* include/bits/regex_compiler.tcc
+ 	(_Compiler::_M_insert_bracket_matcher): Pass _BracketState.
+ 	(_Compiler::_M_expression_term): Use _BracketState to store
+ 	state between calls. Improve handling of dashes in ranges.
+ 	* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
+ 	Add more tests for ranges containing dashes. Check invalid
+ 	ranges with character class at the beginning.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex_compiler.h (_Compiler::_S_validate): New
+ 	function.
+ 	* include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
+ 	_S_validate to check flags.
+ 	* include/bits/regex_error.h (_S_grammar): New error code for
+ 	internal use.
+ 	* testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex_compiler.tcc: Add line break in empty while
+ 	statement.
+ 	* include/bits/regex_executor.tcc: Avoid unused parameter
+ 	warning.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-10  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
+ 	Add dg-timeout-factor directive.
+ 	* testsuite/28_regex/basic_regex/84110.cc: Likewise.
+ 	* testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
+ 	* testsuite/28_regex/match_results/102667.cc: Likewise.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.h (__detail::__is_contiguous_iter): Move
+ 	here from <bits/regex_compiler.h>.
+ 	(basic_regex::_M_compile): New function to compile an NFA from
+ 	a regular expression string.
+ 	(basic_regex::basic_regex): Use _M_compile instead of delegating
+ 	to other constructors.
+ 	(basic_regex::operator=(const basic_regex&)): Define as
+ 	defaulted.
+ 	(basic_regex::operator=(initializer_list<C>)): Use _M_compile.
+ 	(basic_regex::assign(const basic_regex&)): Use copy assignment.
+ 	(basic_regex::assign(basic_regex&&)): Use move assignment.
+ 	(basic_regex::assign(const C*, flag_type)): Use _M_compile
+ 	instead of constructing a temporary string.
+ 	(basic_regex::assign(const C*, size_t, flag_type)): Likewise.
+ 	(basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
+ 	Use _M_compile instead of constructing a temporary basic_regex.
+ 	(basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
+ 	constructing a temporary string for contiguous iterators of the
+ 	right value type.
+ 	* include/bits/regex_compiler.h (__is_contiguous_iter): Move to
+ 	<bits/regex.h>.
+ 	(__enable_if_contiguous_iter, __disable_if_contiguous_iter)
+ 	(__compile_nfa): Remove.
+ 	* testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
+ 	test.
+ 	* testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-12-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/103664
+ 	* include/bits/regex.h (__regex_replace): Declare.
+ 	(regex_replace): Use it.
+ 	* include/bits/regex.tcc (__regex_replace): Replace regex_replace
+ 	definition with __regex_replace.
+ 	* testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/variant (__detail::__variant::__get_storage):
+ 	Remove unused function.
+ 	(__variant_construct_by_index): Set index after construction is
+ 	complete. Rename to ...
+ 	(__detail::__variant::__construct_by_index): ... this.
+ 	(variant): Use new name for __variant_construct_by_index friend
+ 	declaration. Remove __get_storage friend declaration.
+ 	(variant::emplace): Use new name and remove try-blocks.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/list.tcc (list::merge): Remove call to size() and
+ 	try-catch block. Use _Finalize_merge instead.
+ 	* include/bits/stl_list.h (list::_Finalize_merge): New
+ 	scope guard type to update _M_size members after a merge.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-10-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.h (basic_regex::multiline): Define for
+ 	non-strict C++11 and C++14 modes.
+ 	* include/bits/regex_constants.h (regex_constants::multiline):
+ 	Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-30  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.h (basic_regex::multiline): Fix #if
+ 	condition.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.h (basic_regex::multiline): Define constant
+ 	for C++17.
+ 	* include/bits/regex_constants.h (regex_constants::multiline):
+ 	Define constant for C++17.
+ 	(regex_constants::__multiline): Define duplicate constant for
+ 	internal use in C++11 and C++14.
+ 	* include/bits/regex_executor.h (_Executor::_M_match_multiline()):
+ 	New member function.
+ 	(_Executor::_M_is_line_terminator(_CharT)): New member function.
+ 	(_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
+ 	member functions to support multiline matches.
+ 	* testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
+ 
+ 2022-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	Backported from master:
+ 	2021-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* testsuite/28_regex/basic_regex/84110.cc (test01)
+ 	[__cpp_exceptions]: Disambiguate extended.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/84110
+ 	* include/bits/regex_error.h (regex_constants::_S_null): New
+ 	error code for internal use.
+ 	* include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
+ 	Check for null character.
+ 	* testsuite/28_regex/basic_regex/84110.cc: New test.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-10-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/variant (_Variant_storage::_M_storage()): Remove.
+ 	(__detail::__variant::__get_storage): Remove.
+ 	(variant): Remove friend declaration of __get_storage.
+ 
+ 2022-07-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libstdc++/105128
+ 	* include/std/source_location (std::source_location::__impl): Move
+ 	definition before using __builtin_ret_type.
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-02-24  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/104602
+ 	* include/std/source_location (source_location::current): Use
+ 	deduced type of __builtin_source_location().
+ 
+ 2022-07-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-26  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/fs_path.h (hash<filesystem::path>): Define.
+ 	* testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
+ 	Check std::hash specialization.
+ 
+ 2022-06-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-06-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/atomic (__atomic_val_t): Use __type_identity_t
+ 	instead of atomic<T>::value_type, as per LWG 3220.
+ 	* testsuite/29_atomics/atomic/lwg3220.cc: New test.
+ 
+ 2022-06-15  Mark Mentovai  <mark@mentovai.com>
+ 
+ 	Backported from master:
+ 	2022-06-13  Mark Mentovai  <mark@mentovai.com>
+ 
+ 	* include/experimental/bits/fs_path.h (__detail::__null_terminated):
+ 	Rename to __nul_terminated to avoid colliding with a macro in
+ 	Apple's SDK.
+ 
+ 2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105915
+ 	* include/experimental/bits/fs_path.h (path::begin, path::end):
+ 	Remove noexcept from declarations.
+ 
+ 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/status_cxx2023.xml: Update status.
+ 	* doc/html/manual/status.html: Regenerate.
+ 
+ 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/prerequisites.xml: Fix attributes for external
+ 	hyperlink.
+ 	* doc/html/manual/setup.html: Regenerate.
+ 
+ 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/intro.xml: Include new chapter.
+ 	* doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
+ 	* doc/xml/manual/status_cxx2023.xml: New file.
+ 	* doc/html/*: Regenerate.
+ 
+ 2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/html/manual/status.html: Regenerate.
+ 	* doc/xml/manual/status_cxx2020.xml: Fix supported version for
+ 	C++20 bit operations.
+ 
+ 2022-05-13  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	Backported from master:
+ 	2022-05-06  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
+ 	for double, long long, and 64-bit long intrinsic types.
+ 	[__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
+ 	preexisting long double diagnostic, adjust no-VSX double
+ 	diagnostic to cover 64-bit long double as well.
+ 
+ 2022-05-11  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-02  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/103911
+ 	* src/c++17/floating_from_chars.cc (find_end_of_float): Accept
+ 	two delimeters for the exponent part in the form of a possibly
+ 	NULL string of length two.  Don't use std::tolower.
+ 	(pattern): Adjust calls to find_end_of_float accordingly.
+ 
+ 2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105284
+ 	* include/std/iosfwd: Add declarations for <synstream> class
+ 	templates and typedefs.
+ 	* include/std/syncstream (basic_syncbuf, basic_osyncstream):
+ 	Remove default template arguments.
+ 	* testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
+ 	* testsuite/27_io/headers/iosfwd/types.cc: New test.
+ 
+ 2022-05-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-25  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/104217
+ 	* src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
+ 	* src/filesystem/dir.cc (_GNU_SOURCE): Define.
+ 	* src/filesystem/ops.cc (_GNU_SOURCE): Define.
+ 
+ 2022-05-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105502
+ 	* include/bits/random.tcc
+ 	(operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
+ 	Update state when __state_avail is false.
+ 	* testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
+ 	Check that deserialized object equals serialized one.
+ 
+ 2022-05-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/104731
+ 	* testsuite/27_io/filesystem/iterators/error_reporting.cc:
+ 	Use a trailing char array as storage for dirent::d_name.
+ 
+ 2022-05-06  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	Backported from master:
+ 	2022-05-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR c++/105324
+ 	* testsuite/20_util/from_chars/pr105324.cc: Guard test body
+ 	with conditional for floating-point overloads of from_char.
+ 
+ 2022-04-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/99290
+ 	* src/c++17/fs_ops.cc (fs::copy): Pass error_code to
+ 	directory_iterator constructor, and check on each iteration.
+ 	* src/filesystem/ops.cc (fs::copy): Likewise.
+ 	* testsuite/27_io/filesystem/operations/copy.cc: Check for
+ 	errors during recursion.
+ 	* testsuite/experimental/filesystem/operations/copy.cc:
+ 	Likewise.
+ 
+ 2022-04-26  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-25  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105375
+ 	* include/std/future (packaged_task): Add deduction guides.
+ 	* testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
+ 
+ 2022-04-22  Thomas W Rodgers  <trodgers@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-22  Thomas W Rodgers  <trodgers@redhat.com>
+ 
+ 	PR libstdc++/102994
+ 	* include/bits/atomic_base.h (atomic_flag::notify_one,
+ 	notify_all): Remove const qualification.
+ 	(__atomic_base::notify_one, notify_all): Likewise.
+ 	* include/std/atomic (atomic<bool>::notify_one, notify_all):
+ 	Likewise.
+ 	(atomic::notify_one, notify_all): Likewise.
+ 	(atomic<T*>::notify_one, notify_all): Likewise.
+ 	(atomic_notify_one, atomic_notify_all): Likewise.
+ 	* testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
+ 	to account for change in notify_one/notify_all signature.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-11-26  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/96592
+ 	* include/std/tuple (tuple::is_constructible): Remove.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR c++/102177
+ 	* include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
+ 	New function to check if a memory order is valid for the failure
+ 	case of compare exchange operations.
+ 	(__atomic_base<I>::compare_exchange_weak): Simplify assertions
+ 	by using __is_valid_cmpexch_failure_order.
+ 	(__atomic_base<I>::compare_exchange_strong): Likewise.
+ 	(__atomic_base<P*>::compare_exchange_weak): Likewise.
+ 	(__atomic_base<P*>::compare_exchange_strong): Likewise.
+ 	(__atomic_impl::compare_exchange_weak): Add assertion.
+ 	(__atomic_impl::compare_exchange_strong): Likewise.
+ 	* include/std/atomic (atomic::compare_exchange_weak): Likewise.
+ 	(atomic::compare_exchange_strong): Likewise.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/20_util/monotonic_buffer_resource/allocate.cc:
+ 	Ignore -Walloc-larger-than warning.
+ 	* testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
+ 	Likewise.
+ 	* testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
+ 	to avoid linker error for __atomic_is_lock_free.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-12-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_iterator.h (operator==, operator<=>): Define
+ 	overloads for homogeneous specializations of reverse_iterator,
+ 	__normal_iterator and move_iterator.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-11-26  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to
+ 	account for LWG 3435 resolution.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-08-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/101709
+ 	* src/filesystem/ops-common.h (get_temp_directory_from_env):
+ 	Add error_code parameter.
+ 	* src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
+ 	argument to get_temp_directory_from_env and check it.
+ 	* src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/105324
+ 	* src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
+ 	Remove assertion.
+ 	* testsuite/20_util/from_chars/pr105324.cc: New test.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-07-30  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/65018
+ 	* configure.ac: Check for secure_getenv.
+ 	* config.h.in: Regenerate.
+ 	* configure: Regenerate.
+ 	* src/filesystem/ops-common.h (get_temp_directory_from_env): New
+ 	helper function to obtain path from the environment.
+ 	* src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
+ 	* src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
+ 	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
+ 	Print messages if test cannot be run.
+ 	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
+ 	Likewise. Fix incorrect condition. Use "TMP" to work with
+ 	Windows as well as POSIX.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-11-30  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to
+ 	select new ABI.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-11-30  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow
+ 	moved-from string to be non-empty.
+ 	* testsuite/21_strings/basic_string/cons/char/moveable2.cc:
+ 	Likewise.
+ 	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
+ 	Likewise.
+ 	* testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc:
+ 	Likewise.
+ 	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
+ 	Likewise.
+ 	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
+ 	Likewise.
+ 	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
+ 	Construct empty string before setting oom flag.
+ 	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
+ 	Likewise.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-12-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex_compiler.tcc (_Compiler::_M_match_token):
+ 	Use reserved name for parameter.
+ 	* testsuite/17_intro/names.cc: Check "token".
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-08-25  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/17_intro/names.cc: Check 'sz'.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
+ 	Add neoxcept (LWG 3593).
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-11-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/experimental/internet (address): Use std::_Construct
+ 	to initialize union members.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++11/cxx11-ios_failure.cc (io_error_category): Define
+ 	class and virtual functions as 'final'.
+ 	(io_category_instance): Use constinit union to make the object
+ 	immortal.
+ 	* src/c++11/future.cc (future_error_category): Define class and
+ 	virtual functions as 'final'.
+ 	(future_category_instance): Use constinit union.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-11-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/span (span(Range&&)): Reorder constraints.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2021-12-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove
+ 	micro-optimization for "/" path.
+ 	* src/filesystem/path.cc (path::_M_split_cmpts()): Only access
+ 	the contents of _M_pathname using const member functions.
+ 
+ 2022-04-21  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
+ 
+ 	Backported from master:
+ 	2022-01-06  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
+ 		    Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/103853
+ 	* include/bits/forward_list.tcc (forward_list::merge): Check for
+ 	self-merge.
+ 	* testsuite/23_containers/forward_list/operations/merge.cc: New test.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_construct.h (_Construct, _Construct_novalue):
+ 	Also cast away cv-qualifiers when converting pointer to void.
+ 	* testsuite/20_util/allocator/void.cc: Test construct function
+ 	with cv-qualified types.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/103911
+ 	* include/std/charconv (__from_chars_alpha_to_num): Return
+ 	char instead of unsigned char. Change invalid return value to
+ 	127 instead of using numeric trait.
+ 	(__from_chars_alnum): Fix comment. Do not use std::isdigit.
+ 	Change type of variable to char.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/ranges_base.h (ranges::advance): Avoid signed
+ 	overflow. Do nothing if already equal to desired result.
+ 	* testsuite/24_iterators/range_operations/advance_overflow.cc:
+ 	New test.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-03-03  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/17_intro/names.cc (func): Undef on AIX.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/93602
+ 	* doc/xml/manual/prerequisites.xml: Document libiconv
+ 	workarounds.
+ 	* doc/html/manual/setup.html: Regenerate.
+ 	* src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
+ 	* src/Makefile.in: Regenerate.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/intro.xml: Fix comment.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-04-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
+ 	Check correct feature test macro.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR middle-end/104966
+ 	* include/bits/locale_facets_nonio.tcc
+ 	(__moneypunct_cache::_M_cache): Store string sizes in local
+ 	variable that doesn't escape.
+ 
+ 2022-04-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2022-01-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/103848
+ 	* include/bits/stl_deque.h (operator-): Do not use 0 as null
+ 	pointer constant.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/config/os/generic/error_constants.h gcc-11.4.0/libstdc++-v3/config/os/generic/error_constants.h
*** gcc-11.3.0/libstdc++-v3/config/os/generic/error_constants.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/config/os/generic/error_constants.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 167,172 ****
--- 167,174 ----
  
  #ifdef EOVERFLOW
        value_too_large = 			EOVERFLOW,
+ #elif defined __AVR__
+       value_too_large = 			999,
  #endif
  
        wrong_protocol_type = 			EPROTOTYPE
diff -Nrcpad gcc-11.3.0/libstdc++-v3/config.h.in gcc-11.4.0/libstdc++-v3/config.h.in
*** gcc-11.3.0/libstdc++-v3/config.h.in	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/config.h.in	Mon May 29 08:46:33 2023
***************
*** 310,315 ****
--- 310,318 ----
  /* Define if readlink is available in <unistd.h>. */
  #undef HAVE_READLINK
  
+ /* Define to 1 if you have the `secure_getenv' function. */
+ #undef HAVE_SECURE_GETENV
+ 
  /* Define to 1 if you have the `setenv' function. */
  #undef HAVE_SETENV
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/configure gcc-11.4.0/libstdc++-v3/configure
*** gcc-11.3.0/libstdc++-v3/configure	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/configure	Mon May 29 08:46:33 2023
*************** _ACEOF
*** 28422,28427 ****
--- 28422,28438 ----
  fi
  done
  
+   for ac_func in secure_getenv
+ do :
+   ac_fn_c_check_func "$LINENO" "secure_getenv" "ac_cv_func_secure_getenv"
+ if test "x$ac_cv_func_secure_getenv" = xyes; then :
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_SECURE_GETENV 1
+ _ACEOF
+ 
+ fi
+ done
+ 
  
    # C11 functions for C++17 library
    for ac_func in timespec_get
diff -Nrcpad gcc-11.3.0/libstdc++-v3/configure.ac gcc-11.4.0/libstdc++-v3/configure.ac
*** gcc-11.3.0/libstdc++-v3/configure.ac	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/configure.ac	Mon May 29 08:46:33 2023
*************** if $GLIBCXX_IS_NATIVE; then
*** 276,281 ****
--- 276,282 ----
    AC_CHECK_FUNCS(__cxa_thread_atexit_impl __cxa_thread_atexit)
    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
    AC_CHECK_FUNCS(_wfopen)
+   AC_CHECK_FUNCS(secure_getenv)
  
    # C11 functions for C++17 library
    AC_CHECK_FUNCS(timespec_get)
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/doxygen/user.cfg.in gcc-11.4.0/libstdc++-v3/doc/doxygen/user.cfg.in
*** gcc-11.3.0/libstdc++-v3/doc/doxygen/user.cfg.in	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/doxygen/user.cfg.in	Mon May 29 08:46:33 2023
*************** FULL_PATH_NAMES        = NO
*** 152,158 ****
  # will be relative from the directory where doxygen is started.
  # This tag requires that the tag FULL_PATH_NAMES is set to YES.
  
! STRIP_FROM_PATH        =
  
  # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
  # path mentioned in the documentation of a class, which tells the reader which
--- 152,158 ----
  # will be relative from the directory where doxygen is started.
  # This tag requires that the tag FULL_PATH_NAMES is set to YES.
  
! STRIP_FROM_PATH        = @srcdir@/doc/ @srcdir@/libsupc++/ include/
  
  # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
  # path mentioned in the documentation of a class, which tells the reader which
*************** WARN_LOGFILE           =
*** 837,842 ****
--- 837,843 ----
  # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
  # Note: If this tag is empty the current directory is searched.
  
+ # N.B. update STRIP_FROM_PATH to sanitize paths outside the build tree.
  INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
                           @srcdir@/libsupc++/compare \
                           @srcdir@/libsupc++/cxxabi.h \
*************** USE_MDFILE_AS_MAINPAGE =
*** 1216,1222 ****
  # also VERBATIM_HEADERS is set to NO.
  # The default value is: NO.
  
! SOURCE_BROWSER         = YES
  
  # Setting the INLINE_SOURCES tag to YES will include the body of functions,
  # classes and enums directly into the documentation.
--- 1217,1223 ----
  # also VERBATIM_HEADERS is set to NO.
  # The default value is: NO.
  
! SOURCE_BROWSER         = @do_html@
  
  # Setting the INLINE_SOURCES tag to YES will include the body of functions,
  # classes and enums directly into the documentation.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/bk02.html gcc-11.4.0/libstdc++-v3/doc/html/bk02.html
*** gcc-11.3.0/libstdc++-v3/doc/html/bk02.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/bk02.html	Mon May 29 08:46:33 2023
***************
*** 1,2 ****
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility" /><link rel="next" href="api.html" title="The GNU C++ Library API Reference" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Backwards Compatibility </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html>
\ No newline at end of file
--- 1,2 ----
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="manual/appendix_gfdl.html" title="Appendix E. GNU Free Documentation License" /><link rel="next" href="api.html" title="The GNU C++ Library API Reference" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="manual/appendix_gfdl.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manual/appendix_gfdl.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix E. GNU Free Documentation License </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/index.html gcc-11.4.0/libstdc++-v3/doc/html/index.html
*** gcc-11.3.0/libstdc++-v3/doc/html/index.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/index.html	Mon May 29 08:46:33 2023
***************
*** 23,29 ****
      </p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I. 
    Introduction
    
! </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="manual/status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/std_contents.html">II. 
      Standard Contents
    </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/support.html">4. 
    Support
--- 23,29 ----
      </p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I. 
    Introduction
    
! </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="manual/status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.2023">C++ 2023</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/std_contents.html">II. 
      Standard Contents
    </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/support.html">4. 
    Support
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/bugs.html gcc-11.4.0/libstdc++-v3/doc/html/manual/bugs.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/bugs.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/bugs.html	Mon May 29 08:46:33 2023
***************
*** 350,355 ****
--- 350,358 ----
  	<span class="emphasis"><em>More algorithms that throw away information</em></span>
      </span></dt><dd><p>The traditional HP / SGI return type and value is blessed
  		    by the resolution of the DR.
+     </p></dd><dt><a id="manual.bugs.dr1203"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1203" target="_top">1203</a>:
+        <span class="emphasis"><em>More useful rvalue stream insertion</em></span>
+     </span></dt><dd><p>Return the stream as its original type, not the base class.
      </p></dd><dt><a id="manual.bugs.dr1339"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1339" target="_top">1339</a>:
         <span class="emphasis"><em>uninitialized_fill_n should return the end of its range</em></span>
      </span></dt><dd><p>Return the end of the filled range.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/ext_demangling.html gcc-11.4.0/libstdc++-v3/doc/html/manual/ext_demangling.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/ext_demangling.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/ext_demangling.html	Mon May 29 08:46:33 2023
*************** int main()
*** 39,52 ****
    int     status;
    char   *realname;
  
-   // exception classes not in &lt;stdexcept&gt;, thrown by the implementation
-   // instead of the user
-   std::bad_exception  e;
-   realname = abi::__cxa_demangle(e.what(), 0, 0, &amp;status);
-   std::cout &lt;&lt; e.what() &lt;&lt; "\t=&gt; " &lt;&lt; realname &lt;&lt; "\t: " &lt;&lt; status &lt;&lt; '\n';
-   free(realname);
- 
- 
    // typeid
    bar&lt;empty,17&gt;          u;
    const std::type_info  &amp;ti = typeid(u);
--- 39,44 ----
*************** int main()
*** 61,73 ****
       This prints
     </p><pre class="screen">
     <code class="computeroutput">
-       St13bad_exception       =&gt; std::bad_exception   : 0
        3barI5emptyLi17EE       =&gt; bar&lt;empty, 17&gt;       : 0
     </code>
     </pre><p>
       The demangler interface is described in the source documentation
       linked to above.  It is actually written in C, so you don't need to
       be writing C++ in order to demangle C++.  (That also means we have to
!      use crummy memory management facilities, so don't forget to free()
!      the returned char array.)
     </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 27. Input and Output </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 29. Concurrency</td></tr></table></div></body></html>
\ No newline at end of file
--- 53,64 ----
       This prints
     </p><pre class="screen">
     <code class="computeroutput">
        3barI5emptyLi17EE       =&gt; bar&lt;empty, 17&gt;       : 0
     </code>
     </pre><p>
       The demangler interface is described in the source documentation
       linked to above.  It is actually written in C, so you don't need to
       be writing C++ in order to demangle C++.  (That also means we have to
!      use crummy memory management facilities, so don't forget to
!      <code class="code">free()</code> the returned char array.)
     </p></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="extensions.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 27. Input and Output </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 29. Concurrency</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/extensions.html gcc-11.4.0/libstdc++-v3/doc/html/manual/extensions.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/extensions.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/extensions.html	Mon May 29 08:46:33 2023
***************
*** 1,8 ****
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III.  Extensions</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="ext_preface.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. 
    Extensions
    
! </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="ext_preface.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext"></a>Part III. 
    Extensions
    <a id="id-1.3.5.1.1.1" class="indexterm"></a>
  </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="ext_preface.html"></a></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="debug_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
--- 1,8 ----
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III.  Extensions</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="concurrency.html" title="Chapter 15.  Concurrency" /><link rel="next" href="ext_preface.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. 
    Extensions
    
! </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="concurrency.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="ext_preface.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext"></a>Part III. 
    Extensions
    <a id="id-1.3.5.1.1.1" class="indexterm"></a>
  </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="ext_preface.html"></a></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="debug_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
***************
*** 68,71 ****
  	  Text <code class="function">modify</code> Up
  	</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#performance.priority_queue.text_modify_down">
  	  Text <code class="function">modify</code> Down
! 	</a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">22. HP/SGI Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="ext_sgi.html">Deprecated</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_utilities.html">23. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">24. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">25. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">26. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">27. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">28. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">29. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Built-in Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Interacting with C </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
\ No newline at end of file
--- 68,74 ----
  	  Text <code class="function">modify</code> Up
  	</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#performance.priority_queue.text_modify_down">
  	  Text <code class="function">modify</code> Down
! 	</a></span></dt></dl></dd><dt><span class="section"><a href="policy_based_data_structures_test.html#pbds.test.performance.observations">Observations</a></span></dt><dd><dl><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_based_data_structures_test.html#observations.priority_queue">Priority_Queue</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_ack.html">Acknowledgments</a></span></dt><dt><span class="bibliography"><a href="policy_data_structures.html#pbds.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_containers.html">22. HP/SGI Extensions</a></span></dt><dd><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="ext_sgi.html">Deprecated</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_utilities.html">23. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">24. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">25. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">26. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">27. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">28. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">29. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Built-in Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="concurrency.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ext_preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 15. 
!   Concurrency
!   
!  </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/index.html gcc-11.4.0/libstdc++-v3/doc/html/manual/index.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/index.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/index.html	Mon May 29 08:46:33 2023
***************
*** 1,10 ****
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="../index.html" title="The GNU C++ Library" /><link rel="prev" href="../index.html" title="The GNU C++ Library" /><link rel="next" href="intro.html" title="Part I.  Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="manual"></a>The GNU C++ Library Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"></span> <span class="surname"></span></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 
        <a class="link" href="https://www.fsf.org" target="_top">FSF</a>
      </p></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="part"><a href="intro.html">I. 
    Introduction
    
! </a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="std_contents.html">II. 
      Standard Contents
    </a></span></dt><dd><dl><dt><span class="chapter"><a href="support.html">4. 
    Support
--- 1,10 ----
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="../index.html" title="The GNU C++ Library" /><link rel="prev" href="../index.html" title="The GNU C++ Library" /><link rel="next" href="intro.html" title="Part I.  Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="manual"></a>The GNU C++ Library Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 
        <a class="link" href="https://www.fsf.org" target="_top">FSF</a>
      </p></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="part"><a href="intro.html">I. 
    Introduction
    
! </a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2023">C++ 2023</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="std_contents.html">II. 
      Standard Contents
    </a></span></dt><dd><dl><dt><span class="chapter"><a href="support.html">4. 
    Support
*************** Support for C++11 dialect.
*** 145,151 ****
  	  </a></dt><dt>21.10. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.3.3.23">Non-unique Mapping Containers</a></dt><dt>21.11. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.3.5">Point Iterator Hierarchy</a></dt><dt>21.12. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.4.5">Invalidation Guarantee Tags Hierarchy</a></dt><dt>21.13. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.5.7.4">Container Tag Hierarchy</a></dt><dt>21.14. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.3">Hash functions, ranged-hash functions, and
  	      range-hashing functions</a></dt><dt>21.15. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.4">Insert hash sequence diagram</a></dt><dt>21.16. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.6">Insert hash sequence diagram with a null policy</a></dt><dt>21.17. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.5.5">Hash policy class diagram</a></dt><dt>21.18. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.4.7">Balls and bins</a></dt><dt>21.19. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.6">Insert resize sequence diagram</a></dt><dt>21.20. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.9">Standard resize policy trigger sequence
  		diagram</a></dt><dt>21.21. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.10">Standard resize policy size sequence
! 		diagram</a></dt><dt>21.22. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.5">Tree node invariants</a></dt><dt>21.23. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.8">Tree node invalidation</a></dt><dt>21.24. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.3">A tree and its update policy</a></dt><dt>21.25. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.8">Restoring node invariants</a></dt><dt>21.26. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.10">Insert update sequence</a></dt><dt>21.27. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.20">Useless update path</a></dt><dt>21.28. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.2.10">A PATRICIA trie</a></dt><dt>21.29. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.3.5">A trie and its update policy</a></dt><dt>21.30. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.3">A simple list</a></dt><dt>21.31. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.6">The counter algorithm</a></dt><dt>21.32. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.3.3">Underlying Priority-Queue Data-Structures.</a></dt><dt>21.33. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.4.4">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#fig.build_hacking.deps">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#table.cxx98_status">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#table.cxx11_status">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#table.cxx14_status">C++ 2014 Implementation Status</a></dt><dt>1.4. <a href="status.html#table.ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.5. <a href="status.html#table.cxx17_features">C++ 2017 Library Features</a></dt><dt>1.6. <a href="status.html#table.cxx17_status">C++ 2017 Implementation Status</a></dt><dt>1.7. <a href="status.html#table.cxx17_ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.8. <a href="status.html#table.par2ts_simd_support">Support for Extended ABI Tags</a></dt><dt>1.9. <a href="status.html#table.cxx20_features">C++ 2020 Library Features</a></dt><dt>1.10. <a href="status.html#table.tr1_status">C++ TR1 Implementation Status</a></dt><dt>1.11. <a href="status.html#table.decfp_status">C++ TR 24733 Implementation Status</a></dt><dt>1.12. <a href="status.html#table.specfun_status">C++ Special Functions Implementation Status</a></dt><dt>3.1. <a href="using.html#table.cmd_options">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#table.cxx98_headers">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#table.cxx98_cheaders">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#table.cxx98_deprheaders">C++ 1998 Deprecated Library Header</a></dt><dt>3.5. <a href="using_headers.html#table.cxx11_headers">C++ 2011 Library Headers</a></dt><dt>3.6. <a href="using_headers.html#table.cxx11_cheaders">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.7. <a href="using_headers.html#table.cxx14_headers">C++ 2014 Library Header</a></dt><dt>3.8. <a href="using_headers.html#table.cxx17_headers">C++ 2017 Library Headers</a></dt><dt>3.9. <a href="using_headers.html#table.cxx20_headers">C++ 2020 Library Headers</a></dt><dt>3.10. <a href="using_headers.html#table.cxx20_deprheaders">C++ 2020 Obsolete Headers</a></dt><dt>3.11. <a href="using_headers.html#table.filesystemts_headers">File System TS Header</a></dt><dt>3.12. <a href="using_headers.html#table.libfundts_headers">Library Fundamentals TS Headers</a></dt><dt>3.13. <a href="using_headers.html#table.tr1_headers">C++ TR 1 Library Headers</a></dt><dt>3.14. <a href="using_headers.html#table.tr1_cheaders">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.15. <a href="using_headers.html#table.decfp_headers">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.16. <a href="using_headers.html#table.abi_headers">C++ ABI Headers</a></dt><dt>3.17. <a href="using_headers.html#table.ext_headers">Extension Headers</a></dt><dt>3.18. <a href="using_headers.html#table.debug_headers">Extension Debug Headers</a></dt><dt>3.19. <a href="using_headers.html#table.parallel_headers">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#table.debug_mode_containers">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#table.debug_mode_containers_cxx11">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#table.parallel_algos">Parallel Algorithms</a></dt><dt>20.1. <a href="bitmap_allocator_impl.html#table.bitmap_alloc">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#table.doxygen_prereq">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#table.doxygen_cmp">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#table.docbook_prereq">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#table.docbook_cmp">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#table.docbook_elem">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#table.extension_allocators">Extension Allocators</a></dt><dt>B.7. <a href="api.html#table.extension_allocators2">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>21.1. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.15">Ranged Hash Function</a></dt><dt>21.2. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.3">Range-Hashing, Division Method</a></dt><dt>21.3. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.9">Division via Prime Modulo</a></dt><dt>21.4. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.11">Division via Bit Mask</a></dt><dt>21.5. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.7">
  		A Standard String Hash Function
  	      </a></dt><dt>21.6. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.12">
  		Only k String DNA Hash
--- 145,151 ----
  	  </a></dt><dt>21.10. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.3.3.23">Non-unique Mapping Containers</a></dt><dt>21.11. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.3.5">Point Iterator Hierarchy</a></dt><dt>21.12. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.4.4.5">Invalidation Guarantee Tags Hierarchy</a></dt><dt>21.13. <a href="policy_data_structures_design.html#id-1.3.5.8.4.3.5.7.4">Container Tag Hierarchy</a></dt><dt>21.14. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.3">Hash functions, ranged-hash functions, and
  	      range-hashing functions</a></dt><dt>21.15. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.4">Insert hash sequence diagram</a></dt><dt>21.16. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.3.6">Insert hash sequence diagram with a null policy</a></dt><dt>21.17. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.5.5.5">Hash policy class diagram</a></dt><dt>21.18. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.4.7">Balls and bins</a></dt><dt>21.19. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.6">Insert resize sequence diagram</a></dt><dt>21.20. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.9">Standard resize policy trigger sequence
  		diagram</a></dt><dt>21.21. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.3.5.3.10">Standard resize policy size sequence
! 		diagram</a></dt><dt>21.22. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.5">Tree node invariants</a></dt><dt>21.23. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.8">Tree node invalidation</a></dt><dt>21.24. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.3">A tree and its update policy</a></dt><dt>21.25. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.8">Restoring node invariants</a></dt><dt>21.26. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.10">Insert update sequence</a></dt><dt>21.27. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.3.3.2.11.20">Useless update path</a></dt><dt>21.28. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.2.10">A PATRICIA trie</a></dt><dt>21.29. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.4.3.3.5">A trie and its update policy</a></dt><dt>21.30. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.3">A simple list</a></dt><dt>21.31. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.5.3.3.6">The counter algorithm</a></dt><dt>21.32. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.3.3">Underlying Priority-Queue Data-Structures.</a></dt><dt>21.33. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.6.3.4.4">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#fig.build_hacking.deps">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#table.cxx98_status">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#table.cxx11_status">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#table.cxx14_status">C++ 2014 Implementation Status</a></dt><dt>1.4. <a href="status.html#table.ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.5. <a href="status.html#table.cxx17_features">C++ 2017 Library Features</a></dt><dt>1.6. <a href="status.html#table.cxx17_status">C++ 2017 Implementation Status</a></dt><dt>1.7. <a href="status.html#table.cxx17_ts_status">C++ Technical Specifications Implementation Status</a></dt><dt>1.8. <a href="status.html#table.par2ts_simd_support">Support for Extended ABI Tags</a></dt><dt>1.9. <a href="status.html#table.cxx20_features">C++ 2020 Library Features</a></dt><dt>1.10. <a href="status.html#table.cxx23_features">C++ 2023 Library Features</a></dt><dt>1.11. <a href="status.html#table.tr1_status">C++ TR1 Implementation Status</a></dt><dt>1.12. <a href="status.html#table.decfp_status">C++ TR 24733 Implementation Status</a></dt><dt>1.13. <a href="status.html#table.specfun_status">C++ Special Functions Implementation Status</a></dt><dt>3.1. <a href="using.html#table.cmd_options">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#table.cxx98_headers">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#table.cxx98_cheaders">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#table.cxx98_deprheaders">C++ 1998 Deprecated Library Header</a></dt><dt>3.5. <a href="using_headers.html#table.cxx11_headers">C++ 2011 Library Headers</a></dt><dt>3.6. <a href="using_headers.html#table.cxx11_cheaders">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.7. <a href="using_headers.html#table.cxx14_headers">C++ 2014 Library Header</a></dt><dt>3.8. <a href="using_headers.html#table.cxx17_headers">C++ 2017 Library Headers</a></dt><dt>3.9. <a href="using_headers.html#table.cxx20_headers">C++ 2020 Library Headers</a></dt><dt>3.10. <a href="using_headers.html#table.cxx20_deprheaders">C++ 2020 Obsolete Headers</a></dt><dt>3.11. <a href="using_headers.html#table.filesystemts_headers">File System TS Header</a></dt><dt>3.12. <a href="using_headers.html#table.libfundts_headers">Library Fundamentals TS Headers</a></dt><dt>3.13. <a href="using_headers.html#table.tr1_headers">C++ TR 1 Library Headers</a></dt><dt>3.14. <a href="using_headers.html#table.tr1_cheaders">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.15. <a href="using_headers.html#table.decfp_headers">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.16. <a href="using_headers.html#table.abi_headers">C++ ABI Headers</a></dt><dt>3.17. <a href="using_headers.html#table.ext_headers">Extension Headers</a></dt><dt>3.18. <a href="using_headers.html#table.debug_headers">Extension Debug Headers</a></dt><dt>3.19. <a href="using_headers.html#table.parallel_headers">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#table.debug_mode_containers">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#table.debug_mode_containers_cxx11">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#table.parallel_algos">Parallel Algorithms</a></dt><dt>20.1. <a href="bitmap_allocator_impl.html#table.bitmap_alloc">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#table.doxygen_prereq">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#table.doxygen_cmp">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#table.docbook_prereq">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#table.docbook_cmp">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#table.docbook_elem">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#table.extension_allocators">Extension Allocators</a></dt><dt>B.7. <a href="api.html#table.extension_allocators2">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>21.1. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.2.15">Ranged Hash Function</a></dt><dt>21.2. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.3">Range-Hashing, Division Method</a></dt><dt>21.3. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.9">Division via Prime Modulo</a></dt><dt>21.4. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.3.11">Division via Bit Mask</a></dt><dt>21.5. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.7">
  		A Standard String Hash Function
  	      </a></dt><dt>21.6. <a href="policy_data_structures_design.html#id-1.3.5.8.4.4.2.3.2.4.12">
  		Only k String DNA Hash
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/intro.html gcc-11.4.0/libstdc++-v3/doc/html/manual/intro.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/intro.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/intro.html	Mon May 29 08:46:33 2023
***************
*** 5,8 ****
  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"></a>Part I. 
    Introduction
    <a id="id-1.3.3.1.1.1" class="indexterm"></a>
! </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html>
\ No newline at end of file
--- 5,8 ----
  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"></a>Part I. 
    Introduction
    <a id="id-1.3.3.1.1.1" class="indexterm"></a>
! </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2023">C++ 2023</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_dual_abi.html">Dual ABI</a></span></dt><dd><dl><dt><span class="section"><a href="using_dual_abi.html#manual.intro.using.abi.trouble">Troubleshooting</a></span></dt></dl></dd><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.experimental">Experimental Library Extensions</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.memory.mtalloc">Non-memory leaks in Pool and MT allocators</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/setup.html gcc-11.4.0/libstdc++-v3/doc/html/manual/setup.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/setup.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/setup.html	Mon May 29 08:46:33 2023
***************
*** 42,47 ****
--- 42,80 ----
     </p><p>
     Finally, a few system-specific requirements:
     </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">linux</span></dt><dd><p>
+ 	  The 'gnu' locale model makes use of <code class="function">iconv</code>
+ 	  for character set conversions. The relevant functions are provided
+ 	  by Glibc and so are always available, however they can also be
+ 	  provided by the separate GNU libiconv library. If GNU libiconv is
+ 	  found when GCC is built (e.g., because its headers are installed
+ 	  in <code class="filename">/usr/local/include</code>)
+ 	  then the <code class="filename">libstdc++.so.6</code> library will have a
+ 	  run-time dependency on <code class="filename">libiconv.so.2</code>.
+ 	  If you do not want that run-time dependency then you should do
+ 	  one of the following:
+ 	</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+ 	      Uninstall the libiconv headers before building GCC.
+ 	      Glibc already provides <code class="function">iconv</code> so you should
+ 	      not need libiconv anyway.
+ 	    </p></li><li class="listitem"><p>
+ 	    <a class="link" href="https://www.gnu.org/software/libiconv/#downloading" target="_top">
+ 	    Download</a> the libiconv sources and extract them into the
+ 	    top level of the GCC source tree, e.g.,
+ 	    </p><pre class="programlisting">
+ wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
+ tar xf libiconv-1.16.tar.gz
+ ln -s libiconv-1.16 libiconv
+ </pre><p>
+ 	      This will build libiconv as part of building GCC and link to
+ 	      it statically, so there is no <code class="filename">libiconv.so.2</code>
+ 	      dependency.
+ 	    </p></li><li class="listitem"><p>
+ 	      Configure GCC with <code class="option">--with-libiconv-type=static</code>.
+ 	      This requires the static <code class="filename">libiconv.a</code> library,
+ 	      which is not installed by default. You might need to reinstall
+ 	      libiconv using the <code class="option">--enable-static</code> configure
+ 	      option to get the static library.
+ 	    </p></li></ul></div><p>
  	  If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
  	  will be made to use "C" library functionality necessary for
  	  C++ named locale support.  For GCC 4.6.0 and later, this
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/status.html gcc-11.4.0/libstdc++-v3/doc/html/manual/status.html
*** gcc-11.3.0/libstdc++-v3/doc/html/manual/status.html	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/html/manual/status.html	Mon May 29 08:46:33 2023
***************
*** 2,8 ****
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I.  Introduction" /><link rel="prev" href="intro.html" title="Part I.  Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I. 
    Introduction
    
! </th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
  This status table is based on the table of contents of ISO/IEC 14882:2003.
  </p><p>
  This section describes the C++ support in the GCC 11 release series.
--- 2,8 ----
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I.  Introduction" /><link rel="prev" href="intro.html" title="Part I.  Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I. 
    Introduction
    
! </th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2014">C++ 2014</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2014.filesystemts">Filesystem TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2017">C++ 2017</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.specific">Implementation Specific Behavior</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2017.par2ts">Parallelism 2 TS</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="status.html#status.iso.2020">C++ 2020</a></span></dt><dt><span class="section"><a href="status.html#status.iso.2023">C++ 2023</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt><dt><span class="section"><a href="status.html#status.iso.specfun">C++ IS 29124</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.specfun.specific">Implementation Specific Behavior</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
  This status table is based on the table of contents of ISO/IEC 14882:2003.
  </p><p>
  This section describes the C++ support in the GCC 11 release series.
*************** presence of the required flag.
*** 1242,1249 ****
  This section describes the C++20 and library TS support in the GCC 11
  release series.
  </p><p>
! The following table lists new library features that have been accepted into
! the C++20 working draft. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
--- 1242,1249 ----
  This section describes the C++20 and library TS support in the GCC 11
  release series.
  </p><p>
! The following table lists new library features that are included in
! the C++20 standard. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
*************** or any notes about the implementation.
*** 1344,1353 ****
        </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_float &gt;= 201711L</code> </td></tr><tr><td align="left">  C++ Synchronized Buffered Ostream </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf" target="_top">
          P0053R7 </a>
!       </td><td align="center"> 11 </td><td align="left"> <code class="code">__cpp_lib_syncbuf &gt;= 201711L</code> </td></tr><tr><td align="left">  Manipulators for C++ Synchronized Buffered Ostream </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf" target="_top">
          P0753R2 </a>
!       </td><td align="center"> 11 </td><td align="left"> <code class="code">__cpp_lib_syncbuf &gt;= 201803L</code> </td></tr><tr><td align="left">  Make <code class="code">std::memory_order</code> a scoped enumeration </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html" target="_top">
          P0439R0 </a>
        </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">  The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </td><td align="left">
--- 1344,1353 ----
        </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_atomic_float &gt;= 201711L</code> </td></tr><tr><td align="left">  C++ Synchronized Buffered Ostream </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf" target="_top">
          P0053R7 </a>
!       </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_syncbuf &gt;= 201711L</code> </td></tr><tr><td align="left">  Manipulators for C++ Synchronized Buffered Ostream </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf" target="_top">
          P0753R2 </a>
!       </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_syncbuf &gt;= 201803L</code> </td></tr><tr><td align="left">  Make <code class="code">std::memory_order</code> a scoped enumeration </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html" target="_top">
          P0439R0 </a>
        </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">  The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </td><td align="left">
*************** or any notes about the implementation.
*** 1428,1434 ****
        </td></tr><tr><td align="left">  <code class="code">string::reserve</code> Should Not Shrink </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html" target="_top">
          P0966R1 </a>
!       </td><td align="center"> 11 </td><td align="left"> </td></tr><tr><td align="left">  <code class="code">char8_t</code>: A type for UTF-8 characters and strings </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html" target="_top">
          P0482R6 </a>
        </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201811L</code> </td></tr><tr><td align="left">  <code class="code">char8_t</code> backward compatibility remediation </td><td align="left">
--- 1428,1434 ----
        </td></tr><tr><td align="left">  <code class="code">string::reserve</code> Should Not Shrink </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html" target="_top">
          P0966R1 </a>
!       </td><td align="center"> 11.1 </td><td align="left"> </td></tr><tr><td align="left">  <code class="code">char8_t</code>: A type for UTF-8 characters and strings </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r6.html" target="_top">
          P0482R6 </a>
        </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201811L</code> </td></tr><tr><td align="left">  <code class="code">char8_t</code> backward compatibility remediation </td><td align="left">
*************** or any notes about the implementation.
*** 1555,1561 ****
        </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left">  Bit-casting object representations </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html" target="_top">
          P0476R2 </a>
!       </td><td align="center"> 11 </td><td align="left"> <code class="code">__cpp_lib_bit_cast &gt;= 201806L</code> </td></tr><tr><td align="left">  Integral power-of-2 operations </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html" target="_top">
          P0556R3 </a>
        </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_int_pow2 &gt;= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> On the names of low-level bit manipulation functions </td><td align="left">
--- 1555,1561 ----
        </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left">  Bit-casting object representations </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html" target="_top">
          P0476R2 </a>
!       </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_bit_cast &gt;= 201806L</code> </td></tr><tr><td align="left">  Integral power-of-2 operations </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0556r3.html" target="_top">
          P0556R3 </a>
        </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_int_pow2 &gt;= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> On the names of low-level bit manipulation functions </td><td align="left">
*************** or any notes about the implementation.
*** 1675,1681 ****
        </td><td align="center"> 8.1 </td><td align="left"> <code class="code">__cpp_lib_endian &gt;= 201907L</code> </td></tr><tr><td align="left"> Bit operations </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html" target="_top">
          P0553R4 </a>
!       </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_bitops &gt;= 201907L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left">  Well-behaved interpolation for numbers and pointers </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html" target="_top">
          P0811R3 </a>
        </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_interpolate &gt;= 201902L</code> </td></tr><tr><td align="left"> Mathematical constants </td><td align="left">
--- 1675,1681 ----
        </td><td align="center"> 8.1 </td><td align="left"> <code class="code">__cpp_lib_endian &gt;= 201907L</code> </td></tr><tr><td align="left"> Bit operations </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html" target="_top">
          P0553R4 </a>
!       </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_bitops &gt;= 201907L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left">  Well-behaved interpolation for numbers and pointers </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0811r3.html" target="_top">
          P0811R3 </a>
        </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_interpolate &gt;= 201902L</code> </td></tr><tr><td align="left"> Mathematical constants </td><td align="left">
*************** or any notes about the implementation.
*** 1684,1699 ****
        </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_math_constants &gt;= 201907L</code> </td></tr><tr><td align="left"> std::source_location </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf" target="_top">
          P1208R6 </a>
!       </td><td align="center"> 11 </td><td align="left">
          <code class="code">__cpp_lib_source_location &gt;= 201907L</code>
        </td></tr><tr><td align="left"> Efficient access to std::basic_stringbuf's Buffer </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf" target="_top">
          P0408R7 </a>
!       </td><td align="center"> 11 </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
  Note 1: This feature is supported in older releases but the
  <code class="code">__cpp_lib</code> macro is not defined to the right value
  (or not defined at all) until the version shown in parentheses.
! </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"></a>C++ TR1</h3></div></div></div><p>
  This table is based on the table of contents of ISO/IEC DTR 19768
  Doc No: N1836=05-0096 Date: 2005-06-24
  Draft Technical Report on C++ Library Extensions
--- 1684,1788 ----
        </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_math_constants &gt;= 201907L</code> </td></tr><tr><td align="left"> std::source_location </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf" target="_top">
          P1208R6 </a>
!       </td><td align="center"> 11.1 </td><td align="left">
          <code class="code">__cpp_lib_source_location &gt;= 201907L</code>
        </td></tr><tr><td align="left"> Efficient access to std::basic_stringbuf's Buffer </td><td align="left">
          <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf" target="_top">
          P0408R7 </a>
!       </td><td align="center"> 11.1 </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
  Note 1: This feature is supported in older releases but the
  <code class="code">__cpp_lib</code> macro is not defined to the right value
  (or not defined at all) until the version shown in parentheses.
! </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2023"></a>C++ 2023</h3></div></div></div><p>
! In this implementation the <code class="literal">-std=gnu++23</code> or
! <code class="literal">-std=c++23</code> flag must be used to enable language
! and library
! features. See <a class="link" href="using.html#manual.intro.using.flags" title="Command Options">dialect</a>
! options. The pre-defined symbol
! <code class="constant">__cplusplus</code> is used to check for the
! presence of the required flag.
! </p><p>
! This section describes the C++23 and library TS support in mainline GCC,
! not in any particular release.
! </p><p>
! The following table lists new library features that have been accepted into
! the C++23 working draft. The "Proposal" column provides a link to the
! ISO C++ committee proposal that describes the feature, while the "Status"
! column indicates the first version of GCC that contains an implementation of
! this feature (if it has been implemented).
! A dash (—) in the status column indicates that the changes in the proposal
! either do not affect the code in libstdc++, or the changes are not required for conformance.
! The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from
! <a class="link" href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" target="_top">SD-6:
! Feature-testing recommendations for C++</a> (where applicable)
! or any notes about the implementation.
! </p><div class="table"><a id="table.cxx23_features"></a><p class="title"><strong>Table 1.10. C++ 2023 Library Features</strong></p><div class="table-contents"><table class="table" summary="C++ 2023 Library Features" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Library Feature</th><th align="left">Proposal</th><th align="left">Status</th><th align="left">SD-6 Feature Test / Notes</th></tr></thead><tbody><tr><td colspan="4" align="left">
!         <span class="bold"><strong>Ranges and Views</strong></span>
!       </td></tr><tr><td align="left"> Range constructor for std::string_view </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1989r2.pdf" target="_top">
!         P1989R2
!         </a>
!       </td><td align="center"> 11.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">join_view</code> should join all views of ranges </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2328r1.html" target="_top">
!         P2328R1
!         </a>
!       </td><td align="center"> 11.2 </td><td align="left"> </td></tr><tr><td align="left"> Clarifying range adaptor objects </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2281r1.html" target="_top">
!         P2281R1
!         </a>
!       </td><td align="center"> 11.1 </td><td align="left"> </td></tr><tr><td align="left"> Views should not be required to be default constructible </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html" target="_top">
!         P2325R3
!         </a>
!       </td><td align="center"> 11.3 </td><td align="left"> <code class="code">__cpp_lib_ranges &gt;= 202106L</code> </td></tr><tr><td align="left"> Conditionally borrowed ranges </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2017r1.html" target="_top">
!         P2017R1
!         </a>
!       </td><td align="center"> 11.1 </td><td align="left"> </td></tr><tr><td align="left"> Require <code class="code">span</code> &amp; <code class="code">basic_string_view</code> to be Trivially Copyable </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2251r1.pdf" target="_top">
!         P2251R1
!         </a>
!       </td><td align="center"> Yes </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
!         <span class="bold"><strong>Compile-time programming</strong></span>
!       </td></tr><tr><td align="left"> A proposal for a type trait to detect scoped enumerations </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1048r1.pdf" target="_top">
!         P1048R1
!         </a>
!       </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_is_scoped_enum &gt;= 202011L</code> </td></tr><tr><td align="left"> std::to_underlying for enumerations </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1682r3.html" target="_top">
!         P1682R3
!         </a>
!       </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_to_underlying &gt;= 202102L</code> </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Missing constexpr in std::optional and std::variant </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2231r1.html" target="_top">
!         P2231R1
!         </a>
!       </td><td align="center"> 11.3 (<code class="code">optional</code> only) </td><td align="left">
! 	<div class="informaltable"><table class="informaltable" border="0"><colgroup><col /></colgroup><tbody><tr><td> <code class="code">__cpp_lib_constexpr_optional &gt;= 202106L</code> </td></tr><tr><td> <code class="code">__cpp_lib_variant &gt;= 202106L</code> </td></tr></tbody></table></div>
!       </td></tr><tr><td colspan="4" align="left">
!         <span class="bold"><strong>Strings and text</strong></span>
!       </td></tr><tr><td align="left"> string contains function </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1679r3.html" target="_top">
!         P1679R3
!         </a>
!       </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_string_contains &gt;= 202011L</code> </td></tr><tr><td colspan="4" align="left">
!         <span class="bold"><strong>Miscellaneous</strong></span>
!       </td></tr><tr><td align="left"> Inheriting from <code class="code">std::variant</code> </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2162r2.html" target="_top">
!         P2162R2
!         </a>
!       </td><td align="center"> 11.3 </td><td align="left"> <code class="code">__cpp_lib_variant &gt;= 202102L</code> </td></tr><tr><td align="left"> Printing <code class="code">volatile</code> Pointers </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1147r1.html" target="_top">
!         P1147R1
!         </a>
!       </td><td align="center"> 11.3 </td><td align="left"> </td></tr><tr><td align="left"> Clarifying the status of the "C headers" </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2340r1.html" target="_top">
!         P2340R1
!         </a>
!       </td><td align="center"> Yes </td><td align="left"> </td></tr><tr><td align="left"> Relax Requirements for time_point::clock </td><td align="left">
!         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2212r2.html" target="_top">
!         P2212R2
!         </a>
!       </td><td align="center"> Yes </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"></a>C++ TR1</h3></div></div></div><p>
  This table is based on the table of contents of ISO/IEC DTR 19768
  Doc No: N1836=05-0096 Date: 2005-06-24
  Draft Technical Report on C++ Library Extensions
*************** In this implementation the header names
*** 1703,1709 ****
  <code class="code">&lt;tr1/memory&gt;</code>, and so on.
  </p><p>
  This page describes the TR1 support in the GCC 11 release series.
! </p><div class="table"><a id="table.tr1_status"></a><p class="title"><strong>Table 1.10. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code">&lt;memory&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
  	<p>
  	  Uses code from
  	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
--- 1792,1798 ----
  <code class="code">&lt;tr1/memory&gt;</code>, and so on.
  </p><p>
  This page describes the TR1 support in the GCC 11 release series.
! </p><div class="table"><a id="table.tr1_status"></a><p class="title"><strong>Table 1.11. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code">&lt;memory&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
  	<p>
  	  Uses code from
  	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
*************** Extension for the programming language C
*** 1723,1729 ****
  decimal floating-point arithmetic
  </p><p>
  This page describes the TR 24733 support in the GCC 11 release series.
! </p><div class="table"><a id="table.decfp_status"></a><p class="title"><strong>Table 1.11. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
  	<span class="emphasis"><em>0</em></span>
        </td><td colspan="3" align="left">
  	<span class="emphasis"><em>Introduction</em></span>
--- 1812,1818 ----
  decimal floating-point arithmetic
  </p><p>
  This page describes the TR 24733 support in the GCC 11 release series.
! </p><div class="table"><a id="table.decfp_status"></a><p class="title"><strong>Table 1.12. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
  	<span class="emphasis"><em>0</em></span>
        </td><td colspan="3" align="left">
  	<span class="emphasis"><em>Introduction</em></span>
*************** non-strict modes (i.e. <code class="code
*** 1763,1769 ****
  hypergeometric functions and confluent hypergeometric functions
  from TR1 are also provided, defined in namespace
  <code class="code">__gnu_cxx</code>.
! </p><div class="table"><a id="table.specfun_status"></a><p class="title"><strong>Table 1.12. C++ Special Functions Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ Special Functions Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td align="left">7</td><td align="left">Macro names</td><td align="left">Partial</td><td align="left">No diagnostic for inconsistent definitions of
               <code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code></td></tr><tr><td align="left">8</td><td align="left">Mathematical special functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1</td><td align="left">Additions to header <code class="code">&lt;cmath&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.1</td><td align="left">associated Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.2</td><td align="left">associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.3</td><td align="left">beta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.4</td><td align="left">(complete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.5</td><td align="left">(complete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.6</td><td align="left">(complete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.7</td><td align="left">regular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.8</td><td align="left">cylindrical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.9</td><td align="left">irregular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.10</td><td align="left">cylindrical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.11</td><td align="left">(incomplete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.12</td><td align="left">(incomplete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.13</td><td align="left">(incomplete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.14</td><td align="left">exponential integral</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.15</td><td align="left">Hermite polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.16</td><td align="left">Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.17</td><td align="left">Legendre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.18</td><td align="left">Riemann zeta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.19</td><td align="left">spherical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.20</td><td align="left">spherical associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.21</td><td align="left">spherical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.2</td><td align="left">Additions to header <code class="code">&lt;math.h&gt;</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">8.3</td><td align="left">The header <code class="code">&lt;ctgmath&gt;</code></td><td align="left">Partial</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr><tr bgcolor="#C8B0B0"><td align="left">8.4</td><td align="left">The header <code class="code">&lt;tgmath.h&gt;</code></td><td align="left">N</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.specfun.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 2011 standard,
        see <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++ 2011 Implementation
        Specific Behavior</a>. This section documents behaviour which
--- 1852,1858 ----
  hypergeometric functions and confluent hypergeometric functions
  from TR1 are also provided, defined in namespace
  <code class="code">__gnu_cxx</code>.
! </p><div class="table"><a id="table.specfun_status"></a><p class="title"><strong>Table 1.13. C++ Special Functions Implementation Status</strong></p><div class="table-contents"><table class="table" summary="C++ Special Functions Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr bgcolor="#B0B0B0"><td align="left">7</td><td align="left">Macro names</td><td align="left">Partial</td><td align="left">No diagnostic for inconsistent definitions of
               <code class="code">__STDCPP_WANT_MATH_SPEC_FUNCS__</code></td></tr><tr><td align="left">8</td><td align="left">Mathematical special functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1</td><td align="left">Additions to header <code class="code">&lt;cmath&gt;</code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.1</td><td align="left">associated Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.2</td><td align="left">associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.3</td><td align="left">beta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.4</td><td align="left">(complete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.5</td><td align="left">(complete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.6</td><td align="left">(complete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.7</td><td align="left">regular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.8</td><td align="left">cylindrical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.9</td><td align="left">irregular modified cylindrical Bessel functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.10</td><td align="left">cylindrical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.11</td><td align="left">(incomplete) elliptic integral of the first kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.12</td><td align="left">(incomplete) elliptic integral of the second kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.13</td><td align="left">(incomplete) elliptic integral of the third kind</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.14</td><td align="left">exponential integral</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.15</td><td align="left">Hermite polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.16</td><td align="left">Laguerre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.17</td><td align="left">Legendre polynomials</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.18</td><td align="left">Riemann zeta function</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.19</td><td align="left">spherical Bessel functions (of the first kind)</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.20</td><td align="left">spherical associated Legendre functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.1.21</td><td align="left">spherical Neumann functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">8.2</td><td align="left">Additions to header <code class="code">&lt;math.h&gt;</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">8.3</td><td align="left">The header <code class="code">&lt;ctgmath&gt;</code></td><td align="left">Partial</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr><tr bgcolor="#C8B0B0"><td align="left">8.4</td><td align="left">The header <code class="code">&lt;tgmath.h&gt;</code></td><td align="left">N</td><td align="left">Conflicts with C++ 2011 requirements.</td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.specfun.specific"></a>Implementation Specific Behavior</h4></div></div></div><p>For behaviour which is specified by the 2011 standard,
        see <a class="link" href="status.html#iso.2011.specific" title="Implementation Specific Behavior">C++ 2011 Implementation
        Specific Behavior</a>. This section documents behaviour which
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/authors.xml gcc-11.4.0/libstdc++-v3/doc/xml/authors.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/authors.xml	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/xml/authors.xml	Mon May 29 08:46:33 2023
***************
*** 13,30 ****
        </address>
      </affiliation>
  
!     <authorblurb>
        <para>
        </para>
!     </authorblurb>
    </author>
  -->
  
-   <author><personname><firstname/><surname/></personname><personblurb>
-       <para>
-       </para>
-     </personblurb></author>
- 
    <author><personname><firstname>Paolo</firstname><surname>Carlini</surname></personname><personblurb>
        <para>
  	TR1, LWG Active, Closed, Defects lists.
--- 13,25 ----
        </address>
      </affiliation>
  
!     <personblurb>
        <para>
        </para>
!     </personblurb>
    </author>
  -->
  
    <author><personname><firstname>Paolo</firstname><surname>Carlini</surname></personname><personblurb>
        <para>
  	TR1, LWG Active, Closed, Defects lists.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/extensions.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/extensions.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/manual/extensions.xml	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/xml/manual/extensions.xml	Mon May 29 08:46:33 2023
*************** int main()
*** 534,547 ****
    int     status;
    char   *realname;
  
-   // exception classes not in &lt;stdexcept&gt;, thrown by the implementation
-   // instead of the user
-   std::bad_exception  e;
-   realname = abi::__cxa_demangle(e.what(), 0, 0, &amp;status);
-   std::cout &lt;&lt; e.what() &lt;&lt; "\t=&gt; " &lt;&lt; realname &lt;&lt; "\t: " &lt;&lt; status &lt;&lt; '\n';
-   free(realname);
- 
- 
    // typeid
    bar&lt;empty,17&gt;          u;
    const std::type_info  &amp;ti = typeid(u);
--- 534,539 ----
*************** int main()
*** 559,565 ****
  
     <screen>
     <computeroutput>
-       St13bad_exception       =&gt; std::bad_exception   : 0
        3barI5emptyLi17EE       =&gt; bar&lt;empty, 17&gt;       : 0
     </computeroutput>
     </screen>
--- 551,556 ----
*************** int main()
*** 568,575 ****
       The demangler interface is described in the source documentation
       linked to above.  It is actually written in C, so you don't need to
       be writing C++ in order to demangle C++.  (That also means we have to
!      use crummy memory management facilities, so don't forget to free()
!      the returned char array.)
     </para>
  </chapter>
  
--- 559,566 ----
       The demangler interface is described in the source documentation
       linked to above.  It is actually written in C, so you don't need to
       be writing C++ in order to demangle C++.  (That also means we have to
!      use crummy memory management facilities, so don't forget to
!      <code>free()</code> the returned char array.)
     </para>
  </chapter>
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/intro.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/intro.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/manual/intro.xml	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/xml/manual/intro.xml	Mon May 29 08:46:33 2023
***************
*** 47,61 ****
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxx2020.xml">
      </xi:include>
  
!     <!-- Section 01.5 : Status C++ TR1 -->
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr1.xml">
      </xi:include>
  
!     <!-- Section 01.6 : Status C++ TR24733 -->
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr24733.xml">
      </xi:include>
  
!     <!-- Section 01.7 : Status C++ IS 24733 -->
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxis29124.xml">
      </xi:include>
    </section>
--- 47,65 ----
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxx2020.xml">
      </xi:include>
  
!     <!-- Section 01.5 : Status C++ 2023 -->
!     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxx2023.xml">
!     </xi:include>
! 
!     <!-- Section 01.6 : Status C++ TR1 -->
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr1.xml">
      </xi:include>
  
!     <!-- Section 01.7 : Status C++ TR24733 -->
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxtr24733.xml">
      </xi:include>
  
!     <!-- Section 01.8 : Status C++ IS 29124 -->
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="status_cxxis29124.xml">
      </xi:include>
    </section>
*************** requirements of the license of GCC.
*** 835,840 ****
--- 839,850 ----
  		    by the resolution of the DR.
      </para></listitem></varlistentry>
  
+     <varlistentry xml:id="manual.bugs.dr1203"><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="&DR;#1203">1203</link>:
+        <emphasis>More useful rvalue stream insertion</emphasis>
+     </term>
+     <listitem><para>Return the stream as its original type, not the base class.
+     </para></listitem></varlistentry>
+ 
      <varlistentry xml:id="manual.bugs.dr1339"><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="&DR;#1339">1339</link>:
         <emphasis>uninitialized_fill_n should return the end of its range</emphasis>
      </term>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/prerequisites.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/prerequisites.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/manual/prerequisites.xml	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/xml/manual/prerequisites.xml	Mon May 29 08:46:33 2023
***************
*** 50,55 ****
--- 50,106 ----
  
  	<listitem>
  	<para>
+ 	  The 'gnu' locale model makes use of <function>iconv</function>
+ 	  for character set conversions. The relevant functions are provided
+ 	  by Glibc and so are always available, however they can also be
+ 	  provided by the separate GNU libiconv library. If GNU libiconv is
+ 	  found when GCC is built (e.g., because its headers are installed
+ 	  in <filename class="directory">/usr/local/include</filename>)
+ 	  then the <filename>libstdc++.so.6</filename> library will have a
+ 	  run-time dependency on <filename>libiconv.so.2</filename>.
+ 	  If you do not want that run-time dependency then you should do
+ 	  one of the following:
+ 	</para>
+ 	<itemizedlist>
+ 	  <listitem>
+ 	    <para>
+ 	      Uninstall the libiconv headers before building GCC.
+ 	      Glibc already provides <function>iconv</function> so you should
+ 	      not need libiconv anyway.
+ 	    </para>
+ 	  </listitem>
+ 	  <listitem>
+ 	    <para>
+ 	    <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	      xlink:href="https://www.gnu.org/software/libiconv/#downloading">
+ 	    Download</link> the libiconv sources and extract them into the
+ 	    top level of the GCC source tree, e.g.,
+ 	    </para>
+ <programlisting>
+ wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
+ tar xf libiconv-1.16.tar.gz
+ ln -s libiconv-1.16 libiconv
+ </programlisting>
+ 	    <para>
+ 	      This will build libiconv as part of building GCC and link to
+ 	      it statically, so there is no <filename>libiconv.so.2</filename>
+ 	      dependency.
+ 	    </para>
+ 	  </listitem>
+ 	  <listitem>
+ 	    <para>
+ 	      Configure GCC with <option>--with-libiconv-type=static</option>.
+ 	      This requires the static <filename>libiconv.a</filename> library,
+ 	      which is not installed by default. You might need to reinstall
+ 	      libiconv using the <option>--enable-static</option> configure
+ 	      option to get the static library.
+ 	    </para>
+ 	  </listitem>
+ 	</itemizedlist>
+ 	</listitem>
+ 
+ 	<listitem>
+ 	<para>
  	  If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
  	  will be made to use "C" library functionality necessary for
  	  C++ named locale support.  For GCC 4.6.0 and later, this
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/spine.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/spine.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/manual/spine.xml	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/xml/manual/spine.xml	Mon May 29 08:46:33 2023
***************
*** 48,65 ****
        </address>
      </affiliation>
  
!     <authorblurb>
        <para>
        </para>
!     </authorblurb>
    </author>
  -->
  
-   <author><personname><firstname/><surname/></personname><personblurb>
-       <para>
-       </para>
-     </personblurb></author>
- 
    <author><personname><firstname>Paolo</firstname><surname>Carlini</surname></personname><personblurb>
        <para>
  	TR1, LWG Active, Closed, Defects lists.
--- 48,60 ----
        </address>
      </affiliation>
  
!     <personblurb>
        <para>
        </para>
!     </personblurb>
    </author>
  -->
  
    <author><personname><firstname>Paolo</firstname><surname>Carlini</surname></personname><personblurb>
        <para>
  	TR1, LWG Active, Closed, Defects lists.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml	Mon May 29 08:46:33 2023
*************** release series.
*** 25,32 ****
  </para>
  
  <para>
! The following table lists new library features that have been accepted into
! the C++20 working draft. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
--- 25,32 ----
  </para>
  
  <para>
! The following table lists new library features that are included in
! the C++20 standard. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
*************** or any notes about the implementation.
*** 362,368 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
          P0053R7 </link>
        </entry>
!       <entry align="center"> 11 </entry>
        <entry> <code>__cpp_lib_syncbuf &gt;= 201711L</code> </entry>
      </row>
  
--- 362,368 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0053r7.pdf">
          P0053R7 </link>
        </entry>
!       <entry align="center"> 11.1 </entry>
        <entry> <code>__cpp_lib_syncbuf &gt;= 201711L</code> </entry>
      </row>
  
*************** or any notes about the implementation.
*** 372,378 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
          P0753R2 </link>
        </entry>
!       <entry align="center"> 11 </entry>
        <entry> <code>__cpp_lib_syncbuf &gt;= 201803L</code> </entry>
      </row>
  
--- 372,378 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0753r2.pdf">
          P0753R2 </link>
        </entry>
!       <entry align="center"> 11.1 </entry>
        <entry> <code>__cpp_lib_syncbuf &gt;= 201803L</code> </entry>
      </row>
  
*************** or any notes about the implementation.
*** 647,653 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
          P0966R1 </link>
        </entry>
!       <entry align="center"> 11 </entry>
        <entry />
      </row>
  
--- 647,653 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0966r1.html">
          P0966R1 </link>
        </entry>
!       <entry align="center"> 11.1 </entry>
        <entry />
      </row>
  
*************** or any notes about the implementation.
*** 1045,1051 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
          P0476R2 </link>
        </entry>
!       <entry align="center"> 11 </entry>
        <entry> <code>__cpp_lib_bit_cast &gt;= 201806L</code> </entry>
      </row>
  
--- 1045,1051 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html">
          P0476R2 </link>
        </entry>
!       <entry align="center"> 11.1 </entry>
        <entry> <code>__cpp_lib_bit_cast &gt;= 201806L</code> </entry>
      </row>
  
*************** or any notes about the implementation.
*** 1401,1407 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html">
          P0553R4 </link>
        </entry>
!       <entry align="center"> 10.1 </entry>
        <entry> <code>__cpp_lib_bitops &gt;= 201907L</code> (since 9.4, see Note 1) </entry>
      </row>
  
--- 1401,1407 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0553r4.html">
          P0553R4 </link>
        </entry>
!       <entry align="center"> 9.1 </entry>
        <entry> <code>__cpp_lib_bitops &gt;= 201907L</code> (since 9.4, see Note 1) </entry>
      </row>
  
*************** or any notes about the implementation.
*** 1431,1437 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf">
          P1208R6 </link>
        </entry>
!       <entry align="center"> 11 </entry>
        <entry>
          <code>__cpp_lib_source_location &gt;= 201907L</code>
        </entry>
--- 1431,1437 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1208r6.pdf">
          P1208R6 </link>
        </entry>
!       <entry align="center"> 11.1 </entry>
        <entry>
          <code>__cpp_lib_source_location &gt;= 201907L</code>
        </entry>
*************** or any notes about the implementation.
*** 1443,1449 ****
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf">
          P0408R7 </link>
        </entry>
!       <entry align="center"> 11 </entry>
        <entry />
      </row>
  
--- 1443,1449 ----
          <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0408r7.pdf">
          P0408R7 </link>
        </entry>
!       <entry align="center"> 11.1 </entry>
        <entry />
      </row>
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml
*** gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,249 ----
+ <section xmlns="http://docbook.org/ns/docbook" version="5.0"
+    xml:id="status.iso.2023" xreflabel="Status C++ 2023">
+ <?dbhtml filename="status_iso_cxx2023.html"?>
+ 
+ <info><title>C++ 2023</title>
+   <keywordset>
+     <keyword>ISO C++</keyword>
+     <keyword>2023</keyword>
+   </keywordset>
+ </info>
+ 
+ <para>
+ In this implementation the <literal>-std=gnu++23</literal> or
+ <literal>-std=c++23</literal> flag must be used to enable language
+ and library
+ features. See <link linkend="manual.intro.using.flags">dialect</link>
+ options. The pre-defined symbol
+ <constant>__cplusplus</constant> is used to check for the
+ presence of the required flag.
+ </para>
+ 
+ <para>
+ This section describes the C++23 and library TS support in mainline GCC,
+ not in any particular release.
+ </para>
+ 
+ <para>
+ The following table lists new library features that have been accepted into
+ the C++23 working draft. The "Proposal" column provides a link to the
+ ISO C++ committee proposal that describes the feature, while the "Status"
+ column indicates the first version of GCC that contains an implementation of
+ this feature (if it has been implemented).
+ A dash (&#x2014;) in the status column indicates that the changes in the proposal
+ either do not affect the code in libstdc++, or the changes are not required for conformance.
+ The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6:
+ Feature-testing recommendations for C++</link> (where applicable)
+ or any notes about the implementation.
+ </para>
+ 
+ <table frame="all" xml:id="table.cxx23_features">
+ <title>C++ 2023 Library Features</title>
+ 
+ <tgroup cols="4" align="left" colsep="0" rowsep="1">
+ <colspec colname="c1"/>
+ <colspec colname="c2"/>
+ <colspec colname="c3"/>
+ <colspec colname="c4"/>
+   <thead>
+     <row>
+       <entry>Library Feature</entry>
+       <entry>Proposal</entry>
+       <entry>Status</entry>
+       <entry>SD-6 Feature Test / Notes</entry>
+     </row>
+   </thead>
+ 
+   <tbody>
+ 
+     <row>
+       <entry namest="c1" nameend="c4" align="left">
+         <emphasis role="bold">Ranges and Views</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry> Range constructor for std::string_view </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1989r2.pdf">
+         P1989R2
+         </link>
+       </entry>
+       <entry align="center"> 11.1 </entry>
+       <entry />
+     </row>
+ 
+     <row>
+       <entry> <code>join_view</code> should join all views of ranges </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2328r1.html">
+         P2328R1
+         </link>
+       </entry>
+       <entry align="center"> 11.2 </entry>
+       <entry />
+     </row>
+ 
+ 
+     <row>
+       <entry> Clarifying range adaptor objects </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2281r1.html">
+         P2281R1
+         </link>
+       </entry>
+       <entry align="center"> 11.1 </entry>
+       <entry />
+     </row>
+ 
+     <row>
+       <entry> Views should not be required to be default constructible </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html">
+         P2325R3
+         </link>
+       </entry>
+       <entry align="center"> 11.3 </entry>
+       <entry> <code>__cpp_lib_ranges &gt;= 202106L</code> </entry>
+     </row>
+ 
+     <row>
+       <entry> Conditionally borrowed ranges </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2017r1.html">
+         P2017R1
+         </link>
+       </entry>
+       <entry align="center"> 11.1 </entry>
+       <entry />
+     </row>
+ 
+     <row>
+       <entry> Require <code>span</code> &amp; <code>basic_string_view</code> to be Trivially Copyable </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2251r1.pdf">
+         P2251R1
+         </link>
+       </entry>
+       <entry align="center"> Yes </entry>
+       <entry />
+     </row>
+ 
+     <row>
+       <entry namest="c1" nameend="c4" align="left">
+         <emphasis role="bold">Compile-time programming</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry> A proposal for a type trait to detect scoped enumerations </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1048r1.pdf">
+         P1048R1
+         </link>
+       </entry>
+       <entry align="center"> 11.1 </entry>
+       <entry> <code>__cpp_lib_is_scoped_enum &gt;= 202011L</code> </entry>
+     </row>
+ 
+     <row>
+       <entry> std::to_underlying for enumerations </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1682r3.html">
+         P1682R3
+         </link>
+       </entry>
+       <entry align="center"> 11.1 </entry>
+       <entry> <code>__cpp_lib_to_underlying &gt;= 202102L</code> </entry>
+     </row>
+ 
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry> Missing constexpr in std::optional and std::variant </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2231r1.html">
+         P2231R1
+         </link>
+       </entry>
+       <entry align="center"> 11.3 (<code>optional</code> only) </entry>
+       <entry>
+ 	<informaltable colsep="0" rowsep="0" rowheader="norowheader" frame="none"><tgroup cols="1"><tbody>
+         <row><entry> <code>__cpp_lib_constexpr_optional &gt;= 202106L</code> </entry></row>
+         <row><entry> <code>__cpp_lib_variant &gt;= 202106L</code> </entry></row>
+         </tbody></tgroup></informaltable>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry namest="c1" nameend="c4" align="left">
+         <emphasis role="bold">Strings and text</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry> string contains function </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1679r3.html">
+         P1679R3
+         </link>
+       </entry>
+       <entry align="center"> 11.1 </entry>
+       <entry> <code>__cpp_lib_string_contains &gt;= 202011L</code> </entry>
+     </row>
+ 
+     <row>
+       <entry namest="c1" nameend="c4" align="left">
+         <emphasis role="bold">Miscellaneous</emphasis>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry> Inheriting from <code>std::variant</code> </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2162r2.html">
+         P2162R2
+         </link>
+       </entry>
+       <entry align="center"> 11.3 </entry>
+       <entry> <code>__cpp_lib_variant &gt;= 202102L</code> </entry>
+     </row>
+ 
+     <row>
+       <entry> Printing <code>volatile</code> Pointers </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1147r1.html">
+         P1147R1
+         </link>
+       </entry>
+       <entry align="center"> 11.3 </entry>
+       <entry />
+     </row>
+ 
+     <row>
+       <entry> Clarifying the status of the "C headers" </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2340r1.html">
+         P2340R1
+         </link>
+       </entry>
+       <entry align="center"> Yes </entry>
+       <entry />
+     </row>
+ 
+     <row>
+       <entry> Relax Requirements for time_point::clock </entry>
+       <entry>
+         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2212r2.html">
+         P2212R2
+         </link>
+       </entry>
+       <entry align="center"> Yes </entry>
+       <entry />
+     </row>
+ 
+   </tbody>
+ </tgroup>
+ </table>
+ 
+ </section>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/Makefile.am gcc-11.4.0/libstdc++-v3/include/Makefile.am
*** gcc-11.3.0/libstdc++-v3/include/Makefile.am	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/Makefile.am	Mon May 29 08:46:33 2023
*************** stamp-float128:
*** 1275,1281 ****
  endif
  
  # This header is not installed, it's only used to build libstdc++ itself.
! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER}
  	@rm -f $@.tmp
  	@-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp
  	@-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp
--- 1275,1281 ----
  endif
  
  # This header is not installed, it's only used to build libstdc++ itself.
! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} stamp-${host_alias}
  	@rm -f $@.tmp
  	@-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp
  	@-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/Makefile.in gcc-11.4.0/libstdc++-v3/include/Makefile.in
*** gcc-11.3.0/libstdc++-v3/include/Makefile.in	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/Makefile.in	Mon May 29 08:46:33 2023
*************** stamp-host: ${host_headers} ${bits_host_
*** 1761,1767 ****
  @ENABLE_FLOAT128_FALSE@	echo 'undef _GLIBCXX_USE_FLOAT128' > stamp-float128
  
  # This header is not installed, it's only used to build libstdc++ itself.
! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER}
  	@rm -f $@.tmp
  	@-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp
  	@-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp
--- 1761,1767 ----
  @ENABLE_FLOAT128_FALSE@	echo 'undef _GLIBCXX_USE_FLOAT128' > stamp-float128
  
  # This header is not installed, it's only used to build libstdc++ itself.
! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} stamp-${host_alias}
  	@rm -f $@.tmp
  	@-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp
  	@-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/atomic_base.h gcc-11.4.0/libstdc++-v3/include/bits/atomic_base.h
*** gcc-11.3.0/libstdc++-v3/include/bits/atomic_base.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/atomic_base.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 121,126 ****
--- 121,133 ----
        | __memory_order_modifier(__m & __memory_order_modifier_mask));
    }
  
+   constexpr bool
+   __is_valid_cmpexch_failure_order(memory_order __m) noexcept
+   {
+     return (__m & __memory_order_mask) != memory_order_release
+ 	&& (__m & __memory_order_mask) != memory_order_acq_rel;
+   }
+ 
    _GLIBCXX_ALWAYS_INLINE void
    atomic_thread_fence(memory_order __m) noexcept
    { __atomic_thread_fence(int(__m)); }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 245,257 ****
      // TODO add const volatile overload
  
      _GLIBCXX_ALWAYS_INLINE void
!     notify_one() const noexcept
      { std::__atomic_notify_address(&_M_i, false); }
  
      // TODO add const volatile overload
  
      _GLIBCXX_ALWAYS_INLINE void
!     notify_all() const noexcept
      { std::__atomic_notify_address(&_M_i, true); }
  
      // TODO add const volatile overload
--- 252,264 ----
      // TODO add const volatile overload
  
      _GLIBCXX_ALWAYS_INLINE void
!     notify_one() noexcept
      { std::__atomic_notify_address(&_M_i, false); }
  
      // TODO add const volatile overload
  
      _GLIBCXX_ALWAYS_INLINE void
!     notify_all() noexcept
      { std::__atomic_notify_address(&_M_i, true); }
  
      // TODO add const volatile overload
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 511,523 ****
        compare_exchange_weak(__int_type& __i1, __int_type __i2,
  			    memory_order __m1, memory_order __m2) noexcept
        {
! 	memory_order __b2 __attribute__ ((__unused__))
! 	  = __m2 & __memory_order_mask;
! 	memory_order __b1 __attribute__ ((__unused__))
! 	  = __m1 & __memory_order_mask;
! 	__glibcxx_assert(__b2 != memory_order_release);
! 	__glibcxx_assert(__b2 != memory_order_acq_rel);
! 	__glibcxx_assert(__b2 <= __b1);
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1,
  					   int(__m1), int(__m2));
--- 518,524 ----
        compare_exchange_weak(__int_type& __i1, __int_type __i2,
  			    memory_order __m1, memory_order __m2) noexcept
        {
! 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__m2));
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1,
  					   int(__m1), int(__m2));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 528,540 ****
  			    memory_order __m1,
  			    memory_order __m2) volatile noexcept
        {
! 	memory_order __b2 __attribute__ ((__unused__))
! 	  = __m2 & __memory_order_mask;
! 	memory_order __b1 __attribute__ ((__unused__))
! 	  = __m1 & __memory_order_mask;
! 	__glibcxx_assert(__b2 != memory_order_release);
! 	__glibcxx_assert(__b2 != memory_order_acq_rel);
! 	__glibcxx_assert(__b2 <= __b1);
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1,
  					   int(__m1), int(__m2));
--- 529,535 ----
  			    memory_order __m1,
  			    memory_order __m2) volatile noexcept
        {
! 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__m2));
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1,
  					   int(__m1), int(__m2));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 560,572 ****
        compare_exchange_strong(__int_type& __i1, __int_type __i2,
  			      memory_order __m1, memory_order __m2) noexcept
        {
! 	memory_order __b2 __attribute__ ((__unused__))
! 	  = __m2 & __memory_order_mask;
! 	memory_order __b1 __attribute__ ((__unused__))
! 	  = __m1 & __memory_order_mask;
! 	__glibcxx_assert(__b2 != memory_order_release);
! 	__glibcxx_assert(__b2 != memory_order_acq_rel);
! 	__glibcxx_assert(__b2 <= __b1);
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0,
  					   int(__m1), int(__m2));
--- 555,561 ----
        compare_exchange_strong(__int_type& __i1, __int_type __i2,
  			      memory_order __m1, memory_order __m2) noexcept
        {
! 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__m2));
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0,
  					   int(__m1), int(__m2));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 577,590 ****
  			      memory_order __m1,
  			      memory_order __m2) volatile noexcept
        {
! 	memory_order __b2 __attribute__ ((__unused__))
! 	  = __m2 & __memory_order_mask;
! 	memory_order __b1 __attribute__ ((__unused__))
! 	  = __m1 & __memory_order_mask;
! 
! 	__glibcxx_assert(__b2 != memory_order_release);
! 	__glibcxx_assert(__b2 != memory_order_acq_rel);
! 	__glibcxx_assert(__b2 <= __b1);
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0,
  					   int(__m1), int(__m2));
--- 566,572 ----
  			      memory_order __m1,
  			      memory_order __m2) volatile noexcept
        {
! 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__m2));
  
  	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0,
  					   int(__m1), int(__m2));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 618,630 ****
        // TODO add const volatile overload
  
        _GLIBCXX_ALWAYS_INLINE void
!       notify_one() const noexcept
        { std::__atomic_notify_address(&_M_i, false); }
  
        // TODO add const volatile overload
  
        _GLIBCXX_ALWAYS_INLINE void
!       notify_all() const noexcept
        { std::__atomic_notify_address(&_M_i, true); }
  
        // TODO add const volatile overload
--- 600,612 ----
        // TODO add const volatile overload
  
        _GLIBCXX_ALWAYS_INLINE void
!       notify_one() noexcept
        { std::__atomic_notify_address(&_M_i, false); }
  
        // TODO add const volatile overload
  
        _GLIBCXX_ALWAYS_INLINE void
!       notify_all() noexcept
        { std::__atomic_notify_address(&_M_i, true); }
  
        // TODO add const volatile overload
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 869,881 ****
  			      memory_order __m1,
  			      memory_order __m2) noexcept
        {
! 	memory_order __b2 __attribute__ ((__unused__))
! 	  = __m2 & __memory_order_mask;
! 	memory_order __b1 __attribute__ ((__unused__))
! 	  = __m1 & __memory_order_mask;
! 	__glibcxx_assert(__b2 != memory_order_release);
! 	__glibcxx_assert(__b2 != memory_order_acq_rel);
! 	__glibcxx_assert(__b2 <= __b1);
  
  	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0,
  					   int(__m1), int(__m2));
--- 851,857 ----
  			      memory_order __m1,
  			      memory_order __m2) noexcept
        {
! 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__m2));
  
  	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0,
  					   int(__m1), int(__m2));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 886,899 ****
  			      memory_order __m1,
  			      memory_order __m2) volatile noexcept
        {
! 	memory_order __b2 __attribute__ ((__unused__))
! 	  = __m2 & __memory_order_mask;
! 	memory_order __b1 __attribute__ ((__unused__))
! 	  = __m1 & __memory_order_mask;
! 
! 	__glibcxx_assert(__b2 != memory_order_release);
! 	__glibcxx_assert(__b2 != memory_order_acq_rel);
! 	__glibcxx_assert(__b2 <= __b1);
  
  	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0,
  					   int(__m1), int(__m2));
--- 862,868 ----
  			      memory_order __m1,
  			      memory_order __m2) volatile noexcept
        {
! 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__m2));
  
  	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0,
  					   int(__m1), int(__m2));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 996,1001 ****
--- 965,972 ----
  			    _Val<_Tp> __desired, memory_order __success,
  			    memory_order __failure) noexcept
        {
+ 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__failure));
+ 
  	return __atomic_compare_exchange(__ptr, std::__addressof(__expected),
  					 std::__addressof(__desired), true,
  					 int(__success), int(__failure));
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1007,1012 ****
--- 978,985 ----
  			      _Val<_Tp> __desired, memory_order __success,
  			      memory_order __failure) noexcept
        {
+ 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__failure));
+ 
  	return __atomic_compare_exchange(__ptr, std::__addressof(__expected),
  					 std::__addressof(__desired), false,
  					 int(__success), int(__failure));
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/atomic_wait.h gcc-11.4.0/libstdc++-v3/include/bits/atomic_wait.h
*** gcc-11.3.0/libstdc++-v3/include/bits/atomic_wait.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/atomic_wait.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 142,149 ****
  #endif
      }
  
!     constexpr auto __atomic_spin_count_1 = 12;
!     constexpr auto __atomic_spin_count_2 = 4;
  
      struct __default_spin_policy
      {
--- 142,149 ----
  #endif
      }
  
!     constexpr auto __atomic_spin_count_relax = 12;
!     constexpr auto __atomic_spin_count = 16;
  
      struct __default_spin_policy
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 157,174 ****
        bool
        __atomic_spin(_Pred& __pred, _Spin __spin = _Spin{ }) noexcept
        {
! 	for (auto __i = 0; __i < __atomic_spin_count_1; ++__i)
  	  {
  	    if (__pred())
  	      return true;
- 	    __detail::__thread_relax();
- 	  }
  
! 	for (auto __i = 0; __i < __atomic_spin_count_2; ++__i)
! 	  {
! 	    if (__pred())
! 	      return true;
! 	    __detail::__thread_yield();
  	  }
  
  	while (__spin())
--- 157,171 ----
        bool
        __atomic_spin(_Pred& __pred, _Spin __spin = _Spin{ }) noexcept
        {
! 	for (auto __i = 0; __i < __atomic_spin_count; ++__i)
  	  {
  	    if (__pred())
  	      return true;
  
! 	    if (__i < __atomic_spin_count_relax)
! 	      __detail::__thread_relax();
! 	    else
! 	      __detail::__thread_yield();
  	  }
  
  	while (__spin())
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 226,243 ****
        }
  
        void
!       _M_notify(const __platform_wait_t* __addr, bool __all, bool __bare) noexcept
        {
- 	if (!(__bare || _M_waiting()))
- 	  return;
- 
  #ifdef _GLIBCXX_HAVE_PLATFORM_WAIT
! 	__platform_notify(__addr, __all);
  #else
! 	if (__all)
  	  _M_cv.notify_all();
- 	else
- 	  _M_cv.notify_one();
  #endif
        }
  
--- 223,247 ----
        }
  
        void
!       _M_notify(__platform_wait_t* __addr, [[maybe_unused]] bool __all,
! 		bool __bare) noexcept
        {
  #ifdef _GLIBCXX_HAVE_PLATFORM_WAIT
! 	if (__addr == &_M_ver)
! 	  {
! 	    __atomic_fetch_add(__addr, 1, __ATOMIC_SEQ_CST);
! 	    __all = true;
! 	  }
! 
! 	if (__bare || _M_waiting())
! 	  __platform_notify(__addr, __all);
  #else
! 	{
! 	  lock_guard<mutex> __l(_M_mtx);
! 	  __atomic_fetch_add(__addr, 1, __ATOMIC_RELAXED);
! 	}
! 	if (__bare || _M_waiting())
  	  _M_cv.notify_all();
  #endif
        }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 264,270 ****
  	if (__val == __old)
  	  {
  	    lock_guard<mutex> __l(_M_mtx);
! 	    _M_cv.wait(_M_mtx);
  	  }
  #endif // __GLIBCXX_HAVE_PLATFORM_WAIT
        }
--- 268,276 ----
  	if (__val == __old)
  	  {
  	    lock_guard<mutex> __l(_M_mtx);
! 	    __atomic_load(__addr, &__val, __ATOMIC_RELAXED);
! 	    if (__val == __old)
! 	      _M_cv.wait(_M_mtx);
  	  }
  #endif // __GLIBCXX_HAVE_PLATFORM_WAIT
        }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 302,321 ****
  	    , _M_addr(_S_wait_addr(__addr, &_M_w._M_ver))
  	  { }
  
- 	bool
- 	_M_laundered() const
- 	{ return _M_addr == &_M_w._M_ver; }
- 
  	void
! 	_M_notify(bool __all, bool __bare = false)
! 	{
! 	  if (_M_laundered())
! 	    {
! 	      __atomic_fetch_add(_M_addr, 1, __ATOMIC_SEQ_CST);
! 	      __all = true;
! 	    }
! 	  _M_w._M_notify(_M_addr, __all, __bare);
! 	}
  
  	template<typename _Up, typename _ValFn,
  		 typename _Spin = __default_spin_policy>
--- 308,316 ----
  	    , _M_addr(_S_wait_addr(__addr, &_M_w._M_ver))
  	  { }
  
  	void
! 	_M_notify(bool __all, bool __bare = false) noexcept
! 	{ _M_w._M_notify(_M_addr, __all, __bare); }
  
  	template<typename _Up, typename _ValFn,
  		 typename _Spin = __default_spin_policy>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/forward_list.tcc gcc-11.4.0/libstdc++-v3/include/bits/forward_list.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/forward_list.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/forward_list.tcc	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 367,372 ****
--- 367,377 ----
        forward_list<_Tp, _Alloc>::
        merge(forward_list&& __list, _Comp __comp)
        {
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 3088. forward_list::merge behavior unclear when passed *this
+ 	if (std::__addressof(__list) == this)
+ 	  return;
+ 
  	_Node_base* __node = &this->_M_impl._M_head;
  	while (__node->_M_next && __list._M_impl._M_head._M_next)
  	  {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/fs_ops.h gcc-11.4.0/libstdc++-v3/include/bits/fs_ops.h
*** gcc-11.3.0/libstdc++-v3/include/bits/fs_ops.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/fs_ops.h	Mon May 29 08:46:33 2023
*************** namespace filesystem
*** 44,53 ****
--- 44,59 ----
     *  @{
     */
  
+   [[nodiscard]]
    path absolute(const path& __p);
+ 
+   [[nodiscard]]
    path absolute(const path& __p, error_code& __ec);
  
+   [[nodiscard]]
    path canonical(const path& __p);
+ 
+   [[nodiscard]]
    path canonical(const path& __p, error_code& __ec);
  
    inline void
*************** namespace filesystem
*** 100,124 ****
--- 106,139 ----
    void create_symlink(const path& __to, const path& __new_symlink,
  		      error_code& __ec) noexcept;
  
+   [[nodiscard]]
    path current_path();
+ 
+   [[nodiscard]]
    path current_path(error_code& __ec);
+ 
    void current_path(const path& __p);
    void current_path(const path& __p, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    bool
    equivalent(const path& __p1, const path& __p2);
  
+   [[nodiscard]]
    bool
    equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    inline bool
    exists(file_status __s) noexcept
    { return status_known(__s) && __s.type() != file_type::not_found; }
  
+   [[nodiscard]]
    inline bool
    exists(const path& __p)
    { return exists(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    exists(const path& __p, error_code& __ec) noexcept
    {
*************** namespace filesystem
*** 131,193 ****
--- 146,230 ----
      return false;
    }
  
+   [[nodiscard]]
    uintmax_t file_size(const path& __p);
+ 
+   [[nodiscard]]
    uintmax_t file_size(const path& __p, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    uintmax_t hard_link_count(const path& __p);
+ 
+   [[nodiscard]]
    uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    inline bool
    is_block_file(file_status __s) noexcept
    { return __s.type() == file_type::block; }
  
+   [[nodiscard]]
    inline bool
    is_block_file(const path& __p)
    { return is_block_file(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_block_file(const path& __p, error_code& __ec) noexcept
    { return is_block_file(status(__p, __ec)); }
  
+   [[nodiscard]]
    inline bool
    is_character_file(file_status __s) noexcept
    { return __s.type() == file_type::character; }
  
+   [[nodiscard]]
    inline bool
    is_character_file(const path& __p)
    { return is_character_file(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_character_file(const path& __p, error_code& __ec) noexcept
    { return is_character_file(status(__p, __ec)); }
  
+   [[nodiscard]]
    inline bool
    is_directory(file_status __s) noexcept
    { return __s.type() == file_type::directory; }
  
+   [[nodiscard]]
    inline bool
    is_directory(const path& __p)
    { return is_directory(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_directory(const path& __p, error_code& __ec) noexcept
    { return is_directory(status(__p, __ec)); }
  
+   [[nodiscard]]
    bool is_empty(const path& __p);
+ 
+   [[nodiscard]]
    bool is_empty(const path& __p, error_code& __ec);
  
+   [[nodiscard]]
    inline bool
    is_fifo(file_status __s) noexcept
    { return __s.type() == file_type::fifo; }
  
+   [[nodiscard]]
    inline bool
    is_fifo(const path& __p)
    { return is_fifo(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_fifo(const path& __p, error_code& __ec) noexcept
    { return is_fifo(status(__p, __ec)); }
  
+   [[nodiscard]]
    inline bool
    is_other(file_status __s) noexcept
    {
*************** namespace filesystem
*** 195,246 ****
--- 232,298 ----
        && !is_symlink(__s);
    }
  
+   [[nodiscard]]
    inline bool
    is_other(const path& __p)
    { return is_other(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_other(const path& __p, error_code& __ec) noexcept
    { return is_other(status(__p, __ec)); }
  
+   [[nodiscard]]
    inline bool
    is_regular_file(file_status __s) noexcept
    { return __s.type() == file_type::regular; }
  
+   [[nodiscard]]
    inline bool
    is_regular_file(const path& __p)
    { return is_regular_file(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_regular_file(const path& __p, error_code& __ec) noexcept
    { return is_regular_file(status(__p, __ec)); }
  
+   [[nodiscard]]
    inline bool
    is_socket(file_status __s) noexcept
    { return __s.type() == file_type::socket; }
  
+   [[nodiscard]]
    inline bool
    is_socket(const path& __p)
    { return is_socket(status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_socket(const path& __p, error_code& __ec) noexcept
    { return is_socket(status(__p, __ec)); }
  
+   [[nodiscard]]
    inline bool
    is_symlink(file_status __s) noexcept
    { return __s.type() == file_type::symlink; }
  
+   [[nodiscard]]
    inline bool
    is_symlink(const path& __p)
    { return is_symlink(symlink_status(__p)); }
  
+   [[nodiscard]]
    inline bool
    is_symlink(const path& __p, error_code& __ec) noexcept
    { return is_symlink(symlink_status(__p, __ec)); }
  
+   [[nodiscard]]
    file_time_type  last_write_time(const path& __p);
+ 
+   [[nodiscard]]
    file_time_type  last_write_time(const path& __p, error_code& __ec) noexcept;
+ 
    void last_write_time(const path& __p, file_time_type __new_time);
    void last_write_time(const path& __p, file_time_type __new_time,
  		       error_code& __ec) noexcept;
*************** namespace filesystem
*** 257,275 ****
--- 309,338 ----
    permissions(const path& __p, perms __prms, perm_options __opts,
  	      error_code& __ec) noexcept;
  
+   [[nodiscard]]
    inline path proximate(const path& __p, error_code& __ec)
    { return proximate(__p, current_path(), __ec); }
  
+   [[nodiscard]]
    path proximate(const path& __p, const path& __base = current_path());
+ 
+   [[nodiscard]]
    path proximate(const path& __p, const path& __base, error_code& __ec);
  
+   [[nodiscard]]
    path read_symlink(const path& __p);
+ 
+   [[nodiscard]]
    path read_symlink(const path& __p, error_code& __ec);
  
+   [[nodiscard]]
    inline path relative(const path& __p, error_code& __ec)
    { return relative(__p, current_path(), __ec); }
  
+   [[nodiscard]]
    path relative(const path& __p, const path& __base = current_path());
+ 
+   [[nodiscard]]
    path relative(const path& __p, const path& __base, error_code& __ec);
  
    bool remove(const path& __p);
*************** namespace filesystem
*** 284,305 ****
--- 347,384 ----
    void resize_file(const path& __p, uintmax_t __size);
    void resize_file(const path& __p, uintmax_t __size, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    space_info space(const path& __p);
+ 
+   [[nodiscard]]
    space_info space(const path& __p, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    file_status status(const path& __p);
+ 
+   [[nodiscard]]
    file_status status(const path& __p, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    inline bool status_known(file_status __s) noexcept
    { return __s.type() != file_type::none; }
  
+   [[nodiscard]]
    file_status symlink_status(const path& __p);
+ 
+   [[nodiscard]]
    file_status symlink_status(const path& __p, error_code& __ec) noexcept;
  
+   [[nodiscard]]
    path temp_directory_path();
+ 
+   [[nodiscard]]
    path temp_directory_path(error_code& __ec);
  
+   [[nodiscard]]
    path weakly_canonical(const path& __p);
+ 
+   [[nodiscard]]
    path weakly_canonical(const path& __p, error_code& __ec);
  
    /// @} group filesystem
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/fs_path.h gcc-11.4.0/libstdc++-v3/include/bits/fs_path.h
*** gcc-11.3.0/libstdc++-v3/include/bits/fs_path.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/fs_path.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 558,569 ****
        _Multi = 0, _Root_name, _Root_dir, _Filename
      };
  
!     path(basic_string_view<value_type> __str, _Type __type)
!     : _M_pathname(__str)
!     {
!       __glibcxx_assert(__type != _Type::_Multi);
!       _M_cmpts.type(__type);
!     }
  
      enum class _Split { _Stem, _Extension };
  
--- 558,564 ----
        _Multi = 0, _Root_name, _Root_dir, _Filename
      };
  
!     path(basic_string_view<value_type> __str, _Type __type);
  
      enum class _Split { _Stem, _Extension };
  
*************** namespace __detail
*** 809,816 ****
  
    struct path::_Cmpt : path
    {
!     _Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos)
!       : path(__s, __t), _M_pos(__pos) { }
  
      _Cmpt() : _M_pos(-1) { }
  
--- 804,810 ----
  
    struct path::_Cmpt : path
    {
!     _Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos);
  
      _Cmpt() : _M_pos(-1) { }
  
*************** namespace __detail
*** 1211,1219 ****
        {
  	if (_M_pathname.back() == preferred_separator)
  	  return {};
! 	auto& __last = *--end();
! 	if (__last._M_type() == _Type::_Filename)
! 	  return __last;
        }
      return {};
    }
--- 1205,1213 ----
        {
  	if (_M_pathname.back() == preferred_separator)
  	  return {};
! 	auto __last = --end();
! 	if (__last->_M_type() == _Type::_Filename)
! 	  return *__last;
        }
      return {};
    }
*************** extern template class __shared_ptr<const
*** 1361,1366 ****
--- 1355,1370 ----
  
  /// @endcond
  
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3657. std::hash<std::filesystem::path> is not enabled
+ template<>
+   struct hash<filesystem::path>
+   {
+     size_t
+     operator()(const filesystem::path& __p) const noexcept
+     { return filesystem::hash_value(__p); }
+   };
+ 
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/gslice_array.h gcc-11.4.0/libstdc++-v3/include/bits/gslice_array.h
*** gcc-11.3.0/libstdc++-v3/include/bits/gslice_array.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/gslice_array.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 183,188 ****
--- 183,189 ----
  			      _Array<size_t>(_M_index));
        }
  
+   /// @cond undocumented
  #undef _DEFINE_VALARRAY_OPERATOR
  #define _DEFINE_VALARRAY_OPERATOR(_Op, _Name)				\
    template<typename _Tp>						\
*************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le
*** 214,219 ****
--- 215,221 ----
  _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
  
  #undef _DEFINE_VALARRAY_OPERATOR
+   /// @endcond
  
    /// @} group numeric_arrays
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/indirect_array.h gcc-11.4.0/libstdc++-v3/include/bits/indirect_array.h
*** gcc-11.3.0/libstdc++-v3/include/bits/indirect_array.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/indirect_array.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 174,179 ****
--- 174,180 ----
        indirect_array<_Tp>::operator=(const _Expr<_Dom, _Tp>& __e) const
        { std::__valarray_copy(__e, _M_sz, _M_array, _M_index); }
  
+   /// @cond undocumented
  #undef _DEFINE_VALARRAY_OPERATOR
  #define _DEFINE_VALARRAY_OPERATOR(_Op, _Name)				\
    template<typename _Tp>						\
*************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le
*** 203,208 ****
--- 204,210 ----
  _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
  
  #undef _DEFINE_VALARRAY_OPERATOR
+   /// @endcond
  
    /// @} group numeric_arrays
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/list.tcc gcc-11.4.0/libstdc++-v3/include/bits/list.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/list.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/list.tcc	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 416,444 ****
  	  iterator __last1 = end();
  	  iterator __first2 = __x.begin();
  	  iterator __last2 = __x.end();
- 	  const size_t __orig_size = __x.size();
- 	  __try {
- 	    while (__first1 != __last1 && __first2 != __last2)
- 	      if (*__first2 < *__first1)
- 		{
- 		  iterator __next = __first2;
- 		  _M_transfer(__first1, __first2, ++__next);
- 		  __first2 = __next;
- 		}
- 	      else
- 		++__first1;
- 	    if (__first2 != __last2)
- 	      _M_transfer(__last1, __first2, __last2);
  
! 	    this->_M_inc_size(__x._M_get_size());
! 	    __x._M_set_size(0);
! 	  }
! 	  __catch(...)
  	    {
! 	      const size_t __dist = std::distance(__first2, __last2);
! 	      this->_M_inc_size(__orig_size - __dist);
! 	      __x._M_set_size(__dist);
! 	      __throw_exception_again;
  	    }
  	}
      }
--- 416,437 ----
  	  iterator __last1 = end();
  	  iterator __first2 = __x.begin();
  	  iterator __last2 = __x.end();
  
! 	  const _Finalize_merge __fin(*this, __x, __first2);
! 
! 	  while (__first1 != __last1 && __first2 != __last2)
! 	    if (*__first2 < *__first1)
! 	      {
! 		iterator __next = __first2;
! 		_M_transfer(__first1, __first2, ++__next);
! 		__first2 = __next;
! 	      }
! 	    else
! 	      ++__first1;
! 	  if (__first2 != __last2)
  	    {
! 	      _M_transfer(__last1, __first2, __last2);
! 	      __first2 = __last2;
  	    }
  	}
      }
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 463,492 ****
  	    iterator __last1 = end();
  	    iterator __first2 = __x.begin();
  	    iterator __last2 = __x.end();
- 	    const size_t __orig_size = __x.size();
- 	    __try
- 	      {
- 		while (__first1 != __last1 && __first2 != __last2)
- 		  if (__comp(*__first2, *__first1))
- 		    {
- 		      iterator __next = __first2;
- 		      _M_transfer(__first1, __first2, ++__next);
- 		      __first2 = __next;
- 		    }
- 		  else
- 		    ++__first1;
- 		if (__first2 != __last2)
- 		  _M_transfer(__last1, __first2, __last2);
  
! 		this->_M_inc_size(__x._M_get_size());
! 		__x._M_set_size(0);
! 	      }
! 	    __catch(...)
  	      {
! 		const size_t __dist = std::distance(__first2, __last2);
! 		this->_M_inc_size(__orig_size - __dist);
! 		__x._M_set_size(__dist);
! 		__throw_exception_again;
  	      }
  	  }
        }
--- 456,477 ----
  	    iterator __last1 = end();
  	    iterator __first2 = __x.begin();
  	    iterator __last2 = __x.end();
  
! 	    const _Finalize_merge __fin(*this, __x, __first2);
! 
! 	    while (__first1 != __last1 && __first2 != __last2)
! 	      if (__comp(*__first2, *__first1))
! 		{
! 		  iterator __next = __first2;
! 		  _M_transfer(__first1, __first2, ++__next);
! 		  __first2 = __next;
! 		}
! 	      else
! 		++__first1;
! 	    if (__first2 != __last2)
  	      {
! 		_M_transfer(__last1, __first2, __last2);
! 		__first2 = __last2;
  	      }
  	  }
        }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc gcc-11.4.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 78,109 ****
        char* __grouping = 0;
        _CharT* __curr_symbol = 0;
        _CharT* __positive_sign = 0;
!       _CharT* __negative_sign = 0;     
        __try
  	{
  	  const string& __g = __mp.grouping();
! 	  _M_grouping_size = __g.size();
! 	  __grouping = new char[_M_grouping_size];
! 	  __g.copy(__grouping, _M_grouping_size);
  	  _M_use_grouping = (_M_grouping_size
  			     && static_cast<signed char>(__grouping[0]) > 0
  			     && (__grouping[0]
  				 != __gnu_cxx::__numeric_traits<char>::__max));
  
  	  const basic_string<_CharT>& __cs = __mp.curr_symbol();
! 	  _M_curr_symbol_size = __cs.size();
! 	  __curr_symbol = new _CharT[_M_curr_symbol_size];
! 	  __cs.copy(__curr_symbol, _M_curr_symbol_size);
  
  	  const basic_string<_CharT>& __ps = __mp.positive_sign();
! 	  _M_positive_sign_size = __ps.size();
! 	  __positive_sign = new _CharT[_M_positive_sign_size];
! 	  __ps.copy(__positive_sign, _M_positive_sign_size);
  
  	  const basic_string<_CharT>& __ns = __mp.negative_sign();
! 	  _M_negative_sign_size = __ns.size();
! 	  __negative_sign = new _CharT[_M_negative_sign_size];
! 	  __ns.copy(__negative_sign, _M_negative_sign_size);
  
  	  _M_pos_format = __mp.pos_format();
  	  _M_neg_format = __mp.neg_format();
--- 78,110 ----
        char* __grouping = 0;
        _CharT* __curr_symbol = 0;
        _CharT* __positive_sign = 0;
!       _CharT* __negative_sign = 0;
!       size_t __sz;
        __try
  	{
  	  const string& __g = __mp.grouping();
! 	  __sz = _M_grouping_size = __g.size();
! 	  __grouping = new char[__sz];
! 	  __g.copy(__grouping, __sz);
  	  _M_use_grouping = (_M_grouping_size
  			     && static_cast<signed char>(__grouping[0]) > 0
  			     && (__grouping[0]
  				 != __gnu_cxx::__numeric_traits<char>::__max));
  
  	  const basic_string<_CharT>& __cs = __mp.curr_symbol();
! 	  __sz = _M_curr_symbol_size = __cs.size();
! 	  __curr_symbol = new _CharT[__sz];
! 	  __cs.copy(__curr_symbol, __sz);
  
  	  const basic_string<_CharT>& __ps = __mp.positive_sign();
! 	  __sz = _M_positive_sign_size = __ps.size();
! 	  __positive_sign = new _CharT[__sz];
! 	  __ps.copy(__positive_sign, __sz);
  
  	  const basic_string<_CharT>& __ns = __mp.negative_sign();
! 	  __sz = _M_negative_sign_size = __ns.size();
! 	  __negative_sign = new _CharT[__sz];
! 	  __ns.copy(__negative_sign, __sz);
  
  	  _M_pos_format = __mp.pos_format();
  	  _M_neg_format = __mp.neg_format();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/mask_array.h gcc-11.4.0/libstdc++-v3/include/bits/mask_array.h
*** gcc-11.3.0/libstdc++-v3/include/bits/mask_array.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/mask_array.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 174,179 ****
--- 174,180 ----
        mask_array<_Tp>::operator=(const _Expr<_Ex, _Tp>& __e) const
        { std::__valarray_copy(__e, __e.size(), _M_array, _M_mask); }
  
+   /// @cond undocumented
  #undef _DEFINE_VALARRAY_OPERATOR
  #define _DEFINE_VALARRAY_OPERATOR(_Op, _Name)				\
    template<typename _Tp>						\
*************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le
*** 204,209 ****
--- 205,211 ----
  _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
  
  #undef _DEFINE_VALARRAY_OPERATOR
+   /// @endcond
  
    /// @} group numeric_arrays
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/max_size_type.h gcc-11.4.0/libstdc++-v3/include/bits/max_size_type.h
*** gcc-11.3.0/libstdc++-v3/include/bits/max_size_type.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/max_size_type.h	Mon May 29 08:46:33 2023
*************** namespace ranges
*** 559,565 ****
  	// Arithmetic right shift.
  	const auto __msb = _M_rep._M_msb;
  	_M_rep >>= __r._M_rep;
! 	_M_rep._M_msb |= __msb;
  	return *this;
        }
  
--- 559,566 ----
  	// Arithmetic right shift.
  	const auto __msb = _M_rep._M_msb;
  	_M_rep >>= __r._M_rep;
! 	if (__msb)
! 	  _M_rep |= ~(__max_size_type(-1) >> __r._M_rep);
  	return *this;
        }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/random.tcc gcc-11.4.0/libstdc++-v3/include/bits/random.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/random.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/random.tcc	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1955,1961 ****
        bool __saved_avail;
        if (__is >> __mean >> __stddev >> __saved_avail)
  	{
! 	  if (__saved_avail && (__is >> __x._M_saved))
  	    {
  	      __x._M_saved_available = __saved_avail;
  	      __x.param(param_type(__mean, __stddev));
--- 1955,1961 ----
        bool __saved_avail;
        if (__is >> __mean >> __stddev >> __saved_avail)
  	{
! 	  if (!__saved_avail || (__is >> __x._M_saved))
  	    {
  	      __x._M_saved_available = __saved_avail;
  	      __x.param(param_type(__mean, __stddev));
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/ranges_algobase.h gcc-11.4.0/libstdc++-v3/include/bits/ranges_algobase.h
*** gcc-11.3.0/libstdc++-v3/include/bits/ranges_algobase.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/ranges_algobase.h	Mon May 29 08:46:33 2023
*************** namespace ranges
*** 238,244 ****
  	{
  	  auto [__in,__out]
  	    = ranges::__copy_or_move<_IsMove>(__first.base(), __last.base(),
! 					      __result);
  	  return {decltype(__first){__in}, std::move(__out)};
  	}
        else if constexpr (__is_normal_iterator<_Out>)
--- 238,244 ----
  	{
  	  auto [__in,__out]
  	    = ranges::__copy_or_move<_IsMove>(__first.base(), __last.base(),
! 					      std::move(__result));
  	  return {decltype(__first){__in}, std::move(__out)};
  	}
        else if constexpr (__is_normal_iterator<_Out>)
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/ranges_base.h gcc-11.4.0/libstdc++-v3/include/bits/ranges_base.h
*** gcc-11.3.0/libstdc++-v3/include/bits/ranges_base.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/ranges_base.h	Mon May 29 08:46:33 2023
*************** namespace ranges
*** 379,384 ****
--- 379,386 ----
      template<typename _Tp>
        concept __sentinel_size = requires(_Tp& __t)
  	{
+ 	  requires (!is_unbounded_array_v<remove_reference_t<_Tp>>);
+ 
  	  { _Begin{}(__t) } -> forward_iterator;
  
  	  { _End{}(__t) } -> sized_sentinel_for<decltype(_Begin{}(__t))>;
*************** namespace ranges
*** 462,467 ****
--- 464,471 ----
      template<typename _Tp>
        concept __eq_iter_empty = requires(_Tp& __t)
  	{
+ 	  requires (!is_unbounded_array_v<remove_reference_t<_Tp>>);
+ 
  	  { _Begin{}(__t) } -> forward_iterator;
  
  	  bool(_Begin{}(__t) == _End{}(__t));
*************** namespace ranges
*** 728,747 ****
  	  {
  	    const auto __diff = __bound - __it;
  
! 	    // n and bound must not lead in opposite directions:
! 	    __glibcxx_assert(__n == 0 || __diff == 0 || (__n < 0 == __diff < 0));
! 	    const auto __absdiff = __diff < 0 ? -__diff : __diff;
! 	    const auto __absn = __n < 0 ? -__n : __n;;
! 	    if (__absn >= __absdiff)
  	      {
  		(*this)(__it, __bound);
  		return __n - __diff;
  	      }
! 	    else
  	      {
  		(*this)(__it, __n);
  		return 0;
  	      }
  	  }
  	else if (__it == __bound || __n == 0)
  	  return __n;
--- 732,754 ----
  	  {
  	    const auto __diff = __bound - __it;
  
! 	    if (__diff == 0)
! 	      return __n;
! 	    else if (__diff > 0 ? __n >= __diff : __n <= __diff)
  	      {
  		(*this)(__it, __bound);
  		return __n - __diff;
  	      }
! 	    else if (__n != 0) [[likely]]
  	      {
+ 		// n and bound must not lead in opposite directions:
+ 		__glibcxx_assert(__n < 0 == __diff < 0);
+ 
  		(*this)(__it, __n);
  		return 0;
  	      }
+ 	    else
+ 	      return 0;
  	  }
  	else if (__it == __bound || __n == 0)
  	  return __n;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex.h gcc-11.4.0/libstdc++-v3/include/bits/regex.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 57,62 ****
--- 57,72 ----
  
    template<typename, typename, typename, bool>
      class _Executor;
+ 
+   template<typename _Tp>
+     struct __is_contiguous_iter : false_type { };
+ 
+   template<typename _Tp>
+     struct __is_contiguous_iter<_Tp*> : true_type { };
+ 
+   template<typename _Tp, typename _Cont>
+     struct __is_contiguous_iter<__gnu_cxx::__normal_iterator<_Tp*, _Cont>>
+     : true_type { };
  }
  
  _GLIBCXX_BEGIN_NAMESPACE_CXX11
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 414,419 ****
--- 424,432 ----
        static constexpr flag_type awk = regex_constants::awk;
        static constexpr flag_type grep = regex_constants::grep;
        static constexpr flag_type egrep = regex_constants::egrep;
+ #if __cplusplus >= 201703L || !defined __STRICT_ANSI__
+       static constexpr flag_type multiline = regex_constants::multiline;
+ #endif
        ///@}
  
        // [7.8.2] construct/copy/destroy
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 421,427 ****
         * Constructs a basic regular expression that does not match any
         * character sequence.
         */
!       basic_regex()
        : _M_flags(ECMAScript), _M_loc(), _M_automaton(nullptr)
        { }
  
--- 434,440 ----
         * Constructs a basic regular expression that does not match any
         * character sequence.
         */
!       basic_regex() noexcept
        : _M_flags(ECMAScript), _M_loc(), _M_automaton(nullptr)
        { }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 438,445 ****
         */
        explicit
        basic_regex(const _Ch_type* __p, flag_type __f = ECMAScript)
!       : basic_regex(__p, __p + char_traits<_Ch_type>::length(__p), __f)
!       { }
  
        /**
         * @brief Constructs a basic regular expression from the sequence
--- 451,457 ----
         */
        explicit
        basic_regex(const _Ch_type* __p, flag_type __f = ECMAScript)
!       { _M_compile(__p, __p + _Rx_traits::length(__p), __f); }
  
        /**
         * @brief Constructs a basic regular expression from the sequence
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 455,462 ****
         */
        basic_regex(const _Ch_type* __p, std::size_t __len,
  		  flag_type __f = ECMAScript)
!       : basic_regex(__p, __p + __len, __f)
!       { }
  
        /**
         * @brief Copy-constructs a basic regular expression.
--- 467,473 ----
         */
        basic_regex(const _Ch_type* __p, std::size_t __len,
  		  flag_type __f = ECMAScript)
!       { _M_compile(__p, __p + __len, __f); }
  
        /**
         * @brief Copy-constructs a basic regular expression.
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 486,493 ****
  	basic_regex(const std::basic_string<_Ch_type, _Ch_traits,
  					    _Ch_alloc>& __s,
  		    flag_type __f = ECMAScript)
! 	: basic_regex(__s.data(), __s.data() + __s.size(), __f)
! 	{ }
  
        /**
         * @brief Constructs a basic regular expression from the range
--- 497,503 ----
  	basic_regex(const std::basic_string<_Ch_type, _Ch_traits,
  					    _Ch_alloc>& __s,
  		    flag_type __f = ECMAScript)
! 	{ _M_compile(__s.data(), __s.data() + __s.size(), __f); }
  
        /**
         * @brief Constructs a basic regular expression from the range
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 505,512 ****
        template<typename _FwdIter>
  	basic_regex(_FwdIter __first, _FwdIter __last,
  		    flag_type __f = ECMAScript)
! 	: basic_regex(std::move(__first), std::move(__last), locale_type(), __f)
! 	{ }
  
        /**
         * @brief Constructs a basic regular expression from an initializer list.
--- 515,521 ----
        template<typename _FwdIter>
  	basic_regex(_FwdIter __first, _FwdIter __last,
  		    flag_type __f = ECMAScript)
! 	{ this->assign(__first, __last, __f); }
  
        /**
         * @brief Constructs a basic regular expression from an initializer list.
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 517,524 ****
         * @throws regex_error if @p __l is not a valid regular expression.
         */
        basic_regex(initializer_list<_Ch_type> __l, flag_type __f = ECMAScript)
!       : basic_regex(__l.begin(), __l.end(), __f)
!       { }
  
        /**
         * @brief Destroys a basic regular expression.
--- 526,532 ----
         * @throws regex_error if @p __l is not a valid regular expression.
         */
        basic_regex(initializer_list<_Ch_type> __l, flag_type __f = ECMAScript)
!       { _M_compile(__l.begin(), __l.end(), __f); }
  
        /**
         * @brief Destroys a basic regular expression.
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 530,544 ****
         * @brief Assigns one regular expression to another.
         */
        basic_regex&
!       operator=(const basic_regex& __rhs)
!       { return this->assign(__rhs); }
  
        /**
         * @brief Move-assigns one regular expression to another.
         */
        basic_regex&
!       operator=(basic_regex&& __rhs) noexcept
!       { return this->assign(std::move(__rhs)); }
  
        /**
         * @brief Replaces a regular expression with a new one constructed from
--- 538,550 ----
         * @brief Assigns one regular expression to another.
         */
        basic_regex&
!       operator=(const basic_regex&) = default;
  
        /**
         * @brief Move-assigns one regular expression to another.
         */
        basic_regex&
!       operator=(basic_regex&&) = default;
  
        /**
         * @brief Replaces a regular expression with a new one constructed from
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 561,567 ****
         */
        basic_regex&
        operator=(initializer_list<_Ch_type> __l)
!       { return this->assign(__l.begin(), __l.end()); }
  
        /**
         * @brief Replaces a regular expression with a new one constructed from
--- 567,573 ----
         */
        basic_regex&
        operator=(initializer_list<_Ch_type> __l)
!       { return this->assign(__l); }
  
        /**
         * @brief Replaces a regular expression with a new one constructed from
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 576,605 ****
  
        // [7.8.3] assign
        /**
!        * @brief the real assignment operator.
         *
         * @param __rhs Another regular expression object.
         */
        basic_regex&
!       assign(const basic_regex& __rhs)
!       {
! 	basic_regex __tmp(__rhs);
! 	this->swap(__tmp);
! 	return *this;
!       }
  
        /**
!        * @brief The move-assignment operator.
         *
         * @param __rhs Another regular expression object.
         */
        basic_regex&
        assign(basic_regex&& __rhs) noexcept
!       {
! 	basic_regex __tmp(std::move(__rhs));
! 	this->swap(__tmp);
! 	return *this;
!       }
  
        /**
         * @brief Assigns a new regular expression to a regex object from a
--- 582,603 ----
  
        // [7.8.3] assign
        /**
!        * @brief Assigns one regular expression to another.
         *
         * @param __rhs Another regular expression object.
         */
        basic_regex&
!       assign(const basic_regex& __rhs) noexcept
!       { return *this = __rhs; }
  
        /**
!        * @brief Move-assigns one regular expression to another.
         *
         * @param __rhs Another regular expression object.
         */
        basic_regex&
        assign(basic_regex&& __rhs) noexcept
!       { return *this = std::move(__rhs); }
  
        /**
         * @brief Assigns a new regular expression to a regex object from a
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 616,622 ****
         */
        basic_regex&
        assign(const _Ch_type* __p, flag_type __flags = ECMAScript)
!       { return this->assign(string_type(__p), __flags); }
  
        /**
         * @brief Assigns a new regular expression to a regex object from a
--- 614,623 ----
         */
        basic_regex&
        assign(const _Ch_type* __p, flag_type __flags = ECMAScript)
!       {
! 	_M_compile(__p, __p + _Rx_traits::length(__p), __flags);
! 	return *this;
!       }
  
        /**
         * @brief Assigns a new regular expression to a regex object from a
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 635,641 ****
        // 3296. Inconsistent default argument for basic_regex<>::assign
        basic_regex&
        assign(const _Ch_type* __p, size_t __len, flag_type __flags = ECMAScript)
!       { return this->assign(string_type(__p, __len), __flags); }
  
        /**
         * @brief Assigns a new regular expression to a regex object from a
--- 636,645 ----
        // 3296. Inconsistent default argument for basic_regex<>::assign
        basic_regex&
        assign(const _Ch_type* __p, size_t __len, flag_type __flags = ECMAScript)
!       {
! 	_M_compile(__p, __p + __len, __flags);
! 	return *this;
!       }
  
        /**
         * @brief Assigns a new regular expression to a regex object from a
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 653,660 ****
  	assign(const basic_string<_Ch_type, _Ch_traits, _Alloc>& __s,
  	       flag_type __flags = ECMAScript)
  	{
! 	  return this->assign(basic_regex(__s.data(), __s.data() + __s.size(),
! 					  _M_loc, __flags));
  	}
  
        /**
--- 657,664 ----
  	assign(const basic_string<_Ch_type, _Ch_traits, _Alloc>& __s,
  	       flag_type __flags = ECMAScript)
  	{
! 	  _M_compile(__s.data(), __s.data() + __s.size(), __flags);
! 	  return *this;
  	}
  
        /**
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 674,680 ****
  	basic_regex&
  	assign(_InputIterator __first, _InputIterator __last,
  	       flag_type __flags = ECMAScript)
! 	{ return this->assign(string_type(__first, __last), __flags); }
  
        /**
         * @brief Assigns a new regular expression to a regex object.
--- 678,698 ----
  	basic_regex&
  	assign(_InputIterator __first, _InputIterator __last,
  	       flag_type __flags = ECMAScript)
! 	{
! #if __cplusplus >= 201703L
! 	  using _ValT = typename iterator_traits<_InputIterator>::value_type;
! 	  if constexpr (__detail::__is_contiguous_iter<_InputIterator>::value
! 			&& is_same_v<_ValT, value_type>)
! 	    {
! 	      const auto __len = __last - __first;
! 	      const _Ch_type* __p = std::__to_address(__first);
! 	      _M_compile(__p, __p + __len, __flags);
! 	    }
! 	  else
! #endif
! 	  this->assign(string_type(__first, __last), __flags);
! 	  return *this;
! 	}
  
        /**
         * @brief Assigns a new regular expression to a regex object.
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 689,695 ****
         */
        basic_regex&
        assign(initializer_list<_Ch_type> __l, flag_type __flags = ECMAScript)
!       { return this->assign(__l.begin(), __l.end(), __flags); }
  
        // [7.8.4] const operations
        /**
--- 707,716 ----
         */
        basic_regex&
        assign(initializer_list<_Ch_type> __l, flag_type __flags = ECMAScript)
!       {
! 	_M_compile(__l.begin(), __l.end(), __flags);
! 	return *this;
!       }
  
        // [7.8.4] const operations
        /**
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 697,703 ****
         * expression.
         */
        unsigned int
!       mark_count() const
        {
  	if (_M_automaton)
  	  return _M_automaton->_M_sub_count() - 1;
--- 718,724 ----
         * expression.
         */
        unsigned int
!       mark_count() const noexcept
        {
  	if (_M_automaton)
  	  return _M_automaton->_M_sub_count() - 1;
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 709,715 ****
         * or in the last call to assign().
         */
        flag_type
!       flags() const
        { return _M_flags; }
  
        // [7.8.5] locale
--- 730,736 ----
         * or in the last call to assign().
         */
        flag_type
!       flags() const noexcept
        { return _M_flags; }
  
        // [7.8.5] locale
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 731,737 ****
         *        object.
         */
        locale_type
!       getloc() const
        { return _M_loc; }
  
        // [7.8.6] swap
--- 752,758 ----
         *        object.
         */
        locale_type
!       getloc() const noexcept
        { return _M_loc; }
  
        // [7.8.6] swap
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 741,747 ****
         * @param __rhs Another regular expression object.
         */
        void
!       swap(basic_regex& __rhs)
        {
  	std::swap(_M_flags, __rhs._M_flags);
  	std::swap(_M_loc, __rhs._M_loc);
--- 762,768 ----
         * @param __rhs Another regular expression object.
         */
        void
!       swap(basic_regex& __rhs) noexcept
        {
  	std::swap(_M_flags, __rhs._M_flags);
  	std::swap(_M_loc, __rhs._M_loc);
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 757,769 ****
      private:
        typedef std::shared_ptr<const __detail::_NFA<_Rx_traits>> _AutomatonPtr;
  
!       template<typename _FwdIter>
! 	basic_regex(_FwdIter __first, _FwdIter __last, locale_type __loc,
! 		    flag_type __f)
! 	: _M_flags(__f), _M_loc(std::move(__loc)),
! 	_M_automaton(__detail::__compile_nfa<_Rx_traits>(
! 	  std::move(__first), std::move(__last), _M_loc, _M_flags))
! 	{ }
  
        template<typename _Bp, typename _Ap, typename _Cp, typename _Rp,
  	__detail::_RegexExecutorPolicy, bool>
--- 778,791 ----
      private:
        typedef std::shared_ptr<const __detail::_NFA<_Rx_traits>> _AutomatonPtr;
  
!       void
!       _M_compile(const _Ch_type* __first, const _Ch_type* __last,
! 		 flag_type __f)
!       {
! 	__detail::_Compiler<_Rx_traits> __c(__first, __last, _M_loc, __f);
! 	_M_automaton = __c._M_get_nfa();
! 	_M_flags = __f;
!       }
  
        template<typename _Bp, typename _Ap, typename _Cp, typename _Rp,
  	__detail::_RegexExecutorPolicy, bool>
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 848,854 ****
    template<typename _Ch_type, typename _Rx_traits>
      inline void
      swap(basic_regex<_Ch_type, _Rx_traits>& __lhs,
! 	 basic_regex<_Ch_type, _Rx_traits>& __rhs)
      { __lhs.swap(__rhs); }
  
  
--- 870,876 ----
    template<typename _Ch_type, typename _Rx_traits>
      inline void
      swap(basic_regex<_Ch_type, _Rx_traits>& __lhs,
! 	 basic_regex<_Ch_type, _Rx_traits>& __rhs) noexcept
      { __lhs.swap(__rhs); }
  
  
*************** _GLIBCXX_END_NAMESPACE_CXX11
*** 2459,2464 ****
--- 2481,2495 ----
  		 = regex_constants::match_default) = delete;
  
    // std [28.11.4] Function template regex_replace
+ 
+   template<typename _Out_iter, typename _Bi_iter,
+ 	   typename _Rx_traits, typename _Ch_type>
+     _Out_iter
+     __regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
+ 		    const basic_regex<_Ch_type, _Rx_traits>& __e,
+ 		    const _Ch_type* __fmt, size_t __len,
+ 		    regex_constants::match_flag_type __flags);
+ 
    /**
     * @brief Search for a regular expression within a range for multiple times,
     and replace the matched parts through filling a format string.
*************** _GLIBCXX_END_NAMESPACE_CXX11
*** 2482,2488 ****
  		  regex_constants::match_flag_type __flags
  		  = regex_constants::match_default)
      {
!       return regex_replace(__out, __first, __last, __e, __fmt.c_str(), __flags);
      }
  
    /**
--- 2513,2520 ----
  		  regex_constants::match_flag_type __flags
  		  = regex_constants::match_default)
      {
!       return std::__regex_replace(__out, __first, __last, __e, __fmt.c_str(),
! 				  __fmt.length(), __flags);
      }
  
    /**
*************** _GLIBCXX_END_NAMESPACE_CXX11
*** 2505,2511 ****
  		  const basic_regex<_Ch_type, _Rx_traits>& __e,
  		  const _Ch_type* __fmt,
  		  regex_constants::match_flag_type __flags
! 		  = regex_constants::match_default);
  
    /**
     * @brief Search for a regular expression within a string for multiple times,
--- 2537,2549 ----
  		  const basic_regex<_Ch_type, _Rx_traits>& __e,
  		  const _Ch_type* __fmt,
  		  regex_constants::match_flag_type __flags
! 		  = regex_constants::match_default)
!     {
!       return std::__regex_replace(__out, __first, __last, __e, __fmt,
! 				  char_traits<_Ch_type>::length(__fmt),
! 				  __flags);
!     }
! 
  
    /**
     * @brief Search for a regular expression within a string for multiple times,
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/regex.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex.tcc	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 461,470 ****
    template<typename _Out_iter, typename _Bi_iter,
  	   typename _Rx_traits, typename _Ch_type>
      _Out_iter
!     regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
! 		  const basic_regex<_Ch_type, _Rx_traits>& __e,
! 		  const _Ch_type* __fmt,
! 		  regex_constants::match_flag_type __flags)
      {
        typedef regex_iterator<_Bi_iter, _Ch_type, _Rx_traits> _IterT;
        _IterT __i(__first, __last, __e, __flags);
--- 461,470 ----
    template<typename _Out_iter, typename _Bi_iter,
  	   typename _Rx_traits, typename _Ch_type>
      _Out_iter
!     __regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
! 		    const basic_regex<_Ch_type, _Rx_traits>& __e,
! 		    const _Ch_type* __fmt, size_t __len,
! 		    regex_constants::match_flag_type __flags)
      {
        typedef regex_iterator<_Bi_iter, _Ch_type, _Rx_traits> _IterT;
        _IterT __i(__first, __last, __e, __flags);
*************** namespace __detail
*** 477,483 ****
        else
  	{
  	  sub_match<_Bi_iter> __last;
- 	  auto __len = char_traits<_Ch_type>::length(__fmt);
  	  for (; __i != __end; ++__i)
  	    {
  	      if (!(__flags & regex_constants::format_no_copy))
--- 477,482 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_automaton.h gcc-11.4.0/libstdc++-v3/include/bits/regex_automaton.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_automaton.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_automaton.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 95,107 ****
      };
  
    protected:
!     explicit _State_base(_Opcode __opcode)
      : _M_opcode(__opcode), _M_next(_S_invalid_state_id)
      { }
  
    public:
      bool
!     _M_has_alt()
      {
        return _M_opcode == _S_opcode_alternative
  	|| _M_opcode == _S_opcode_repeat
--- 95,107 ----
      };
  
    protected:
!     explicit _State_base(_Opcode __opcode) noexcept
      : _M_opcode(__opcode), _M_next(_S_invalid_state_id)
      { }
  
    public:
      bool
!     _M_has_alt() const noexcept
      {
        return _M_opcode == _S_opcode_alternative
  	|| _M_opcode == _S_opcode_repeat
*************** namespace __detail
*** 130,136 ****
  		    "std::function<bool(char)>");
  
        explicit
!       _State(_Opcode __opcode) : _State_base(__opcode)
        {
  	if (_M_opcode() == _S_opcode_match)
  	  new (this->_M_matcher_storage._M_addr()) _MatcherT();
--- 130,136 ----
  		    "std::function<bool(char)>");
  
        explicit
!       _State(_Opcode __opcode) noexcept : _State_base(__opcode)
        {
  	if (_M_opcode() == _S_opcode_match)
  	  new (this->_M_matcher_storage._M_addr()) _MatcherT();
*************** namespace __detail
*** 143,149 ****
  	    _MatcherT(__rhs._M_get_matcher());
        }
  
!       _State(_State&& __rhs) : _State_base(__rhs)
        {
  	if (__rhs._M_opcode() == _S_opcode_match)
  	  new (this->_M_matcher_storage._M_addr())
--- 143,149 ----
  	    _MatcherT(__rhs._M_get_matcher());
        }
  
!       _State(_State&& __rhs) noexcept : _State_base(__rhs)
        {
  	if (__rhs._M_opcode() == _S_opcode_match)
  	  new (this->_M_matcher_storage._M_addr())
*************** namespace __detail
*** 162,168 ****
        // Since correct ctor and dtor rely on _M_opcode, it's better not to
        // change it over time.
        _Opcode
!       _M_opcode() const
        { return _State_base::_M_opcode; }
  
        bool
--- 162,168 ----
        // Since correct ctor and dtor rely on _M_opcode, it's better not to
        // change it over time.
        _Opcode
!       _M_opcode() const noexcept
        { return _State_base::_M_opcode; }
  
        bool
*************** namespace __detail
*** 170,180 ****
        { return _M_get_matcher()(__char); }
  
        _MatcherT&
!       _M_get_matcher()
        { return *static_cast<_MatcherT*>(this->_M_matcher_storage._M_addr()); }
  
        const _MatcherT&
!       _M_get_matcher() const
        {
  	return *static_cast<const _MatcherT*>(
  	    this->_M_matcher_storage._M_addr());
--- 170,180 ----
        { return _M_get_matcher()(__char); }
  
        _MatcherT&
!       _M_get_matcher() noexcept
        { return *static_cast<_MatcherT*>(this->_M_matcher_storage._M_addr()); }
  
        const _MatcherT&
!       _M_get_matcher() const noexcept
        {
  	return *static_cast<const _MatcherT*>(
  	    this->_M_matcher_storage._M_addr());
*************** namespace __detail
*** 183,193 ****
  
    struct _NFA_base
    {
-     typedef size_t                              _SizeT;
      typedef regex_constants::syntax_option_type _FlagT;
  
      explicit
!     _NFA_base(_FlagT __f)
      : _M_flags(__f), _M_start_state(0), _M_subexpr_count(0),
      _M_has_backref(false)
      { }
--- 183,192 ----
  
    struct _NFA_base
    {
      typedef regex_constants::syntax_option_type _FlagT;
  
      explicit
!     _NFA_base(_FlagT __f) noexcept
      : _M_flags(__f), _M_start_state(0), _M_subexpr_count(0),
      _M_has_backref(false)
      { }
*************** namespace __detail
*** 199,219 ****
  
    public:
      _FlagT
!     _M_options() const
      { return _M_flags; }
  
      _StateIdT
!     _M_start() const
      { return _M_start_state; }
  
!     _SizeT
!     _M_sub_count() const
      { return _M_subexpr_count; }
  
      _GLIBCXX_STD_C::vector<size_t> _M_paren_stack;
      _FlagT                    _M_flags;
      _StateIdT                 _M_start_state;
!     _SizeT                    _M_subexpr_count;
      bool                      _M_has_backref;
    };
  
--- 198,218 ----
  
    public:
      _FlagT
!     _M_options() const noexcept
      { return _M_flags; }
  
      _StateIdT
!     _M_start() const noexcept
      { return _M_start_state; }
  
!     size_t
!     _M_sub_count() const noexcept
      { return _M_subexpr_count; }
  
      _GLIBCXX_STD_C::vector<size_t> _M_paren_stack;
      _FlagT                    _M_flags;
      _StateIdT                 _M_start_state;
!     size_t                    _M_subexpr_count;
      bool                      _M_has_backref;
    };
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.h gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 58,72 ****
      {
      public:
        typedef typename _TraitsT::char_type        _CharT;
-       typedef const _CharT*                       _IterT;
        typedef _NFA<_TraitsT>              	  _RegexT;
        typedef regex_constants::syntax_option_type _FlagT;
  
!       _Compiler(_IterT __b, _IterT __e,
  		const typename _TraitsT::locale_type& __traits, _FlagT __flags);
  
        shared_ptr<const _RegexT>
!       _M_get_nfa()
        { return std::move(_M_nfa); }
  
      private:
--- 58,71 ----
      {
      public:
        typedef typename _TraitsT::char_type        _CharT;
        typedef _NFA<_TraitsT>              	  _RegexT;
        typedef regex_constants::syntax_option_type _FlagT;
  
!       _Compiler(const _CharT* __b, const _CharT* __e,
  		const typename _TraitsT::locale_type& __traits, _FlagT __flags);
  
        shared_ptr<const _RegexT>
!       _M_get_nfa() noexcept
        { return std::move(_M_nfa); }
  
      private:
*************** namespace __detail
*** 122,134 ****
  	void
  	_M_insert_bracket_matcher(bool __neg);
  
!       // Returns true if successfully matched one term and should continue.
        // Returns false if the compiler should move on.
        template<bool __icase, bool __collate>
  	bool
! 	_M_expression_term(pair<bool, _CharT>& __last_char,
! 			   _BracketMatcher<_TraitsT, __icase, __collate>&
! 			   __matcher);
  
        int
        _M_cur_int_value(int __radix);
--- 121,165 ----
  	void
  	_M_insert_bracket_matcher(bool __neg);
  
!       // Cache of the last atom seen in a bracketed range expression.
!       struct _BracketState
!       {
! 	enum class _Type : char { _None, _Char, _Class } _M_type = _Type::_None;
! 	_CharT _M_char;
! 
! 	void
! 	set(_CharT __c) noexcept { _M_type = _Type::_Char; _M_char = __c; }
! 
! 	_GLIBCXX_NODISCARD _CharT
! 	get() const noexcept { return _M_char; }
! 
! 	void
! 	reset(_Type __t = _Type::_None) noexcept { _M_type = __t; }
! 
! 	explicit operator bool() const noexcept
! 	{ return _M_type != _Type::_None; }
! 
! 	// Previous token was a single character.
! 	_GLIBCXX_NODISCARD bool
! 	_M_is_char() const noexcept { return _M_type == _Type::_Char; }
! 
! 	// Previous token was a character class, equivalent class,
! 	// collating symbol etc.
! 	_GLIBCXX_NODISCARD bool
! 	_M_is_class() const noexcept { return _M_type == _Type::_Class; }
!       };
! 
!       template<bool __icase, bool __collate>
! 	using _BracketMatcher
! 	  = std::__detail::_BracketMatcher<_TraitsT, __icase, __collate>;
! 
!       // Returns true if successfully parsed one term and should continue
!       // compiling a bracket expression.
        // Returns false if the compiler should move on.
        template<bool __icase, bool __collate>
  	bool
! 	_M_expression_term(_BracketState& __last_char,
! 			   _BracketMatcher<__icase, __collate>& __matcher);
  
        int
        _M_cur_int_value(int __radix);
*************** namespace __detail
*** 144,149 ****
--- 175,200 ----
  	return ret;
        }
  
+       static _FlagT
+       _S_validate(_FlagT __f)
+       {
+ 	using namespace regex_constants;
+ 	switch (__f & (ECMAScript|basic|extended|awk|grep|egrep))
+ 	  {
+ 	  case ECMAScript:
+ 	  case basic:
+ 	  case extended:
+ 	  case awk:
+ 	  case grep:
+ 	  case egrep:
+ 	    return __f;
+ 	  case _FlagT(0):
+ 	    return __f | ECMAScript;
+ 	  default:
+ 	    std::__throw_regex_error(_S_grammar, "conflicting grammar options");
+ 	  }
+       }
+ 
        _FlagT              _M_flags;
        _ScannerT           _M_scanner;
        shared_ptr<_RegexT> _M_nfa;
*************** namespace __detail
*** 153,199 ****
        const _CtypeT&      _M_ctype;
      };
  
-   template<typename _Tp>
-     struct __is_contiguous_iter : is_pointer<_Tp>::type { };
- 
-   template<typename _Tp, typename _Cont>
-     struct
-     __is_contiguous_iter<__gnu_cxx::__normal_iterator<_Tp*, _Cont>>
-     : true_type { };
- 
-   template<typename _Iter, typename _TraitsT>
-     using __enable_if_contiguous_iter
-       = __enable_if_t< __is_contiguous_iter<_Iter>::value,
-                        std::shared_ptr<const _NFA<_TraitsT>> >;
- 
-   template<typename _Iter, typename _TraitsT>
-     using __disable_if_contiguous_iter
-       = __enable_if_t< !__is_contiguous_iter<_Iter>::value,
-                        std::shared_ptr<const _NFA<_TraitsT>> >;
- 
-   template<typename _TraitsT, typename _FwdIter>
-     inline __enable_if_contiguous_iter<_FwdIter, _TraitsT>
-     __compile_nfa(_FwdIter __first, _FwdIter __last,
- 		  const typename _TraitsT::locale_type& __loc,
- 		  regex_constants::syntax_option_type __flags)
-     {
-       size_t __len = __last - __first;
-       const auto* __cfirst = __len ? std::__addressof(*__first) : nullptr;
-       using _Cmplr = _Compiler<_TraitsT>;
-       return _Cmplr(__cfirst, __cfirst + __len, __loc, __flags)._M_get_nfa();
-     }
- 
-   template<typename _TraitsT, typename _FwdIter>
-     inline __disable_if_contiguous_iter<_FwdIter, _TraitsT>
-     __compile_nfa(_FwdIter __first, _FwdIter __last,
- 		  const typename _TraitsT::locale_type& __loc,
- 		  regex_constants::syntax_option_type __flags)
-     {
-       const basic_string<typename _TraitsT::char_type> __str(__first, __last);
-       return __compile_nfa<_TraitsT>(__str.data(), __str.data() + __str.size(),
- 				     __loc, __flags);
-     }
- 
    // [28.13.14]
    template<typename _TraitsT, bool __icase, bool __collate>
      class _RegexTranslatorBase
--- 204,209 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.tcc	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 63,79 ****
  {
    template<typename _TraitsT>
      _Compiler<_TraitsT>::
!     _Compiler(_IterT __b, _IterT __e,
  	      const typename _TraitsT::locale_type& __loc, _FlagT __flags)
!     : _M_flags((__flags
! 		& (regex_constants::ECMAScript
! 		   | regex_constants::basic
! 		   | regex_constants::extended
! 		   | regex_constants::grep
! 		   | regex_constants::egrep
! 		   | regex_constants::awk))
! 	       ? __flags
! 	       : __flags | regex_constants::ECMAScript),
        _M_scanner(__b, __e, _M_flags, __loc),
        _M_nfa(make_shared<_RegexT>(__loc, _M_flags)),
        _M_traits(_M_nfa->_M_traits),
--- 63,71 ----
  {
    template<typename _TraitsT>
      _Compiler<_TraitsT>::
!     _Compiler(const _CharT* __b, const _CharT* __e,
  	      const typename _TraitsT::locale_type& __loc, _FlagT __flags)
!     : _M_flags(_S_validate(__flags)),
        _M_scanner(__b, __e, _M_flags, __loc),
        _M_nfa(make_shared<_RegexT>(__loc, _M_flags)),
        _M_traits(_M_nfa->_M_traits),
*************** namespace __detail
*** 140,146 ****
  	return true;
        if (this->_M_atom())
  	{
! 	  while (this->_M_quantifier());
  	  return true;
  	}
        return false;
--- 132,139 ----
  	return true;
        if (this->_M_atom())
  	{
! 	  while (this->_M_quantifier())
! 	    ;
  	  return true;
  	}
        return false;
*************** namespace __detail
*** 410,416 ****
      _M_insert_character_class_matcher()
      {
        __glibcxx_assert(_M_value.size() == 1);
!       _BracketMatcher<_TraitsT, __icase, __collate> __matcher
  	(_M_ctype.is(_CtypeT::upper, _M_value[0]), _M_traits);
        __matcher._M_add_character_class(_M_value, false);
        __matcher._M_ready();
--- 403,409 ----
      _M_insert_character_class_matcher()
      {
        __glibcxx_assert(_M_value.size() == 1);
!       _BracketMatcher<__icase, __collate> __matcher
  	(_M_ctype.is(_CtypeT::upper, _M_value[0]), _M_traits);
        __matcher._M_add_character_class(_M_value, false);
        __matcher._M_ready();
*************** namespace __detail
*** 424,448 ****
      _Compiler<_TraitsT>::
      _M_insert_bracket_matcher(bool __neg)
      {
!       _BracketMatcher<_TraitsT, __icase, __collate> __matcher(__neg, _M_traits);
!       pair<bool, _CharT> __last_char; // Optional<_CharT>
!       __last_char.first = false;
!       if (!(_M_flags & regex_constants::ECMAScript))
! 	{
! 	  if (_M_try_char())
! 	    {
! 	      __last_char.first = true;
! 	      __last_char.second = _M_value[0];
! 	    }
! 	  else if (_M_match_token(_ScannerT::_S_token_bracket_dash))
! 	    {
! 	      __last_char.first = true;
! 	      __last_char.second = '-';
! 	    }
! 	}
!       while (_M_expression_term(__last_char, __matcher));
!       if (__last_char.first)
! 	__matcher._M_add_char(__last_char.second);
        __matcher._M_ready();
        _M_stack.push(_StateSeqT(
  		      *_M_nfa,
--- 417,433 ----
      _Compiler<_TraitsT>::
      _M_insert_bracket_matcher(bool __neg)
      {
!       _BracketMatcher<__icase, __collate> __matcher(__neg, _M_traits);
!       _BracketState __last_char;
!       if (_M_try_char())
! 	__last_char.set(_M_value[0]);
!       else if (_M_match_token(_ScannerT::_S_token_bracket_dash))
! 	// Dash as first character is a normal character.
! 	__last_char.set('-');
!       while (_M_expression_term(__last_char, __matcher))
! 	;
!       if (__last_char._M_is_char())
! 	__matcher._M_add_char(__last_char.get());
        __matcher._M_ready();
        _M_stack.push(_StateSeqT(
  		      *_M_nfa,
*************** namespace __detail
*** 453,479 ****
    template<bool __icase, bool __collate>
      bool
      _Compiler<_TraitsT>::
!     _M_expression_term(pair<bool, _CharT>& __last_char,
! 		       _BracketMatcher<_TraitsT, __icase, __collate>& __matcher)
      {
        if (_M_match_token(_ScannerT::_S_token_bracket_end))
  	return false;
  
        const auto __push_char = [&](_CharT __ch)
        {
! 	if (__last_char.first)
! 	  __matcher._M_add_char(__last_char.second);
! 	else
! 	  __last_char.first = true;
! 	__last_char.second = __ch;
        };
!       const auto __flush = [&]
        {
! 	if (__last_char.first)
! 	  {
! 	    __matcher._M_add_char(__last_char.second);
! 	    __last_char.first = false;
! 	  }
        };
  
        if (_M_match_token(_ScannerT::_S_token_collsymbol))
--- 438,464 ----
    template<bool __icase, bool __collate>
      bool
      _Compiler<_TraitsT>::
!     _M_expression_term(_BracketState& __last_char,
! 		       _BracketMatcher<__icase, __collate>& __matcher)
      {
        if (_M_match_token(_ScannerT::_S_token_bracket_end))
  	return false;
  
+       // Add any previously cached char into the matcher and update cache.
        const auto __push_char = [&](_CharT __ch)
        {
! 	if (__last_char._M_is_char())
! 	  __matcher._M_add_char(__last_char.get());
! 	__last_char.set(__ch);
        };
!       // Add any previously cached char into the matcher and update cache.
!       const auto __push_class = [&]
        {
!         if (__last_char._M_is_char())
! 	  __matcher._M_add_char(__last_char.get());
! 	// We don't cache anything here, just record that the last thing
! 	// processed was a character class (or similar).
! 	__last_char.reset(_BracketState::_Type::_Class);
        };
  
        if (_M_match_token(_ScannerT::_S_token_collsymbol))
*************** namespace __detail
*** 482,497 ****
  	  if (__symbol.size() == 1)
  	    __push_char(__symbol[0]);
  	  else
! 	    __flush();
  	}
        else if (_M_match_token(_ScannerT::_S_token_equiv_class_name))
  	{
! 	  __flush();
  	  __matcher._M_add_equivalence_class(_M_value);
  	}
        else if (_M_match_token(_ScannerT::_S_token_char_class_name))
  	{
! 	  __flush();
  	  __matcher._M_add_character_class(_M_value, false);
  	}
        else if (_M_try_char())
--- 467,482 ----
  	  if (__symbol.size() == 1)
  	    __push_char(__symbol[0]);
  	  else
! 	    __push_class();
  	}
        else if (_M_match_token(_ScannerT::_S_token_equiv_class_name))
  	{
! 	  __push_class();
  	  __matcher._M_add_equivalence_class(_M_value);
  	}
        else if (_M_match_token(_ScannerT::_S_token_char_class_name))
  	{
! 	  __push_class();
  	  __matcher._M_add_character_class(_M_value, false);
  	}
        else if (_M_try_char())
*************** namespace __detail
*** 508,556 ****
        // It turns out that no one reads BNFs ;)
        else if (_M_match_token(_ScannerT::_S_token_bracket_dash))
  	{
! 	  if (!__last_char.first)
  	    {
! 	      if (!(_M_flags & regex_constants::ECMAScript))
! 		{
! 		  if (_M_match_token(_ScannerT::_S_token_bracket_end))
! 		    {
! 		      __push_char('-');
! 		      return false;
! 		    }
! 		  __throw_regex_error(
! 		    regex_constants::error_range,
! 		    "Unexpected dash in bracket expression. For POSIX syntax, "
! 		    "a dash is not treated literally only when it is at "
! 		    "beginning or end.");
! 		}
  	      __push_char('-');
  	    }
! 	  else
  	    {
  	      if (_M_try_char())
  		{
! 		  __matcher._M_make_range(__last_char.second, _M_value[0]);
! 		  __last_char.first = false;
  		}
  	      else if (_M_match_token(_ScannerT::_S_token_bracket_dash))
  		{
! 		  __matcher._M_make_range(__last_char.second, '-');
! 		  __last_char.first = false;
  		}
  	      else
! 		{
! 		  if (_M_scanner._M_get_token()
! 		      != _ScannerT::_S_token_bracket_end)
! 		    __throw_regex_error(
! 		      regex_constants::error_range,
! 		      "Character is expected after a dash.");
! 		  __push_char('-');
! 		}
  	    }
  	}
        else if (_M_match_token(_ScannerT::_S_token_quoted_class))
  	{
! 	  __flush();
  	  __matcher._M_add_character_class(_M_value,
  					   _M_ctype.is(_CtypeT::upper,
  						       _M_value[0]));
--- 493,542 ----
        // It turns out that no one reads BNFs ;)
        else if (_M_match_token(_ScannerT::_S_token_bracket_dash))
  	{
! 	  if (_M_match_token(_ScannerT::_S_token_bracket_end))
  	    {
! 	      // For "-]" the dash is a literal character.
  	      __push_char('-');
+ 	      return false;
  	    }
! 	  else if (__last_char._M_is_class())
! 	    {
! 	      // "\\w-" is invalid, start of range must be a single char.
! 	      __throw_regex_error(regex_constants::error_range,
! 		    "Invalid start of range in bracket expression.");
! 	    }
! 	  else if (__last_char._M_is_char())
  	    {
  	      if (_M_try_char())
  		{
! 		  // "x-y"
! 		  __matcher._M_make_range(__last_char.get(), _M_value[0]);
! 		  __last_char.reset();
  		}
  	      else if (_M_match_token(_ScannerT::_S_token_bracket_dash))
  		{
! 		  // "x--"
! 		  __matcher._M_make_range(__last_char.get(), '-');
! 		  __last_char.reset();
  		}
  	      else
! 		__throw_regex_error(regex_constants::error_range,
! 		      "Invalid end of range in bracket expression.");
  	    }
+ 	  else if (_M_flags & regex_constants::ECMAScript)
+ 	    {
+ 	      // A dash that is not part of an existing range. Might be the
+ 	      // start of a new range, or might just be a literal '-' char.
+ 	      // Only ECMAScript allows that in the middle of a bracket expr.
+ 	      __push_char('-');
+ 	    }
+ 	  else
+ 	    __throw_regex_error(regex_constants::error_range,
+ 				"Invalid dash in bracket expression.");
  	}
        else if (_M_match_token(_ScannerT::_S_token_quoted_class))
  	{
! 	  __push_class();
  	  __matcher._M_add_character_class(_M_value,
  					   _M_ctype.is(_CtypeT::upper,
  						       _M_value[0]));
*************** namespace __detail
*** 586,594 ****
    template<typename _TraitsT>
      bool
      _Compiler<_TraitsT>::
!     _M_match_token(_TokenT token)
      {
!       if (token == _M_scanner._M_get_token())
  	{
  	  _M_value = _M_scanner._M_get_value();
  	  _M_scanner._M_advance();
--- 572,580 ----
    template<typename _TraitsT>
      bool
      _Compiler<_TraitsT>::
!     _M_match_token(_TokenT __token)
      {
!       if (__token == _M_scanner._M_get_token())
  	{
  	  _M_value = _M_scanner._M_get_value();
  	  _M_scanner._M_advance();
*************** namespace __detail
*** 602,611 ****
      _Compiler<_TraitsT>::
      _M_cur_int_value(int __radix)
      {
!       long __v = 0;
!       for (typename _StringT::size_type __i = 0;
! 	   __i < _M_value.length(); ++__i)
! 	__v =__v * __radix + _M_traits.value(_M_value[__i], __radix);
        return __v;
      }
  
--- 588,599 ----
      _Compiler<_TraitsT>::
      _M_cur_int_value(int __radix)
      {
!       int __v = 0;
!       for (_CharT __c : _M_value)
! 	if (__builtin_mul_overflow(__v, __radix, &__v)
! 	    || __builtin_add_overflow(__v, _M_traits.value(__c, __radix), &__v))
! 	    std::__throw_regex_error(regex_constants::error_backref,
! 				     "invalid back reference");
        return __v;
      }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_constants.h gcc-11.4.0/libstdc++-v3/include/bits/regex_constants.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_constants.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_constants.h	Mon May 29 08:46:33 2023
*************** namespace regex_constants
*** 64,70 ****
      _S_grep,
      _S_egrep,
      _S_polynomial,
!     _S_syntax_last
    };
  
    /**
--- 64,70 ----
      _S_grep,
      _S_egrep,
      _S_polynomial,
!     _S_multiline
    };
  
    /**
*************** namespace regex_constants
*** 170,175 ****
--- 170,193 ----
    _GLIBCXX17_INLINE constexpr syntax_option_type egrep =
      static_cast<syntax_option_type>(1 << _S_egrep);
  
+ #if __cplusplus >= 201703L || !defined __STRICT_ANSI__
+   // _GLIBCXX_RESOLVE_LIB_DEFECTS
+   // 2503. multiline option should be added to syntax_option_type
+   /**
+    * Specifies that the `^` anchor matches at the beginning of a line,
+    * and the `$` anchor matches at the end of a line, not only at the
+    * beginning/end of the input.
+    * Valid for the ECMAScript syntax, ignored otherwise.
+    * @since C++17
+    */
+   _GLIBCXX17_INLINE constexpr syntax_option_type multiline =
+     static_cast<syntax_option_type>(1 << _S_multiline);
+ #endif
+ 
+   /// Extension: Equivalent to regex_constants::multiline for C++11 and C++14.
+   _GLIBCXX17_INLINE constexpr syntax_option_type __multiline =
+     static_cast<syntax_option_type>(1 << _S_multiline);
+ 
    /**
     * Extension: Ensure both space complexity of compiled regex and
     * time complexity execution are not exponential.
*************** namespace regex_constants
*** 310,318 ****
      static_cast<match_flag_type>(1 << _S_continuous);
  
    /**
!    * --first is a valid iterator position.  When this flag is set then the
!    * flags match_not_bol and match_not_bow are ignored by the regular
!    * expression algorithms 28.11 and iterators 28.12.
     */
    _GLIBCXX17_INLINE constexpr match_flag_type match_prev_avail =
      static_cast<match_flag_type>(1 << _S_prev_avail);
--- 328,337 ----
      static_cast<match_flag_type>(1 << _S_continuous);
  
    /**
!    * `--first` is a valid iterator position.  When this flag is set then the
!    * flags `match_not_bol` and `match_not_bow` are ignored by the algorithms
!    * `regex_match`, `regex_search`, and `regex_replace`, and by the iterators
!    * `regex_iterator` and `regex_token_iterator`.
     */
    _GLIBCXX17_INLINE constexpr match_flag_type match_prev_avail =
      static_cast<match_flag_type>(1 << _S_prev_avail);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_error.h gcc-11.4.0/libstdc++-v3/include/bits/regex_error.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_error.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_error.h	Mon May 29 08:46:33 2023
*************** namespace regex_constants
*** 61,66 ****
--- 61,68 ----
        _S_error_badrepeat,
        _S_error_complexity,
        _S_error_stack,
+       _S_null,
+       _S_grammar
      };
  
    /** The expression contained an invalid collating element name. */
*************** namespace regex_constants
*** 150,156 ****
       * @returns the regex error code.
       */
      regex_constants::error_type
!     code() const
      { return _M_code; }
  
    private:
--- 152,158 ----
       * @returns the regex error code.
       */
      regex_constants::error_type
!     code() const noexcept
      { return _M_code; }
  
    private:
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.h gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 78,89 ****
        _M_results(__results),
        _M_rep_count(_M_nfa.size()),
        _M_states(_M_nfa._M_start(), _M_nfa.size()),
!       _M_flags((__flags & regex_constants::match_prev_avail)
! 	       ? (__flags
! 		  & ~regex_constants::match_not_bol
! 		  & ~regex_constants::match_not_bow)
! 	       : __flags)
!       { }
  
        // Set matched when string exactly matches the pattern.
        bool
--- 78,89 ----
        _M_results(__results),
        _M_rep_count(_M_nfa.size()),
        _M_states(_M_nfa._M_start(), _M_nfa.size()),
!       _M_flags(__flags)
!       {
! 	using namespace regex_constants;
! 	if (__flags & match_prev_avail) // ignore not_bol and not_bow
! 	  _M_flags &= ~(match_not_bol | match_not_bow);
!       }
  
        // Set matched when string exactly matches the pattern.
        bool
*************** namespace __detail
*** 165,180 ****
        bool
        _M_at_begin() const
        {
! 	return _M_current == _M_begin
! 	  && !(_M_flags & (regex_constants::match_not_bol
! 			   | regex_constants::match_prev_avail));
        }
  
        bool
        _M_at_end() const
        {
! 	return _M_current == _M_end
! 	  && !(_M_flags & regex_constants::match_not_eol);
        }
  
        bool
--- 165,203 ----
        bool
        _M_at_begin() const
        {
! 	if (_M_current == _M_begin)
! 	  {
! 	    // match_not_bol means ^ does not match [_M_begin,_M_begin)
! 	    if (_M_flags & regex_constants::match_not_bol)
! 	      return false;
! 	    // match_prev_avail means _M_begin is not the start of the input.
! 	    if (_M_flags & regex_constants::match_prev_avail)
! 	      {
! 		// For ECMAScript multiline matches, check if the previous
! 		// character is a line terminator.
! 		if (_M_match_multiline())
! 		  return _M_is_line_terminator(*std::prev(_M_current));
! 		else
! 		  return false;
! 	      }
! 	    else // ^ matches at _M_begin
! 	      return true;
! 	  }
! 	else if (_M_match_multiline())
! 	  return _M_is_line_terminator(*std::prev(_M_current));
! 	else
! 	  return false;
        }
  
        bool
        _M_at_end() const
        {
! 	if (_M_current == _M_end)
! 	  return !(_M_flags & regex_constants::match_not_eol);
! 	else if (_M_match_multiline())
! 	  return _M_is_line_terminator(*_M_current);
! 	else
! 	  return false;
        }
  
        bool
*************** namespace __detail
*** 183,188 ****
--- 206,236 ----
        bool
        _M_lookahead(_StateIdT __next);
  
+       bool
+       _M_is_line_terminator(_CharT __c) const
+       {
+ 	const auto& __traits = _M_re._M_automaton->_M_traits;
+ 	const auto& __ct = use_facet<ctype<_CharT>>(__traits.getloc());
+ 	const char __n{ __ct.narrow(__c, ' ') };
+ 	if (__n == '\n')
+ 	  return true;
+ 	if (_M_re._M_automaton->_M_options() & regex_constants::ECMAScript)
+ 	  {
+ 	    if (__n == '\r')
+ 	      return true;
+ 	    // FIXME: U+2028 (line separator) and U+2029 (paragraph separator)
+ 	  }
+ 	return false;
+       }
+ 
+       bool
+       _M_match_multiline() const noexcept
+       {
+ 	constexpr auto __m
+ 	  = regex_constants::ECMAScript | regex_constants::__multiline;
+ 	return (_M_re._M_automaton->_M_options() & __m) == __m;
+       }
+ 
         // Holds additional information used in BFS-mode.
        template<typename _SearchMode, typename _ResultsVec>
  	struct _State_info;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.tcc	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 423,429 ****
    template<typename _BiIter, typename _Alloc, typename _TraitsT,
  	   bool __dfs_mode>
      void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_accept(_Match_mode __match_mode, _StateIdT __i)
      {
        if (__dfs_mode)
  	{
--- 423,429 ----
    template<typename _BiIter, typename _Alloc, typename _TraitsT,
  	   bool __dfs_mode>
      void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_accept(_Match_mode __match_mode, _StateIdT)
      {
        if (__dfs_mode)
  	{
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.h gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.h
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 211,233 ****
      : public _ScannerBase
      {
      public:
-       typedef const _CharT*                                       _IterT;
        typedef std::basic_string<_CharT>                           _StringT;
        typedef regex_constants::syntax_option_type                 _FlagT;
        typedef const std::ctype<_CharT>                            _CtypeT;
  
!       _Scanner(_IterT __begin, _IterT __end,
  	       _FlagT __flags, std::locale __loc);
  
        void
        _M_advance();
  
        _TokenT
!       _M_get_token() const
        { return _M_token; }
  
        const _StringT&
!       _M_get_value() const
        { return _M_value; }
  
  #ifdef _GLIBCXX_DEBUG
--- 211,232 ----
      : public _ScannerBase
      {
      public:
        typedef std::basic_string<_CharT>                           _StringT;
        typedef regex_constants::syntax_option_type                 _FlagT;
        typedef const std::ctype<_CharT>                            _CtypeT;
  
!       _Scanner(const _CharT* __begin, const _CharT* __end,
  	       _FlagT __flags, std::locale __loc);
  
        void
        _M_advance();
  
        _TokenT
!       _M_get_token() const noexcept
        { return _M_token; }
  
        const _StringT&
!       _M_get_value() const noexcept
        { return _M_value; }
  
  #ifdef _GLIBCXX_DEBUG
*************** namespace __detail
*** 257,264 ****
        void
        _M_eat_class(char);
  
!       _IterT                        _M_current;
!       _IterT                        _M_end;
        _CtypeT&                      _M_ctype;
        _StringT                      _M_value;
        void (_Scanner::* _M_eat_escape)();
--- 256,263 ----
        void
        _M_eat_class(char);
  
!       const _CharT*                 _M_current;
!       const _CharT*                 _M_end;
        _CtypeT&                      _M_ctype;
        _StringT                      _M_value;
        void (_Scanner::* _M_eat_escape)();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.tcc
*** gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.tcc	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.tcc	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 54,61 ****
  {
    template<typename _CharT>
      _Scanner<_CharT>::
!     _Scanner(typename _Scanner::_IterT __begin,
! 	     typename _Scanner::_IterT __end,
  	     _FlagT __flags, std::locale __loc)
      : _ScannerBase(__flags),
        _M_current(__begin), _M_end(__end),
--- 54,60 ----
  {
    template<typename _CharT>
      _Scanner<_CharT>::
!     _Scanner(const _CharT* __begin, const _CharT* __end,
  	     _FlagT __flags, std::locale __loc)
      : _ScannerBase(__flags),
        _M_current(__begin), _M_end(__end),
*************** namespace __detail
*** 176,181 ****
--- 175,190 ----
  	  _M_state = _S_state_in_brace;
  	  _M_token = _S_token_interval_begin;
  	}
+       else if (__builtin_expect(__c == _CharT(0), false))
+ 	{
+ 	  if (!_M_is_ecma())
+ 	    {
+ 	      __throw_regex_error(regex_constants::_S_null,
+ 		  "Unexpected null character in regular expression");
+ 	    }
+ 	  _M_token = _S_token_ord_char;
+ 	  _M_value.assign(1, __c);
+ 	}
        else if (__c != ']' && __c != '}')
  	{
  	  auto __it = _M_token_tbl;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/shared_ptr_base.h gcc-11.4.0/libstdc++-v3/include/bits/shared_ptr_base.h
*** gcc-11.3.0/libstdc++-v3/include/bits/shared_ptr_base.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/shared_ptr_base.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1666,1674 ****
        __weak_ptr&
        operator=(__weak_ptr&& __r) noexcept
        {
! 	_M_ptr = __r._M_ptr;
! 	_M_refcount = std::move(__r._M_refcount);
! 	__r._M_ptr = nullptr;
  	return *this;
        }
  
--- 1666,1672 ----
        __weak_ptr&
        operator=(__weak_ptr&& __r) noexcept
        {
! 	__weak_ptr(std::move(__r)).swap(*this);
  	return *this;
        }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/slice_array.h gcc-11.4.0/libstdc++-v3/include/bits/slice_array.h
*** gcc-11.3.0/libstdc++-v3/include/bits/slice_array.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/slice_array.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 245,250 ****
--- 245,251 ----
      slice_array<_Tp>::operator=(const _Expr<_Dom,_Tp>& __e) const
      { std::__valarray_copy(__e, _M_sz, _M_array, _M_stride); }
  
+   /// @cond undocumented
  #undef _DEFINE_VALARRAY_OPERATOR
  #define _DEFINE_VALARRAY_OPERATOR(_Op,_Name)				\
    template<typename _Tp>						\
*************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le
*** 275,280 ****
--- 276,282 ----
  _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
  
  #undef _DEFINE_VALARRAY_OPERATOR
+   /// @endcond
  
    /// @} group numeric_arrays
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/std_thread.h gcc-11.4.0/libstdc++-v3/include/bits/std_thread.h
*** gcc-11.3.0/libstdc++-v3/include/bits/std_thread.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/std_thread.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 204,210 ****
  
  	template<typename... _Args>
  	  _State_impl(_Args&&... __args)
! 	  : _M_func{{std::forward<_Args>(__args)...}}
  	  { }
  
  	void
--- 204,210 ----
  
  	template<typename... _Args>
  	  _State_impl(_Args&&... __args)
! 	  : _M_func(std::forward<_Args>(__args)...)
  	  { }
  
  	void
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 238,243 ****
--- 238,249 ----
      template<typename _Tuple>
        struct _Invoker
        {
+ 	template<typename... _Args>
+ 	  explicit
+ 	  _Invoker(_Args&&... __args)
+ 	  : _M_t(std::forward<_Args>(__args)...)
+ 	  { }
+ 
  	_Tuple _M_t;
  
  	template<typename>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_construct.h gcc-11.4.0/libstdc++-v3/include/bits/stl_construct.h
*** gcc-11.3.0/libstdc++-v3/include/bits/stl_construct.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/stl_construct.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 116,122 ****
  	  return;
  	}
  #endif
!       ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
      }
  #else
    template<typename _T1, typename _T2>
--- 116,122 ----
  	  return;
  	}
  #endif
!       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      }
  #else
    template<typename _T1, typename _T2>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 132,138 ****
    template<typename _T1>
      inline void
      _Construct_novalue(_T1* __p)
!     { ::new(static_cast<void*>(__p)) _T1; }
  
    template<typename _ForwardIterator>
      _GLIBCXX20_CONSTEXPR void
--- 132,138 ----
    template<typename _T1>
      inline void
      _Construct_novalue(_T1* __p)
!     { ::new((void*)__p) _T1; }
  
    template<typename _ForwardIterator>
      _GLIBCXX20_CONSTEXPR void
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_deque.h gcc-11.4.0/libstdc++-v3/include/bits/stl_deque.h
*** gcc-11.3.0/libstdc++-v3/include/bits/stl_deque.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/stl_deque.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 353,359 ****
        operator-(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
        {
  	return difference_type(_S_buffer_size())
! 	  * (__x._M_node - __y._M_node - int(__x._M_node != 0))
  	  + (__x._M_cur - __x._M_first)
  	  + (__y._M_last - __y._M_cur);
        }
--- 353,359 ----
        operator-(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT
        {
  	return difference_type(_S_buffer_size())
! 	  * (__x._M_node - __y._M_node - bool(__x._M_node))
  	  + (__x._M_cur - __x._M_first)
  	  + (__y._M_last - __y._M_cur);
        }
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 365,374 ****
        template<typename _RefR, typename _PtrR>
  	friend difference_type
  	operator-(const _Self& __x,
! 		  const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) _GLIBCXX_NOEXCEPT
  	{
  	  return difference_type(_S_buffer_size())
! 	    * (__x._M_node - __y._M_node - int(__x._M_node != 0))
  	    + (__x._M_cur - __x._M_first)
  	    + (__y._M_last - __y._M_cur);
  	}
--- 365,375 ----
        template<typename _RefR, typename _PtrR>
  	friend difference_type
  	operator-(const _Self& __x,
! 		  const _Deque_iterator<_Tp, _RefR, _PtrR>& __y)
! 	_GLIBCXX_NOEXCEPT
  	{
  	  return difference_type(_S_buffer_size())
! 	    * (__x._M_node - __y._M_node - bool(__x._M_node))
  	    + (__x._M_cur - __x._M_first)
  	    + (__y._M_last - __y._M_cur);
  	}
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_iterator.h gcc-11.4.0/libstdc++-v3/include/bits/stl_iterator.h
*** gcc-11.3.0/libstdc++-v3/include/bits/stl_iterator.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/stl_iterator.h	Mon May 29 08:46:33 2023
***************
*** 77,87 ****
  # define __cpp_lib_array_constexpr 201803L
  #endif
  
! #if __cplusplus > 201703L
  # include <compare>
  # include <new>
  # include <bits/exception_defines.h>
  # include <bits/iterator_concepts.h>
  #endif
  
  namespace std _GLIBCXX_VISIBILITY(default)
--- 77,88 ----
  # define __cpp_lib_array_constexpr 201803L
  #endif
  
! #if __cplusplus >= 202002L
  # include <compare>
  # include <new>
  # include <bits/exception_defines.h>
  # include <bits/iterator_concepts.h>
+ # include <bits/stl_construct.h>
  #endif
  
  namespace std _GLIBCXX_VISIBILITY(default)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 537,542 ****
--- 538,559 ----
      operator<=>(const reverse_iterator<_IteratorL>& __x,
  		const reverse_iterator<_IteratorR>& __y)
      { return __y.base() <=> __x.base(); }
+ 
+   // Additional, non-standard overloads to avoid ambiguities with greedy,
+   // unconstrained overloads in associated namespaces.
+ 
+   template<typename _Iterator>
+     constexpr bool
+     operator==(const reverse_iterator<_Iterator>& __x,
+ 	       const reverse_iterator<_Iterator>& __y)
+     requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; }
+     { return __x.base() == __y.base(); }
+ 
+   template<three_way_comparable _Iterator>
+     constexpr compare_three_way_result_t<_Iterator, _Iterator>
+     operator<=>(const reverse_iterator<_Iterator>& __x,
+ 		const reverse_iterator<_Iterator>& __y)
+     { return __y.base() <=> __x.base(); }
  #endif // C++20
    ///@}
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1113,1118 ****
--- 1130,1152 ----
  		const __normal_iterator<_IteratorR, _Container>& __rhs)
      noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base())))
      { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); }
+ 
+   template<typename _Iterator, typename _Container>
+     constexpr bool
+     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
+ 	       const __normal_iterator<_Iterator, _Container>& __rhs)
+     noexcept(noexcept(__lhs.base() == __rhs.base()))
+     requires requires {
+       { __lhs.base() == __rhs.base() } -> std::convertible_to<bool>;
+     }
+     { return __lhs.base() == __rhs.base(); }
+ 
+   template<typename _Iterator, typename _Container>
+     constexpr std::__detail::__synth3way_t<_Iterator>
+     operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs,
+ 		const __normal_iterator<_Iterator, _Container>& __rhs)
+     noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base())))
+     { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); }
  #else
     // Forward iterator requirements
    template<typename _IteratorL, typename _IteratorR, typename _Container>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1356,1366 ****
  	    && convertible_to<const _Iter2&, _Iterator>;
  #endif
  
      public:
        using iterator_type = _Iterator;
  
  #if __cplusplus > 201703L && __cpp_lib_concepts
!       using iterator_concept = input_iterator_tag;
        // iterator_category defined in __move_iter_cat
        using value_type = iter_value_t<_Iterator>;
        using difference_type = iter_difference_t<_Iterator>;
--- 1390,1418 ----
  	    && convertible_to<const _Iter2&, _Iterator>;
  #endif
  
+ #if __cplusplus > 201703L && __cpp_lib_concepts
+       static auto
+       _S_iter_concept()
+       {
+ 	if constexpr (random_access_iterator<_Iterator>)
+ 	  return random_access_iterator_tag{};
+ 	else if constexpr (bidirectional_iterator<_Iterator>)
+ 	  return bidirectional_iterator_tag{};
+ 	else if constexpr (forward_iterator<_Iterator>)
+ 	  return forward_iterator_tag{};
+ 	else
+ 	  return input_iterator_tag{};
+       }
+ #endif
+ 
      public:
        using iterator_type = _Iterator;
  
  #if __cplusplus > 201703L && __cpp_lib_concepts
!       // This is P2520R0, a C++23 change, but we treat it as a DR against C++20.
! # define __cpp_lib_move_iterator_concept 202207L
!       using iterator_concept = decltype(_S_iter_concept());
! 
        // iterator_category defined in __move_iter_cat
        using value_type = iter_value_t<_Iterator>;
        using difference_type = iter_difference_t<_Iterator>;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1588,1607 ****
  #endif
      { return !(__x < __y); }
  
- #if ! (__cplusplus > 201703L && __cpp_lib_concepts)
    // Note: See __normal_iterator operators note from Gaby to understand
    // why we have these extra overloads for some move_iterator operators.
  
-   // These extra overloads are not needed in C++20, because the ones above
-   // are constrained with a requires-clause and so overload resolution will
-   // prefer them to greedy unconstrained function templates.
- 
    template<typename _Iterator>
      inline _GLIBCXX17_CONSTEXPR bool
      operator==(const move_iterator<_Iterator>& __x,
  	       const move_iterator<_Iterator>& __y)
      { return __x.base() == __y.base(); }
  
    template<typename _Iterator>
      inline _GLIBCXX17_CONSTEXPR bool
      operator!=(const move_iterator<_Iterator>& __x,
--- 1640,1661 ----
  #endif
      { return !(__x < __y); }
  
    // Note: See __normal_iterator operators note from Gaby to understand
    // why we have these extra overloads for some move_iterator operators.
  
    template<typename _Iterator>
      inline _GLIBCXX17_CONSTEXPR bool
      operator==(const move_iterator<_Iterator>& __x,
  	       const move_iterator<_Iterator>& __y)
      { return __x.base() == __y.base(); }
  
+ #if __cpp_lib_three_way_comparison
+   template<three_way_comparable _Iterator>
+     constexpr compare_three_way_result_t<_Iterator>
+     operator<=>(const move_iterator<_Iterator>& __x,
+ 		const move_iterator<_Iterator>& __y)
+     { return __x.base() <=> __y.base(); }
+ #else
    template<typename _Iterator>
      inline _GLIBCXX17_CONSTEXPR bool
      operator!=(const move_iterator<_Iterator>& __x,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1697,1703 ****
        _S_noexcept1()
        {
  	if constexpr (is_trivially_default_constructible_v<_Tp>)
! 	  return is_nothrow_assignable_v<_Tp, _Up>;
  	else
  	  return is_nothrow_constructible_v<_Tp, _Up>;
        }
--- 1751,1757 ----
        _S_noexcept1()
        {
  	if constexpr (is_trivially_default_constructible_v<_Tp>)
! 	  return is_nothrow_assignable_v<_Tp&, _Up>;
  	else
  	  return is_nothrow_constructible_v<_Tp, _Up>;
        }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1767,1785 ****
        noexcept(_S_noexcept<const _It2&, const _Sent2&>())
        : _M_valueless(), _M_index(__x._M_index)
        {
  	if (_M_index == 0)
  	  {
  	    if constexpr (is_trivially_default_constructible_v<_It>)
  	      _M_it = std::move(__x._M_it);
  	    else
! 	      ::new((void*)std::__addressof(_M_it)) _It(__x._M_it);
  	  }
  	else if (_M_index == 1)
  	  {
  	    if constexpr (is_trivially_default_constructible_v<_Sent>)
  	      _M_sent = std::move(__x._M_sent);
  	    else
! 	      ::new((void*)std::__addressof(_M_sent)) _Sent(__x._M_sent);
  	  }
        }
  
--- 1821,1840 ----
        noexcept(_S_noexcept<const _It2&, const _Sent2&>())
        : _M_valueless(), _M_index(__x._M_index)
        {
+ 	__glibcxx_assert(__x._M_has_value());
  	if (_M_index == 0)
  	  {
  	    if constexpr (is_trivially_default_constructible_v<_It>)
  	      _M_it = std::move(__x._M_it);
  	    else
! 	      std::construct_at(std::__addressof(_M_it), __x._M_it);
  	  }
  	else if (_M_index == 1)
  	  {
  	    if constexpr (is_trivially_default_constructible_v<_Sent>)
  	      _M_sent = std::move(__x._M_sent);
  	    else
! 	      std::construct_at(std::__addressof(_M_sent), __x._M_sent);
  	  }
        }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1791,1817 ****
        if (_M_index == 0)
  	{
  	  if constexpr (is_trivially_default_constructible_v<_It>)
  	    _M_it = std::move(__x._M_it);
  	  else
! 	    ::new((void*)std::__addressof(_M_it)) _It(__x._M_it);
  	}
        else if (_M_index == 1)
  	{
  	  if constexpr (is_trivially_default_constructible_v<_Sent>)
  	    _M_sent = std::move(__x._M_sent);
  	  else
! 	    ::new((void*)std::__addressof(_M_sent)) _Sent(__x._M_sent);
  	}
      }
  
!     common_iterator&
      operator=(const common_iterator& __x)
      noexcept(is_nothrow_copy_assignable_v<_It>
  	     && is_nothrow_copy_assignable_v<_Sent>
  	     && is_nothrow_copy_constructible_v<_It>
  	     && is_nothrow_copy_constructible_v<_Sent>)
      {
!       return this->operator=<_It, _Sent>(__x);
      }
  
      template<typename _It2, typename _Sent2>
--- 1846,1916 ----
        if (_M_index == 0)
  	{
  	  if constexpr (is_trivially_default_constructible_v<_It>)
+ 	    _M_it = __x._M_it;
+ 	  else
+ 	    std::construct_at(std::__addressof(_M_it), __x._M_it);
+ 	}
+       else if (_M_index == 1)
+ 	{
+ 	  if constexpr (is_trivially_default_constructible_v<_Sent>)
+ 	    _M_sent = __x._M_sent;
+ 	  else
+ 	    std::construct_at(std::__addressof(_M_sent), __x._M_sent);
+ 	}
+     }
+ 
+     constexpr
+     common_iterator(common_iterator&& __x)
+     noexcept(_S_noexcept<_It, _Sent>())
+     : _M_valueless(), _M_index(__x._M_index)
+     {
+       if (_M_index == 0)
+ 	{
+ 	  if constexpr (is_trivially_default_constructible_v<_It>)
  	    _M_it = std::move(__x._M_it);
  	  else
! 	    std::construct_at(std::__addressof(_M_it), std::move(__x._M_it));
  	}
        else if (_M_index == 1)
  	{
  	  if constexpr (is_trivially_default_constructible_v<_Sent>)
  	    _M_sent = std::move(__x._M_sent);
  	  else
! 	    std::construct_at(std::__addressof(_M_sent),
! 			      std::move(__x._M_sent));
  	}
      }
  
!     constexpr common_iterator&
!     operator=(const common_iterator&) = default;
! 
!     constexpr common_iterator&
      operator=(const common_iterator& __x)
      noexcept(is_nothrow_copy_assignable_v<_It>
  	     && is_nothrow_copy_assignable_v<_Sent>
  	     && is_nothrow_copy_constructible_v<_It>
  	     && is_nothrow_copy_constructible_v<_Sent>)
+     requires (!is_trivially_copy_assignable_v<_It>
+ 		|| !is_trivially_copy_assignable_v<_Sent>)
      {
!       _M_assign(__x);
!       return *this;
!     }
! 
!     constexpr common_iterator&
!     operator=(common_iterator&&) = default;
! 
!     constexpr common_iterator&
!     operator=(common_iterator&& __x)
!     noexcept(is_nothrow_move_assignable_v<_It>
! 	     && is_nothrow_move_assignable_v<_Sent>
! 	     && is_nothrow_move_constructible_v<_It>
! 	     && is_nothrow_move_constructible_v<_Sent>)
!     requires (!is_trivially_move_assignable_v<_It>
! 		|| !is_trivially_move_assignable_v<_Sent>)
!     {
!       _M_assign(std::move(__x));
!       return *this;
      }
  
      template<typename _It2, typename _Sent2>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1819,1890 ****
  	&& convertible_to<const _Sent2&, _Sent>
  	&& assignable_from<_It&, const _It2&>
  	&& assignable_from<_Sent&, const _Sent2&>
!       common_iterator&
        operator=(const common_iterator<_It2, _Sent2>& __x)
        noexcept(is_nothrow_constructible_v<_It, const _It2&>
  	       && is_nothrow_constructible_v<_Sent, const _Sent2&>
! 	       && is_nothrow_assignable_v<_It, const _It2&>
! 	       && is_nothrow_assignable_v<_Sent, const _Sent2&>)
        {
! 	switch(_M_index << 2 | __x._M_index)
! 	  {
! 	  case 0b0000:
! 	    _M_it = __x._M_it;
! 	    break;
! 	  case 0b0101:
! 	    _M_sent = __x._M_sent;
! 	    break;
! 	  case 0b0001:
! 	    _M_it.~_It();
! 	    _M_index = -1;
! 	    [[fallthrough]];
! 	  case 0b1001:
! 	    ::new((void*)std::__addressof(_M_sent)) _Sent(__x._M_sent);
! 	    _M_index = 1;
! 	    break;
! 	  case 0b0100:
! 	    _M_sent.~_Sent();
! 	    _M_index = -1;
! 	    [[fallthrough]];
! 	  case 0b1000:
! 	    ::new((void*)std::__addressof(_M_it)) _It(__x._M_it);
! 	    _M_index = 0;
! 	    break;
! 	  default:
! 	    __glibcxx_assert(__x._M_has_value());
! 	    __builtin_unreachable();
! 	  }
  	return *this;
        }
  
      ~common_iterator()
      {
!       switch (_M_index)
! 	{
! 	case 0:
! 	  _M_it.~_It();
! 	  break;
! 	case 1:
! 	  _M_sent.~_Sent();
! 	  break;
! 	}
      }
  
!     decltype(auto)
      operator*()
      {
        __glibcxx_assert(_M_index == 0);
        return *_M_it;
      }
  
!     decltype(auto)
      operator*() const requires __detail::__dereferenceable<const _It>
      {
        __glibcxx_assert(_M_index == 0);
        return *_M_it;
      }
  
!     decltype(auto)
      operator->() const requires __detail::__common_iter_has_arrow<_It>
      {
        __glibcxx_assert(_M_index == 0);
--- 1918,1962 ----
  	&& convertible_to<const _Sent2&, _Sent>
  	&& assignable_from<_It&, const _It2&>
  	&& assignable_from<_Sent&, const _Sent2&>
!       constexpr common_iterator&
        operator=(const common_iterator<_It2, _Sent2>& __x)
        noexcept(is_nothrow_constructible_v<_It, const _It2&>
  	       && is_nothrow_constructible_v<_Sent, const _Sent2&>
! 	       && is_nothrow_assignable_v<_It&, const _It2&>
! 	       && is_nothrow_assignable_v<_Sent&, const _Sent2&>)
        {
! 	__glibcxx_assert(__x._M_has_value());
! 	_M_assign(__x);
  	return *this;
        }
  
+     constexpr
      ~common_iterator()
      {
!       if (_M_index == 0)
! 	_M_it.~_It();
!       else if (_M_index == 1)
! 	_M_sent.~_Sent();
      }
  
!     [[nodiscard]]
!     constexpr decltype(auto)
      operator*()
      {
        __glibcxx_assert(_M_index == 0);
        return *_M_it;
      }
  
!     [[nodiscard]]
!     constexpr decltype(auto)
      operator*() const requires __detail::__dereferenceable<const _It>
      {
        __glibcxx_assert(_M_index == 0);
        return *_M_it;
      }
  
!     [[nodiscard]]
!     constexpr auto
      operator->() const requires __detail::__common_iter_has_arrow<_It>
      {
        __glibcxx_assert(_M_index == 0);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1899,1905 ****
  	return __arrow_proxy{*_M_it};
      }
  
!     common_iterator&
      operator++()
      {
        __glibcxx_assert(_M_index == 0);
--- 1971,1977 ----
  	return __arrow_proxy{*_M_it};
      }
  
!     constexpr common_iterator&
      operator++()
      {
        __glibcxx_assert(_M_index == 0);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1907,1913 ****
        return *this;
      }
  
!     decltype(auto)
      operator++(int)
      {
        __glibcxx_assert(_M_index == 0);
--- 1979,1985 ----
        return *this;
      }
  
!     constexpr decltype(auto)
      operator++(int)
      {
        __glibcxx_assert(_M_index == 0);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1929,1937 ****
  
      template<typename _It2, sentinel_for<_It> _Sent2>
        requires sentinel_for<_Sent, _It2>
!       friend bool
!       operator==(const common_iterator& __x,
! 		 const common_iterator<_It2, _Sent2>& __y)
        {
  	switch(__x._M_index << 2 | __y._M_index)
  	  {
--- 2001,2009 ----
  
      template<typename _It2, sentinel_for<_It> _Sent2>
        requires sentinel_for<_Sent, _It2>
!       friend constexpr bool
!       operator== [[nodiscard]] (const common_iterator& __x,
! 				const common_iterator<_It2, _Sent2>& __y)
        {
  	switch(__x._M_index << 2 | __y._M_index)
  	  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1951,1959 ****
  
      template<typename _It2, sentinel_for<_It> _Sent2>
        requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2>
!       friend bool
!       operator==(const common_iterator& __x,
! 		 const common_iterator<_It2, _Sent2>& __y)
        {
  	switch(__x._M_index << 2 | __y._M_index)
  	  {
--- 2023,2031 ----
  
      template<typename _It2, sentinel_for<_It> _Sent2>
        requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2>
!       friend constexpr bool
!       operator== [[nodiscard]] (const common_iterator& __x,
! 				const common_iterator<_It2, _Sent2>& __y)
        {
  	switch(__x._M_index << 2 | __y._M_index)
  	  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1974,1982 ****
  
      template<sized_sentinel_for<_It> _It2, sized_sentinel_for<_It> _Sent2>
        requires sized_sentinel_for<_Sent, _It2>
!       friend iter_difference_t<_It2>
!       operator-(const common_iterator& __x,
! 		const common_iterator<_It2, _Sent2>& __y)
        {
  	switch(__x._M_index << 2 | __y._M_index)
  	  {
--- 2046,2054 ----
  
      template<sized_sentinel_for<_It> _It2, sized_sentinel_for<_It> _Sent2>
        requires sized_sentinel_for<_Sent, _It2>
!       friend constexpr iter_difference_t<_It2>
!       operator- [[nodiscard]] (const common_iterator& __x,
! 			       const common_iterator<_It2, _Sent2>& __y)
        {
  	switch(__x._M_index << 2 | __y._M_index)
  	  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1995,2001 ****
  	  }
        }
  
!     friend iter_rvalue_reference_t<_It>
      iter_move(const common_iterator& __i)
      noexcept(noexcept(ranges::iter_move(std::declval<const _It&>())))
      requires input_iterator<_It>
--- 2067,2074 ----
  	  }
        }
  
!     [[nodiscard]]
!     friend constexpr iter_rvalue_reference_t<_It>
      iter_move(const common_iterator& __i)
      noexcept(noexcept(ranges::iter_move(std::declval<const _It&>())))
      requires input_iterator<_It>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2005,2011 ****
      }
  
      template<indirectly_swappable<_It> _It2, typename _Sent2>
!       friend void
        iter_swap(const common_iterator& __x,
  		const common_iterator<_It2, _Sent2>& __y)
        noexcept(noexcept(ranges::iter_swap(std::declval<const _It&>(),
--- 2078,2084 ----
      }
  
      template<indirectly_swappable<_It> _It2, typename _Sent2>
!       friend constexpr void
        iter_swap(const common_iterator& __x,
  		const common_iterator<_It2, _Sent2>& __y)
        noexcept(noexcept(ranges::iter_swap(std::declval<const _It&>(),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2018,2026 ****
  
    private:
      template<input_or_output_iterator _It2, sentinel_for<_It2> _Sent2>
        friend class common_iterator;
  
!     bool _M_has_value() const noexcept { return _M_index < 2; }
  
      union
      {
--- 2091,2130 ----
  
    private:
      template<input_or_output_iterator _It2, sentinel_for<_It2> _Sent2>
+       requires (!same_as<_It2, _Sent2>) && copyable<_It2>
        friend class common_iterator;
  
!     constexpr bool
!     _M_has_value() const noexcept { return _M_index != _S_valueless; }
! 
!     template<typename _CIt>
!       constexpr void
!       _M_assign(_CIt&& __x)
!       {
! 	if (_M_index == __x._M_index)
! 	  {
! 	    if (_M_index == 0)
! 	      _M_it = std::forward<_CIt>(__x)._M_it;
! 	    else if (_M_index == 1)
! 	      _M_sent = std::forward<_CIt>(__x)._M_sent;
! 	  }
! 	else
! 	  {
! 	    if (_M_index == 0)
! 	      _M_it.~_It();
! 	    else if (_M_index == 1)
! 	      _M_sent.~_Sent();
! 	    _M_index = _S_valueless;
! 
! 	    if (__x._M_index == 0)
! 	      std::construct_at(std::__addressof(_M_it),
! 				std::forward<_CIt>(__x)._M_it);
! 	    else if (__x._M_index == 1)
! 	      std::construct_at(std::__addressof(_M_sent),
! 				std::forward<_CIt>(__x)._M_sent);
! 	    _M_index = __x._M_index;
! 	  }
!       }
  
      union
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2028,2034 ****
        _Sent _M_sent;
        unsigned char _M_valueless;
      };
!     unsigned char _M_index; // 0==_M_it, 1==_M_sent, 2==valueless
    };
  
    template<typename _It, typename _Sent>
--- 2132,2140 ----
        _Sent _M_sent;
        unsigned char _M_valueless;
      };
!     unsigned char _M_index; // 0 == _M_it, 1 == _M_sent, 2 == valueless
! 
!     static constexpr unsigned char _S_valueless{2};
    };
  
    template<typename _It, typename _Sent>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2188,2194 ****
  	return *this;
        }
  
!       decltype(auto)
        operator++(int)
        {
  	__glibcxx_assert(_M_length > 0);
--- 2294,2300 ----
  	return *this;
        }
  
!       constexpr decltype(auto)
        operator++(int)
        {
  	__glibcxx_assert(_M_length > 0);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2200,2206 ****
  	    ++_M_length;
  	    __throw_exception_again;
  	  }
- 
        }
  
        constexpr counted_iterator
--- 2306,2311 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_list.h gcc-11.4.0/libstdc++-v3/include/bits/stl_list.h
*** gcc-11.3.0/libstdc++-v3/include/bits/stl_list.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/stl_list.h	Mon May 29 08:46:33 2023
***************
*** 1,6 ****
--- 1,7 ----
  // List implementation -*- C++ -*-
  
  // Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ // 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
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 1966,1971 ****
--- 1967,2006 ----
  			     __false_type{});
        }
  #endif
+ 
+ #if _GLIBCXX_USE_CXX11_ABI
+       // Update _M_size members after merging (some of) __src into __dest.
+       struct _Finalize_merge
+       {
+ 	explicit
+ 	_Finalize_merge(list& __dest, list& __src, const iterator& __src_next)
+ 	: _M_dest(__dest), _M_src(__src), _M_next(__src_next)
+ 	{ }
+ 
+ 	~_Finalize_merge()
+ 	{
+ 	  // For the common case, _M_next == _M_sec.end() and the std::distance
+ 	  // call is fast. But if any *iter1 < *iter2 comparison throws then we
+ 	  // have to count how many elements remain in _M_src.
+ 	  const size_t __num_unmerged = std::distance(_M_next, _M_src.end());
+ 	  const size_t __orig_size = _M_src._M_get_size();
+ 	  _M_dest._M_inc_size(__orig_size - __num_unmerged);
+ 	  _M_src._M_set_size(__num_unmerged);
+ 	}
+ 
+ 	list& _M_dest;
+ 	list& _M_src;
+ 	const iterator& _M_next;
+ 
+ #if __cplusplus >= 201103L
+ 	_Finalize_merge(const _Finalize_merge&) = delete;
+ #endif
+       };
+ #else
+       struct _Finalize_merge
+       { explicit _Finalize_merge(list&, list&, const iterator&) { } };
+ #endif
+ 
      };
  
  #if __cpp_deduction_guides >= 201606
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/this_thread_sleep.h gcc-11.4.0/libstdc++-v3/include/bits/this_thread_sleep.h
*** gcc-11.3.0/libstdc++-v3/include/bits/this_thread_sleep.h	Thu Apr 21 07:58:56 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/this_thread_sleep.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 107,114 ****
  	    __now = _Clock::now();
  	  }
        }
-   } // namespace this_thread
  #endif // ! NO_SLEEP
  
    /// @}
  
--- 107,114 ----
  	    __now = _Clock::now();
  	  }
        }
  #endif // ! NO_SLEEP
+   } // namespace this_thread
  
    /// @}
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/uses_allocator_args.h gcc-11.4.0/libstdc++-v3/include/bits/uses_allocator_args.h
*** gcc-11.3.0/libstdc++-v3/include/bits/uses_allocator_args.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/bits/uses_allocator_args.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 180,190 ****
        using _Tp1 = typename _Tp::first_type;
        using _Tp2 = typename _Tp::second_type;
  
        return std::make_tuple(piecewise_construct,
  	  std::uses_allocator_construction_args<_Tp1>(__a,
! 	    std::move(__pr).first),
  	  std::uses_allocator_construction_args<_Tp2>(__a,
! 	    std::move(__pr).second));
      }
  
    template<typename _Tp, typename _Alloc, typename... _Args>
--- 180,193 ----
        using _Tp1 = typename _Tp::first_type;
        using _Tp2 = typename _Tp::second_type;
  
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // 3527. uses_allocator_construction_args handles rvalue pairs
+       // of rvalue references incorrectly
        return std::make_tuple(piecewise_construct,
  	  std::uses_allocator_construction_args<_Tp1>(__a,
! 	    std::get<0>(std::move(__pr))),
  	  std::uses_allocator_construction_args<_Tp2>(__a,
! 	    std::get<1>(std::move(__pr))));
      }
  
    template<typename _Tp, typename _Alloc, typename... _Args>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/c_global/cstddef gcc-11.4.0/libstdc++-v3/include/c_global/cstddef
*** gcc-11.3.0/libstdc++-v3/include/c_global/cstddef	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/c_global/cstddef	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 121,175 ****
      using __byte_op_t = typename __byte_operand<_IntegerType>::__type;
  
    template<typename _IntegerType>
      constexpr __byte_op_t<_IntegerType>
      operator<<(byte __b, _IntegerType __shift) noexcept
      { return (byte)(unsigned char)((unsigned)__b << __shift); }
  
    template<typename _IntegerType>
      constexpr __byte_op_t<_IntegerType>
      operator>>(byte __b, _IntegerType __shift) noexcept
      { return (byte)(unsigned char)((unsigned)__b >> __shift); }
  
    constexpr byte
    operator|(byte __l, byte __r) noexcept
    { return (byte)(unsigned char)((unsigned)__l | (unsigned)__r); }
  
    constexpr byte
    operator&(byte __l, byte __r) noexcept
    { return (byte)(unsigned char)((unsigned)__l & (unsigned)__r); }
  
    constexpr byte
    operator^(byte __l, byte __r) noexcept
    { return (byte)(unsigned char)((unsigned)__l ^ (unsigned)__r); }
  
    constexpr byte
    operator~(byte __b) noexcept
    { return (byte)(unsigned char)~(unsigned)__b; }
  
    template<typename _IntegerType>
      constexpr __byte_op_t<_IntegerType>&
      operator<<=(byte& __b, _IntegerType __shift) noexcept
      { return __b = __b << __shift; }
  
    template<typename _IntegerType>
      constexpr __byte_op_t<_IntegerType>&
      operator>>=(byte& __b, _IntegerType __shift) noexcept
      { return __b = __b >> __shift; }
  
    constexpr byte&
    operator|=(byte& __l, byte __r) noexcept
    { return __l = __l | __r; }
  
    constexpr byte&
    operator&=(byte& __l, byte __r) noexcept
    { return __l = __l & __r; }
  
    constexpr byte&
    operator^=(byte& __l, byte __r) noexcept
    { return __l = __l ^ __r; }
  
    template<typename _IntegerType>
!     [[nodiscard]]
      constexpr _IntegerType
      to_integer(__byte_op_t<_IntegerType> __b) noexcept
      { return _IntegerType(__b); }
--- 121,186 ----
      using __byte_op_t = typename __byte_operand<_IntegerType>::__type;
  
    template<typename _IntegerType>
+     [[__gnu__::__always_inline__]]
      constexpr __byte_op_t<_IntegerType>
      operator<<(byte __b, _IntegerType __shift) noexcept
      { return (byte)(unsigned char)((unsigned)__b << __shift); }
  
    template<typename _IntegerType>
+     [[__gnu__::__always_inline__]]
      constexpr __byte_op_t<_IntegerType>
      operator>>(byte __b, _IntegerType __shift) noexcept
      { return (byte)(unsigned char)((unsigned)__b >> __shift); }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte
    operator|(byte __l, byte __r) noexcept
    { return (byte)(unsigned char)((unsigned)__l | (unsigned)__r); }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte
    operator&(byte __l, byte __r) noexcept
    { return (byte)(unsigned char)((unsigned)__l & (unsigned)__r); }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte
    operator^(byte __l, byte __r) noexcept
    { return (byte)(unsigned char)((unsigned)__l ^ (unsigned)__r); }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte
    operator~(byte __b) noexcept
    { return (byte)(unsigned char)~(unsigned)__b; }
  
    template<typename _IntegerType>
+     [[__gnu__::__always_inline__]]
      constexpr __byte_op_t<_IntegerType>&
      operator<<=(byte& __b, _IntegerType __shift) noexcept
      { return __b = __b << __shift; }
  
    template<typename _IntegerType>
+     [[__gnu__::__always_inline__]]
      constexpr __byte_op_t<_IntegerType>&
      operator>>=(byte& __b, _IntegerType __shift) noexcept
      { return __b = __b >> __shift; }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte&
    operator|=(byte& __l, byte __r) noexcept
    { return __l = __l | __r; }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte&
    operator&=(byte& __l, byte __r) noexcept
    { return __l = __l & __r; }
  
+   [[__gnu__::__always_inline__]]
    constexpr byte&
    operator^=(byte& __l, byte __r) noexcept
    { return __l = __l ^ __r; }
  
    template<typename _IntegerType>
!     [[nodiscard,__gnu__::__always_inline__]]
      constexpr _IntegerType
      to_integer(__byte_op_t<_IntegerType> __b) noexcept
      { return _IntegerType(__b); }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_ops.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_ops.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_ops.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_ops.h	Mon May 29 08:46:33 2023
*************** inline namespace v1
*** 51,60 ****
--- 51,66 ----
     * @{
     */
  
+   [[__nodiscard__]]
    path absolute(const path& __p, const path& __base = current_path());
  
+   [[__nodiscard__]]
    path canonical(const path& __p, const path& __base = current_path());
+ 
+   [[__nodiscard__]]
    path canonical(const path& __p, error_code& __ec);
+ 
+   [[__nodiscard__]]
    path canonical(const path& __p, const path& __base, error_code& __ec);
  
    inline void
*************** inline namespace v1
*** 66,71 ****
--- 72,78 ----
    { copy(__from, __to, copy_options::none, __ec); }
  
    void copy(const path& __from, const path& __to, copy_options __options);
+ 
    void copy(const path& __from, const path& __to, copy_options __options,
  	    error_code& __ec) noexcept;
  
*************** inline namespace v1
*** 107,131 ****
--- 114,147 ----
    void create_symlink(const path& __to, const path& __new_symlink,
  		      error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    path current_path();
+ 
+   [[__nodiscard__]]
    path current_path(error_code& __ec);
+ 
    void current_path(const path& __p);
    void current_path(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    bool
    equivalent(const path& __p1, const path& __p2);
  
+   [[__nodiscard__]]
    bool
    equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    inline bool
    exists(file_status __s) noexcept
    { return status_known(__s) && __s.type() != file_type::not_found; }
  
+   [[__nodiscard__]]
    inline bool
    exists(const path& __p)
    { return exists(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    exists(const path& __p, error_code& __ec) noexcept
    {
*************** inline namespace v1
*** 138,200 ****
--- 154,237 ----
      return false;
    }
  
+   [[__nodiscard__]]
    uintmax_t file_size(const path& __p);
+ 
+   [[__nodiscard__]]
    uintmax_t file_size(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    uintmax_t hard_link_count(const path& __p);
+ 
+   [[__nodiscard__]]
    uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    inline bool
    is_block_file(file_status __s) noexcept
    { return __s.type() == file_type::block; }
  
+   [[__nodiscard__]]
    inline bool
    is_block_file(const path& __p)
    { return is_block_file(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_block_file(const path& __p, error_code& __ec) noexcept
    { return is_block_file(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    inline bool
    is_character_file(file_status __s) noexcept
    { return __s.type() == file_type::character; }
  
+   [[__nodiscard__]]
    inline bool
    is_character_file(const path& __p)
    { return is_character_file(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_character_file(const path& __p, error_code& __ec) noexcept
    { return is_character_file(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    inline bool
    is_directory(file_status __s) noexcept
    { return __s.type() == file_type::directory; }
  
+   [[__nodiscard__]]
    inline bool
    is_directory(const path& __p)
    { return is_directory(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_directory(const path& __p, error_code& __ec) noexcept
    { return is_directory(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    bool is_empty(const path& __p);
+   [[__nodiscard__]]
    bool is_empty(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    inline bool
    is_fifo(file_status __s) noexcept
    { return __s.type() == file_type::fifo; }
  
+   [[__nodiscard__]]
    inline bool
    is_fifo(const path& __p)
    { return is_fifo(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_fifo(const path& __p, error_code& __ec) noexcept
    { return is_fifo(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    inline bool
    is_other(file_status __s) noexcept
    {
*************** inline namespace v1
*** 202,253 ****
--- 239,305 ----
        && !is_symlink(__s);
    }
  
+   [[__nodiscard__]]
    inline bool
    is_other(const path& __p)
    { return is_other(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_other(const path& __p, error_code& __ec) noexcept
    { return is_other(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    inline bool
    is_regular_file(file_status __s) noexcept
    { return __s.type() == file_type::regular; }
  
+   [[__nodiscard__]]
    inline bool
    is_regular_file(const path& __p)
    { return is_regular_file(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_regular_file(const path& __p, error_code& __ec) noexcept
    { return is_regular_file(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    inline bool
    is_socket(file_status __s) noexcept
    { return __s.type() == file_type::socket; }
  
+   [[__nodiscard__]]
    inline bool
    is_socket(const path& __p)
    { return is_socket(status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_socket(const path& __p, error_code& __ec) noexcept
    { return is_socket(status(__p, __ec)); }
  
+   [[__nodiscard__]]
    inline bool
    is_symlink(file_status __s) noexcept
    { return __s.type() == file_type::symlink; }
  
+   [[__nodiscard__]]
    inline bool
    is_symlink(const path& __p)
    { return is_symlink(symlink_status(__p)); }
  
+   [[__nodiscard__]]
    inline bool
    is_symlink(const path& __p, error_code& __ec) noexcept
    { return is_symlink(symlink_status(__p, __ec)); }
  
+   [[__nodiscard__]]
    file_time_type  last_write_time(const path& __p);
+ 
+   [[__nodiscard__]]
    file_time_type  last_write_time(const path& __p, error_code& __ec) noexcept;
+ 
    void last_write_time(const path& __p, file_time_type __new_time);
    void last_write_time(const path& __p, file_time_type __new_time,
  		       error_code& __ec) noexcept;
*************** inline namespace v1
*** 255,261 ****
--- 307,316 ----
    void permissions(const path& __p, perms __prms);
    void permissions(const path& __p, perms __prms, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    path read_symlink(const path& __p);
+ 
+   [[__nodiscard__]]
    path read_symlink(const path& __p, error_code& __ec);
  
    bool remove(const path& __p);
*************** inline namespace v1
*** 270,291 ****
--- 325,362 ----
    void resize_file(const path& __p, uintmax_t __size);
    void resize_file(const path& __p, uintmax_t __size, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    space_info space(const path& __p);
+ 
+   [[__nodiscard__]]
    space_info space(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    file_status status(const path& __p);
+ 
+   [[__nodiscard__]]
    file_status status(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    inline bool status_known(file_status __s) noexcept
    { return __s.type() != file_type::none; }
  
+   [[__nodiscard__]]
    file_status symlink_status(const path& __p);
+ 
+   [[__nodiscard__]]
    file_status symlink_status(const path& __p, error_code& __ec) noexcept;
  
+   [[__nodiscard__]]
    path system_complete(const path& __p);
+ 
+   [[__nodiscard__]]
    path system_complete(const path& __p, error_code& __ec);
  
+   [[__nodiscard__]]
    path temp_directory_path();
+ 
+   [[__nodiscard__]]
    path temp_directory_path(error_code& __ec);
  
    /// @} group filesystem-ts
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_path.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_path.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_path.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_path.h	Mon May 29 08:46:33 2023
*************** namespace __detail
*** 140,149 ****
      inline _Source
      _S_range_begin(_Source __begin) { return __begin; }
  
!   struct __null_terminated { };
  
    template<typename _Source>
!     inline __null_terminated
      _S_range_end(_Source) { return {}; }
  
    template<typename _CharT, typename _Traits, typename _Alloc>
--- 140,149 ----
      inline _Source
      _S_range_begin(_Source __begin) { return __begin; }
  
!   struct __nul_terminated { };
  
    template<typename _Source>
!     inline __nul_terminated
      _S_range_end(_Source) { return {}; }
  
    template<typename _CharT, typename _Traits, typename _Alloc>
*************** namespace __detail
*** 425,432 ****
      class iterator;
      typedef iterator const_iterator;
  
!     iterator begin() const noexcept;
!     iterator end() const noexcept;
  
      /// @cond undocumented
      // Create a basic_string by reading until a null character.
--- 425,432 ----
      class iterator;
      typedef iterator const_iterator;
  
!     iterator begin() const;
!     iterator end() const;
  
      /// @cond undocumented
      // Create a basic_string by reading until a null character.
*************** namespace __detail
*** 473,483 ****
        struct _Cvt;
  
      static string_type
!     _S_convert(value_type* __src, __detail::__null_terminated)
      { return string_type(__src); }
  
      static string_type
!     _S_convert(const value_type* __src, __detail::__null_terminated)
      { return string_type(__src); }
  
      template<typename _Iter>
--- 473,483 ----
        struct _Cvt;
  
      static string_type
!     _S_convert(value_type* __src, __detail::__nul_terminated)
      { return string_type(__src); }
  
      static string_type
!     _S_convert(const value_type* __src, __detail::__nul_terminated)
      { return string_type(__src); }
  
      template<typename _Iter>
*************** namespace __detail
*** 491,497 ****
  
      template<typename _InputIterator>
        static string_type
!       _S_convert(_InputIterator __src, __detail::__null_terminated)
        {
  	auto __s = _S_string_from_iter(__src);
  	return _S_convert(__s.c_str(), __s.c_str() + __s.size());
--- 491,497 ----
  
      template<typename _InputIterator>
        static string_type
!       _S_convert(_InputIterator __src, __detail::__nul_terminated)
        {
  	auto __s = _S_string_from_iter(__src);
  	return _S_convert(__s.c_str(), __s.c_str() + __s.size());
*************** namespace __detail
*** 518,524 ****
  
      template<typename _InputIterator>
        static string_type
!       _S_convert_loc(_InputIterator __src, __detail::__null_terminated,
  		     const std::locale& __loc)
        {
  	const std::string __s = _S_string_from_iter(__src);
--- 518,524 ----
  
      template<typename _InputIterator>
        static string_type
!       _S_convert_loc(_InputIterator __src, __detail::__nul_terminated,
  		     const std::locale& __loc)
        {
  	const std::string __s = _S_string_from_iter(__src);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd.h	Mon May 29 08:46:33 2023
*************** struct vector_aligned_tag
*** 179,188 ****
    template <typename _Tp, typename _Up>
      _GLIBCXX_SIMD_INTRINSIC static constexpr _Up*
      _S_apply(_Up* __ptr)
!     {
!       return static_cast<_Up*>(
! 	__builtin_assume_aligned(__ptr, _S_alignment<_Tp, _Up>));
!     }
  };
  
  template <size_t _Np> struct overaligned_tag
--- 179,185 ----
    template <typename _Tp, typename _Up>
      _GLIBCXX_SIMD_INTRINSIC static constexpr _Up*
      _S_apply(_Up* __ptr)
!     { return static_cast<_Up*>(__builtin_assume_aligned(__ptr, _S_alignment<_Tp, _Up>)); }
  };
  
  template <size_t _Np> struct overaligned_tag
*************** template <size_t _Bytes>
*** 420,447 ****
  	  operator&(_Ip __rhs) const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) { return __rhs._M_data[__i] & _M_data[__i]; });
  	  }
  
  	  _GLIBCXX_SIMD_INTRINSIC constexpr _Ip
  	  operator|(_Ip __rhs) const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) { return __rhs._M_data[__i] | _M_data[__i]; });
  	  }
  
  	  _GLIBCXX_SIMD_INTRINSIC constexpr _Ip
  	  operator^(_Ip __rhs) const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) { return __rhs._M_data[__i] ^ _M_data[__i]; });
  	  }
  
  	  _GLIBCXX_SIMD_INTRINSIC constexpr _Ip
  	  operator~() const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) { return ~_M_data[__i]; });
  	  }
  	};
  	return _Ip{};
--- 417,450 ----
  	  operator&(_Ip __rhs) const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		return __rhs._M_data[__i] & _M_data[__i];
! 	      });
  	  }
  
  	  _GLIBCXX_SIMD_INTRINSIC constexpr _Ip
  	  operator|(_Ip __rhs) const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		return __rhs._M_data[__i] | _M_data[__i];
! 	      });
  	  }
  
  	  _GLIBCXX_SIMD_INTRINSIC constexpr _Ip
  	  operator^(_Ip __rhs) const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		return __rhs._M_data[__i] ^ _M_data[__i];
! 	      });
  	  }
  
  	  _GLIBCXX_SIMD_INTRINSIC constexpr _Ip
  	  operator~() const
  	  {
  	    return __generate_from_n_evaluations<_Np, _Ip>(
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return ~_M_data[__i]; });
  	  }
  	};
  	return _Ip{};
*************** template <typename _Tp, typename _Up>
*** 619,626 ****
  // __invoke_ub{{{
  template <typename... _Args>
    [[noreturn]] _GLIBCXX_SIMD_ALWAYS_INLINE void
!   __invoke_ub([[maybe_unused]] const char* __msg,
! 	      [[maybe_unused]] const _Args&... __args)
    {
  #ifdef _GLIBCXX_DEBUG_UB
      __builtin_fprintf(stderr, __msg, __args...);
--- 622,628 ----
  // __invoke_ub{{{
  template <typename... _Args>
    [[noreturn]] _GLIBCXX_SIMD_ALWAYS_INLINE void
!   __invoke_ub([[maybe_unused]] const char* __msg, [[maybe_unused]] const _Args&... __args)
    {
  #ifdef _GLIBCXX_DEBUG_UB
      __builtin_fprintf(stderr, __msg, __args...);
*************** class _ExactBool
*** 665,675 ****
    const bool _M_data;
  
  public:
!   _GLIBCXX_SIMD_INTRINSIC constexpr _ExactBool(bool __b) : _M_data(__b) {}
  
    _ExactBool(int) = delete;
  
!   _GLIBCXX_SIMD_INTRINSIC constexpr operator bool() const { return _M_data; }
  };
  
  // }}}
--- 667,680 ----
    const bool _M_data;
  
  public:
!   _GLIBCXX_SIMD_INTRINSIC constexpr
!   _ExactBool(bool __b) : _M_data(__b) {}
  
    _ExactBool(int) = delete;
  
!   _GLIBCXX_SIMD_INTRINSIC constexpr
!   operator bool() const
!   { return _M_data; }
  };
  
  // }}}
*************** template <size_t _Np, bool _Sanitized>
*** 1267,1273 ****
      operator^=(const _BitMask& __b) & noexcept
      {
        __execute_n_times<_S_array_size>(
! 	[&](auto __i) { _M_bits[__i] ^= __b._M_bits[__i]; });
        return *this;
      }
  
--- 1272,1278 ----
      operator^=(const _BitMask& __b) & noexcept
      {
        __execute_n_times<_S_array_size>(
! 	[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { _M_bits[__i] ^= __b._M_bits[__i]; });
        return *this;
      }
  
*************** template <size_t _Np, bool _Sanitized>
*** 1275,1281 ****
      operator|=(const _BitMask& __b) & noexcept
      {
        __execute_n_times<_S_array_size>(
! 	[&](auto __i) { _M_bits[__i] |= __b._M_bits[__i]; });
        return *this;
      }
  
--- 1280,1286 ----
      operator|=(const _BitMask& __b) & noexcept
      {
        __execute_n_times<_S_array_size>(
! 	[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { _M_bits[__i] |= __b._M_bits[__i]; });
        return *this;
      }
  
*************** template <size_t _Np, bool _Sanitized>
*** 1283,1289 ****
      operator&=(const _BitMask& __b) & noexcept
      {
        __execute_n_times<_S_array_size>(
! 	[&](auto __i) { _M_bits[__i] &= __b._M_bits[__i]; });
        return *this;
      }
  
--- 1288,1294 ----
      operator&=(const _BitMask& __b) & noexcept
      {
        __execute_n_times<_S_array_size>(
! 	[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { _M_bits[__i] &= __b._M_bits[__i]; });
        return *this;
      }
  
*************** template <typename _Tp>
*** 1358,1365 ****
  
  // else, use GNU-style builtin vector types
  template <typename _Tp, size_t _Np>
!   struct __vector_type_n<_Tp, _Np,
! 			 enable_if_t<__is_vectorizable_v<_Tp> && _Np >= 2>>
    {
      static constexpr size_t _S_Np2 = std::__bit_ceil(_Np * sizeof(_Tp));
  
--- 1363,1369 ----
  
  // else, use GNU-style builtin vector types
  template <typename _Tp, size_t _Np>
!   struct __vector_type_n<_Tp, _Np, enable_if_t<__is_vectorizable_v<_Tp> && _Np >= 2>>
    {
      static constexpr size_t _S_Np2 = std::__bit_ceil(_Np * sizeof(_Tp));
  
*************** template <typename _To, typename _From>
*** 1637,1644 ****
  // }}}
  // __to_intrin {{{
  template <typename _Tp, typename _TVT = _VectorTraits<_Tp>,
! 	  typename _R
! 	  = __intrinsic_type_t<typename _TVT::value_type, _TVT::_S_full_size>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __to_intrin(_Tp __x)
    {
--- 1641,1647 ----
  // }}}
  // __to_intrin {{{
  template <typename _Tp, typename _TVT = _VectorTraits<_Tp>,
! 	  typename _R = __intrinsic_type_t<typename _TVT::value_type, _TVT::_S_full_size>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __to_intrin(_Tp __x)
    {
*************** template <typename _Tp, typename _TVT =
*** 1659,1688 ****
  template <typename _Tp, typename... _Args>
    _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, sizeof...(_Args)>
    __make_vector(const _Args&... __args)
!   {
!     return __vector_type_t<_Tp, sizeof...(_Args)>{static_cast<_Tp>(__args)...};
!   }
  
  // }}}
  // __vector_broadcast{{{
  template <size_t _Np, typename _Tp>
    _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np>
    __vector_broadcast(_Tp __x)
!   {
!     return __call_with_n_evaluations<_Np>(
!       [](auto... __xx) { return __vector_type_t<_Tp, _Np>{__xx...}; },
!       [&__x](int) { return __x; });
!   }
  
  // }}}
  // __generate_vector{{{
    template <typename _Tp, size_t _Np, typename _Gp, size_t... _I>
    _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np>
    __generate_vector_impl(_Gp&& __gen, index_sequence<_I...>)
!   {
!     return __vector_type_t<_Tp, _Np>{
!       static_cast<_Tp>(__gen(_SizeConstant<_I>()))...};
!   }
  
  template <typename _V, typename _VVT = _VectorTraits<_V>, typename _Gp>
    _GLIBCXX_SIMD_INTRINSIC constexpr _V
--- 1662,1687 ----
  template <typename _Tp, typename... _Args>
    _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, sizeof...(_Args)>
    __make_vector(const _Args&... __args)
!   { return __vector_type_t<_Tp, sizeof...(_Args)>{static_cast<_Tp>(__args)...}; }
  
  // }}}
  // __vector_broadcast{{{
+ template <size_t _Np, typename _Tp, size_t... _I>
+   _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np>
+   __vector_broadcast_impl(_Tp __x, index_sequence<_I...>)
+   { return __vector_type_t<_Tp, _Np>{((void)_I, __x)...}; }
+ 
  template <size_t _Np, typename _Tp>
    _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np>
    __vector_broadcast(_Tp __x)
!   { return __vector_broadcast_impl<_Np, _Tp>(__x, make_index_sequence<_Np>()); }
  
  // }}}
  // __generate_vector{{{
    template <typename _Tp, size_t _Np, typename _Gp, size_t... _I>
    _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np>
    __generate_vector_impl(_Gp&& __gen, index_sequence<_I...>)
!   { return __vector_type_t<_Tp, _Np>{ static_cast<_Tp>(__gen(_SizeConstant<_I>()))...}; }
  
  template <typename _V, typename _VVT = _VectorTraits<_V>, typename _Gp>
    _GLIBCXX_SIMD_INTRINSIC constexpr _V
*************** template <typename _Tp, typename _TVT =
*** 1895,1902 ****
  // }}}
  // __concat{{{
  template <typename _Tp, typename _TVT = _VectorTraits<_Tp>,
! 	  typename _R = __vector_type_t<typename _TVT::value_type,
! 					_TVT::_S_full_size * 2>>
    constexpr _R
    __concat(_Tp a_, _Tp b_)
    {
--- 1894,1900 ----
  // }}}
  // __concat{{{
  template <typename _Tp, typename _TVT = _VectorTraits<_Tp>,
! 	  typename _R = __vector_type_t<typename _TVT::value_type, _TVT::_S_full_size * 2>>
    constexpr _R
    __concat(_Tp a_, _Tp b_)
    {
*************** template <int _Offset,
*** 2040,2047 ****
  	  int _SplitBy,
  	  typename _Tp,
  	  typename _TVT = _VectorTraits<_Tp>,
! 	  typename _R = __vector_type_t<typename _TVT::value_type,
! 			  _TVT::_S_full_size / _SplitBy>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __extract(_Tp __in)
    {
--- 2038,2044 ----
  	  int _SplitBy,
  	  typename _Tp,
  	  typename _TVT = _VectorTraits<_Tp>,
! 	  typename _R = __vector_type_t<typename _TVT::value_type, _TVT::_S_full_size / _SplitBy>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __extract(_Tp __in)
    {
*************** template <int _Offset,
*** 2078,2084 ****
  #endif
  	constexpr int _O = _Offset * __return_width;
  	return __call_with_subscripts<__return_width, _O>(
! 	  __x, [](auto... __entries) {
  	    return reinterpret_cast<_R>(_Up{__entries...});
  	  });
        }
--- 2075,2081 ----
  #endif
  	constexpr int _O = _Offset * __return_width;
  	return __call_with_subscripts<__return_width, _O>(
! 	  __x, [](auto... __entries) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    return reinterpret_cast<_R>(_Up{__entries...});
  	  });
        }
*************** template <int _Offset,
*** 2087,2094 ****
  // }}}
  // __lo/__hi64[z]{{{
  template <typename _Tp,
! 	  typename _R
! 	  = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __lo64(_Tp __x)
    {
--- 2084,2090 ----
  // }}}
  // __lo/__hi64[z]{{{
  template <typename _Tp,
! 	  typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __lo64(_Tp __x)
    {
*************** template <typename _Tp,
*** 2098,2105 ****
    }
  
  template <typename _Tp,
! 	  typename _R
! 	  = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __hi64(_Tp __x)
    {
--- 2094,2100 ----
    }
  
  template <typename _Tp,
! 	  typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __hi64(_Tp __x)
    {
*************** template <typename _Tp,
*** 2110,2117 ****
    }
  
  template <typename _Tp,
! 	  typename _R
! 	  = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __hi64z([[maybe_unused]] _Tp __x)
    {
--- 2105,2111 ----
    }
  
  template <typename _Tp,
! 	  typename _R = __vector_type8_t<typename _VectorTraits<_Tp>::value_type>>
    _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __hi64z([[maybe_unused]] _Tp __x)
    {
*************** template <>
*** 2222,2239 ****
  // the following excludes bool via __is_vectorizable
  #if _GLIBCXX_SIMD_HAVE_SSE
  template <typename _Tp, size_t _Bytes>
!   struct __intrinsic_type<_Tp, _Bytes,
! 			  enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 64>>
    {
      static_assert(!is_same_v<_Tp, long double>,
  		  "no __intrinsic_type support for long double on x86");
  
!     static constexpr size_t _S_VBytes = _Bytes <= 16   ? 16
! 					: _Bytes <= 32 ? 32
! 						       : 64;
  
      using type [[__gnu__::__vector_size__(_S_VBytes)]]
!     = conditional_t<is_integral_v<_Tp>, long long int, _Tp>;
    };
  #endif // _GLIBCXX_SIMD_HAVE_SSE
  
--- 2216,2230 ----
  // the following excludes bool via __is_vectorizable
  #if _GLIBCXX_SIMD_HAVE_SSE
  template <typename _Tp, size_t _Bytes>
!   struct __intrinsic_type<_Tp, _Bytes, enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 64>>
    {
      static_assert(!is_same_v<_Tp, long double>,
  		  "no __intrinsic_type support for long double on x86");
  
!     static constexpr size_t _S_VBytes = _Bytes <= 16 ? 16 : _Bytes <= 32 ? 32 : 64;
  
      using type [[__gnu__::__vector_size__(_S_VBytes)]]
!       = conditional_t<is_integral_v<_Tp>, long long int, _Tp>;
    };
  #endif // _GLIBCXX_SIMD_HAVE_SSE
  
*************** template <>
*** 2249,2263 ****
    struct __intrinsic_type<float, 16, void>
    { using type = float32x4_t; };
  
- #if _GLIBCXX_SIMD_HAVE_NEON_A64
  template <>
    struct __intrinsic_type<double, 8, void>
!   { using type = float64x1_t; };
  
  template <>
    struct __intrinsic_type<double, 16, void>
!   { using type = float64x2_t; };
  #endif
  
  #define _GLIBCXX_SIMD_ARM_INTRIN(_Bits, _Np)                                   \
  template <>                                                                    \
--- 2240,2260 ----
    struct __intrinsic_type<float, 16, void>
    { using type = float32x4_t; };
  
  template <>
    struct __intrinsic_type<double, 8, void>
!   {
! #if _GLIBCXX_SIMD_HAVE_NEON_A64
!    using type = float64x1_t;
! #endif
!   };
  
  template <>
    struct __intrinsic_type<double, 16, void>
!   {
! #if _GLIBCXX_SIMD_HAVE_NEON_A64
!     using type = float64x2_t;
  #endif
+   };
  
  #define _GLIBCXX_SIMD_ARM_INTRIN(_Bits, _Np)                                   \
  template <>                                                                    \
*************** _GLIBCXX_SIMD_ARM_INTRIN(64, 2);
*** 2279,2294 ****
  #undef _GLIBCXX_SIMD_ARM_INTRIN
  
  template <typename _Tp, size_t _Bytes>
!   struct __intrinsic_type<_Tp, _Bytes,
! 			  enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>>
    {
      static constexpr int _SVecBytes = _Bytes <= 8 ? 8 : 16;
      using _Ip = __int_for_sizeof_t<_Tp>;
      using _Up = conditional_t<
        is_floating_point_v<_Tp>, _Tp,
        conditional_t<is_unsigned_v<_Tp>, make_unsigned_t<_Ip>, _Ip>>;
      static_assert(!is_same_v<_Tp, _Up> || _SVecBytes != _Bytes,
  		  "should use explicit specialization above");
      using type = typename __intrinsic_type<_Up, _SVecBytes>::type;
    };
  #endif // _GLIBCXX_SIMD_HAVE_NEON
--- 2276,2294 ----
  #undef _GLIBCXX_SIMD_ARM_INTRIN
  
  template <typename _Tp, size_t _Bytes>
!   struct __intrinsic_type<_Tp, _Bytes, enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>>
    {
      static constexpr int _SVecBytes = _Bytes <= 8 ? 8 : 16;
+ 
      using _Ip = __int_for_sizeof_t<_Tp>;
+ 
      using _Up = conditional_t<
        is_floating_point_v<_Tp>, _Tp,
        conditional_t<is_unsigned_v<_Tp>, make_unsigned_t<_Ip>, _Ip>>;
+ 
      static_assert(!is_same_v<_Tp, _Up> || _SVecBytes != _Bytes,
  		  "should use explicit specialization above");
+ 
      using type = typename __intrinsic_type<_Up, _SVecBytes>::type;
    };
  #endif // _GLIBCXX_SIMD_HAVE_NEON
*************** template <typename _Tp>
*** 2303,2338 ****
    template <>                                                                  \
      struct __intrinsic_type_impl<_Tp> { using type = __vector _Tp; }
  _GLIBCXX_SIMD_PPC_INTRIN(float);
  _GLIBCXX_SIMD_PPC_INTRIN(double);
  _GLIBCXX_SIMD_PPC_INTRIN(signed char);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned char);
  _GLIBCXX_SIMD_PPC_INTRIN(signed short);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned short);
  _GLIBCXX_SIMD_PPC_INTRIN(signed int);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned int);
  _GLIBCXX_SIMD_PPC_INTRIN(signed long);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned long);
  _GLIBCXX_SIMD_PPC_INTRIN(signed long long);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned long long);
  #undef _GLIBCXX_SIMD_PPC_INTRIN
  
  template <typename _Tp, size_t _Bytes>
!   struct __intrinsic_type<_Tp, _Bytes,
! 			  enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>>
    {
      static constexpr bool _S_is_ldouble = is_same_v<_Tp, long double>;
      // allow _Tp == long double with -mlong-double-64
      static_assert(!(_S_is_ldouble && sizeof(long double) > sizeof(double)),
! 		  "no __intrinsic_type support for long double on PPC");
  #ifndef __VSX__
!     static_assert(!is_same_v<_Tp, double>,
! 		  "no __intrinsic_type support for double on PPC w/o VSX");
  #endif
!     using type =
!       typename __intrinsic_type_impl<
! 		 conditional_t<is_floating_point_v<_Tp>,
! 			       conditional_t<_S_is_ldouble, double, _Tp>,
! 			       __int_for_sizeof_t<_Tp>>>::type;
    };
  #endif // __ALTIVEC__
  
--- 2303,2376 ----
    template <>                                                                  \
      struct __intrinsic_type_impl<_Tp> { using type = __vector _Tp; }
  _GLIBCXX_SIMD_PPC_INTRIN(float);
+ #ifdef __VSX__
  _GLIBCXX_SIMD_PPC_INTRIN(double);
+ #endif
  _GLIBCXX_SIMD_PPC_INTRIN(signed char);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned char);
  _GLIBCXX_SIMD_PPC_INTRIN(signed short);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned short);
  _GLIBCXX_SIMD_PPC_INTRIN(signed int);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned int);
+ #if defined __VSX__ || __SIZEOF_LONG__ == 4
  _GLIBCXX_SIMD_PPC_INTRIN(signed long);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned long);
+ #endif
+ #ifdef __VSX__
  _GLIBCXX_SIMD_PPC_INTRIN(signed long long);
  _GLIBCXX_SIMD_PPC_INTRIN(unsigned long long);
+ #endif
  #undef _GLIBCXX_SIMD_PPC_INTRIN
  
  template <typename _Tp, size_t _Bytes>
!   struct __intrinsic_type<_Tp, _Bytes, enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>>
    {
      static constexpr bool _S_is_ldouble = is_same_v<_Tp, long double>;
+ 
      // allow _Tp == long double with -mlong-double-64
      static_assert(!(_S_is_ldouble && sizeof(long double) > sizeof(double)),
! 		  "no __intrinsic_type support for 128-bit floating point on PowerPC");
! 
  #ifndef __VSX__
!     static_assert(!(is_same_v<_Tp, double>
! 		    || (_S_is_ldouble && sizeof(long double) == sizeof(double))),
! 		  "no __intrinsic_type support for 64-bit floating point on PowerPC w/o VSX");
  #endif
! 
!     static constexpr auto __element_type()
!     {
!       if constexpr (is_floating_point_v<_Tp>)
! 	{
! 	  if constexpr (_S_is_ldouble)
! 	    return double {};
! 	  else
! 	    return _Tp {};
! 	}
!       else if constexpr (is_signed_v<_Tp>)
! 	{
! 	  if constexpr (sizeof(_Tp) == sizeof(_SChar))
! 	    return _SChar {};
! 	  else if constexpr (sizeof(_Tp) == sizeof(short))
! 	    return short {};
! 	  else if constexpr (sizeof(_Tp) == sizeof(int))
! 	    return int {};
! 	  else if constexpr (sizeof(_Tp) == sizeof(_LLong))
! 	    return _LLong {};
! 	}
!       else
! 	{
! 	  if constexpr (sizeof(_Tp) == sizeof(_UChar))
! 	    return _UChar {};
! 	  else if constexpr (sizeof(_Tp) == sizeof(_UShort))
! 	    return _UShort {};
! 	  else if constexpr (sizeof(_Tp) == sizeof(_UInt))
! 	    return _UInt {};
! 	  else if constexpr (sizeof(_Tp) == sizeof(_ULLong))
! 	    return _ULLong {};
! 	}
!     }
! 
!     using type = typename __intrinsic_type_impl<decltype(__element_type())>::type;
    };
  #endif // __ALTIVEC__
  
*************** template <size_t _Width>
*** 2348,2369 ****
      static constexpr size_t _S_full_size = sizeof(_BuiltinType) * __CHAR_BIT__;
  
      _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper<bool, _S_full_size>
!     __as_full_vector() const { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper() = default;
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(_BuiltinType __k)
!       : _M_data(__k) {};
  
!     _GLIBCXX_SIMD_INTRINSIC operator const _BuiltinType&() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC operator _BuiltinType&()
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC _BuiltinType __intrin() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr value_type operator[](size_t __i) const
      { return _M_data & (_BuiltinType(1) << __i); }
  
      template <size_t __i>
--- 2386,2414 ----
      static constexpr size_t _S_full_size = sizeof(_BuiltinType) * __CHAR_BIT__;
  
      _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper<bool, _S_full_size>
!     __as_full_vector() const
!     { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapper() = default;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapper(_BuiltinType __k) : _M_data(__k) {};
! 
!     _GLIBCXX_SIMD_INTRINSIC
!     operator const _BuiltinType&() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC
!     operator _BuiltinType&()
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC _BuiltinType
!     __intrin() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr value_type
!     operator[](size_t __i) const
      { return _M_data & (_BuiltinType(1) << __i); }
  
      template <size_t __i>
*************** template <size_t _Width>
*** 2371,2377 ****
        operator[](_SizeConstant<__i>) const
        { return _M_data & (_BuiltinType(1) << __i); }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr void _M_set(size_t __i, value_type __x)
      {
        if (__x)
  	_M_data |= (_BuiltinType(1) << __i);
--- 2416,2423 ----
        operator[](_SizeConstant<__i>) const
        { return _M_data & (_BuiltinType(1) << __i); }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr void
!     _M_set(size_t __i, value_type __x)
      {
        if (__x)
  	_M_data |= (_BuiltinType(1) << __i);
*************** template <size_t _Width>
*** 2379,2389 ****
  	_M_data &= ~(_BuiltinType(1) << __i);
      }
  
!     _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool _M_is_constprop() const
      { return __builtin_constant_p(_M_data); }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_none_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
--- 2425,2436 ----
  	_M_data &= ~(_BuiltinType(1) << __i);
      }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool
!     _M_is_constprop() const
      { return __builtin_constant_p(_M_data); }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool
!     _M_is_constprop_none_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
*************** template <size_t _Width>
*** 2395,2401 ****
        return false;
      }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_all_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
--- 2442,2449 ----
        return false;
      }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool
!     _M_is_constprop_all_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
*************** template <bool _MustZeroInitPadding, typ
*** 2417,2426 ****
  template <typename _BuiltinType>
    struct _SimdWrapperBase<false, _BuiltinType> // no padding or no SNaNs
    {
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase() = default;
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase(_BuiltinType __init)
!       : _M_data(__init)
!     {}
  
      _BuiltinType _M_data;
    };
--- 2465,2475 ----
  template <typename _BuiltinType>
    struct _SimdWrapperBase<false, _BuiltinType> // no padding or no SNaNs
    {
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapperBase() = default;
! 
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapperBase(_BuiltinType __init) : _M_data(__init) {}
  
      _BuiltinType _M_data;
    };
*************** template <typename _BuiltinType>
*** 2429,2438 ****
    struct _SimdWrapperBase<true, _BuiltinType> // with padding that needs to
  					      // never become SNaN
    {
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase() : _M_data() {}
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase(_BuiltinType __init)
!       : _M_data(__init)
!     {}
  
      _BuiltinType _M_data;
    };
--- 2478,2488 ----
    struct _SimdWrapperBase<true, _BuiltinType> // with padding that needs to
  					      // never become SNaN
    {
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapperBase() : _M_data() {}
! 
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapperBase(_BuiltinType __init) : _M_data(__init) {}
  
      _BuiltinType _M_data;
    };
*************** template <typename _Tp, size_t _Width>
*** 2471,2494 ****
      __as_full_vector() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(initializer_list<_Tp> __init)
!       : _Base(__generate_from_n_evaluations<_Width, _BuiltinType>(
! 	[&](auto __i) { return __init.begin()[__i.value]; })) {}
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper() = default;
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(const _SimdWrapper&)
!       = default;
!     _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(_SimdWrapper&&) = default;
  
      _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper&
      operator=(const _SimdWrapper&) = default;
      _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper&
      operator=(_SimdWrapper&&) = default;
  
      template <typename _V, typename = enable_if_t<disjunction_v<
  			     is_same<_V, __vector_type_t<_Tp, _Width>>,
  			     is_same<_V, __intrinsic_type_t<_Tp, _Width>>>>>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(_V __x)
        // __vector_bitcast can convert e.g. __m128 to __vector(2) float
        : _Base(__vector_bitcast<_Tp, _Width>(__x)) {}
  
--- 2521,2553 ----
      __as_full_vector() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapper(initializer_list<_Tp> __init)
!     : _Base(__generate_from_n_evaluations<_Width, _BuiltinType>(
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		return __init.begin()[__i.value];
! 	      })) {}
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapper() = default;
! 
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapper(const _SimdWrapper&) = default;
! 
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     _SimdWrapper(_SimdWrapper&&) = default;
  
      _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper&
      operator=(const _SimdWrapper&) = default;
+ 
      _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper&
      operator=(_SimdWrapper&&) = default;
  
      template <typename _V, typename = enable_if_t<disjunction_v<
  			     is_same<_V, __vector_type_t<_Tp, _Width>>,
  			     is_same<_V, __intrinsic_type_t<_Tp, _Width>>>>>
!       _GLIBCXX_SIMD_INTRINSIC constexpr
!       _SimdWrapper(_V __x)
        // __vector_bitcast can convert e.g. __m128 to __vector(2) float
        : _Base(__vector_bitcast<_Tp, _Width>(__x)) {}
  
*************** template <typename _Tp, size_t _Width>
*** 2498,2530 ****
        _GLIBCXX_SIMD_INTRINSIC constexpr
        operator _SimdTuple<_Tp, _As...>() const
        {
! 	const auto& dd = _M_data; // workaround for GCC7 ICE
! 	return __generate_from_n_evaluations<sizeof...(_As),
! 					     _SimdTuple<_Tp, _As...>>([&](
! 	  auto __i) constexpr { return dd[int(__i)]; });
        }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr operator const _BuiltinType&() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr operator _BuiltinType&()
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _Tp operator[](size_t __i) const
      { return _M_data[__i]; }
  
      template <size_t __i>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _Tp operator[](_SizeConstant<__i>) const
        { return _M_data[__i]; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr void _M_set(size_t __i, _Tp __x)
!     { _M_data[__i] = __x; }
  
      _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool _M_is_constprop() const
      { return __builtin_constant_p(_M_data); }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_none_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
--- 2557,2602 ----
        _GLIBCXX_SIMD_INTRINSIC constexpr
        operator _SimdTuple<_Tp, _As...>() const
        {
! 	return __generate_from_n_evaluations<sizeof...(_As), _SimdTuple<_Tp, _As...>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 		 { return _M_data[int(__i)]; });
        }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     operator const _BuiltinType&() const
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     operator _BuiltinType&()
      { return _M_data; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _Tp
!     operator[](size_t __i) const
      { return _M_data[__i]; }
  
      template <size_t __i>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _Tp
!       operator[](_SizeConstant<__i>) const
        { return _M_data[__i]; }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr void
!     _M_set(size_t __i, _Tp __x)
!     {
!       if (__builtin_is_constant_evaluated())
! 	_M_data = __generate_from_n_evaluations<_Width, _BuiltinType>([&](auto __j) {
! 		    return __j == __i ? __x : _M_data[__j()];
! 		  });
!       else
! 	_M_data[__i] = __x;
!     }
  
      _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool
!     _M_is_constprop() const
      { return __builtin_constant_p(_M_data); }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool
!     _M_is_constprop_none_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
*************** template <typename _Tp, size_t _Width>
*** 2539,2550 ****
  	  else
  	    __execute_n_times<_Width>(
  	      [&](auto __i) { __r &= _M_data[__i.value] == _Tp(); });
! 	  return __r;
  	}
        return false;
      }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_all_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
--- 2611,2624 ----
  	  else
  	    __execute_n_times<_Width>(
  	      [&](auto __i) { __r &= _M_data[__i.value] == _Tp(); });
! 	  if (__builtin_constant_p(__r))
! 	    return __r;
  	}
        return false;
      }
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr bool
!     _M_is_constprop_all_of() const
      {
        if (__builtin_constant_p(_M_data))
  	{
*************** template <typename _Tp, size_t _Width>
*** 2559,2565 ****
  	  else
  	    __execute_n_times<_Width>(
  	      [&](auto __i) { __r &= _M_data[__i.value] == ~_Tp(); });
! 	  return __r;
  	}
        return false;
      }
--- 2633,2640 ----
  	  else
  	    __execute_n_times<_Width>(
  	      [&](auto __i) { __r &= _M_data[__i.value] == ~_Tp(); });
! 	  if (__builtin_constant_p(__r))
! 	    return __r;
  	}
        return false;
      }
*************** template <typename _Tp>
*** 2675,2680 ****
--- 2750,2781 ----
  } // namespace simd_abi
  
  // traits {{{1
+ template <typename _Tp>
+   struct is_simd_flag_type
+   : false_type
+   {};
+ 
+ template <>
+   struct is_simd_flag_type<element_aligned_tag>
+   : true_type
+   {};
+ 
+ template <>
+   struct is_simd_flag_type<vector_aligned_tag>
+   : true_type
+   {};
+ 
+ template <size_t _Np>
+   struct is_simd_flag_type<overaligned_tag<_Np>>
+   : __bool_constant<(_Np > 0) and __has_single_bit(_Np)>
+   {};
+ 
+ template <typename _Tp>
+   inline constexpr bool is_simd_flag_type_v = is_simd_flag_type<_Tp>::value;
+ 
+ template <typename _Tp, typename = enable_if_t<is_simd_flag_type_v<_Tp>>>
+   using _IsSimdFlagType = _Tp;
+ 
  // is_abi_tag {{{2
  template <typename _Tp, typename = void_t<>>
    struct is_abi_tag : false_type {};
*************** template <typename _Tp, typename _V, typ
*** 2741,2762 ****
    struct rebind_simd;
  
  template <typename _Tp, typename _Up, typename _Abi>
!   struct rebind_simd<
!     _Tp, simd<_Up, _Abi>,
!     void_t<simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>>
!   {
!     using type
!       = simd<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>;
!   };
  
  template <typename _Tp, typename _Up, typename _Abi>
!   struct rebind_simd<
!     _Tp, simd_mask<_Up, _Abi>,
!     void_t<simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>>
!   {
!     using type
!       = simd_mask<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>;
!   };
  
  template <typename _Tp, typename _V>
    using rebind_simd_t = typename rebind_simd<_Tp, _V>::type;
--- 2842,2855 ----
    struct rebind_simd;
  
  template <typename _Tp, typename _Up, typename _Abi>
!   struct rebind_simd<_Tp, simd<_Up, _Abi>,
! 		     void_t<simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>>
!   { using type = simd<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>; };
  
  template <typename _Tp, typename _Up, typename _Abi>
!   struct rebind_simd<_Tp, simd_mask<_Up, _Abi>,
! 		     void_t<simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>>
!   { using type = simd_mask<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>; };
  
  template <typename _Tp, typename _V>
    using rebind_simd_t = typename rebind_simd<_Tp, _V>::type;
*************** template <int _Np, typename _V, typename
*** 2766,2778 ****
    struct resize_simd;
  
  template <int _Np, typename _Tp, typename _Abi>
!   struct resize_simd<_Np, simd<_Tp, _Abi>,
! 		     void_t<simd_abi::deduce_t<_Tp, _Np, _Abi>>>
    { using type = simd<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; };
  
  template <int _Np, typename _Tp, typename _Abi>
!   struct resize_simd<_Np, simd_mask<_Tp, _Abi>,
! 		     void_t<simd_abi::deduce_t<_Tp, _Np, _Abi>>>
    { using type = simd_mask<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; };
  
  template <int _Np, typename _V>
--- 2859,2869 ----
    struct resize_simd;
  
  template <int _Np, typename _Tp, typename _Abi>
!   struct resize_simd<_Np, simd<_Tp, _Abi>, void_t<simd_abi::deduce_t<_Tp, _Np, _Abi>>>
    { using type = simd<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; };
  
  template <int _Np, typename _Tp, typename _Abi>
!   struct resize_simd<_Np, simd_mask<_Tp, _Abi>, void_t<simd_abi::deduce_t<_Tp, _Np, _Abi>>>
    { using type = simd_mask<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; };
  
  template <int _Np, typename _V>
*************** template <typename _Tp, size_t _Np>
*** 2821,2833 ****
  
  // casts [simd.casts] {{{1
  // static_simd_cast {{{2
! template <typename _Tp, typename _Up, typename _Ap, bool = is_simd_v<_Tp>,
! 	  typename = void>
    struct __static_simd_cast_return_type;
  
  template <typename _Tp, typename _A0, typename _Up, typename _Ap>
!   struct __static_simd_cast_return_type<simd_mask<_Tp, _A0>, _Up, _Ap, false,
! 					void>
    : __static_simd_cast_return_type<simd<_Tp, _A0>, _Up, _Ap> {};
  
  template <typename _Tp, typename _Up, typename _Ap>
--- 2912,2922 ----
  
  // casts [simd.casts] {{{1
  // static_simd_cast {{{2
! template <typename _Tp, typename _Up, typename _Ap, bool = is_simd_v<_Tp>, typename = void>
    struct __static_simd_cast_return_type;
  
  template <typename _Tp, typename _A0, typename _Up, typename _Ap>
!   struct __static_simd_cast_return_type<simd_mask<_Tp, _A0>, _Up, _Ap, false, void>
    : __static_simd_cast_return_type<simd<_Tp, _A0>, _Up, _Ap> {};
  
  template <typename _Tp, typename _Up, typename _Ap>
*************** template <typename _Tp, typename _Up, ty
*** 2958,2963 ****
--- 3047,3056 ----
    {
      if constexpr (is_same_v<typename _Tp::abi_type, _Ap>)
        return __x;
+     else if (__builtin_is_constant_evaluated())
+       return _Tp([&](auto __i) constexpr {
+ 	       return __i < simd_size_v<_Up, _Ap> ? __x[__i] : _Up();
+ 	     });
      else if constexpr (simd_size_v<_Up, _Ap> == 1)
        {
  	_Tp __r{};
*************** template <typename _Tp, int _Np>
*** 3004,3024 ****
    { return __x; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC auto
    to_fixed_size(const simd<_Tp, _Ap>& __x)
    {
!     return simd<_Tp, simd_abi::fixed_size<simd_size_v<_Tp, _Ap>>>([&__x](
!       auto __i) constexpr { return __x[__i]; });
    }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC auto
    to_fixed_size(const simd_mask<_Tp, _Ap>& __x)
    {
!     constexpr int _Np = simd_mask<_Tp, _Ap>::size();
!     fixed_size_simd_mask<_Tp, _Np> __r;
!     __execute_n_times<_Np>([&](auto __i) constexpr { __r[__i] = __x[__i]; });
!     return __r;
    }
  
  // to_native {{{2
--- 3097,3115 ----
    { return __x; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC fixed_size_simd<_Tp, simd_size_v<_Tp, _Ap>>
    to_fixed_size(const simd<_Tp, _Ap>& __x)
    {
!     using _Rp = fixed_size_simd<_Tp, simd_size_v<_Tp, _Ap>>;
!     return _Rp([&__x](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; });
    }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC fixed_size_simd_mask<_Tp, simd_size_v<_Tp, _Ap>>
    to_fixed_size(const simd_mask<_Tp, _Ap>& __x)
    {
!     return {__private_init,
! 	    [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }};
    }
  
  // to_native {{{2
*************** template <typename _Tp, size_t _Np>
*** 3037,3043 ****
    enable_if_t<(_Np == native_simd_mask<_Tp>::size()), native_simd_mask<_Tp>>
    to_native(const fixed_size_simd_mask<_Tp, _Np>& __x)
    {
!     return native_simd_mask<_Tp>([&](auto __i) constexpr { return __x[__i]; });
    }
  
  // to_compatible {{{2
--- 3128,3136 ----
    enable_if_t<(_Np == native_simd_mask<_Tp>::size()), native_simd_mask<_Tp>>
    to_native(const fixed_size_simd_mask<_Tp, _Np>& __x)
    {
!     return native_simd_mask<_Tp>(
! 	     __private_init,
! 	     [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; });
    }
  
  // to_compatible {{{2
*************** template <typename _Tp, size_t _Np>
*** 3054,3060 ****
    _GLIBCXX_SIMD_INTRINSIC
    enable_if_t<(_Np == simd_mask<_Tp>::size()), simd_mask<_Tp>>
    to_compatible(const simd_mask<_Tp, simd_abi::fixed_size<_Np>>& __x)
!   { return simd_mask<_Tp>([&](auto __i) constexpr { return __x[__i]; }); }
  
  // masked assignment [simd_mask.where] {{{1
  
--- 3147,3156 ----
    _GLIBCXX_SIMD_INTRINSIC
    enable_if_t<(_Np == simd_mask<_Tp>::size()), simd_mask<_Tp>>
    to_compatible(const simd_mask<_Tp, simd_abi::fixed_size<_Np>>& __x)
!   {
!     return simd_mask<_Tp>(
! 	     [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; });
!   }
  
  // masked assignment [simd_mask.where] {{{1
  
*************** template <typename _M, typename _Tp>
*** 3087,3098 ****
  
    public:
      const_where_expression(const const_where_expression&) = delete;
      const_where_expression& operator=(const const_where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC const_where_expression(const _M& __kk, const _Tp& dd)
!       : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {}
  
!     _GLIBCXX_SIMD_INTRINSIC _V
      operator-() const&&
      {
        return {__private_init,
--- 3183,3196 ----
  
    public:
      const_where_expression(const const_where_expression&) = delete;
+ 
      const_where_expression& operator=(const const_where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     const_where_expression(const _M& __kk, const _Tp& dd)
!     : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {}
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V
      operator-() const&&
      {
        return {__private_init,
*************** template <typename _M, typename _Tp>
*** 3101,3108 ****
      }
  
      template <typename _Up, typename _Flags>
!       [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _V
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) const&&
        {
  	return {__private_init,
  		_Impl::_S_masked_load(__data(_M_value), __data(_M_k),
--- 3199,3206 ----
      }
  
      template <typename _Up, typename _Flags>
!       [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&&
        {
  	return {__private_init,
  		_Impl::_S_masked_load(__data(_M_value), __data(_M_k),
*************** template <typename _M, typename _Tp>
*** 3110,3117 ****
        }
  
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC void
!       copy_to(_LoadStorePtr<_Up, value_type>* __mem, _Flags) const&&
        {
  	_Impl::_S_masked_store(__data(_M_value),
  			       _Flags::template _S_apply<_V>(__mem),
--- 3208,3215 ----
        }
  
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!       copy_to(_LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&&
        {
  	_Impl::_S_masked_store(__data(_M_value),
  			       _Flags::template _S_apply<_V>(__mem),
*************** template <typename _Tp>
*** 3131,3138 ****
      struct _Wrapper { using value_type = _V; };
  
    protected:
!     using value_type =
!       typename conditional_t<is_arithmetic_v<_V>, _Wrapper, _V>::value_type;
  
      _GLIBCXX_SIMD_INTRINSIC friend const _M&
      __get_mask(const const_where_expression& __x)
--- 3229,3236 ----
      struct _Wrapper { using value_type = _V; };
  
    protected:
!     using value_type
!       = typename conditional_t<is_arithmetic_v<_V>, _Wrapper, _V>::value_type;
  
      _GLIBCXX_SIMD_INTRINSIC friend const _M&
      __get_mask(const const_where_expression& __x)
*************** template <typename _Tp>
*** 3149,3168 ****
      const_where_expression(const const_where_expression&) = delete;
      const_where_expression& operator=(const const_where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC const_where_expression(const bool __kk, const _Tp& dd)
!       : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {}
  
!     _GLIBCXX_SIMD_INTRINSIC _V operator-() const&&
      { return _M_k ? -_M_value : _M_value; }
  
      template <typename _Up, typename _Flags>
!       [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _V
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) const&&
        { return _M_k ? static_cast<_V>(__mem[0]) : _M_value; }
  
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC void
!       copy_to(_LoadStorePtr<_Up, value_type>* __mem, _Flags) const&&
        {
  	if (_M_k)
  	  __mem[0] = _M_value;
--- 3247,3268 ----
      const_where_expression(const const_where_expression&) = delete;
      const_where_expression& operator=(const const_where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     const_where_expression(const bool __kk, const _Tp& dd)
!     : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {}
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V
!     operator-() const&&
      { return _M_k ? -_M_value : _M_value; }
  
      template <typename _Up, typename _Flags>
!       [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&&
        { return _M_k ? static_cast<_V>(__mem[0]) : _M_value; }
  
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!       copy_to(_LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&&
        {
  	if (_M_k)
  	  __mem[0] = _M_value;
*************** template <typename _M, typename _Tp>
*** 3187,3204 ****
        is_same<typename _M::abi_type, typename _Tp::abi_type>::value, "");
      static_assert(_M::size() == _Tp::size(), "");
  
!     _GLIBCXX_SIMD_INTRINSIC friend _Tp& __get_lvalue(where_expression& __x)
      { return __x._M_value; }
  
    public:
      where_expression(const where_expression&) = delete;
      where_expression& operator=(const where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC where_expression(const _M& __kk, _Tp& dd)
!       : const_where_expression<_M, _Tp>(__kk, dd) {}
  
      template <typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC void operator=(_Up&& __x) &&
        {
  	_Impl::_S_masked_assign(__data(_M_k), __data(_M_value),
  				__to_value_type_or_member_type<_Tp>(
--- 3287,3307 ----
        is_same<typename _M::abi_type, typename _Tp::abi_type>::value, "");
      static_assert(_M::size() == _Tp::size(), "");
  
!     _GLIBCXX_SIMD_INTRINSIC friend constexpr _Tp&
!     __get_lvalue(where_expression& __x)
      { return __x._M_value; }
  
    public:
      where_expression(const where_expression&) = delete;
      where_expression& operator=(const where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
!     where_expression(const _M& __kk, _Tp& dd)
!     : const_where_expression<_M, _Tp>(__kk, dd) {}
  
      template <typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!       operator=(_Up&& __x) &&
        {
  	_Impl::_S_masked_assign(__data(_M_k), __data(_M_value),
  				__to_value_type_or_member_type<_Tp>(
*************** template <typename _M, typename _Tp>
*** 3207,3220 ****
  
  #define _GLIBCXX_SIMD_OP_(__op, __name)                                        \
    template <typename _Up>                                                      \
!     _GLIBCXX_SIMD_INTRINSIC void operator __op##=(_Up&& __x)&&                 \
      {                                                                          \
        _Impl::template _S_masked_cassign(                                       \
  	__data(_M_k), __data(_M_value),                                        \
  	__to_value_type_or_member_type<_Tp>(static_cast<_Up&&>(__x)),          \
! 	[](auto __impl, auto __lhs, auto __rhs) constexpr {                    \
! 	return __impl.__name(__lhs, __rhs);                                    \
! 	});                                                                    \
      }                                                                          \
    static_assert(true)
      _GLIBCXX_SIMD_OP_(+, _S_plus);
--- 3310,3324 ----
  
  #define _GLIBCXX_SIMD_OP_(__op, __name)                                        \
    template <typename _Up>                                                      \
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void                       \
!     operator __op##=(_Up&& __x)&&                                              \
      {                                                                          \
        _Impl::template _S_masked_cassign(                                       \
  	__data(_M_k), __data(_M_value),                                        \
  	__to_value_type_or_member_type<_Tp>(static_cast<_Up&&>(__x)),          \
! 	[](auto __impl, auto __lhs, auto __rhs)                                \
! 	  constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA                         \
! 	{ return __impl.__name(__lhs, __rhs); });                              \
      }                                                                          \
    static_assert(true)
      _GLIBCXX_SIMD_OP_(+, _S_plus);
*************** template <typename _M, typename _Tp>
*** 3229,3276 ****
      _GLIBCXX_SIMD_OP_(>>, _S_shift_right);
  #undef _GLIBCXX_SIMD_OP_
  
!     _GLIBCXX_SIMD_INTRINSIC void operator++() &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__increment>(__data(_M_k),
! 						       __data(_M_value));
      }
  
!     _GLIBCXX_SIMD_INTRINSIC void operator++(int) &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__increment>(__data(_M_k),
! 						       __data(_M_value));
      }
  
!     _GLIBCXX_SIMD_INTRINSIC void operator--() &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__decrement>(__data(_M_k),
! 						       __data(_M_value));
      }
  
!     _GLIBCXX_SIMD_INTRINSIC void operator--(int) &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__decrement>(__data(_M_k),
! 						       __data(_M_value));
      }
  
      // intentionally hides const_where_expression::copy_from
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC void
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) &&
        {
! 	__data(_M_value)
! 	  = _Impl::_S_masked_load(__data(_M_value), __data(_M_k),
! 				  _Flags::template _S_apply<_Tp>(__mem));
        }
    };
  
  // where_expression<bool, T> {{{2
  template <typename _Tp>
!   class where_expression<bool, _Tp> : public const_where_expression<bool, _Tp>
    {
      using _M = bool;
      using typename const_where_expression<_M, _Tp>::value_type;
--- 3333,3380 ----
      _GLIBCXX_SIMD_OP_(>>, _S_shift_right);
  #undef _GLIBCXX_SIMD_OP_
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator++() &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__increment>(__data(_M_k), __data(_M_value));
      }
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator++(int) &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__increment>(__data(_M_k), __data(_M_value));
      }
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator--() &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__decrement>(__data(_M_k), __data(_M_value));
      }
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator--(int) &&
      {
        __data(_M_value)
! 	= _Impl::template _S_masked_unary<__decrement>(__data(_M_k), __data(_M_value));
      }
  
      // intentionally hides const_where_expression::copy_from
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) &&
        {
! 	__data(_M_value) = _Impl::_S_masked_load(__data(_M_value), __data(_M_k),
! 						 _Flags::template _S_apply<_Tp>(__mem));
        }
    };
  
  // where_expression<bool, T> {{{2
  template <typename _Tp>
!   class where_expression<bool, _Tp>
!   : public const_where_expression<bool, _Tp>
    {
      using _M = bool;
      using typename const_where_expression<_M, _Tp>::value_type;
*************** template <typename _Tp>
*** 3281,3292 ****
      where_expression(const where_expression&) = delete;
      where_expression& operator=(const where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC where_expression(const _M& __kk, _Tp& dd)
!       : const_where_expression<_M, _Tp>(__kk, dd) {}
  
  #define _GLIBCXX_SIMD_OP_(__op)                                                \
      template <typename _Up>                                                    \
!       _GLIBCXX_SIMD_INTRINSIC void operator __op(_Up&& __x)&&                  \
        { if (_M_k) _M_value __op static_cast<_Up&&>(__x); }
  
      _GLIBCXX_SIMD_OP_(=)
--- 3385,3398 ----
      where_expression(const where_expression&) = delete;
      where_expression& operator=(const where_expression&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
!     where_expression(const _M& __kk, _Tp& dd)
!     : const_where_expression<_M, _Tp>(__kk, dd) {}
  
  #define _GLIBCXX_SIMD_OP_(__op)                                                \
      template <typename _Up>                                                    \
!       _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void                     \
!       operator __op(_Up&& __x)&&                                               \
        { if (_M_k) _M_value __op static_cast<_Up&&>(__x); }
  
      _GLIBCXX_SIMD_OP_(=)
*************** template <typename _Tp>
*** 3302,3368 ****
      _GLIBCXX_SIMD_OP_(>>=)
    #undef _GLIBCXX_SIMD_OP_
  
!     _GLIBCXX_SIMD_INTRINSIC void operator++() &&
      { if (_M_k) ++_M_value; }
  
!     _GLIBCXX_SIMD_INTRINSIC void operator++(int) &&
      { if (_M_k) ++_M_value; }
  
!     _GLIBCXX_SIMD_INTRINSIC void operator--() &&
      { if (_M_k) --_M_value; }
  
!     _GLIBCXX_SIMD_INTRINSIC void operator--(int) &&
      { if (_M_k) --_M_value; }
  
      // intentionally hides const_where_expression::copy_from
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC void
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) &&
        { if (_M_k) _M_value = __mem[0]; }
    };
  
  // where {{{1
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC where_expression<simd_mask<_Tp, _Ap>, simd<_Tp, _Ap>>
    where(const typename simd<_Tp, _Ap>::mask_type& __k, simd<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC
!     const_where_expression<simd_mask<_Tp, _Ap>, simd<_Tp, _Ap>>
!     where(const typename simd<_Tp, _Ap>::mask_type& __k,
! 	  const simd<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC
!     where_expression<simd_mask<_Tp, _Ap>, simd_mask<_Tp, _Ap>>
!     where(const remove_const_t<simd_mask<_Tp, _Ap>>& __k,
! 	  simd_mask<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC
!     const_where_expression<simd_mask<_Tp, _Ap>, simd_mask<_Tp, _Ap>>
!     where(const remove_const_t<simd_mask<_Tp, _Ap>>& __k,
! 	  const simd_mask<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp>
!   _GLIBCXX_SIMD_INTRINSIC where_expression<bool, _Tp>
    where(_ExactBool __k, _Tp& __value)
    { return {__k, __value}; }
  
  template <typename _Tp>
!   _GLIBCXX_SIMD_INTRINSIC const_where_expression<bool, _Tp>
    where(_ExactBool __k, const _Tp& __value)
    { return {__k, __value}; }
  
!   template <typename _Tp, typename _Ap>
!     void where(bool __k, simd<_Tp, _Ap>& __value) = delete;
  
!   template <typename _Tp, typename _Ap>
!     void where(bool __k, const simd<_Tp, _Ap>& __value) = delete;
  
  // proposed mask iterations {{{1
  namespace __proposed {
--- 3408,3478 ----
      _GLIBCXX_SIMD_OP_(>>=)
    #undef _GLIBCXX_SIMD_OP_
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator++() &&
      { if (_M_k) ++_M_value; }
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator++(int) &&
      { if (_M_k) ++_M_value; }
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator--() &&
      { if (_M_k) --_M_value; }
  
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!     operator--(int) &&
      { if (_M_k) --_M_value; }
  
      // intentionally hides const_where_expression::copy_from
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void
!       copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) &&
        { if (_M_k) _M_value = __mem[0]; }
    };
  
  // where {{{1
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
!   where_expression<simd_mask<_Tp, _Ap>, simd<_Tp, _Ap>>
    where(const typename simd<_Tp, _Ap>::mask_type& __k, simd<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
!   const_where_expression<simd_mask<_Tp, _Ap>, simd<_Tp, _Ap>>
!   where(const typename simd<_Tp, _Ap>::mask_type& __k, const simd<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
!   where_expression<simd_mask<_Tp, _Ap>, simd_mask<_Tp, _Ap>>
!   where(const remove_const_t<simd_mask<_Tp, _Ap>>& __k, simd_mask<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
!   const_where_expression<simd_mask<_Tp, _Ap>, simd_mask<_Tp, _Ap>>
!   where(const remove_const_t<simd_mask<_Tp, _Ap>>& __k, const simd_mask<_Tp, _Ap>& __value)
    { return {__k, __value}; }
  
  template <typename _Tp>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression<bool, _Tp>
    where(_ExactBool __k, _Tp& __value)
    { return {__k, __value}; }
  
  template <typename _Tp>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression<bool, _Tp>
    where(_ExactBool __k, const _Tp& __value)
    { return {__k, __value}; }
  
! template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_CONSTEXPR void
!   where(bool __k, simd<_Tp, _Ap>& __value) = delete;
  
! template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_CONSTEXPR void
!   where(bool __k, const simd<_Tp, _Ap>& __value) = delete;
  
  // proposed mask iterations {{{1
  namespace __proposed {
*************** template <size_t _Np>
*** 3379,3388 ****
        size_t __mask;
        size_t __bit;
  
!       _GLIBCXX_SIMD_INTRINSIC void __next_bit()
        { __bit = __builtin_ctzl(__mask); }
  
!       _GLIBCXX_SIMD_INTRINSIC void __reset_lsb()
        {
  	// 01100100 - 1 = 01100011
  	__mask &= (__mask - 1);
--- 3489,3500 ----
        size_t __mask;
        size_t __bit;
  
!       _GLIBCXX_SIMD_INTRINSIC void
!       __next_bit()
        { __bit = __builtin_ctzl(__mask); }
  
!       _GLIBCXX_SIMD_INTRINSIC void
!       __reset_lsb()
        {
  	// 01100100 - 1 = 01100011
  	__mask &= (__mask - 1);
*************** template <size_t _Np>
*** 3394,3413 ****
        iterator(const iterator&) = default;
        iterator(iterator&&) = default;
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE size_t operator->() const
        { return __bit; }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE size_t operator*() const
        { return __bit; }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE iterator& operator++()
        {
  	__reset_lsb();
  	__next_bit();
  	return *this;
        }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE iterator operator++(int)
        {
  	iterator __tmp = *this;
  	__reset_lsb();
--- 3506,3529 ----
        iterator(const iterator&) = default;
        iterator(iterator&&) = default;
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE size_t
!       operator->() const
        { return __bit; }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE size_t
!       operator*() const
        { return __bit; }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE iterator&
!       operator++()
        {
  	__reset_lsb();
  	__next_bit();
  	return *this;
        }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE iterator
!       operator++(int)
        {
  	iterator __tmp = *this;
  	__reset_lsb();
*************** template <size_t _Np>
*** 3415,3431 ****
  	return __tmp;
        }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE bool operator==(const iterator& __rhs) const
        { return __mask == __rhs.__mask; }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE bool operator!=(const iterator& __rhs) const
        { return __mask != __rhs.__mask; }
      };
  
!     iterator begin() const
      { return __bits.to_ullong(); }
  
!     iterator end() const
      { return 0; }
    };
  
--- 3531,3551 ----
  	return __tmp;
        }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE bool
!       operator==(const iterator& __rhs) const
        { return __mask == __rhs.__mask; }
  
!       _GLIBCXX_SIMD_ALWAYS_INLINE bool
!       operator!=(const iterator& __rhs) const
        { return __mask != __rhs.__mask; }
      };
  
!     iterator
!     begin() const
      { return __bits.to_ullong(); }
  
!     iterator
!     end() const
      { return 0; }
    };
  
*************** template <typename _Tp, typename _Ap>
*** 3440,3454 ****
  // reductions [simd.reductions] {{{1
  template <typename _Tp, typename _Abi, typename _BinaryOperation = plus<>>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp
!   reduce(const simd<_Tp, _Abi>& __v,
! 	 _BinaryOperation __binary_op = _BinaryOperation())
    { return _Abi::_SimdImpl::_S_reduce(__v, __binary_op); }
  
  template <typename _M, typename _V, typename _BinaryOperation = plus<>>
    _GLIBCXX_SIMD_INTRINSIC typename _V::value_type
    reduce(const const_where_expression<_M, _V>& __x,
! 	 typename _V::value_type __identity_element,
! 	 _BinaryOperation __binary_op)
    {
      if (__builtin_expect(none_of(__get_mask(__x)), false))
        return __identity_element;
--- 3560,3572 ----
  // reductions [simd.reductions] {{{1
  template <typename _Tp, typename _Abi, typename _BinaryOperation = plus<>>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp
!   reduce(const simd<_Tp, _Abi>& __v, _BinaryOperation __binary_op = _BinaryOperation())
    { return _Abi::_SimdImpl::_S_reduce(__v, __binary_op); }
  
  template <typename _M, typename _V, typename _BinaryOperation = plus<>>
    _GLIBCXX_SIMD_INTRINSIC typename _V::value_type
    reduce(const const_where_expression<_M, _V>& __x,
! 	 typename _V::value_type __identity_element, _BinaryOperation __binary_op)
    {
      if (__builtin_expect(none_of(__get_mask(__x)), false))
        return __identity_element;
*************** template <typename _M, typename _V>
*** 3487,3502 ****
  template <typename _Tp, typename _Abi>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp
    hmin(const simd<_Tp, _Abi>& __v) noexcept
!   {
!     return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Minimum());
!   }
  
  template <typename _Tp, typename _Abi>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp
    hmax(const simd<_Tp, _Abi>& __v) noexcept
!   {
!     return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Maximum());
!   }
  
  template <typename _M, typename _V>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
--- 3605,3616 ----
  template <typename _Tp, typename _Abi>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp
    hmin(const simd<_Tp, _Abi>& __v) noexcept
!   { return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Minimum()); }
  
  template <typename _Tp, typename _Abi>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp
    hmax(const simd<_Tp, _Abi>& __v) noexcept
!   { return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Maximum()); }
  
  template <typename _M, typename _V>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR
*************** template <typename _Tp, typename _Ap>
*** 3564,3571 ****
  
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
!   clamp(const simd<_Tp, _Ap>& __v, const simd<_Tp, _Ap>& __lo,
! 	const simd<_Tp, _Ap>& __hi)
    {
      using _Impl = typename _Ap::_SimdImpl;
      return {__private_init,
--- 3678,3684 ----
  
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
!   clamp(const simd<_Tp, _Ap>& __v, const simd<_Tp, _Ap>& __lo, const simd<_Tp, _Ap>& __hi)
    {
      using _Impl = typename _Ap::_SimdImpl;
      return {__private_init,
*************** template <size_t... _Sizes, typename _Tp
*** 3582,3594 ****
  
  // __extract_part {{{
  template <int _Index, int _Total, int _Combine = 1, typename _Tp, size_t _Np>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_CONST
    _SimdWrapper<_Tp, _Np / _Total * _Combine>
    __extract_part(const _SimdWrapper<_Tp, _Np> __x);
  
! template <int Index, int Parts, int _Combine = 1, typename _Tp, typename _A0,
! 	  typename... _As>
!   _GLIBCXX_SIMD_INTRINSIC auto
    __extract_part(const _SimdTuple<_Tp, _A0, _As...>& __x);
  
  // }}}
--- 3695,3706 ----
  
  // __extract_part {{{
  template <int _Index, int _Total, int _Combine = 1, typename _Tp, size_t _Np>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_CONST constexpr
    _SimdWrapper<_Tp, _Np / _Total * _Combine>
    __extract_part(const _SimdWrapper<_Tp, _Np> __x);
  
! template <int _Index, int _Parts, int _Combine = 1, typename _Tp, typename _A0, typename... _As>
!   _GLIBCXX_SIMD_INTRINSIC constexpr auto
    __extract_part(const _SimdTuple<_Tp, _A0, _As...>& __x);
  
  // }}}
*************** template <size_t _V0, size_t... _Values>
*** 3597,3603 ****
    struct _SizeList
    {
      template <size_t _I>
!       static constexpr size_t _S_at(_SizeConstant<_I> = {})
        {
  	if constexpr (_I == 0)
  	  return _V0;
--- 3709,3716 ----
    struct _SizeList
    {
      template <size_t _I>
!       static constexpr size_t
!       _S_at(_SizeConstant<_I> = {})
        {
  	if constexpr (_I == 0)
  	  return _V0;
*************** template <size_t _V0, size_t... _Values>
*** 3606,3612 ****
        }
  
      template <size_t _I>
!       static constexpr auto _S_before(_SizeConstant<_I> = {})
        {
  	if constexpr (_I == 0)
  	  return _SizeConstant<0>();
--- 3719,3726 ----
        }
  
      template <size_t _I>
!       static constexpr auto
!       _S_before(_SizeConstant<_I> = {})
        {
  	if constexpr (_I == 0)
  	  return _SizeConstant<0>();
*************** template <size_t _V0, size_t... _Values>
*** 3616,3622 ****
        }
  
      template <size_t _Np>
!       static constexpr auto _S_pop_front(_SizeConstant<_Np> = {})
        {
  	if constexpr (_Np == 0)
  	  return _SizeList();
--- 3730,3737 ----
        }
  
      template <size_t _Np>
!       static constexpr auto
!       _S_pop_front(_SizeConstant<_Np> = {})
        {
  	if constexpr (_Np == 0)
  	  return _SizeList();
*************** template <size_t... _Sizes, typename _Tp
*** 3699,3722 ****
  
  // split<simd>(simd) {{{
  template <typename _V, typename _Ap,
! 	  size_t Parts = simd_size_v<typename _V::value_type, _Ap> / _V::size()>
!   enable_if_t<simd_size_v<typename _V::value_type, _Ap> == Parts * _V::size()
! 	      && is_simd_v<_V>, array<_V, Parts>>
    split(const simd<typename _V::value_type, _Ap>& __x)
    {
      using _Tp = typename _V::value_type;
!     if constexpr (Parts == 1)
        {
  	return {simd_cast<_V>(__x)};
        }
      else if (__x._M_is_constprop())
        {
! 	return __generate_from_n_evaluations<Parts, array<_V, Parts>>([&](
! 	  auto __i) constexpr {
! 	  return _V([&](auto __j) constexpr {
! 	    return __x[__i * _V::size() + __j];
! 	  });
! 	});
        }
      else if constexpr (
        __is_fixed_size_abi_v<_Ap>
--- 3814,3836 ----
  
  // split<simd>(simd) {{{
  template <typename _V, typename _Ap,
! 	  size_t _Parts = simd_size_v<typename _V::value_type, _Ap> / _V::size()>
!   enable_if_t<simd_size_v<typename _V::value_type, _Ap> == _Parts * _V::size()
! 		&& is_simd_v<_V>, array<_V, _Parts>>
    split(const simd<typename _V::value_type, _Ap>& __x)
    {
      using _Tp = typename _V::value_type;
!     if constexpr (_Parts == 1)
        {
  	return {simd_cast<_V>(__x)};
        }
      else if (__x._M_is_constprop())
        {
! 	return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return _V([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 			     { return __x[__i * _V::size() + __j]; });
! 		 });
        }
      else if constexpr (
        __is_fixed_size_abi_v<_Ap>
*************** template <typename _V, typename _Ap,
*** 3729,3777 ****
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
        const __may_alias<_Tp>* const __element_ptr
  	= reinterpret_cast<const __may_alias<_Tp>*>(&__data(__x));
!       return __generate_from_n_evaluations<Parts, array<_V, Parts>>([&](
! 	auto __i) constexpr {
! 	return _V(__element_ptr + __i * _V::size(), vector_aligned);
!       });
  #else
        const auto& __xx = __data(__x);
!       return __generate_from_n_evaluations<Parts, array<_V, Parts>>([&](
! 	auto __i) constexpr {
! 	[[maybe_unused]] constexpr size_t __offset
! 	  = decltype(__i)::value * _V::size();
! 	return _V([&](auto __j) constexpr {
! 	  constexpr _SizeConstant<__j + __offset> __k;
! 	  return __xx[__k];
! 	});
!       });
  #endif
      }
    else if constexpr (is_same_v<typename _V::abi_type, simd_abi::scalar>)
      {
        // normally memcpy should work here as well
!       return __generate_from_n_evaluations<Parts, array<_V, Parts>>([&](
! 	auto __i) constexpr { return __x[__i]; });
      }
    else
      {
!       return __generate_from_n_evaluations<Parts, array<_V, Parts>>([&](
! 	auto __i) constexpr {
! 	if constexpr (__is_fixed_size_abi_v<typename _V::abi_type>)
! 	  return _V([&](auto __j) constexpr {
! 	    return __x[__i * _V::size() + __j];
! 	  });
! 	else
! 	  return _V(__private_init,
! 		    __extract_part<decltype(__i)::value, Parts>(__data(__x)));
!       });
      }
    }
  
  // }}}
  // split<simd_mask>(simd_mask) {{{
  template <typename _V, typename _Ap,
! 	  size_t _Parts
! 	  = simd_size_v<typename _V::simd_type::value_type, _Ap> / _V::size()>
    enable_if_t<is_simd_mask_v<_V> && simd_size_v<typename
      _V::simd_type::value_type, _Ap> == _Parts * _V::size(), array<_V, _Parts>>
    split(const simd_mask<typename _V::simd_type::value_type, _Ap>& __x)
--- 3843,3889 ----
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
        const __may_alias<_Tp>* const __element_ptr
  	= reinterpret_cast<const __may_alias<_Tp>*>(&__data(__x));
!       return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 	       { return _V(__element_ptr + __i * _V::size(), vector_aligned); });
  #else
        const auto& __xx = __data(__x);
!       return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		 [[maybe_unused]] constexpr size_t __offset
! 		   = decltype(__i)::value * _V::size();
! 		 return _V([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			  constexpr _SizeConstant<__j + __offset> __k;
! 			  return __xx[__k];
! 			});
! 	       });
  #endif
      }
    else if constexpr (is_same_v<typename _V::abi_type, simd_abi::scalar>)
      {
        // normally memcpy should work here as well
!       return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; });
      }
    else
      {
!       return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		 if constexpr (__is_fixed_size_abi_v<typename _V::abi_type>)
! 		   return _V([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			    return __x[__i * _V::size() + __j];
! 			  });
! 		 else
! 		   return _V(__private_init,
! 			     __extract_part<decltype(__i)::value, _Parts>(__data(__x)));
! 	       });
      }
    }
  
  // }}}
  // split<simd_mask>(simd_mask) {{{
  template <typename _V, typename _Ap,
! 	  size_t _Parts = simd_size_v<typename _V::simd_type::value_type, _Ap> / _V::size()>
    enable_if_t<is_simd_mask_v<_V> && simd_size_v<typename
      _V::simd_type::value_type, _Ap> == _Parts * _V::size(), array<_V, _Parts>>
    split(const simd_mask<typename _V::simd_type::value_type, _Ap>& __x)
*************** template <typename _V, typename _Ap,
*** 3787,3808 ****
      else if constexpr (_V::size() <= __CHAR_BIT__ * sizeof(_ULLong))
        {
  	const bitset __bits = __x.__to_bitset();
! 	return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>([&](
! 	  auto __i) constexpr {
! 	  constexpr size_t __offset = __i * _V::size();
! 	  return _V(__bitset_init, (__bits >> __offset).to_ullong());
! 	});
        }
      else
        {
! 	return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>([&](
! 	  auto __i) constexpr {
! 	  constexpr size_t __offset = __i * _V::size();
! 	  return _V(
! 	    __private_init, [&](auto __j) constexpr {
! 	      return __x[__j + __offset];
! 	    });
! 	});
        }
    }
  
--- 3899,3920 ----
      else if constexpr (_V::size() <= __CHAR_BIT__ * sizeof(_ULLong))
        {
  	const bitset __bits = __x.__to_bitset();
! 	return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   constexpr size_t __offset = __i * _V::size();
! 		   return _V(__bitset_init, (__bits >> __offset).to_ullong());
! 		 });
        }
      else
        {
! 	return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   constexpr size_t __offset = __i * _V::size();
! 		   return _V(__private_init,
! 			     [&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			       return __x[__j + __offset];
! 			     });
! 		 });
        }
    }
  
*************** template <size_t... _Sizes, typename _Tp
*** 3820,3831 ****
      using _V = __deduced_simd<_Tp, _N0>;
  
      if (__x._M_is_constprop())
!       return __generate_from_n_evaluations<sizeof...(_Sizes), _Tuple>([&](
! 	auto __i) constexpr {
! 	using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>;
! 	constexpr size_t __offset = _SL::_S_before(__i);
! 	return _Vi([&](auto __j) constexpr { return __x[__offset + __j]; });
!       });
      else if constexpr (_Np == _N0)
        {
  	static_assert(sizeof...(_Sizes) == 1);
--- 3932,3945 ----
      using _V = __deduced_simd<_Tp, _N0>;
  
      if (__x._M_is_constprop())
!       return __generate_from_n_evaluations<sizeof...(_Sizes), _Tuple>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		 using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>;
! 		 constexpr size_t __offset = _SL::_S_before(__i);
! 		 return _Vi([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			  return __x[__offset + __j];
! 			});
! 	       });
      else if constexpr (_Np == _N0)
        {
  	static_assert(sizeof...(_Sizes) == 1);
*************** template <size_t... _Sizes, typename _Tp
*** 3892,3919 ****
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
      const __may_alias<_Tp>* const __element_ptr
        = reinterpret_cast<const __may_alias<_Tp>*>(&__x);
!     return __generate_from_n_evaluations<sizeof...(_Sizes), _Tuple>([&](
!       auto __i) constexpr {
!       using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>;
!       constexpr size_t __offset = _SL::_S_before(__i);
!       constexpr size_t __base_align = alignof(simd<_Tp, _Ap>);
!       constexpr size_t __a
! 	= __base_align - ((__offset * sizeof(_Tp)) % __base_align);
!       constexpr size_t __b = ((__a - 1) & __a) ^ __a;
!       constexpr size_t __alignment = __b == 0 ? __a : __b;
!       return _Vi(__element_ptr + __offset, overaligned<__alignment>);
!     });
  #else
!     return __generate_from_n_evaluations<sizeof...(_Sizes), _Tuple>([&](
!       auto __i) constexpr {
!       using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>;
!       const auto& __xx = __data(__x);
!       using _Offset = decltype(_SL::_S_before(__i));
!       return _Vi([&](auto __j) constexpr {
! 	constexpr _SizeConstant<_Offset::value + __j> __k;
! 	return __xx[__k];
!       });
!     });
  #endif
    }
  
--- 4006,4033 ----
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
      const __may_alias<_Tp>* const __element_ptr
        = reinterpret_cast<const __may_alias<_Tp>*>(&__x);
!     return __generate_from_n_evaluations<sizeof...(_Sizes), _Tuple>(
! 	     [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	       using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>;
! 	       constexpr size_t __offset = _SL::_S_before(__i);
! 	       constexpr size_t __base_align = alignof(simd<_Tp, _Ap>);
! 	       constexpr size_t __a
! 		 = __base_align - ((__offset * sizeof(_Tp)) % __base_align);
! 	       constexpr size_t __b = ((__a - 1) & __a) ^ __a;
! 	       constexpr size_t __alignment = __b == 0 ? __a : __b;
! 	       return _Vi(__element_ptr + __offset, overaligned<__alignment>);
! 	     });
  #else
!     return __generate_from_n_evaluations<sizeof...(_Sizes), _Tuple>(
! 	     [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	       using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>;
! 	       const auto& __xx = __data(__x);
! 	       using _Offset = decltype(_SL::_S_before(__i));
! 	       return _Vi([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			constexpr _SizeConstant<_Offset::value + __j> __k;
! 			return __xx[__k];
! 		      });
! 	     });
  #endif
    }
  
*************** template <size_t _I, typename _Tp, typen
*** 3934,3941 ****
  // __store_pack_of_simd {{{
  template <typename _Tp, typename _A0, typename... _As>
    _GLIBCXX_SIMD_INTRINSIC void
!   __store_pack_of_simd(char* __mem, const simd<_Tp, _A0>& __x0,
! 		       const simd<_Tp, _As>&... __xs)
    {
      constexpr size_t __n_bytes = sizeof(_Tp) * simd_size_v<_Tp, _A0>;
      __builtin_memcpy(__mem, &__data(__x0), __n_bytes);
--- 4048,4054 ----
  // __store_pack_of_simd {{{
  template <typename _Tp, typename _A0, typename... _As>
    _GLIBCXX_SIMD_INTRINSIC void
!   __store_pack_of_simd(char* __mem, const simd<_Tp, _A0>& __x0, const simd<_Tp, _As>&... __xs)
    {
      constexpr size_t __n_bytes = sizeof(_Tp) * simd_size_v<_Tp, _A0>;
      __builtin_memcpy(__mem, &__data(__x0), __n_bytes);
*************** template <typename _Tp, typename... _As>
*** 3955,3962 ****
        return simd_cast<_Rp>(__xs...);
      else if ((... && __xs._M_is_constprop()))
        return simd<_Tp,
! 		  simd_abi::deduce_t<_Tp, (simd_size_v<_Tp, _As> + ...)>>([&](
! 	auto __i) constexpr { return __subscript_in_pack<__i>(__xs...); });
      else
        {
  	_Rp __r{};
--- 4068,4076 ----
        return simd_cast<_Rp>(__xs...);
      else if ((... && __xs._M_is_constprop()))
        return simd<_Tp,
! 		  simd_abi::deduce_t<_Tp, (simd_size_v<_Tp, _As> + ...)>>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 	       { return __subscript_in_pack<__i>(__xs...); });
      else
        {
  	_Rp __r{};
*************** template <typename _Tp, typename _Abi, s
*** 3972,3980 ****
    _GLIBCXX_SIMD_CONSTEXPR __deduced_simd<_Tp, simd_size_v<_Tp, _Abi> * _Np>
    concat(const array<simd<_Tp, _Abi>, _Np>& __x)
    {
!     return __call_with_subscripts<_Np>(__x, [](const auto&... __xs) {
!       return concat(__xs...);
!     });
    }
  
  // }}}
--- 4086,4095 ----
    _GLIBCXX_SIMD_CONSTEXPR __deduced_simd<_Tp, simd_size_v<_Tp, _Abi> * _Np>
    concat(const array<simd<_Tp, _Abi>, _Np>& __x)
    {
!     return __call_with_subscripts<_Np>(
! 	     __x, [](const auto&... __xs) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	       return concat(__xs...);
! 	     });
    }
  
  // }}}
*************** template <typename _Up, typename _Access
*** 3989,3995 ****
      int _M_index;
      _Up& _M_obj;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _ValueType _M_read() const noexcept
      {
        if constexpr (is_arithmetic_v<_Up>)
  	return _M_obj;
--- 4104,4111 ----
      int _M_index;
      _Up& _M_obj;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr _ValueType
!     _M_read() const noexcept
      {
        if constexpr (is_arithmetic_v<_Up>)
  	return _M_obj;
*************** template <typename _Up, typename _Access
*** 3998,4004 ****
      }
  
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC constexpr void _M_write(_Tp&& __x) const
        { _Accessor::_S_set(_M_obj, _M_index, static_cast<_Tp&&>(__x)); }
  
    public:
--- 4114,4121 ----
      }
  
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC constexpr void
!       _M_write(_Tp&& __x) const
        { _Accessor::_S_set(_M_obj, _M_index, static_cast<_Tp&&>(__x)); }
  
    public:
*************** template <typename _Up, typename _Access
*** 4008,4039 ****
  
      using value_type = _ValueType;
  
!     _GLIBCXX_SIMD_INTRINSIC _SmartReference(const _SmartReference&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr operator value_type() const noexcept
      { return _M_read(); }
  
!     template <typename _Tp,
! 	      typename
! 	      = _ValuePreservingOrInt<__remove_cvref_t<_Tp>, value_type>>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference operator=(_Tp&& __x) &&
        {
  	_M_write(static_cast<_Tp&&>(__x));
  	return {_M_obj, _M_index};
        }
  
! #define _GLIBCXX_SIMD_OP_(__op)                                                \
!     template <typename _Tp,                                                    \
! 	      typename _TT                                                     \
! 	      = decltype(declval<value_type>() __op declval<_Tp>()),           \
! 	      typename = _ValuePreservingOrInt<__remove_cvref_t<_Tp>, _TT>,    \
! 	      typename = _ValuePreservingOrInt<_TT, value_type>>               \
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference                        \
!       operator __op##=(_Tp&& __x) &&                                           \
!       {                                                                        \
! 	const value_type& __lhs = _M_read();                                   \
! 	_M_write(__lhs __op __x);                                              \
! 	return {_M_obj, _M_index};                                             \
        }
      _GLIBCXX_SIMD_ALL_ARITHMETICS(_GLIBCXX_SIMD_OP_);
      _GLIBCXX_SIMD_ALL_SHIFTS(_GLIBCXX_SIMD_OP_);
--- 4125,4156 ----
  
      using value_type = _ValueType;
  
!     _GLIBCXX_SIMD_INTRINSIC
!     _SmartReference(const _SmartReference&) = delete;
  
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     operator value_type() const noexcept
      { return _M_read(); }
  
!     template <typename _Tp, typename = _ValuePreservingOrInt<__remove_cvref_t<_Tp>, value_type>>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference
!       operator=(_Tp&& __x) &&
        {
  	_M_write(static_cast<_Tp&&>(__x));
  	return {_M_obj, _M_index};
        }
  
! #define _GLIBCXX_SIMD_OP_(__op)                                                   \
!     template <typename _Tp,                                                       \
! 	      typename _TT = decltype(declval<value_type>() __op declval<_Tp>()), \
! 	      typename = _ValuePreservingOrInt<__remove_cvref_t<_Tp>, _TT>,       \
! 	      typename = _ValuePreservingOrInt<_TT, value_type>>                  \
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference                           \
!       operator __op##=(_Tp&& __x) &&                                              \
!       {                                                                           \
! 	const value_type& __lhs = _M_read();                                      \
! 	_M_write(__lhs __op __x);                                                 \
! 	return {_M_obj, _M_index};                                                \
        }
      _GLIBCXX_SIMD_ALL_ARITHMETICS(_GLIBCXX_SIMD_OP_);
      _GLIBCXX_SIMD_ALL_SHIFTS(_GLIBCXX_SIMD_OP_);
*************** template <typename _Up, typename _Access
*** 4041,4049 ****
  #undef _GLIBCXX_SIMD_OP_
  
      template <typename _Tp = void,
! 	      typename
! 	      = decltype(++declval<conditional_t<true, value_type, _Tp>&>())>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference operator++() &&
        {
  	value_type __x = _M_read();
  	_M_write(++__x);
--- 4158,4166 ----
  #undef _GLIBCXX_SIMD_OP_
  
      template <typename _Tp = void,
! 	      typename = decltype(++declval<conditional_t<true, value_type, _Tp>&>())>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference
!       operator++() &&
        {
  	value_type __x = _M_read();
  	_M_write(++__x);
*************** template <typename _Up, typename _Access
*** 4051,4059 ****
        }
  
      template <typename _Tp = void,
! 	      typename
! 	      = decltype(declval<conditional_t<true, value_type, _Tp>&>()++)>
!       _GLIBCXX_SIMD_INTRINSIC constexpr value_type operator++(int) &&
        {
  	const value_type __r = _M_read();
  	value_type __x = __r;
--- 4168,4176 ----
        }
  
      template <typename _Tp = void,
! 	      typename = decltype(declval<conditional_t<true, value_type, _Tp>&>()++)>
!       _GLIBCXX_SIMD_INTRINSIC constexpr value_type
!       operator++(int) &&
        {
  	const value_type __r = _M_read();
  	value_type __x = __r;
*************** template <typename _Up, typename _Access
*** 4062,4070 ****
        }
  
      template <typename _Tp = void,
! 	      typename
! 	      = decltype(--declval<conditional_t<true, value_type, _Tp>&>())>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference operator--() &&
        {
  	value_type __x = _M_read();
  	_M_write(--__x);
--- 4179,4187 ----
        }
  
      template <typename _Tp = void,
! 	      typename = decltype(--declval<conditional_t<true, value_type, _Tp>&>())>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference
!       operator--() &&
        {
  	value_type __x = _M_read();
  	_M_write(--__x);
*************** template <typename _Up, typename _Access
*** 4072,4080 ****
        }
  
      template <typename _Tp = void,
! 	      typename
! 	      = decltype(declval<conditional_t<true, value_type, _Tp>&>()--)>
!       _GLIBCXX_SIMD_INTRINSIC constexpr value_type operator--(int) &&
        {
  	const value_type __r = _M_read();
  	value_type __x = __r;
--- 4189,4197 ----
        }
  
      template <typename _Tp = void,
! 	      typename = decltype(declval<conditional_t<true, value_type, _Tp>&>()--)>
!       _GLIBCXX_SIMD_INTRINSIC constexpr value_type
!       operator--(int) &&
        {
  	const value_type __r = _M_read();
  	value_type __x = __r;
*************** template <int _Bytes>
*** 4150,4156 ****
  template <template <int> class _Abi, int _Bytes, typename _Tp>
    struct __find_next_valid_abi
    {
!     static constexpr auto _S_choose()
      {
        constexpr int _NextBytes = std::__bit_ceil(_Bytes) / 2;
        using _NextAbi = _Abi<_NextBytes>;
--- 4267,4274 ----
  template <template <int> class _Abi, int _Bytes, typename _Tp>
    struct __find_next_valid_abi
    {
!     static constexpr auto
!     _S_choose()
      {
        constexpr int _NextBytes = std::__bit_ceil(_Bytes) / 2;
        using _NextAbi = _Abi<_NextBytes>;
*************** template <template <int> class _A0, temp
*** 4194,4200 ****
  	typename _AbiList<_Rest...>::template _FirstValidAbi<_Tp, _Np>>;
  
      template <typename _Tp, int _Np>
!       static constexpr auto _S_determine_best_abi()
        {
  	static_assert(_Np >= 1);
  	constexpr int _Bytes = sizeof(_Tp) * _Np;
--- 4312,4319 ----
  	typename _AbiList<_Rest...>::template _FirstValidAbi<_Tp, _Np>>;
  
      template <typename _Tp, int _Np>
!       static constexpr auto
!       _S_determine_best_abi()
        {
  	static_assert(_Np >= 1);
  	constexpr int _Bytes = sizeof(_Tp) * _Np;
*************** template <typename _Tp, typename _Abi>
*** 4307,4313 ****
  
      // }}}
      // access to internal representation (optional feature) {{{
!     _GLIBCXX_SIMD_ALWAYS_INLINE explicit
      simd_mask(typename _Traits::_MaskCastType __init)
      : _M_data{__init} {}
      // conversions to internal type is done in _MaskBase
--- 4426,4432 ----
  
      // }}}
      // access to internal representation (optional feature) {{{
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR explicit
      simd_mask(typename _Traits::_MaskCastType __init)
      : _M_data{__init} {}
      // conversions to internal type is done in _MaskBase
*************** template <typename _Tp, typename _Abi>
*** 4318,4328 ****
      // Conversion of simd_mask to and from bitset makes it much easier to
      // interface with other facilities. I suggest adding `static
      // simd_mask::from_bitset` and `simd_mask::to_bitset`.
!     _GLIBCXX_SIMD_ALWAYS_INLINE static simd_mask
      __from_bitset(bitset<size()> bs)
      { return {__bitset_init, bs}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE bitset<size()>
      __to_bitset() const
      { return _Impl::_S_to_bits(_M_data)._M_to_bitset(); }
  
--- 4437,4447 ----
      // Conversion of simd_mask to and from bitset makes it much easier to
      // interface with other facilities. I suggest adding `static
      // simd_mask::from_bitset` and `simd_mask::to_bitset`.
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR static simd_mask
      __from_bitset(bitset<size()> bs)
      { return {__bitset_init, bs}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR bitset<size()>
      __to_bitset() const
      { return _Impl::_S_to_bits(_M_data)._M_to_bitset(); }
  
*************** template <typename _Tp, typename _Abi>
*** 4347,4353 ****
      template <typename _Up, typename = enable_if_t<conjunction<
  			      is_same<abi_type, simd_abi::fixed_size<size()>>,
  			      is_same<_Up, _Up>>::value>>
!       _GLIBCXX_SIMD_ALWAYS_INLINE
        simd_mask(const simd_mask<_Up, simd_abi::fixed_size<size()>>& __x)
        : _M_data(_Impl::_S_from_bitmask(__data(__x), _S_type_tag)) {}
    #endif
--- 4466,4472 ----
      template <typename _Up, typename = enable_if_t<conjunction<
  			      is_same<abi_type, simd_abi::fixed_size<size()>>,
  			      is_same<_Up, _Up>>::value>>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR
        simd_mask(const simd_mask<_Up, simd_abi::fixed_size<size()>>& __x)
        : _M_data(_Impl::_S_from_bitmask(__data(__x), _S_type_tag)) {}
    #endif
*************** template <typename _Tp, typename _Abi>
*** 4355,4395 ****
      // }}}
      // load constructor {{{
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE
!       simd_mask(const value_type* __mem, _Flags)
!       : _M_data(_Impl::template _S_load<_Ip>(
! 	_Flags::template _S_apply<simd_mask>(__mem))) {}
  
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE
!       simd_mask(const value_type* __mem, simd_mask __k, _Flags)
        : _M_data{}
        {
! 	_M_data
! 	  = _Impl::_S_masked_load(_M_data, __k._M_data,
! 				  _Flags::template _S_apply<simd_mask>(__mem));
        }
  
      // }}}
      // loads [simd_mask.load] {{{
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE void
!       copy_from(const value_type* __mem, _Flags)
!       {
! 	_M_data = _Impl::template _S_load<_Ip>(
! 	  _Flags::template _S_apply<simd_mask>(__mem));
!       }
  
      // }}}
      // stores [simd_mask.store] {{{
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE void
!       copy_to(value_type* __mem, _Flags) const
        { _Impl::_S_store(_M_data, _Flags::template _S_apply<simd_mask>(__mem)); }
  
      // }}}
      // scalar access {{{
!     _GLIBCXX_SIMD_ALWAYS_INLINE reference
      operator[](size_t __i)
      {
        if (__i >= size())
--- 4474,4509 ----
      // }}}
      // load constructor {{{
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR
!       simd_mask(const value_type* __mem, _IsSimdFlagType<_Flags>)
!       : _M_data(_Impl::template _S_load<_Ip>(_Flags::template _S_apply<simd_mask>(__mem))) {}
  
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR
!       simd_mask(const value_type* __mem, simd_mask __k, _IsSimdFlagType<_Flags>)
        : _M_data{}
        {
! 	_M_data = _Impl::_S_masked_load(_M_data, __k._M_data,
! 					_Flags::template _S_apply<simd_mask>(__mem));
        }
  
      // }}}
      // loads [simd_mask.load] {{{
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR void
!       copy_from(const value_type* __mem, _IsSimdFlagType<_Flags>)
!       { _M_data = _Impl::template _S_load<_Ip>(_Flags::template _S_apply<simd_mask>(__mem)); }
  
      // }}}
      // stores [simd_mask.store] {{{
      template <typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR void
!       copy_to(value_type* __mem, _IsSimdFlagType<_Flags>) const
        { _Impl::_S_store(_M_data, _Flags::template _S_apply<simd_mask>(__mem)); }
  
      // }}}
      // scalar access {{{
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR reference
      operator[](size_t __i)
      {
        if (__i >= size())
*************** template <typename _Tp, typename _Abi>
*** 4397,4403 ****
        return {_M_data, int(__i)};
      }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE value_type
      operator[](size_t __i) const
      {
        if (__i >= size())
--- 4511,4517 ----
        return {_M_data, int(__i)};
      }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR value_type
      operator[](size_t __i) const
      {
        if (__i >= size())
*************** template <typename _Tp, typename _Abi>
*** 4410,4416 ****
  
      // }}}
      // negation {{{
!     _GLIBCXX_SIMD_ALWAYS_INLINE simd_mask
      operator!() const
      { return {__private_init, _Impl::_S_bit_not(_M_data)}; }
  
--- 4524,4530 ----
  
      // }}}
      // negation {{{
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR simd_mask
      operator!() const
      { return {__private_init, _Impl::_S_bit_not(_M_data)}; }
  
*************** template <typename _Tp, typename _Abi>
*** 4419,4427 ****
    #ifdef _GLIBCXX_SIMD_ENABLE_IMPLICIT_MASK_CAST
      // simd_mask<int> && simd_mask<uint> needs disambiguation
      template <typename _Up, typename _A2,
! 	      typename
! 	      = enable_if_t<is_convertible_v<simd_mask<_Up, _A2>, simd_mask>>>
!       _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
        operator&&(const simd_mask& __x, const simd_mask<_Up, _A2>& __y)
        {
  	return {__private_init,
--- 4533,4540 ----
    #ifdef _GLIBCXX_SIMD_ENABLE_IMPLICIT_MASK_CAST
      // simd_mask<int> && simd_mask<uint> needs disambiguation
      template <typename _Up, typename _A2,
! 	      typename = enable_if_t<is_convertible_v<simd_mask<_Up, _A2>, simd_mask>>>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
        operator&&(const simd_mask& __x, const simd_mask<_Up, _A2>& __y)
        {
  	return {__private_init,
*************** template <typename _Tp, typename _Abi>
*** 4429,4437 ****
        }
  
      template <typename _Up, typename _A2,
! 	      typename
! 	      = enable_if_t<is_convertible_v<simd_mask<_Up, _A2>, simd_mask>>>
!       _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
        operator||(const simd_mask& __x, const simd_mask<_Up, _A2>& __y)
        {
  	return {__private_init,
--- 4542,4549 ----
        }
  
      template <typename _Up, typename _A2,
! 	      typename = enable_if_t<is_convertible_v<simd_mask<_Up, _A2>, simd_mask>>>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
        operator||(const simd_mask& __x, const simd_mask<_Up, _A2>& __y)
        {
  	return {__private_init,
*************** template <typename _Tp, typename _Abi>
*** 4439,4483 ****
        }
    #endif // _GLIBCXX_SIMD_ENABLE_IMPLICIT_MASK_CAST
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
      operator&&(const simd_mask& __x, const simd_mask& __y)
!     {
!       return {__private_init, _Impl::_S_logical_and(__x._M_data, __y._M_data)};
!     }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
      operator||(const simd_mask& __x, const simd_mask& __y)
!     {
!       return {__private_init, _Impl::_S_logical_or(__x._M_data, __y._M_data)};
!     }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
      operator&(const simd_mask& __x, const simd_mask& __y)
      { return {__private_init, _Impl::_S_bit_and(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
      operator|(const simd_mask& __x, const simd_mask& __y)
      { return {__private_init, _Impl::_S_bit_or(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask
      operator^(const simd_mask& __x, const simd_mask& __y)
      { return {__private_init, _Impl::_S_bit_xor(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask&
      operator&=(simd_mask& __x, const simd_mask& __y)
      {
        __x._M_data = _Impl::_S_bit_and(__x._M_data, __y._M_data);
        return __x;
      }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask&
      operator|=(simd_mask& __x, const simd_mask& __y)
      {
        __x._M_data = _Impl::_S_bit_or(__x._M_data, __y._M_data);
        return __x;
      }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE friend simd_mask&
      operator^=(simd_mask& __x, const simd_mask& __y)
      {
        __x._M_data = _Impl::_S_bit_xor(__x._M_data, __y._M_data);
--- 4551,4591 ----
        }
    #endif // _GLIBCXX_SIMD_ENABLE_IMPLICIT_MASK_CAST
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
      operator&&(const simd_mask& __x, const simd_mask& __y)
!     { return {__private_init, _Impl::_S_logical_and(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
      operator||(const simd_mask& __x, const simd_mask& __y)
!     { return {__private_init, _Impl::_S_logical_or(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
      operator&(const simd_mask& __x, const simd_mask& __y)
      { return {__private_init, _Impl::_S_bit_and(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
      operator|(const simd_mask& __x, const simd_mask& __y)
      { return {__private_init, _Impl::_S_bit_or(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask
      operator^(const simd_mask& __x, const simd_mask& __y)
      { return {__private_init, _Impl::_S_bit_xor(__x._M_data, __y._M_data)}; }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask&
      operator&=(simd_mask& __x, const simd_mask& __y)
      {
        __x._M_data = _Impl::_S_bit_and(__x._M_data, __y._M_data);
        return __x;
      }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask&
      operator|=(simd_mask& __x, const simd_mask& __y)
      {
        __x._M_data = _Impl::_S_bit_or(__x._M_data, __y._M_data);
        return __x;
      }
  
!     _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR friend simd_mask&
      operator^=(simd_mask& __x, const simd_mask& __y)
      {
        __x._M_data = _Impl::_S_bit_xor(__x._M_data, __y._M_data);
*************** template <typename _Tp, typename _Abi>
*** 4507,4522 ****
        simd_mask(_PrivateInit, _Fp&& __gen)
        : _M_data()
        {
! 	__execute_n_times<size()>([&](auto __i) constexpr {
  	  _Impl::_S_set(_M_data, __i, __gen(__i));
  	});
        }
  
      // }}}
      // bitset_init ctor {{{
!     _GLIBCXX_SIMD_INTRINSIC simd_mask(_BitsetInit, bitset<size()> __init)
!     : _M_data(
! 	_Impl::_S_from_bitmask(_SanitizedBitMask<size()>(__init), _S_type_tag))
      {}
  
      // }}}
--- 4615,4630 ----
        simd_mask(_PrivateInit, _Fp&& __gen)
        : _M_data()
        {
! 	__execute_n_times<size()>([&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  _Impl::_S_set(_M_data, __i, __gen(__i));
  	});
        }
  
      // }}}
      // bitset_init ctor {{{
!     _GLIBCXX_SIMD_INTRINSIC constexpr
!     simd_mask(_BitsetInit, bitset<size()> __init)
!     : _M_data(_Impl::_S_from_bitmask(_SanitizedBitMask<size()>(__init), _S_type_tag))
      {}
  
      // }}}
*************** template <typename _Tp, typename _Abi>
*** 4528,4535 ****
      struct _CvtProxy
      {
        template <typename _Up, typename _A2,
! 		typename
! 		= enable_if_t<simd_size_v<_Up, _A2> == simd_size_v<_Tp, _Abi>>>
  	operator simd_mask<_Up, _A2>() &&
  	{
  	  using namespace std::experimental::__proposed;
--- 4636,4642 ----
      struct _CvtProxy
      {
        template <typename _Up, typename _A2,
! 		typename = enable_if_t<simd_size_v<_Up, _A2> == simd_size_v<_Tp, _Abi>>>
  	operator simd_mask<_Up, _A2>() &&
  	{
  	  using namespace std::experimental::__proposed;
*************** template <typename _Tp, typename _Abi>
*** 4692,4698 ****
      if (__builtin_is_constant_evaluated() || __k._M_is_constprop())
        {
  	const int __r = __call_with_subscripts<simd_size_v<_Tp, _Abi>>(
! 	  __k, [](auto... __elements) { return ((__elements != 0) + ...); });
  	if (__builtin_is_constant_evaluated() || __builtin_constant_p(__r))
  	  return __r;
        }
--- 4799,4807 ----
      if (__builtin_is_constant_evaluated() || __k._M_is_constprop())
        {
  	const int __r = __call_with_subscripts<simd_size_v<_Tp, _Abi>>(
! 			  __k, [](auto... __elements) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			    return ((__elements != 0) + ...);
! 			  });
  	if (__builtin_is_constant_evaluated() || __builtin_constant_p(__r))
  	  return __r;
        }
*************** template <typename _Tp, typename _Abi>
*** 4707,4714 ****
        {
  	constexpr size_t _Np = simd_size_v<_Tp, _Abi>;
  	const size_t _Idx = __call_with_n_evaluations<_Np>(
! 	  [](auto... __indexes) { return std::min({__indexes...}); },
! 	  [&](auto __i) { return __k[__i] ? +__i : _Np; });
  	if (_Idx >= _Np)
  	  __invoke_ub("find_first_set(empty mask) is UB");
  	if (__builtin_constant_p(_Idx))
--- 4816,4826 ----
        {
  	constexpr size_t _Np = simd_size_v<_Tp, _Abi>;
  	const size_t _Idx = __call_with_n_evaluations<_Np>(
! 			      [](auto... __indexes) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				return std::min({__indexes...});
! 			      }, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				return __k[__i] ? +__i : _Np;
! 			      });
  	if (_Idx >= _Np)
  	  __invoke_ub("find_first_set(empty mask) is UB");
  	if (__builtin_constant_p(_Idx))
*************** template <typename _Tp, typename _Abi>
*** 4725,4732 ****
        {
  	constexpr size_t _Np = simd_size_v<_Tp, _Abi>;
  	const int _Idx = __call_with_n_evaluations<_Np>(
! 	  [](auto... __indexes) { return std::max({__indexes...}); },
! 	  [&](auto __i) { return __k[__i] ? int(__i) : -1; });
  	if (_Idx < 0)
  	  __invoke_ub("find_first_set(empty mask) is UB");
  	if (__builtin_constant_p(_Idx))
--- 4837,4847 ----
        {
  	constexpr size_t _Np = simd_size_v<_Tp, _Abi>;
  	const int _Idx = __call_with_n_evaluations<_Np>(
! 			   [](auto... __indexes) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			     return std::max({__indexes...});
! 			   }, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			     return __k[__i] ? int(__i) : -1;
! 			   });
  	if (_Idx < 0)
  	  __invoke_ub("find_first_set(empty mask) is UB");
  	if (__builtin_constant_p(_Idx))
*************** template <typename _V, typename _Impl, b
*** 4773,4779 ****
  template <typename _V, typename _Impl>
    class _SimdIntOperators<_V, _Impl, true>
    {
!     _GLIBCXX_SIMD_INTRINSIC const _V& __derived() const
      { return *static_cast<const _V*>(this); }
  
      template <typename _Tp>
--- 4888,4895 ----
  template <typename _V, typename _Impl>
    class _SimdIntOperators<_V, _Impl, true>
    {
!     _GLIBCXX_SIMD_INTRINSIC constexpr const _V&
!     __derived() const
      { return *static_cast<const _V*>(this); }
  
      template <typename _Tp>
*************** template <typename _Tp, typename _Abi>
*** 4963,4978 ****
  
      // load constructor
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE
!       simd(const _Up* __mem, _Flags)
        : _M_data(
  	  _Impl::_S_load(_Flags::template _S_apply<simd>(__mem), _S_type_tag))
        {}
  
      // loads [simd.load]
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE void
!       copy_from(const _Vectorizable<_Up>* __mem, _Flags)
        {
  	_M_data = static_cast<decltype(_M_data)>(
  	  _Impl::_S_load(_Flags::template _S_apply<simd>(__mem), _S_type_tag));
--- 5079,5094 ----
  
      // load constructor
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR
!       simd(const _Up* __mem, _IsSimdFlagType<_Flags>)
        : _M_data(
  	  _Impl::_S_load(_Flags::template _S_apply<simd>(__mem), _S_type_tag))
        {}
  
      // loads [simd.load]
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR void
!       copy_from(const _Vectorizable<_Up>* __mem, _IsSimdFlagType<_Flags>)
        {
  	_M_data = static_cast<decltype(_M_data)>(
  	  _Impl::_S_load(_Flags::template _S_apply<simd>(__mem), _S_type_tag));
*************** template <typename _Tp, typename _Abi>
*** 4980,4987 ****
  
      // stores [simd.store]
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE void
!       copy_to(_Vectorizable<_Up>* __mem, _Flags) const
        {
  	_Impl::_S_store(_M_data, _Flags::template _S_apply<simd>(__mem),
  			_S_type_tag);
--- 5096,5103 ----
  
      // stores [simd.store]
      template <typename _Up, typename _Flags>
!       _GLIBCXX_SIMD_ALWAYS_INLINE _GLIBCXX_SIMD_CONSTEXPR void
!       copy_to(_Vectorizable<_Up>* __mem, _IsSimdFlagType<_Flags>) const
        {
  	_Impl::_S_store(_M_data, _Flags::template _S_apply<simd>(__mem),
  			_S_type_tag);
*************** template <typename _Tp, typename _Abi>
*** 5152,5158 ****
      }
  
    private:
!     _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR static mask_type
      _S_make_mask(typename mask_type::_MemberType __k)
      { return {__private_init, __k}; }
  
--- 5268,5274 ----
      }
  
    private:
!     _GLIBCXX_SIMD_INTRINSIC static constexpr mask_type
      _S_make_mask(typename mask_type::_MemberType __k)
      { return {__private_init, __k}; }
  
*************** namespace __float_bitwise_operators { //
*** 5179,5204 ****
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
    operator^(const simd<_Tp, _Ap>& __a, const simd<_Tp, _Ap>& __b)
!   {
!     return {__private_init,
! 	    _Ap::_SimdImpl::_S_bit_xor(__data(__a), __data(__b))};
!   }
  
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
    operator|(const simd<_Tp, _Ap>& __a, const simd<_Tp, _Ap>& __b)
!   {
!     return {__private_init,
! 	    _Ap::_SimdImpl::_S_bit_or(__data(__a), __data(__b))};
!   }
  
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
    operator&(const simd<_Tp, _Ap>& __a, const simd<_Tp, _Ap>& __b)
!   {
!     return {__private_init,
! 	    _Ap::_SimdImpl::_S_bit_and(__data(__a), __data(__b))};
!   }
  } // namespace __float_bitwise_operators }}}
  /// @endcond
  
--- 5295,5311 ----
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
    operator^(const simd<_Tp, _Ap>& __a, const simd<_Tp, _Ap>& __b)
!   { return {__private_init, _Ap::_SimdImpl::_S_bit_xor(__data(__a), __data(__b))}; }
  
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
    operator|(const simd<_Tp, _Ap>& __a, const simd<_Tp, _Ap>& __b)
!   { return {__private_init, _Ap::_SimdImpl::_S_bit_or(__data(__a), __data(__b))}; }
  
  template <typename _Tp, typename _Ap>
    _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap>
    operator&(const simd<_Tp, _Ap>& __a, const simd<_Tp, _Ap>& __b)
!   { return {__private_init, _Ap::_SimdImpl::_S_bit_and(__data(__a), __data(__b))}; }
  } // namespace __float_bitwise_operators }}}
  /// @endcond
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_builtin.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_builtin.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_builtin.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_builtin.h	Mon May 29 08:46:33 2023
*************** template <typename _V, typename = _Vecto
*** 51,57 ****
  // __vector_permute<Indices...>{{{
  // Index == -1 requests zeroing of the output element
  template <int... _Indices, typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!   _Tp
    __vector_permute(_Tp __x)
    {
      static_assert(sizeof...(_Indices) == _TVT::_S_full_size);
--- 51,57 ----
  // __vector_permute<Indices...>{{{
  // Index == -1 requests zeroing of the output element
  template <int... _Indices, typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!   constexpr _Tp
    __vector_permute(_Tp __x)
    {
      static_assert(sizeof...(_Indices) == _TVT::_S_full_size);
*************** template <int... _Indices, typename _Tp,
*** 63,69 ****
  // __vector_shuffle<Indices...>{{{
  // Index == -1 requests zeroing of the output element
  template <int... _Indices, typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!   _Tp
    __vector_shuffle(_Tp __x, _Tp __y)
    {
      return _Tp{(_Indices == -1 ? 0
--- 63,69 ----
  // __vector_shuffle<Indices...>{{{
  // Index == -1 requests zeroing of the output element
  template <int... _Indices, typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!   constexpr _Tp
    __vector_shuffle(_Tp __x, _Tp __y)
    {
      return _Tp{(_Indices == -1 ? 0
*************** template <unsigned __shift, typename _Tp
*** 192,206 ****
  	using _Up = decltype(__w);
  	return __intrin_bitcast<_Tp>(
  	  __call_with_n_evaluations<(sizeof(_Tp) - __shift) / __chunksize>(
! 	    [](auto... __chunks) { return _Up{__chunks...}; },
! 	    [&](auto __i) { return __w[__shift / __chunksize + __i]; }));
        }
    }
  
  // }}}
  // __extract_part(_SimdWrapper<_Tp, _Np>) {{{
  template <int _Index, int _Total, int _Combine, typename _Tp, size_t _Np>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_CONST
    _SimdWrapper<_Tp, _Np / _Total * _Combine>
    __extract_part(const _SimdWrapper<_Tp, _Np> __x)
    {
--- 192,209 ----
  	using _Up = decltype(__w);
  	return __intrin_bitcast<_Tp>(
  	  __call_with_n_evaluations<(sizeof(_Tp) - __shift) / __chunksize>(
! 	    [](auto... __chunks) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	      return _Up{__chunks...};
! 	    }, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	      return __w[__shift / __chunksize + __i];
! 	    }));
        }
    }
  
  // }}}
  // __extract_part(_SimdWrapper<_Tp, _Np>) {{{
  template <int _Index, int _Total, int _Combine, typename _Tp, size_t _Np>
!   _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_CONST constexpr
    _SimdWrapper<_Tp, _Np / _Total * _Combine>
    __extract_part(const _SimdWrapper<_Tp, _Np> __x)
    {
*************** template <int _Index, int _Total, int _C
*** 223,229 ****
  	// by _Total");
  	if (__x._M_is_constprop())
  	  return __generate_from_n_evaluations<__return_size, _R>(
! 	    [&](auto __i) { return __x[__values_to_skip + __i]; });
  	if constexpr (_Index == 0 && _Total == 1)
  	  return __x;
  	else if constexpr (_Index == 0)
--- 226,234 ----
  	// by _Total");
  	if (__x._M_is_constprop())
  	  return __generate_from_n_evaluations<__return_size, _R>(
! 	    [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	      return __x[__values_to_skip + __i];
! 	    });
  	if constexpr (_Index == 0 && _Total == 1)
  	  return __x;
  	else if constexpr (_Index == 0)
*************** template <typename _To,
*** 568,574 ****
  	constexpr auto _Np
  	  = _NParts == 0 ? _FromVT::_S_partial_width - _Offset : _NParts;
  	return __generate_from_n_evaluations<_Np, array<_To, _Np>>(
! 	  [&](auto __i) { return static_cast<_To>(__v[__i + _Offset]); });
        }
      else
        {
--- 573,581 ----
  	constexpr auto _Np
  	  = _NParts == 0 ? _FromVT::_S_partial_width - _Offset : _NParts;
  	return __generate_from_n_evaluations<_Np, array<_To, _Np>>(
! 		 [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return static_cast<_To>(__v[__i + _Offset]);
! 		 });
        }
      else
        {
*************** template <typename _To,
*** 609,621 ****
  	      return __vector_bitcast<_FromT, decltype(__n)::value>(__vv);
  	    };
  	    [[maybe_unused]] const auto __vi = __to_intrin(__v);
! 	    auto&& __make_array = [](auto __x0, [[maybe_unused]] auto __x1) {
! 	      if constexpr (_Np == 1)
! 		return _R{__intrin_bitcast<_To>(__x0)};
! 	      else
! 		return _R{__intrin_bitcast<_To>(__x0),
! 			  __intrin_bitcast<_To>(__x1)};
! 	    };
  
  	    if constexpr (_Np == 0)
  	      return _R{};
--- 616,629 ----
  	      return __vector_bitcast<_FromT, decltype(__n)::value>(__vv);
  	    };
  	    [[maybe_unused]] const auto __vi = __to_intrin(__v);
! 	    auto&& __make_array
! 		= [](auto __x0, [[maybe_unused]] auto __x1) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		  if constexpr (_Np == 1)
! 		    return _R{__intrin_bitcast<_To>(__x0)};
! 		  else
! 		    return _R{__intrin_bitcast<_To>(__x0),
! 			      __intrin_bitcast<_To>(__x1)};
! 		};
  
  	    if constexpr (_Np == 0)
  	      return _R{};
*************** template <typename _To,
*** 640,646 ****
  		      = __convert_all<__vector_type16_t<int>, _Np>(
  			__adjust(_SizeConstant<_Np * 4>(), __v));
  		    return __generate_from_n_evaluations<_Np, _R>(
! 		      [&](auto __i) {
  			return __vector_convert<_To>(__as_wrapper(__ints[__i]));
  		      });
  		  }
--- 648,654 ----
  		      = __convert_all<__vector_type16_t<int>, _Np>(
  			__adjust(_SizeConstant<_Np * 4>(), __v));
  		    return __generate_from_n_evaluations<_Np, _R>(
! 		      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  			return __vector_convert<_To>(__as_wrapper(__ints[__i]));
  		      });
  		  }
*************** template <typename _To,
*** 685,720 ****
  		  __vector_bitcast<int>(_mm_unpacklo_epi16(__vv[1], __vv[1])),
  		  __vector_bitcast<int>(_mm_unpackhi_epi16(__vv[1], __vv[1]))};
  		if constexpr (sizeof(_ToT) == 4)
! 		  return __generate_from_n_evaluations<_Np, _R>([&](auto __i) {
! 		    return __vector_convert<_To>(
! 		      _SimdWrapper<int, 4>(__vvvv[__i] >> 24));
! 		  });
  		else if constexpr (is_integral_v<_ToT>)
! 		  return __generate_from_n_evaluations<_Np, _R>([&](auto __i) {
! 		    const auto __signbits = __to_intrin(__vvvv[__i / 2] >> 31);
! 		    const auto __sx32 = __to_intrin(__vvvv[__i / 2] >> 24);
! 		    return __vector_bitcast<_ToT>(
! 		      __i % 2 == 0 ? _mm_unpacklo_epi32(__sx32, __signbits)
! 				   : _mm_unpackhi_epi32(__sx32, __signbits));
! 		  });
  		else
! 		  return __generate_from_n_evaluations<_Np, _R>([&](auto __i) {
! 		    const _SimdWrapper<int, 4> __int4 = __vvvv[__i / 2] >> 24;
! 		    return __vector_convert<_To>(
! 		      __i % 2 == 0 ? __int4
! 				   : _SimdWrapper<int, 4>(
! 				     _mm_unpackhi_epi64(__to_intrin(__int4),
! 							__to_intrin(__int4))));
! 		  });
  	      }
  	    else if constexpr (sizeof(_FromT) == 1 && sizeof(_ToT) == 4)
  	      {
  		const auto __shorts = __convert_all<__vector_type16_t<
  		  conditional_t<is_signed_v<_FromT>, short, unsigned short>>>(
  		  __adjust(_SizeConstant<(_Np + 1) / 2 * 8>(), __v));
! 		return __generate_from_n_evaluations<_Np, _R>([&](auto __i) {
! 		  return __convert_all<_To>(__shorts[__i / 2])[__i % 2];
! 		});
  	      }
  	    else if constexpr (sizeof(_FromT) == 2 && sizeof(_ToT) == 8
  			       && is_signed_v<_FromT> && is_integral_v<_ToT>)
--- 693,732 ----
  		  __vector_bitcast<int>(_mm_unpacklo_epi16(__vv[1], __vv[1])),
  		  __vector_bitcast<int>(_mm_unpackhi_epi16(__vv[1], __vv[1]))};
  		if constexpr (sizeof(_ToT) == 4)
! 		  return __generate_from_n_evaluations<_Np, _R>(
! 			   [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			     return __vector_convert<_To>(
! 				      _SimdWrapper<int, 4>(__vvvv[__i] >> 24));
! 			   });
  		else if constexpr (is_integral_v<_ToT>)
! 		  return __generate_from_n_evaluations<_Np, _R>(
! 			   [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			     const auto __signbits = __to_intrin(__vvvv[__i / 2] >> 31);
! 			     const auto __sx32 = __to_intrin(__vvvv[__i / 2] >> 24);
! 			     return __vector_bitcast<_ToT>(
! 				      __i % 2 == 0 ? _mm_unpacklo_epi32(__sx32, __signbits)
! 						   : _mm_unpackhi_epi32(__sx32, __signbits));
! 			   });
  		else
! 		  return __generate_from_n_evaluations<_Np, _R>(
! 			   [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			     const _SimdWrapper<int, 4> __int4 = __vvvv[__i / 2] >> 24;
! 			     return __vector_convert<_To>(
! 				      __i % 2 == 0 ? __int4
! 						   : _SimdWrapper<int, 4>(
! 						       _mm_unpackhi_epi64(__to_intrin(__int4),
! 									  __to_intrin(__int4))));
! 			   });
  	      }
  	    else if constexpr (sizeof(_FromT) == 1 && sizeof(_ToT) == 4)
  	      {
  		const auto __shorts = __convert_all<__vector_type16_t<
  		  conditional_t<is_signed_v<_FromT>, short, unsigned short>>>(
  		  __adjust(_SizeConstant<(_Np + 1) / 2 * 8>(), __v));
! 		return __generate_from_n_evaluations<_Np, _R>(
! 			 [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			   return __convert_all<_To>(__shorts[__i / 2])[__i % 2];
! 			 });
  	      }
  	    else if constexpr (sizeof(_FromT) == 2 && sizeof(_ToT) == 8
  			       && is_signed_v<_FromT> && is_integral_v<_ToT>)
*************** template <typename _To,
*** 734,742 ****
  		     __vector_bitcast<int>(
  		       _mm_unpackhi_epi32(_mm_srai_epi32(__vv[1], 16),
  					  _mm_srai_epi32(__vv[1], 31)))};
! 		return __generate_from_n_evaluations<_Np, _R>([&](auto __i) {
! 		  return __vector_bitcast<_ToT>(__vvvv[__i]);
! 		});
  	      }
  	    else if constexpr (sizeof(_FromT) <= 2 && sizeof(_ToT) == 8)
  	      {
--- 746,755 ----
  		     __vector_bitcast<int>(
  		       _mm_unpackhi_epi32(_mm_srai_epi32(__vv[1], 16),
  					  _mm_srai_epi32(__vv[1], 31)))};
! 		return __generate_from_n_evaluations<_Np, _R>(
! 			 [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			   return __vector_bitcast<_ToT>(__vvvv[__i]);
! 			 });
  	      }
  	    else if constexpr (sizeof(_FromT) <= 2 && sizeof(_ToT) == 8)
  	      {
*************** template <typename _To,
*** 745,753 ****
  		    is_signed_v<_FromT> || is_floating_point_v<_ToT>, int,
  		    unsigned int>>>(
  		    __adjust(_SizeConstant<(_Np + 1) / 2 * 4>(), __v));
! 		return __generate_from_n_evaluations<_Np, _R>([&](auto __i) {
! 		  return __convert_all<_To>(__ints[__i / 2])[__i % 2];
! 		});
  	      }
  	    else
  	      __assert_unreachable<_To>();
--- 758,767 ----
  		    is_signed_v<_FromT> || is_floating_point_v<_ToT>, int,
  		    unsigned int>>>(
  		    __adjust(_SizeConstant<(_Np + 1) / 2 * 4>(), __v));
! 		return __generate_from_n_evaluations<_Np, _R>(
! 			 [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			   return __convert_all<_To>(__ints[__i / 2])[__i % 2];
! 			 });
  	      }
  	    else
  	      __assert_unreachable<_To>();
*************** template <typename _To,
*** 777,790 ****
  		__extract_part<_Offset, _FromVT::_S_partial_width,
  			       _ToVT::_S_full_size>(__v))};
  	    else
! 	      return __generate_from_n_evaluations<_Np, _R>([&](
! 		auto __i) constexpr {
! 		auto __part
! 		  = __extract_part<__i * _ToVT::_S_full_size + _Offset,
! 				   _FromVT::_S_partial_width,
! 				   _ToVT::_S_full_size>(__v);
! 		return __vector_convert<_To>(__part);
! 	      });
  	  }
  	else if constexpr (_Offset == 0)
  	  return array<_To, 1>{__vector_convert<_To>(__v)};
--- 791,804 ----
  		__extract_part<_Offset, _FromVT::_S_partial_width,
  			       _ToVT::_S_full_size>(__v))};
  	    else
! 	      return __generate_from_n_evaluations<_Np, _R>(
! 		       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			 auto __part
! 			   = __extract_part<__i * _ToVT::_S_full_size + _Offset,
! 					    _FromVT::_S_partial_width,
! 					    _ToVT::_S_full_size>(__v);
! 			 return __vector_convert<_To>(__part);
! 		       });
  	  }
  	else if constexpr (_Offset == 0)
  	  return array<_To, 1>{__vector_convert<_To>(__v)};
*************** template <typename _Tp, typename _Mp, ty
*** 820,838 ****
      // _SimdBase / base class for simd, providing extra conversions {{{
      struct _SimdBase2
      {
!       explicit operator __intrinsic_type_t<_Tp, _Np>() const
!       {
! 	return __to_intrin(static_cast<const simd<_Tp, _Abi>*>(this)->_M_data);
!       }
!       explicit operator __vector_type_t<_Tp, _Np>() const
!       {
! 	return static_cast<const simd<_Tp, _Abi>*>(this)->_M_data.__builtin();
!       }
      };
  
      struct _SimdBase1
      {
!       explicit operator __intrinsic_type_t<_Tp, _Np>() const
        { return __data(*static_cast<const simd<_Tp, _Abi>*>(this)); }
      };
  
--- 834,852 ----
      // _SimdBase / base class for simd, providing extra conversions {{{
      struct _SimdBase2
      {
!       explicit
!       operator __intrinsic_type_t<_Tp, _Np>() const
!       { return __to_intrin(static_cast<const simd<_Tp, _Abi>*>(this)->_M_data); }
! 
!       explicit
!       operator __vector_type_t<_Tp, _Np>() const
!       { return static_cast<const simd<_Tp, _Abi>*>(this)->_M_data.__builtin(); }
      };
  
      struct _SimdBase1
      {
!       explicit
!       operator __intrinsic_type_t<_Tp, _Np>() const
        { return __data(*static_cast<const simd<_Tp, _Abi>*>(this)); }
      };
  
*************** template <typename _Tp, typename _Mp, ty
*** 844,863 ****
      // _MaskBase {{{
      struct _MaskBase2
      {
!       explicit operator __intrinsic_type_t<_Tp, _Np>() const
!       {
! 	return static_cast<const simd_mask<_Tp, _Abi>*>(this)
! 	  ->_M_data.__intrin();
!       }
!       explicit operator __vector_type_t<_Tp, _Np>() const
!       {
! 	return static_cast<const simd_mask<_Tp, _Abi>*>(this)->_M_data._M_data;
!       }
      };
  
      struct _MaskBase1
      {
!       explicit operator __intrinsic_type_t<_Tp, _Np>() const
        { return __data(*static_cast<const simd_mask<_Tp, _Abi>*>(this)); }
      };
  
--- 858,876 ----
      // _MaskBase {{{
      struct _MaskBase2
      {
!       explicit
!       operator __intrinsic_type_t<_Tp, _Np>() const
!       { return static_cast<const simd_mask<_Tp, _Abi>*>(this) ->_M_data.__intrin(); }
! 
!       explicit
!       operator __vector_type_t<_Tp, _Np>() const
!       { return static_cast<const simd_mask<_Tp, _Abi>*>(this)->_M_data._M_data; }
      };
  
      struct _MaskBase1
      {
!       explicit
!       operator __intrinsic_type_t<_Tp, _Np>() const
        { return __data(*static_cast<const simd_mask<_Tp, _Abi>*>(this)); }
      };
  
*************** template <typename _Tp, typename _Mp, ty
*** 875,880 ****
--- 888,894 ----
  
      public:
        _MaskCastType(_Up __x) : _M_data(__x) {}
+ 
        operator _MaskMember() const { return _M_data; }
      };
  
*************** template <typename _Tp, typename _Mp, ty
*** 887,893 ****
--- 901,910 ----
        _SimdMember _M_data;
  
      public:
+       constexpr
        _SimdCastType1(_Ap __a) : _M_data(__vector_bitcast<_Tp>(__a)) {}
+ 
+       constexpr
        operator _SimdMember() const { return _M_data; }
      };
  
*************** template <typename _Tp, typename _Mp, ty
*** 898,905 ****
--- 915,927 ----
        _SimdMember _M_data;
  
      public:
+       constexpr
        _SimdCastType2(_Ap __a) : _M_data(__vector_bitcast<_Tp>(__a)) {}
+ 
+       constexpr
        _SimdCastType2(_Bp __b) : _M_data(__b) {}
+ 
+       constexpr
        operator _SimdMember() const { return _M_data; }
      };
  
*************** template <int _UsedBytes>
*** 1002,1024 ****
  	else
  	  {
  	    constexpr auto __size = _S_size<_Tp>;
! 	    _GLIBCXX_SIMD_USE_CONSTEXPR auto __r = __generate_vector<_UV>(
! 	      [](auto __i) constexpr { return __i < __size ? -1 : 0; });
  	    return __r;
  	  }
        }
  
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr __intrinsic_type_t<_Tp,
! 								  _S_size<_Tp>>
        _S_implicit_mask_intrin()
!       {
! 	return __to_intrin(
! 	  __vector_bitcast<_Tp>(_S_implicit_mask<_Tp>()._M_data));
!       }
  
      template <typename _TW, typename _TVT = _VectorTraits<_TW>>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _TW _S_masked(_TW __x)
        {
  	using _Tp = typename _TVT::value_type;
  	if constexpr (!_MaskMember<_Tp>::_S_is_partial)
--- 1024,1044 ----
  	else
  	  {
  	    constexpr auto __size = _S_size<_Tp>;
! 	    _GLIBCXX_SIMD_USE_CONSTEXPR auto __r
! 	      = __generate_vector<_UV>([](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 				       { return __i < __size ? -1 : 0; });
  	    return __r;
  	  }
        }
  
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr __intrinsic_type_t<_Tp, _S_size<_Tp>>
        _S_implicit_mask_intrin()
!       { return __to_intrin(__vector_bitcast<_Tp>(_S_implicit_mask<_Tp>()._M_data)); }
  
      template <typename _TW, typename _TVT = _VectorTraits<_TW>>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _TW
!       _S_masked(_TW __x)
        {
  	using _Tp = typename _TVT::value_type;
  	if constexpr (!_MaskMember<_Tp>::_S_is_partial)
*************** template <int _UsedBytes>
*** 1140,1147 ****
        { return __implicit_mask_n<_S_size<_Tp>>(); }
  
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr __bool_storage_member_type_t<
! 	_S_size<_Tp>>
        _S_implicit_mask_intrin()
        { return __implicit_mask_n<_S_size<_Tp>>(); }
  
--- 1160,1166 ----
        { return __implicit_mask_n<_S_size<_Tp>>(); }
  
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr __bool_storage_member_type_t<_S_size<_Tp>>
        _S_implicit_mask_intrin()
        { return __implicit_mask_n<_S_size<_Tp>>(); }
  
*************** template <int _UsedBytes>
*** 1193,1199 ****
  	    if constexpr (is_integral_v<typename _TVT::value_type>)
  	      return __x
  		     | __generate_vector<_Tp, _S_full_size<_Tp>>(
! 		       [](auto __i) -> _Tp {
  			 if (__i < _Np)
  			   return 0;
  			 else
--- 1212,1218 ----
  	    if constexpr (is_integral_v<typename _TVT::value_type>)
  	      return __x
  		     | __generate_vector<_Tp, _S_full_size<_Tp>>(
! 		       [](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA -> _Tp {
  			 if (__i < _Np)
  			   return 0;
  			 else
*************** struct _CommonImplBuiltin
*** 1273,1279 ****
    // }}}
    // _S_store {{{
    template <size_t _ReqBytes = 0, typename _TV>
!     _GLIBCXX_SIMD_INTRINSIC static void _S_store(_TV __x, void* __addr)
      {
        constexpr size_t _Bytes = _ReqBytes == 0 ? sizeof(__x) : _ReqBytes;
        static_assert(sizeof(__x) >= _Bytes);
--- 1292,1299 ----
    // }}}
    // _S_store {{{
    template <size_t _ReqBytes = 0, typename _TV>
!     _GLIBCXX_SIMD_INTRINSIC static void
!     _S_store(_TV __x, void* __addr)
      {
        constexpr size_t _Bytes = _ReqBytes == 0 ? sizeof(__x) : _ReqBytes;
        static_assert(sizeof(__x) >= _Bytes);
*************** struct _CommonImplBuiltin
*** 1309,1316 ****
      }
  
    template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static void _S_store(_SimdWrapper<_Tp, _Np> __x,
! 						 void* __addr)
      { _S_store<_Np * sizeof(_Tp)>(__x._M_data, __addr); }
  
    // }}}
--- 1329,1336 ----
      }
  
    template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static void
!     _S_store(_SimdWrapper<_Tp, _Np> __x, void* __addr)
      { _S_store<_Np * sizeof(_Tp)>(__x._M_data, __addr); }
  
    // }}}
*************** struct _CommonImplBuiltin
*** 1321,1326 ****
--- 1341,1351 ----
      {
        if constexpr (_Np == 1)
  	__mem[0] = __x[0];
+       else if (__builtin_is_constant_evaluated())
+ 	{
+ 	  for (size_t __i = 0; __i < _Np; ++__i)
+ 	    __mem[__i] = __x[__i];
+ 	}
        else if constexpr (_Np == 2)
  	{
  	  short __bool2 = (__x._M_to_bits() * 0x81) & 0x0101;
*************** struct _CommonImplBuiltin
*** 1333,1358 ****
  	}
        else
  	{
! 	  __execute_n_times<__div_roundup(_Np, 4)>([&](auto __i) {
! 	    constexpr int __offset = __i * 4;
! 	    constexpr int __remaining = _Np - __offset;
! 	    if constexpr (__remaining > 4 && __remaining <= 7)
! 	      {
! 		const _ULLong __bool7
! 		  = (__x.template _M_extract<__offset>()._M_to_bits()
! 		     * 0x40810204081ULL)
! 		    & 0x0101010101010101ULL;
! 		_S_store<__remaining>(__bool7, __mem + __offset);
! 	      }
! 	    else if constexpr (__remaining >= 4)
! 	      {
! 		int __bits = __x.template _M_extract<__offset>()._M_to_bits();
! 		if constexpr (__remaining > 7)
! 		  __bits &= 0xf;
! 		const int __bool4 = (__bits * 0x204081) & 0x01010101;
! 		_S_store<4>(__bool4, __mem + __offset);
! 	      }
! 	  });
  	}
      }
  
--- 1358,1384 ----
  	}
        else
  	{
! 	  __execute_n_times<__div_roundup(_Np, 4)>(
! 	    [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	      constexpr int __offset = __i * 4;
! 	      constexpr int __remaining = _Np - __offset;
! 	      if constexpr (__remaining > 4 && __remaining <= 7)
! 		{
! 		  const _ULLong __bool7
! 		    = (__x.template _M_extract<__offset>()._M_to_bits()
! 			 * 0x40810204081ULL)
! 			& 0x0101010101010101ULL;
! 		  _S_store<__remaining>(__bool7, __mem + __offset);
! 		}
! 	      else if constexpr (__remaining >= 4)
! 		{
! 		  int __bits = __x.template _M_extract<__offset>()._M_to_bits();
! 		  if constexpr (__remaining > 7)
! 		    __bits &= 0xf;
! 		  const int __bool4 = (__bits * 0x204081) & 0x01010101;
! 		  _S_store<4>(__bool4, __mem + __offset);
! 		}
! 	    });
  	}
      }
  
*************** template <typename _Abi>
*** 1399,1410 ****
  
      // _M_make_simd(_SimdWrapper/__intrinsic_type_t) {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static simd<_Tp, _Abi>
        _M_make_simd(_SimdWrapper<_Tp, _Np> __x)
        { return {__private_init, __x}; }
  
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static simd<_Tp, _Abi>
        _M_make_simd(__intrinsic_type_t<_Tp, _Np> __x)
        { return {__private_init, __vector_bitcast<_Tp>(__x)}; }
  
--- 1425,1436 ----
  
      // _M_make_simd(_SimdWrapper/__intrinsic_type_t) {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr simd<_Tp, _Abi>
        _M_make_simd(_SimdWrapper<_Tp, _Np> __x)
        { return {__private_init, __x}; }
  
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr simd<_Tp, _Abi>
        _M_make_simd(__intrinsic_type_t<_Tp, _Np> __x)
        { return {__private_init, __vector_bitcast<_Tp>(__x)}; }
  
*************** template <typename _Abi>
*** 1416,1436 ****
  
      // _S_generator {{{2
      template <typename _Fp, typename _Tp>
!       inline static constexpr _SimdMember<_Tp> _S_generator(_Fp&& __gen,
! 							    _TypeTag<_Tp>)
        {
! 	return __generate_vector<_Tp, _S_full_size<_Tp>>([&](
! 	  auto __i) constexpr {
! 	  if constexpr (__i < _S_size<_Tp>)
! 	    return __gen(__i);
! 	  else
! 	    return 0;
! 	});
        }
  
      // _S_load {{{2
      template <typename _Tp, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdMember<_Tp>
        _S_load(const _Up* __mem, _TypeTag<_Tp>) noexcept
        {
  	constexpr size_t _Np = _S_size<_Tp>;
--- 1442,1462 ----
  
      // _S_generator {{{2
      template <typename _Fp, typename _Tp>
!       inline static constexpr _SimdMember<_Tp>
!       _S_generator(_Fp&& __gen, _TypeTag<_Tp>)
        {
! 	return __generate_vector<_Tp, _S_full_size<_Tp>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   if constexpr (__i < _S_size<_Tp>)
! 		     return __gen(__i);
! 		   else
! 		     return 0;
! 		 });
        }
  
      // _S_load {{{2
      template <typename _Tp, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdMember<_Tp>
        _S_load(const _Up* __mem, _TypeTag<_Tp>) noexcept
        {
  	constexpr size_t _Np = _S_size<_Tp>;
*************** template <typename _Abi>
*** 1439,1449 ****
  	    : (is_floating_point_v<_Up> && __have_avx) || __have_avx2 ? 32
  								      : 16;
  	constexpr size_t __bytes_to_load = sizeof(_Up) * _Np;
! 	if constexpr (sizeof(_Up) > 8)
! 	  return __generate_vector<_Tp, _SimdMember<_Tp>::_S_full_size>([&](
! 	    auto __i) constexpr {
! 	    return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0);
! 	  });
  	else if constexpr (is_same_v<_Up, _Tp>)
  	  return _CommonImpl::template _S_load<_Tp, _S_full_size<_Tp>,
  					       _Np * sizeof(_Tp)>(__mem);
--- 1465,1480 ----
  	    : (is_floating_point_v<_Up> && __have_avx) || __have_avx2 ? 32
  								      : 16;
  	constexpr size_t __bytes_to_load = sizeof(_Up) * _Np;
! 	if (__builtin_is_constant_evaluated())
! 	  return __generate_vector<_Tp, _S_full_size<_Tp>>(
! 		   [&](auto __i) constexpr {
! 		     return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0);
! 		   });
! 	else if constexpr (sizeof(_Up) > 8)
! 	  return __generate_vector<_Tp, _SimdMember<_Tp>::_S_full_size>(
! 		   [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		     return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0);
! 		   });
  	else if constexpr (is_same_v<_Up, _Tp>)
  	  return _CommonImpl::template _S_load<_Tp, _S_full_size<_Tp>,
  					       _Np * sizeof(_Tp)>(__mem);
*************** template <typename _Abi>
*** 1455,1467 ****
  	    constexpr size_t __n_loads = __bytes_to_load / __max_load_size;
  	    constexpr size_t __elements_per_load = _Np / __n_loads;
  	    return __call_with_n_evaluations<__n_loads>(
! 	      [](auto... __uncvted) {
! 		return __convert<_SimdMember<_Tp>>(__uncvted...);
! 	      },
! 	      [&](auto __i) {
! 		return _CommonImpl::template _S_load<_Up, __elements_per_load>(
! 		  __mem + __i * __elements_per_load);
! 	      });
  	  }
  	else if constexpr (__bytes_to_load % (__max_load_size / 2) == 0
  			   && __max_load_size > 16)
--- 1486,1497 ----
  	    constexpr size_t __n_loads = __bytes_to_load / __max_load_size;
  	    constexpr size_t __elements_per_load = _Np / __n_loads;
  	    return __call_with_n_evaluations<__n_loads>(
! 		     [](auto... __uncvted) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		       return __convert<_SimdMember<_Tp>>(__uncvted...);
! 		     }, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		       return _CommonImpl::template _S_load<_Up, __elements_per_load>(
! 						      __mem + __i * __elements_per_load);
! 		     });
  	  }
  	else if constexpr (__bytes_to_load % (__max_load_size / 2) == 0
  			   && __max_load_size > 16)
*************** template <typename _Abi>
*** 1470,1514 ****
  	      = __bytes_to_load / (__max_load_size / 2);
  	    constexpr size_t __elements_per_load = _Np / __n_loads;
  	    return __call_with_n_evaluations<__n_loads>(
! 	      [](auto... __uncvted) {
! 		return __convert<_SimdMember<_Tp>>(__uncvted...);
! 	      },
! 	      [&](auto __i) {
! 		return _CommonImpl::template _S_load<_Up, __elements_per_load>(
! 		  __mem + __i * __elements_per_load);
! 	      });
  	  }
  	else // e.g. int[] -> <char, 9>
  	  return __call_with_subscripts(
! 	    __mem, make_index_sequence<_Np>(), [](auto... __args) {
! 	      return __vector_type_t<_Tp, _S_full_size<_Tp>>{
! 		static_cast<_Tp>(__args)...};
! 	    });
        }
  
      // _S_masked_load {{{2
      template <typename _Tp, size_t _Np, typename _Up>
!       static inline _SimdWrapper<_Tp, _Np>
        _S_masked_load(_SimdWrapper<_Tp, _Np> __merge, _MaskMember<_Tp> __k,
  		     const _Up* __mem) noexcept
        {
! 	_BitOps::_S_bit_iteration(_MaskImpl::_S_to_bits(__k), [&](auto __i) {
! 	  __merge._M_set(__i, static_cast<_Tp>(__mem[__i]));
! 	});
  	return __merge;
        }
  
      // _S_store {{{2
      template <typename _Tp, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_store(_SimdMember<_Tp> __v, _Up* __mem, _TypeTag<_Tp>) noexcept
        {
  	// TODO: converting int -> "smaller int" can be optimized with AVX512
  	constexpr size_t _Np = _S_size<_Tp>;
  	constexpr size_t __max_store_size
  	  = _SuperImpl::template _S_max_store_size<_Up>;
! 	if constexpr (sizeof(_Up) > 8)
! 	  __execute_n_times<_Np>([&](auto __i) constexpr {
  	    __mem[__i] = __v[__i];
  	  });
  	else if constexpr (is_same_v<_Up, _Tp>)
--- 1500,1549 ----
  	      = __bytes_to_load / (__max_load_size / 2);
  	    constexpr size_t __elements_per_load = _Np / __n_loads;
  	    return __call_with_n_evaluations<__n_loads>(
! 		     [](auto... __uncvted) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		       return __convert<_SimdMember<_Tp>>(__uncvted...);
! 		     }, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		       return _CommonImpl::template _S_load<_Up, __elements_per_load>(
! 						      __mem + __i * __elements_per_load);
! 		     });
  	  }
  	else // e.g. int[] -> <char, 9>
  	  return __call_with_subscripts(
! 	    __mem, make_index_sequence<_Np>(),
! 		   [](auto... __args) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		     return __vector_type_t<_Tp, _S_full_size<_Tp>>{static_cast<_Tp>(__args)...};
! 		   });
        }
  
      // _S_masked_load {{{2
      template <typename _Tp, size_t _Np, typename _Up>
!       static constexpr inline _SimdWrapper<_Tp, _Np>
        _S_masked_load(_SimdWrapper<_Tp, _Np> __merge, _MaskMember<_Tp> __k,
  		     const _Up* __mem) noexcept
        {
! 	_BitOps::_S_bit_iteration(_MaskImpl::_S_to_bits(__k),
! 				  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				    __merge._M_set(__i, static_cast<_Tp>(__mem[__i]));
! 				  });
  	return __merge;
        }
  
      // _S_store {{{2
      template <typename _Tp, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_store(_SimdMember<_Tp> __v, _Up* __mem, _TypeTag<_Tp>) noexcept
        {
  	// TODO: converting int -> "smaller int" can be optimized with AVX512
  	constexpr size_t _Np = _S_size<_Tp>;
  	constexpr size_t __max_store_size
  	  = _SuperImpl::template _S_max_store_size<_Up>;
! 	if (__builtin_is_constant_evaluated())
! 	  {
! 	    for (size_t __i = 0; __i < _Np; ++__i)
! 	      __mem[__i] = __v[__i];
! 	  }
! 	else if constexpr (sizeof(_Up) > 8)
! 	  __execute_n_times<_Np>([&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __mem[__i] = __v[__i];
  	  });
  	else if constexpr (is_same_v<_Up, _Tp>)
*************** template <typename _Abi>
*** 1525,1533 ****
  	    using _V = __vector_type_t<_Up, __vsize>;
  	    const array<_V, __stores> __converted
  	      = __convert_all<_V, __stores>(__v);
! 	    __execute_n_times<__full_stores>([&](auto __i) constexpr {
! 	      _CommonImpl::_S_store(__converted[__i], __mem + __i * __vsize);
! 	    });
  	    if constexpr (__full_stores < __stores)
  	      _CommonImpl::template _S_store<(_Np - __full_stores * __vsize)
  					     * sizeof(_Up)>(
--- 1560,1569 ----
  	    using _V = __vector_type_t<_Up, __vsize>;
  	    const array<_V, __stores> __converted
  	      = __convert_all<_V, __stores>(__v);
! 	    __execute_n_times<__full_stores>(
! 	      [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		_CommonImpl::_S_store(__converted[__i], __mem + __i * __vsize);
! 	      });
  	    if constexpr (__full_stores < __stores)
  	      _CommonImpl::template _S_store<(_Np - __full_stores * __vsize)
  					     * sizeof(_Up)>(
*************** template <typename _Abi>
*** 1537,1548 ****
  
      // _S_masked_store_nocvt {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_store_nocvt(_SimdWrapper<_Tp, _Np> __v, _Tp* __mem,
! 			    _MaskMember<_Tp> __k)
        {
  	_BitOps::_S_bit_iteration(
! 	  _MaskImpl::_S_to_bits(__k), [&](auto __i) constexpr {
  	    __mem[__i] = __v[__i];
  	  });
        }
--- 1573,1584 ----
  
      // _S_masked_store_nocvt {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
!       _S_masked_store_nocvt(_SimdWrapper<_Tp, _Np> __v, _Tp* __mem, _MaskMember<_Tp> __k)
        {
  	_BitOps::_S_bit_iteration(
! 	  _MaskImpl::_S_to_bits(__k),
! 	  [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __mem[__i] = __v[__i];
  	  });
        }
*************** template <typename _Abi>
*** 1550,1558 ****
      // _S_masked_store {{{2
      template <typename _TW, typename _TVT = _VectorTraits<_TW>,
  	      typename _Tp = typename _TVT::value_type, typename _Up>
!       static inline void
!       _S_masked_store(const _TW __v, _Up* __mem, const _MaskMember<_Tp> __k)
! 	noexcept
        {
  	constexpr size_t _TV_size = _S_size<_Tp>;
  	[[maybe_unused]] const auto __vi = __to_intrin(__v);
--- 1586,1593 ----
      // _S_masked_store {{{2
      template <typename _TW, typename _TVT = _VectorTraits<_TW>,
  	      typename _Tp = typename _TVT::value_type, typename _Up>
!       static constexpr inline void
!       _S_masked_store(const _TW __v, _Up* __mem, const _MaskMember<_Tp> __k) noexcept
        {
  	constexpr size_t _TV_size = _S_size<_Tp>;
  	[[maybe_unused]] const auto __vi = __to_intrin(__v);
*************** template <typename _Abi>
*** 1564,1570 ****
  	    _Up> || (is_integral_v<_Tp> && is_integral_v<_Up> && sizeof(_Tp) == sizeof(_Up)))
  	  {
  	    // bitwise or no conversion, reinterpret:
! 	    const _MaskMember<_Up> __kk = [&]() {
  	      if constexpr (__is_bitmask_v<decltype(__k)>)
  		return _MaskMember<_Up>(__k._M_data);
  	      else
--- 1599,1605 ----
  	    _Up> || (is_integral_v<_Tp> && is_integral_v<_Up> && sizeof(_Tp) == sizeof(_Up)))
  	  {
  	    // bitwise or no conversion, reinterpret:
! 	    const _MaskMember<_Up> __kk = [&]() _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	      if constexpr (__is_bitmask_v<decltype(__k)>)
  		return _MaskMember<_Up>(__k._M_data);
  	      else
*************** template <typename _Abi>
*** 1603,1609 ****
  		constexpr size_t _NParts = _S_full_size<_Tp> / _UW_size;
  		const array<_UV, _NAllStores> __converted
  		  = __convert_all<_UV, _NAllStores>(__v);
! 		__execute_n_times<_NFullStores>([&](auto __i) {
  		  _SuperImpl::_S_masked_store_nocvt(
  		    _UW(__converted[__i]), __mem + __i * _UW_size,
  		    _UAbi::_MaskImpl::template _S_convert<
--- 1638,1644 ----
  		constexpr size_t _NParts = _S_full_size<_Tp> / _UW_size;
  		const array<_UV, _NAllStores> __converted
  		  = __convert_all<_UV, _NAllStores>(__v);
! 		__execute_n_times<_NFullStores>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  _SuperImpl::_S_masked_store_nocvt(
  		    _UW(__converted[__i]), __mem + __i * _UW_size,
  		    _UAbi::_MaskImpl::template _S_convert<
*************** template <typename _Abi>
*** 1622,1631 ****
  	      }
  	  }
  	else
! 	  _BitOps::_S_bit_iteration(
! 	    _MaskImpl::_S_to_bits(__k), [&](auto __i) constexpr {
! 	      __mem[__i] = static_cast<_Up>(__v[__i]);
! 	    });
        }
  
      // _S_complement {{{2
--- 1657,1666 ----
  	      }
  	  }
  	else
! 	  _BitOps::_S_bit_iteration(_MaskImpl::_S_to_bits(__k),
! 				    [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				      __mem[__i] = static_cast<_Up>(__v[__i]);
! 				    });
        }
  
      // _S_complement {{{2
*************** template <typename _Abi>
*** 1774,1780 ****
      // reductions {{{2
      template <size_t _Np, size_t... _Is, size_t... _Zeros, typename _Tp,
  	      typename _BinaryOperation>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
        _S_reduce_partial(index_sequence<_Is...>, index_sequence<_Zeros...>,
  			simd<_Tp, _Abi> __x, _BinaryOperation&& __binary_op)
        {
--- 1809,1815 ----
      // reductions {{{2
      template <size_t _Np, size_t... _Is, size_t... _Zeros, typename _Tp,
  	      typename _BinaryOperation>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp
        _S_reduce_partial(index_sequence<_Is...>, index_sequence<_Zeros...>,
  			simd<_Tp, _Abi> __x, _BinaryOperation&& __binary_op)
        {
*************** template <typename _Abi>
*** 1804,1809 ****
--- 1839,1851 ----
  	else if constexpr (_Np == 2)
  	  return __binary_op(simd<_Tp, simd_abi::scalar>(__x[0]),
  			     simd<_Tp, simd_abi::scalar>(__x[1]))[0];
+ 	else if (__builtin_is_constant_evaluated())
+ 	  {
+ 	    simd<_Tp, simd_abi::scalar> __acc = __x[0];
+ 	    for (size_t __i = 1; __i < _Np; ++__i)
+ 	      __acc = __binary_op(__acc, simd<_Tp, simd_abi::scalar>(__x[__i]));
+ 	    return __acc[0];
+ 	  }
  	else if constexpr (_Abi::template _S_is_partial<_Tp>) //{{{
  	  {
  	    [[maybe_unused]] constexpr auto __full_size
*************** template <typename _Abi>
*** 1909,1943 ****
      // frexp, modf and copysign implemented in simd_math.h
  #define _GLIBCXX_SIMD_MATH_FALLBACK(__name)                                    \
      template <typename _Tp, typename... _More>                                 \
!       static _Tp _S_##__name(const _Tp& __x, const _More&... __more)           \
        {                                                                        \
  	return __generate_vector<_Tp>(                                         \
! 	  [&](auto __i) { return __name(__x[__i], __more[__i]...); });         \
        }
  
  #define _GLIBCXX_SIMD_MATH_FALLBACK_MASKRET(__name)                            \
      template <typename _Tp, typename... _More>                                 \
!       static typename _Tp::mask_type _S_##__name(const _Tp& __x,               \
! 						 const _More&... __more)       \
        {                                                                        \
  	return __generate_vector<_Tp>(                                         \
! 	  [&](auto __i) { return __name(__x[__i], __more[__i]...); });         \
        }
  
! #define _GLIBCXX_SIMD_MATH_FALLBACK_FIXEDRET(_RetTp, __name)                   \
!     template <typename _Tp, typename... _More>                                 \
!       static auto _S_##__name(const _Tp& __x, const _More&... __more)          \
!       {                                                                        \
! 	return __fixed_size_storage_t<_RetTp,                                  \
! 				      _VectorTraits<_Tp>::_S_partial_width>::  \
! 	  _S_generate([&](auto __meta) constexpr {                             \
! 	    return __meta._S_generator(                                        \
! 	      [&](auto __i) {                                                  \
! 		return __name(__x[__meta._S_offset + __i],                     \
! 			      __more[__meta._S_offset + __i]...);              \
! 	      },                                                               \
! 	      static_cast<_RetTp*>(nullptr));                                  \
! 	  });                                                                  \
        }
  
      _GLIBCXX_SIMD_MATH_FALLBACK(acos)
--- 1951,1991 ----
      // frexp, modf and copysign implemented in simd_math.h
  #define _GLIBCXX_SIMD_MATH_FALLBACK(__name)                                    \
      template <typename _Tp, typename... _More>                                 \
!       static _Tp                                                               \
!       _S_##__name(const _Tp& __x, const _More&... __more)                      \
        {                                                                        \
  	return __generate_vector<_Tp>(                                         \
! 		 [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {            \
! 		   return __name(__x[__i], __more[__i]...);                    \
! 		 });                                                           \
        }
  
  #define _GLIBCXX_SIMD_MATH_FALLBACK_MASKRET(__name)                            \
      template <typename _Tp, typename... _More>                                 \
!       static typename _Tp::mask_type                                           \
!       _S_##__name(const _Tp& __x, const _More&... __more)                      \
        {                                                                        \
  	return __generate_vector<_Tp>(                                         \
! 		 [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {            \
! 		   return __name(__x[__i], __more[__i]...);                    \
! 		 });                                                           \
        }
  
! #define _GLIBCXX_SIMD_MATH_FALLBACK_FIXEDRET(_RetTp, __name)                          \
!     template <typename _Tp, typename... _More>                                        \
!       static auto                                                                     \
!       _S_##__name(const _Tp& __x, const _More&... __more)                             \
!       {                                                                               \
! 	return __fixed_size_storage_t<_RetTp,                                         \
! 				      _VectorTraits<_Tp>::_S_partial_width>::         \
! 	  _S_generate([&](auto __meta) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { \
! 	    return __meta._S_generator(                                               \
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {                      \
! 		return __name(__x[__meta._S_offset + __i],                            \
! 			      __more[__meta._S_offset + __i]...);                     \
! 	      },                                                                      \
! 	      static_cast<_RetTp*>(nullptr));                                         \
! 	  });                                                                         \
        }
  
      _GLIBCXX_SIMD_MATH_FALLBACK(acos)
*************** template <typename _Abi>
*** 1990,1996 ****
        _S_remquo(const _Tp __x, const _Tp __y,
  		__fixed_size_storage_t<int, _TVT::_S_partial_width>* __z)
        {
! 	return __generate_vector<_Tp>([&](auto __i) {
  	  int __tmp;
  	  auto __r = remquo(__x[__i], __y[__i], &__tmp);
  	  __z->_M_set(__i, __tmp);
--- 2038,2044 ----
        _S_remquo(const _Tp __x, const _Tp __y,
  		__fixed_size_storage_t<int, _TVT::_S_partial_width>* __z)
        {
! 	return __generate_vector<_Tp>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  int __tmp;
  	  auto __r = remquo(__x[__i], __y[__i], &__tmp);
  	  __z->_M_set(__i, __tmp);
*************** template <typename _Abi>
*** 2074,2095 ****
  #undef _GLIBCXX_SIMD_MATH_FALLBACK_FIXEDRET
      // _S_abs {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!     _S_abs(_SimdWrapper<_Tp, _Np> __x) noexcept
!     {
!       // if (__builtin_is_constant_evaluated())
!       //  {
!       //    return __x._M_data < 0 ? -__x._M_data : __x._M_data;
!       //  }
!       if constexpr (is_floating_point_v<_Tp>)
! 	// `v < 0 ? -v : v` cannot compile to the efficient implementation of
! 	// masking the signbit off because it must consider v == -0
  
! 	// ~(-0.) & v would be easy, but breaks with fno-signed-zeros
! 	return __and(_S_absmask<__vector_type_t<_Tp, _Np>>, __x._M_data);
!       else
! 	return __x._M_data < 0 ? -__x._M_data : __x._M_data;
!     }
  
      // }}}3
      // _S_plus_minus {{{
--- 2122,2143 ----
  #undef _GLIBCXX_SIMD_MATH_FALLBACK_FIXEDRET
      // _S_abs {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!       _S_abs(_SimdWrapper<_Tp, _Np> __x) noexcept
!       {
! 	// if (__builtin_is_constant_evaluated())
! 	//  {
! 	//    return __x._M_data < 0 ? -__x._M_data : __x._M_data;
! 	//  }
! 	if constexpr (is_floating_point_v<_Tp>)
! 	  // `v < 0 ? -v : v` cannot compile to the efficient implementation of
! 	  // masking the signbit off because it must consider v == -0
  
! 	  // ~(-0.) & v would be easy, but breaks with fno-signed-zeros
! 	  return __and(_S_absmask<__vector_type_t<_Tp, _Np>>, __x._M_data);
! 	else
! 	  return __x._M_data < 0 ? -__x._M_data : __x._M_data;
!       }
  
      // }}}3
      // _S_plus_minus {{{
*************** template <typename _Abi>
*** 2097,2435 ****
      // - _TV must be __vector_type_t<floating-point type, N>.
      // - _UV must be _TV or floating-point type.
      template <typename _TV, typename _UV>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _TV _S_plus_minus(_TV __x,
! 							       _UV __y) noexcept
!     {
!   #if defined __i386__ && !defined __SSE_MATH__
!       if constexpr (sizeof(__x) == 8)
! 	{ // operations on __x would use the FPU
! 	  static_assert(is_same_v<_TV, __vector_type_t<float, 2>>);
! 	  const auto __x4 = __vector_bitcast<float, 4>(__x);
! 	  if constexpr (is_same_v<_TV, _UV>)
! 	    return __vector_bitcast<float, 2>(
! 	      _S_plus_minus(__x4, __vector_bitcast<float, 4>(__y)));
! 	  else
! 	    return __vector_bitcast<float, 2>(_S_plus_minus(__x4, __y));
! 	}
!   #endif
!   #if !defined __clang__ && __GCC_IEC_559 == 0
!       if (__builtin_is_constant_evaluated()
! 	  || (__builtin_constant_p(__x) && __builtin_constant_p(__y)))
  	return (__x + __y) - __y;
!       else
! 	return [&] {
! 	  __x += __y;
! 	  if constexpr(__have_sse)
! 	    {
! 	      if constexpr (sizeof(__x) >= 16)
! 		asm("" : "+x"(__x));
! 	      else if constexpr (is_same_v<__vector_type_t<float, 2>, _TV>)
! 		asm("" : "+x"(__x[0]), "+x"(__x[1]));
! 	      else
! 		__assert_unreachable<_TV>();
! 	    }
! 	  else if constexpr(__have_neon)
! 	    asm("" : "+w"(__x));
! 	  else if constexpr (__have_power_vmx)
! 	    {
! 	      if constexpr (is_same_v<__vector_type_t<float, 2>, _TV>)
! 		asm("" : "+fgr"(__x[0]), "+fgr"(__x[1]));
! 	      else
! 		asm("" : "+v"(__x));
! 	    }
! 	  else
! 	    asm("" : "+g"(__x));
! 	  return __x - __y;
! 	}();
!   #else
!       return (__x + __y) - __y;
!   #endif
!     }
  
      // }}}
      // _S_nearbyint {{{3
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_nearbyint(_Tp __x_) noexcept
!     {
!       using value_type = typename _TVT::value_type;
!       using _V = typename _TVT::type;
!       const _V __x = __x_;
!       const _V __absx = __and(__x, _S_absmask<_V>);
!       static_assert(__CHAR_BIT__ * sizeof(1ull) >= __digits_v<value_type>);
!       _GLIBCXX_SIMD_USE_CONSTEXPR _V __shifter_abs
! 	= _V() + (1ull << (__digits_v<value_type> - 1));
!       const _V __shifter = __or(__and(_S_signmask<_V>, __x), __shifter_abs);
!       const _V __shifted = _S_plus_minus(__x, __shifter);
!       return __absx < __shifter_abs ? __shifted : __x;
!     }
  
      // _S_rint {{{3
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_rint(_Tp __x) noexcept
!     {
!       return _SuperImpl::_S_nearbyint(__x);
!     }
  
      // _S_trunc {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!     _S_trunc(_SimdWrapper<_Tp, _Np> __x)
!     {
!       using _V = __vector_type_t<_Tp, _Np>;
!       const _V __absx = __and(__x._M_data, _S_absmask<_V>);
!       static_assert(__CHAR_BIT__ * sizeof(1ull) >= __digits_v<_Tp>);
!       constexpr _Tp __shifter = 1ull << (__digits_v<_Tp> - 1);
!       _V __truncated = _S_plus_minus(__absx, __shifter);
!       __truncated -= __truncated > __absx ? _V() + 1 : _V();
!       return __absx < __shifter ? __or(__xor(__absx, __x._M_data), __truncated)
! 				: __x._M_data;
!     }
  
      // _S_round {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!     _S_round(_SimdWrapper<_Tp, _Np> __x)
!     {
!       const auto __abs_x = _SuperImpl::_S_abs(__x);
!       const auto __t_abs = _SuperImpl::_S_trunc(__abs_x)._M_data;
!       const auto __r_abs // round(abs(x)) =
! 	= __t_abs + (__abs_x._M_data - __t_abs >= _Tp(.5) ? _Tp(1) : 0);
!       return __or(__xor(__abs_x._M_data, __x._M_data), __r_abs);
!     }
  
      // _S_floor {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!     _S_floor(_SimdWrapper<_Tp, _Np> __x)
!     {
!       const auto __y = _SuperImpl::_S_trunc(__x)._M_data;
!       const auto __negative_input
! 	= __vector_bitcast<_Tp>(__x._M_data < __vector_broadcast<_Np, _Tp>(0));
!       const auto __mask
! 	= __andnot(__vector_bitcast<_Tp>(__y == __x._M_data), __negative_input);
!       return __or(__andnot(__mask, __y),
! 		  __and(__mask, __y - __vector_broadcast<_Np, _Tp>(1)));
!     }
  
      // _S_ceil {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!     _S_ceil(_SimdWrapper<_Tp, _Np> __x)
!     {
!       const auto __y = _SuperImpl::_S_trunc(__x)._M_data;
!       const auto __negative_input
! 	= __vector_bitcast<_Tp>(__x._M_data < __vector_broadcast<_Np, _Tp>(0));
!       const auto __inv_mask
! 	= __or(__vector_bitcast<_Tp>(__y == __x._M_data), __negative_input);
!       return __or(__and(__inv_mask, __y),
! 		  __andnot(__inv_mask, __y + __vector_broadcast<_Np, _Tp>(1)));
!     }
  
      // _S_isnan {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!     _S_isnan([[maybe_unused]] _SimdWrapper<_Tp, _Np> __x)
!     {
!   #if __FINITE_MATH_ONLY__
!       return {}; // false
!   #elif !defined __SUPPORT_SNAN__
!       return ~(__x._M_data == __x._M_data);
!   #elif defined __STDC_IEC_559__
!       using _Ip = __int_for_sizeof_t<_Tp>;
!       const auto __absn = __vector_bitcast<_Ip>(_SuperImpl::_S_abs(__x));
!       const auto __infn
! 	= __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__infinity_v<_Tp>));
!       return __infn < __absn;
!   #else
!   #error "Not implemented: how to support SNaN but non-IEC559 floating-point?"
!   #endif
!     }
  
      // _S_isfinite {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!     _S_isfinite([[maybe_unused]] _SimdWrapper<_Tp, _Np> __x)
!     {
!   #if __FINITE_MATH_ONLY__
!       using _UV = typename _MaskMember<_Tp>::_BuiltinType;
!       _GLIBCXX_SIMD_USE_CONSTEXPR _UV __alltrue = ~_UV();
!       return __alltrue;
!   #else
!       // if all exponent bits are set, __x is either inf or NaN
!       using _Ip = __int_for_sizeof_t<_Tp>;
!       const auto __absn = __vector_bitcast<_Ip>(_SuperImpl::_S_abs(__x));
!       const auto __maxn
! 	= __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__finite_max_v<_Tp>));
!       return __absn <= __maxn;
!   #endif
!     }
  
      // _S_isunordered {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!     _S_isunordered(_SimdWrapper<_Tp, _Np> __x, _SimdWrapper<_Tp, _Np> __y)
!     {
!       return __or(_S_isnan(__x), _S_isnan(__y));
!     }
  
      // _S_signbit {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!     _S_signbit(_SimdWrapper<_Tp, _Np> __x)
!     {
!       using _Ip = __int_for_sizeof_t<_Tp>;
!       return __vector_bitcast<_Ip>(__x) < 0;
!       // Arithmetic right shift (SRA) would also work (instead of compare), but
!       // 64-bit SRA isn't available on x86 before AVX512. And in general,
!       // compares are more likely to be efficient than SRA.
!     }
  
      // _S_isinf {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!     _S_isinf([[maybe_unused]] _SimdWrapper<_Tp, _Np> __x)
!     {
!   #if __FINITE_MATH_ONLY__
!       return {}; // false
!   #else
!       return _SuperImpl::template _S_equal_to<_Tp, _Np>(_SuperImpl::_S_abs(__x),
! 							__vector_broadcast<_Np>(
! 							  __infinity_v<_Tp>));
!       // alternative:
!       // compare to inf using the corresponding integer type
!       /*
! 	 return
! 	 __vector_bitcast<_Tp>(__vector_bitcast<__int_for_sizeof_t<_Tp>>(
! 			       _S_abs(__x)._M_data)
! 	 ==
! 	 __vector_bitcast<__int_for_sizeof_t<_Tp>>(__vector_broadcast<_Np>(
! 	 __infinity_v<_Tp>)));
! 	 */
!   #endif
!     }
  
      // _S_isnormal {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!     _S_isnormal(_SimdWrapper<_Tp, _Np> __x)
!     {
!       using _Ip = __int_for_sizeof_t<_Tp>;
!       const auto __absn = __vector_bitcast<_Ip>(_SuperImpl::_S_abs(__x));
!       const auto __minn
! 	= __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__norm_min_v<_Tp>));
!   #if __FINITE_MATH_ONLY__
!       return __absn >= __minn;
!   #else
!       const auto __maxn
! 	= __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__finite_max_v<_Tp>));
!       return __minn <= __absn && __absn <= __maxn;
!   #endif
!     }
  
      // _S_fpclassify {{{3
      template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static __fixed_size_storage_t<int, _Np>
!     _S_fpclassify(_SimdWrapper<_Tp, _Np> __x)
!     {
!       using _I = __int_for_sizeof_t<_Tp>;
!       const auto __xn
! 	= __vector_bitcast<_I>(__to_intrin(_SuperImpl::_S_abs(__x)));
!       constexpr size_t _NI = sizeof(__xn) / sizeof(_I);
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __minn
! 	= __vector_bitcast<_I>(__vector_broadcast<_NI>(__norm_min_v<_Tp>));
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __infn
! 	= __vector_bitcast<_I>(__vector_broadcast<_NI>(__infinity_v<_Tp>));
  
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_normal
! 	= __vector_broadcast<_NI, _I>(FP_NORMAL);
!   #if !__FINITE_MATH_ONLY__
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_nan
! 	= __vector_broadcast<_NI, _I>(FP_NAN);
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_infinite
! 	= __vector_broadcast<_NI, _I>(FP_INFINITE);
!   #endif
!   #ifndef __FAST_MATH__
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_subnormal
! 	= __vector_broadcast<_NI, _I>(FP_SUBNORMAL);
!   #endif
!       _GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_zero
! 	= __vector_broadcast<_NI, _I>(FP_ZERO);
  
!       __vector_type_t<_I, _NI>
! 	__tmp = __xn < __minn
    #ifdef __FAST_MATH__
! 		  ? __fp_zero
    #else
! 		  ? (__xn == 0 ? __fp_zero : __fp_subnormal)
    #endif
    #if __FINITE_MATH_ONLY__
! 		  : __fp_normal;
    #else
! 		  : (__xn < __infn ? __fp_normal
! 				   : (__xn == __infn ? __fp_infinite : __fp_nan));
    #endif
  
!       if constexpr (sizeof(_I) == sizeof(int))
! 	{
! 	  using _FixedInt = __fixed_size_storage_t<int, _Np>;
! 	  const auto __as_int = __vector_bitcast<int, _Np>(__tmp);
! 	  if constexpr (_FixedInt::_S_tuple_size == 1)
! 	    return {__as_int};
! 	  else if constexpr (_FixedInt::_S_tuple_size == 2
! 			     && is_same_v<
! 			       typename _FixedInt::_SecondType::_FirstAbi,
! 			       simd_abi::scalar>)
! 	    return {__extract<0, 2>(__as_int), __as_int[_Np - 1]};
! 	  else if constexpr (_FixedInt::_S_tuple_size == 2)
! 	    return {__extract<0, 2>(__as_int),
! 		    __auto_bitcast(__extract<1, 2>(__as_int))};
! 	  else
! 	    __assert_unreachable<_Tp>();
! 	}
!       else if constexpr (_Np == 2 && sizeof(_I) == 8
! 			 && __fixed_size_storage_t<int, _Np>::_S_tuple_size == 2)
! 	{
! 	  const auto __aslong = __vector_bitcast<_LLong>(__tmp);
! 	  return {int(__aslong[0]), {int(__aslong[1])}};
! 	}
!   #if _GLIBCXX_SIMD_X86INTRIN
!       else if constexpr (sizeof(_Tp) == 8 && sizeof(__tmp) == 32
! 			 && __fixed_size_storage_t<int, _Np>::_S_tuple_size == 1)
! 	return {_mm_packs_epi32(__to_intrin(__lo128(__tmp)),
! 				__to_intrin(__hi128(__tmp)))};
!       else if constexpr (sizeof(_Tp) == 8 && sizeof(__tmp) == 64
! 			 && __fixed_size_storage_t<int, _Np>::_S_tuple_size == 1)
! 	return {_mm512_cvtepi64_epi32(__to_intrin(__tmp))};
!   #endif // _GLIBCXX_SIMD_X86INTRIN
!       else if constexpr (__fixed_size_storage_t<int, _Np>::_S_tuple_size == 1)
! 	return {__call_with_subscripts<_Np>(__vector_bitcast<_LLong>(__tmp),
! 					    [](auto... __l) {
! 					      return __make_wrapper<int>(__l...);
! 					    })};
!       else
! 	__assert_unreachable<_Tp>();
!     }
  
      // _S_increment & _S_decrement{{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_increment(_SimdWrapper<_Tp, _Np>& __x)
        { __x = __x._M_data + 1; }
  
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_decrement(_SimdWrapper<_Tp, _Np>& __x)
        { __x = __x._M_data - 1; }
  
      // smart_reference access {{{2
      template <typename _Tp, size_t _Np, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC constexpr static void
        _S_set(_SimdWrapper<_Tp, _Np>& __v, int __i, _Up&& __x) noexcept
        { __v._M_set(__i, static_cast<_Up&&>(__x)); }
  
      // _S_masked_assign{{{2
      template <typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_assign(_SimdWrapper<_K, _Np> __k, _SimdWrapper<_Tp, _Np>& __lhs,
  		       __type_identity_t<_SimdWrapper<_Tp, _Np>> __rhs)
        {
--- 2145,2481 ----
      // - _TV must be __vector_type_t<floating-point type, N>.
      // - _UV must be _TV or floating-point type.
      template <typename _TV, typename _UV>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _TV
!       _S_plus_minus(_TV __x, _UV __y) noexcept
!       {
! #if defined __i386__ && !defined __SSE_MATH__
! 	if constexpr (sizeof(__x) == 8)
! 	  { // operations on __x would use the FPU
! 	    static_assert(is_same_v<_TV, __vector_type_t<float, 2>>);
! 	    const auto __x4 = __vector_bitcast<float, 4>(__x);
! 	    if constexpr (is_same_v<_TV, _UV>)
! 	      return __vector_bitcast<float, 2>(
! 		       _S_plus_minus(__x4, __vector_bitcast<float, 4>(__y)));
! 	    else
! 	      return __vector_bitcast<float, 2>(_S_plus_minus(__x4, __y));
! 	  }
! #endif
! #if !defined __clang__ && __GCC_IEC_559 == 0
! 	if (__builtin_is_constant_evaluated()
! 	      || (__builtin_constant_p(__x) && __builtin_constant_p(__y)))
! 	  return (__x + __y) - __y;
! 	else
! 	  return [&] {
! 	    __x += __y;
! 	    if constexpr(__have_sse)
! 	      {
! 		if constexpr (sizeof(__x) >= 16)
! 		  asm("" : "+x"(__x));
! 		else if constexpr (is_same_v<__vector_type_t<float, 2>, _TV>)
! 		  asm("" : "+x"(__x[0]), "+x"(__x[1]));
! 		else
! 		  __assert_unreachable<_TV>();
! 	      }
! 	    else if constexpr(__have_neon)
! 	      asm("" : "+w"(__x));
! 	    else if constexpr (__have_power_vmx)
! 	      {
! 		if constexpr (is_same_v<__vector_type_t<float, 2>, _TV>)
! 		  asm("" : "+fgr"(__x[0]), "+fgr"(__x[1]));
! 		else
! 		  asm("" : "+v"(__x));
! 	      }
! 	    else
! 	      asm("" : "+g"(__x));
! 	    return __x - __y;
! 	  }();
! #else
  	return (__x + __y) - __y;
! #endif
!       }
  
      // }}}
      // _S_nearbyint {{{3
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_nearbyint(_Tp __x_) noexcept
!       {
! 	using value_type = typename _TVT::value_type;
! 	using _V = typename _TVT::type;
! 	const _V __x = __x_;
! 	const _V __absx = __and(__x, _S_absmask<_V>);
! 	static_assert(__CHAR_BIT__ * sizeof(1ull) >= __digits_v<value_type>);
! 	_GLIBCXX_SIMD_USE_CONSTEXPR _V __shifter_abs
! 	  = _V() + (1ull << (__digits_v<value_type> - 1));
! 	const _V __shifter = __or(__and(_S_signmask<_V>, __x), __shifter_abs);
! 	const _V __shifted = _S_plus_minus(__x, __shifter);
! 	return __absx < __shifter_abs ? __shifted : __x;
!       }
  
      // _S_rint {{{3
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_rint(_Tp __x) noexcept
!       { return _SuperImpl::_S_nearbyint(__x); }
  
      // _S_trunc {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!       _S_trunc(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	using _V = __vector_type_t<_Tp, _Np>;
! 	const _V __absx = __and(__x._M_data, _S_absmask<_V>);
! 	static_assert(__CHAR_BIT__ * sizeof(1ull) >= __digits_v<_Tp>);
! 	constexpr _Tp __shifter = 1ull << (__digits_v<_Tp> - 1);
! 	_V __truncated = _S_plus_minus(__absx, __shifter);
! 	__truncated -= __truncated > __absx ? _V() + 1 : _V();
! 	return __absx < __shifter ? __or(__xor(__absx, __x._M_data), __truncated)
! 				  : __x._M_data;
!       }
  
      // _S_round {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!       _S_round(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	const auto __abs_x = _SuperImpl::_S_abs(__x);
! 	const auto __t_abs = _SuperImpl::_S_trunc(__abs_x)._M_data;
! 	const auto __r_abs // round(abs(x)) =
! 	  = __t_abs + (__abs_x._M_data - __t_abs >= _Tp(.5) ? _Tp(1) : 0);
! 	return __or(__xor(__abs_x._M_data, __x._M_data), __r_abs);
!       }
  
      // _S_floor {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!       _S_floor(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	const auto __y = _SuperImpl::_S_trunc(__x)._M_data;
! 	const auto __negative_input
! 	  = __vector_bitcast<_Tp>(__x._M_data < __vector_broadcast<_Np, _Tp>(0));
! 	const auto __mask
! 	  = __andnot(__vector_bitcast<_Tp>(__y == __x._M_data), __negative_input);
! 	return __or(__andnot(__mask, __y),
! 		    __and(__mask, __y - __vector_broadcast<_Np, _Tp>(1)));
!       }
  
      // _S_ceil {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
!       _S_ceil(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	const auto __y = _SuperImpl::_S_trunc(__x)._M_data;
! 	const auto __negative_input
! 	  = __vector_bitcast<_Tp>(__x._M_data < __vector_broadcast<_Np, _Tp>(0));
! 	const auto __inv_mask
! 	  = __or(__vector_bitcast<_Tp>(__y == __x._M_data), __negative_input);
! 	return __or(__and(__inv_mask, __y),
! 		    __andnot(__inv_mask, __y + __vector_broadcast<_Np, _Tp>(1)));
!       }
  
      // _S_isnan {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!       _S_isnan([[maybe_unused]] _SimdWrapper<_Tp, _Np> __x)
!       {
! #if __FINITE_MATH_ONLY__
! 	return {}; // false
! #elif !defined __SUPPORT_SNAN__
! 	return ~(__x._M_data == __x._M_data);
! #elif defined __STDC_IEC_559__
! 	using _Ip = __int_for_sizeof_t<_Tp>;
! 	const auto __absn = __vector_bitcast<_Ip>(_SuperImpl::_S_abs(__x));
! 	const auto __infn
! 	  = __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__infinity_v<_Tp>));
! 	return __infn < __absn;
! #else
! #error "Not implemented: how to support SNaN but non-IEC559 floating-point?"
! #endif
!       }
  
      // _S_isfinite {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!       _S_isfinite([[maybe_unused]] _SimdWrapper<_Tp, _Np> __x)
!       {
! #if __FINITE_MATH_ONLY__
! 	using _UV = typename _MaskMember<_Tp>::_BuiltinType;
! 	_GLIBCXX_SIMD_USE_CONSTEXPR _UV __alltrue = ~_UV();
! 	return __alltrue;
! #else
! 	// if all exponent bits are set, __x is either inf or NaN
! 	using _Ip = __int_for_sizeof_t<_Tp>;
! 	const auto __absn = __vector_bitcast<_Ip>(_SuperImpl::_S_abs(__x));
! 	const auto __maxn
! 	  = __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__finite_max_v<_Tp>));
! 	return __absn <= __maxn;
! #endif
!       }
  
      // _S_isunordered {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!       _S_isunordered(_SimdWrapper<_Tp, _Np> __x, _SimdWrapper<_Tp, _Np> __y)
!       { return __or(_S_isnan(__x), _S_isnan(__y)); }
  
      // _S_signbit {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!       _S_signbit(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	using _Ip = __int_for_sizeof_t<_Tp>;
! 	return __vector_bitcast<_Ip>(__x) < 0;
! 	// Arithmetic right shift (SRA) would also work (instead of compare), but
! 	// 64-bit SRA isn't available on x86 before AVX512. And in general,
! 	// compares are more likely to be efficient than SRA.
!       }
  
      // _S_isinf {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!       _S_isinf([[maybe_unused]] _SimdWrapper<_Tp, _Np> __x)
!       {
! #if __FINITE_MATH_ONLY__
! 	return {}; // false
! #else
! 	return _SuperImpl::template _S_equal_to<_Tp, _Np>(_SuperImpl::_S_abs(__x),
! 							  __vector_broadcast<_Np>(
! 							    __infinity_v<_Tp>));
! 	// alternative:
! 	// compare to inf using the corresponding integer type
! 	/*
! 	   return
! 	   __vector_bitcast<_Tp>(__vector_bitcast<__int_for_sizeof_t<_Tp>>(
! 				 _S_abs(__x)._M_data)
! 	   ==
! 	   __vector_bitcast<__int_for_sizeof_t<_Tp>>(__vector_broadcast<_Np>(
! 	   __infinity_v<_Tp>)));
! 	   */
! #endif
!       }
  
      // _S_isnormal {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
!       _S_isnormal(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	using _Ip = __int_for_sizeof_t<_Tp>;
! 	const auto __absn = __vector_bitcast<_Ip>(_SuperImpl::_S_abs(__x));
! 	const auto __minn
! 	  = __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__norm_min_v<_Tp>));
! #if __FINITE_MATH_ONLY__
! 	return __absn >= __minn;
! #else
! 	const auto __maxn
! 	  = __vector_bitcast<_Ip>(__vector_broadcast<_Np>(__finite_max_v<_Tp>));
! 	return __minn <= __absn && __absn <= __maxn;
! #endif
!       }
  
      // _S_fpclassify {{{3
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static __fixed_size_storage_t<int, _Np>
!       _S_fpclassify(_SimdWrapper<_Tp, _Np> __x)
!       {
! 	using _I = __int_for_sizeof_t<_Tp>;
! 	const auto __xn
! 	  = __vector_bitcast<_I>(__to_intrin(_SuperImpl::_S_abs(__x)));
! 	constexpr size_t _NI = sizeof(__xn) / sizeof(_I);
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __minn
! 	  = __vector_bitcast<_I>(__vector_broadcast<_NI>(__norm_min_v<_Tp>));
  
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_normal
! 	  = __vector_broadcast<_NI, _I>(FP_NORMAL);
! #if !__FINITE_MATH_ONLY__
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __infn
! 	  = __vector_bitcast<_I>(__vector_broadcast<_NI>(__infinity_v<_Tp>));
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_nan
! 	  = __vector_broadcast<_NI, _I>(FP_NAN);
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_infinite
! 	  = __vector_broadcast<_NI, _I>(FP_INFINITE);
! #endif
! #ifndef __FAST_MATH__
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_subnormal
! 	  = __vector_broadcast<_NI, _I>(FP_SUBNORMAL);
! #endif
! 	_GLIBCXX_SIMD_USE_CONSTEXPR auto __fp_zero
! 	  = __vector_broadcast<_NI, _I>(FP_ZERO);
  
! 	__vector_type_t<_I, _NI>
! 	  __tmp = __xn < __minn
    #ifdef __FAST_MATH__
! 		    ? __fp_zero
    #else
! 		    ? (__xn == 0 ? __fp_zero : __fp_subnormal)
    #endif
    #if __FINITE_MATH_ONLY__
! 		    : __fp_normal;
    #else
! 		    : (__xn < __infn ? __fp_normal
! 				     : (__xn == __infn ? __fp_infinite : __fp_nan));
    #endif
  
! 	if constexpr (sizeof(_I) == sizeof(int))
! 	  {
! 	    using _FixedInt = __fixed_size_storage_t<int, _Np>;
! 	    const auto __as_int = __vector_bitcast<int, _Np>(__tmp);
! 	    if constexpr (_FixedInt::_S_tuple_size == 1)
! 	      return {__as_int};
! 	    else if constexpr (_FixedInt::_S_tuple_size == 2
! 				 && is_same_v<
! 				      typename _FixedInt::_SecondType::_FirstAbi,
! 				      simd_abi::scalar>)
! 	      return {__extract<0, 2>(__as_int), __as_int[_Np - 1]};
! 	    else if constexpr (_FixedInt::_S_tuple_size == 2)
! 	      return {__extract<0, 2>(__as_int),
! 		      __auto_bitcast(__extract<1, 2>(__as_int))};
! 	    else
! 	      __assert_unreachable<_Tp>();
! 	  }
! 	else if constexpr (_Np == 2 && sizeof(_I) == 8
! 			     && __fixed_size_storage_t<int, _Np>::_S_tuple_size == 2)
! 	  {
! 	    const auto __aslong = __vector_bitcast<_LLong>(__tmp);
! 	    return {int(__aslong[0]), {int(__aslong[1])}};
! 	  }
! #if _GLIBCXX_SIMD_X86INTRIN
! 	else if constexpr (sizeof(_Tp) == 8 && sizeof(__tmp) == 32
! 			     && __fixed_size_storage_t<int, _Np>::_S_tuple_size == 1)
! 	  return {_mm_packs_epi32(__to_intrin(__lo128(__tmp)),
! 				  __to_intrin(__hi128(__tmp)))};
! 	else if constexpr (sizeof(_Tp) == 8 && sizeof(__tmp) == 64
! 			     && __fixed_size_storage_t<int, _Np>::_S_tuple_size == 1)
! 	  return {_mm512_cvtepi64_epi32(__to_intrin(__tmp))};
! #endif // _GLIBCXX_SIMD_X86INTRIN
! 	else if constexpr (__fixed_size_storage_t<int, _Np>::_S_tuple_size == 1)
! 	  return {__call_with_subscripts<_Np>(__vector_bitcast<_LLong>(__tmp),
! 					      [](auto... __l) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 						return __make_wrapper<int>(__l...);
! 					      })};
! 	else
! 	  __assert_unreachable<_Tp>();
!       }
  
      // _S_increment & _S_decrement{{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_increment(_SimdWrapper<_Tp, _Np>& __x)
        { __x = __x._M_data + 1; }
  
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_decrement(_SimdWrapper<_Tp, _Np>& __x)
        { __x = __x._M_data - 1; }
  
      // smart_reference access {{{2
      template <typename _Tp, size_t _Np, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_set(_SimdWrapper<_Tp, _Np>& __v, int __i, _Up&& __x) noexcept
        { __v._M_set(__i, static_cast<_Up&&>(__x)); }
  
      // _S_masked_assign{{{2
      template <typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_masked_assign(_SimdWrapper<_K, _Np> __k, _SimdWrapper<_Tp, _Np>& __lhs,
  		       __type_identity_t<_SimdWrapper<_Tp, _Np>> __rhs)
        {
*************** template <typename _Abi>
*** 2442,2448 ****
        }
  
      template <typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_assign(_SimdWrapper<_K, _Np> __k, _SimdWrapper<_Tp, _Np>& __lhs,
  		       __type_identity_t<_Tp> __rhs)
        {
--- 2488,2494 ----
        }
  
      template <typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_masked_assign(_SimdWrapper<_K, _Np> __k, _SimdWrapper<_Tp, _Np>& __lhs,
  		       __type_identity_t<_Tp> __rhs)
        {
*************** template <typename _Abi>
*** 2470,2476 ****
  
      // _S_masked_cassign {{{2
      template <typename _Op, typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_cassign(const _SimdWrapper<_K, _Np> __k,
  			_SimdWrapper<_Tp, _Np>& __lhs,
  			const __type_identity_t<_SimdWrapper<_Tp, _Np>> __rhs,
--- 2516,2522 ----
  
      // _S_masked_cassign {{{2
      template <typename _Op, typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_masked_cassign(const _SimdWrapper<_K, _Np> __k,
  			_SimdWrapper<_Tp, _Np>& __lhs,
  			const __type_identity_t<_SimdWrapper<_Tp, _Np>> __rhs,
*************** template <typename _Abi>
*** 2486,2492 ****
        }
  
      template <typename _Op, typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_cassign(const _SimdWrapper<_K, _Np> __k,
  			_SimdWrapper<_Tp, _Np>& __lhs,
  			const __type_identity_t<_Tp> __rhs, _Op __op)
--- 2532,2538 ----
        }
  
      template <typename _Op, typename _Tp, typename _K, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_masked_cassign(const _SimdWrapper<_K, _Np> __k,
  			_SimdWrapper<_Tp, _Np>& __lhs,
  			const __type_identity_t<_Tp> __rhs, _Op __op)
*************** template <typename _Abi>
*** 2495,2501 ****
      // _S_masked_unary {{{2
      template <template <typename> class _Op, typename _Tp, typename _K,
  	      size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
        _S_masked_unary(const _SimdWrapper<_K, _Np> __k,
  		      const _SimdWrapper<_Tp, _Np> __v)
        {
--- 2541,2547 ----
      // _S_masked_unary {{{2
      template <template <typename> class _Op, typename _Tp, typename _K,
  	      size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
        _S_masked_unary(const _SimdWrapper<_K, _Np> __k,
  		      const _SimdWrapper<_Tp, _Np> __v)
        {
*************** template <typename _Abi>
*** 2505,2512 ****
  	_Op<decltype(__vv)> __op;
  	if (__k._M_is_constprop_all_of())
  	  return __data(__op(__vv));
! 	else
! 	  return _CommonImpl::_S_blend(__k, __v, __data(__op(__vv)));
        }
  
      //}}}2
--- 2551,2581 ----
  	_Op<decltype(__vv)> __op;
  	if (__k._M_is_constprop_all_of())
  	  return __data(__op(__vv));
! 	else if constexpr (is_same_v<_Op<void>, __increment<void>>)
! 	  {
! 	    static_assert(not std::is_same_v<_K, bool>);
! 	    if constexpr (is_integral_v<_Tp>)
! 	      // Take a shortcut knowing that __k is an integer vector with values -1 or 0.
! 	      return __v._M_data - __vector_bitcast<_Tp>(__k._M_data);
! 	    else if constexpr (not __have_avx2)
! 	      return __v._M_data
! 		       + __vector_bitcast<_Tp>(__k._M_data & __builtin_bit_cast(
! 							       _K, _Tp(1)));
! 	    // starting with AVX2 it is more efficient to blend after add
! 	  }
! 	else if constexpr (is_same_v<_Op<void>, __decrement<void>>)
! 	  {
! 	    static_assert(not std::is_same_v<_K, bool>);
! 	    if constexpr (is_integral_v<_Tp>)
! 	      // Take a shortcut knowing that __k is an integer vector with values -1 or 0.
! 	      return __v._M_data + __vector_bitcast<_Tp>(__k._M_data);
! 	    else if constexpr (not __have_avx2)
! 	      return __v._M_data
! 		       - __vector_bitcast<_Tp>(__k._M_data & __builtin_bit_cast(
! 							       _K, _Tp(1)));
! 	    // starting with AVX2 it is more efficient to blend after sub
! 	  }
! 	return _CommonImpl::_S_blend(__k, __v, __data(__op(__vv)));
        }
  
      //}}}2
*************** struct _MaskImplBuiltinMixin
*** 2534,2546 ****
      _S_to_maskvector(_BitMask<_Np, _Sanitized> __x)
      {
        static_assert(is_same_v<_Up, __int_for_sizeof_t<_Up>>);
!       return __generate_vector<__vector_type_t<_Up, _ToN>>([&](
! 	auto __i) constexpr {
! 	if constexpr (__i < _Np)
! 	  return __x[__i] ? ~_Up() : _Up();
! 	else
! 	  return _Up();
!       });
      }
  
    template <typename _Up, size_t _UpN = 0, typename _Tp, size_t _Np,
--- 2603,2615 ----
      _S_to_maskvector(_BitMask<_Np, _Sanitized> __x)
      {
        static_assert(is_same_v<_Up, __int_for_sizeof_t<_Up>>);
!       return __generate_vector<__vector_type_t<_Up, _ToN>>(
! 	       [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		 if constexpr (__i < _Np)
! 		   return __x[__i] ? ~_Up() : _Up();
! 		 else
! 		   return _Up();
! 	       });
      }
  
    template <typename _Up, size_t _UpN = 0, typename _Tp, size_t _Np,
*************** struct _MaskImplBuiltinMixin
*** 2581,2593 ****
  	  -1, -1, -1, -1, -1>(__y); else
  	  */
  	  {
! 	    return __generate_vector<__vector_type_t<_Up, _ToN>>([&](
! 	      auto __i) constexpr {
! 	      if constexpr (__i < _Np)
! 		return _Up(__x[__i.value]);
! 	      else
! 		return _Up();
! 	    });
  	  }
  	}
      }
--- 2650,2662 ----
  	  -1, -1, -1, -1, -1>(__y); else
  	  */
  	  {
! 	    return __generate_vector<__vector_type_t<_Up, _ToN>>(
! 		     [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		       if constexpr (__i < _Np)
! 			 return _Up(__x[__i.value]);
! 		       else
! 			 return _Up();
! 		     });
  	  }
  	}
      }
*************** struct _MaskImplBuiltinMixin
*** 2605,2611 ****
  	= __vector_bitcast<_Up>(__x) >> (sizeof(_Up) * __CHAR_BIT__ - 1);
        _ULLong __r = 0;
        __execute_n_times<_Np>(
! 	[&](auto __i) { __r |= _ULLong(__bools[__i.value]) << __i; });
        return __r;
      }
  
--- 2674,2682 ----
  	= __vector_bitcast<_Up>(__x) >> (sizeof(_Up) * __CHAR_BIT__ - 1);
        _ULLong __r = 0;
        __execute_n_times<_Np>(
! 	[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	  __r |= _ULLong(__bools[__i.value]) << __i;
! 	});
        return __r;
      }
  
*************** template <typename _Abi>
*** 2637,2646 ****
      template <typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember<_Tp>
        _S_broadcast(bool __x)
!       {
! 	return __x ? _Abi::template _S_implicit_mask<_Tp>()
! 		   : _MaskMember<_Tp>();
!       }
  
      // }}}
      // _S_load {{{
--- 2708,2714 ----
      template <typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember<_Tp>
        _S_broadcast(bool __x)
!       { return __x ? _Abi::template _S_implicit_mask<_Tp>() : _MaskMember<_Tp>(); }
  
      // }}}
      // _S_load {{{
*************** template <typename _Abi>
*** 2649,2665 ****
        _S_load(const bool* __mem)
        {
  	using _I = __int_for_sizeof_t<_Tp>;
! 	if constexpr (sizeof(_Tp) == sizeof(bool))
! 	  {
! 	    const auto __bools
! 	      = _CommonImpl::template _S_load<_I, _S_size<_Tp>>(__mem);
! 	    // bool is {0, 1}, everything else is UB
! 	    return __bools > 0;
! 	  }
! 	else
! 	  return __generate_vector<_I, _S_size<_Tp>>([&](auto __i) constexpr {
! 	    return __mem[__i] ? ~_I() : _I();
! 	  });
        }
  
      // }}}
--- 2717,2734 ----
        _S_load(const bool* __mem)
        {
  	using _I = __int_for_sizeof_t<_Tp>;
! 	if (not __builtin_is_constant_evaluated())
! 	  if constexpr (sizeof(_Tp) == sizeof(bool))
! 	    {
! 	      const auto __bools
! 		= _CommonImpl::template _S_load<_I, _S_size<_Tp>>(__mem);
! 	      // bool is {0, 1}, everything else is UB
! 	      return __bools > 0;
! 	    }
! 	return __generate_vector<_I, _S_size<_Tp>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __mem[__i] ? ~_I() : _I();
! 		 });
        }
  
      // }}}
*************** template <typename _Abi>
*** 2732,2738 ****
  	// AVX(2) has 32/64 bit maskload, but nothing at 8 bit granularity
  	auto __tmp = __wrapper_bitcast<__int_for_sizeof_t<_Tp>>(__merge);
  	_BitOps::_S_bit_iteration(_SuperImpl::_S_to_bits(__mask),
! 				  [&](auto __i) {
  				    __tmp._M_set(__i, -__mem[__i]);
  				  });
  	__merge = __wrapper_bitcast<_Tp>(__tmp);
--- 2801,2807 ----
  	// AVX(2) has 32/64 bit maskload, but nothing at 8 bit granularity
  	auto __tmp = __wrapper_bitcast<__int_for_sizeof_t<_Tp>>(__merge);
  	_BitOps::_S_bit_iteration(_SuperImpl::_S_to_bits(__mask),
! 				  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  				    __tmp._M_set(__i, -__mem[__i]);
  				  });
  	__merge = __wrapper_bitcast<_Tp>(__tmp);
*************** template <typename _Abi>
*** 2741,2750 ****
  
      // _S_store {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void _S_store(_SimdWrapper<_Tp, _Np> __v,
! 						   bool* __mem) noexcept
        {
! 	__execute_n_times<_Np>([&](auto __i) constexpr {
  	  __mem[__i] = __v[__i];
  	});
        }
--- 2810,2819 ----
  
      // _S_store {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
!       _S_store(_SimdWrapper<_Tp, _Np> __v, bool* __mem) noexcept
        {
! 	__execute_n_times<_Np>([&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  __mem[__i] = __v[__i];
  	});
        }
*************** template <typename _Abi>
*** 2755,2785 ****
        _S_masked_store(const _SimdWrapper<_Tp, _Np> __v, bool* __mem,
  		      const _SimdWrapper<_Tp, _Np> __k) noexcept
        {
! 	_BitOps::_S_bit_iteration(
! 	  _SuperImpl::_S_to_bits(__k), [&](auto __i) constexpr {
! 	    __mem[__i] = __v[__i];
! 	  });
        }
  
      // _S_from_bitmask{{{2
      template <size_t _Np, typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
        _S_from_bitmask(_SanitizedBitMask<_Np> __bits, _TypeTag<_Tp>)
!       {
! 	return _SuperImpl::template _S_to_maskvector<_Tp, _S_size<_Tp>>(__bits);
!       }
  
      // logical and bitwise operators {{{2
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_and(const _SimdWrapper<_Tp, _Np>& __x,
! 		     const _SimdWrapper<_Tp, _Np>& __y)
        { return __and(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_or(const _SimdWrapper<_Tp, _Np>& __x,
! 		    const _SimdWrapper<_Tp, _Np>& __y)
        { return __or(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
--- 2824,2850 ----
        _S_masked_store(const _SimdWrapper<_Tp, _Np> __v, bool* __mem,
  		      const _SimdWrapper<_Tp, _Np> __k) noexcept
        {
! 	_BitOps::_S_bit_iteration(_SuperImpl::_S_to_bits(__k),
! 				  [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				    __mem[__i] = __v[__i];
! 				  });
        }
  
      // _S_from_bitmask{{{2
      template <size_t _Np, typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static _MaskMember<_Tp>
        _S_from_bitmask(_SanitizedBitMask<_Np> __bits, _TypeTag<_Tp>)
!       { return _SuperImpl::template _S_to_maskvector<_Tp, _S_size<_Tp>>(__bits); }
  
      // logical and bitwise operators {{{2
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_and(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        { return __and(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_or(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        { return __or(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
*************** template <typename _Abi>
*** 2795,2820 ****
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_and(const _SimdWrapper<_Tp, _Np>& __x,
! 		 const _SimdWrapper<_Tp, _Np>& __y)
        { return __and(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_or(const _SimdWrapper<_Tp, _Np>& __x,
! 		const _SimdWrapper<_Tp, _Np>& __y)
        { return __or(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_xor(const _SimdWrapper<_Tp, _Np>& __x,
! 		 const _SimdWrapper<_Tp, _Np>& __y)
        { return __xor(__x._M_data, __y._M_data); }
  
      // smart_reference access {{{2
      template <typename _Tp, size_t _Np>
!       static constexpr void _S_set(_SimdWrapper<_Tp, _Np>& __k, int __i,
! 				   bool __x) noexcept
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  __k._M_set(__i, __x);
--- 2860,2882 ----
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_and(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        { return __and(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_or(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        { return __or(__x._M_data, __y._M_data); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_xor(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        { return __xor(__x._M_data, __y._M_data); }
  
      // smart_reference access {{{2
      template <typename _Tp, size_t _Np>
!       static constexpr void
!       _S_set(_SimdWrapper<_Tp, _Np>& __k, int __i, bool __x) noexcept
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  __k._M_set(__i, __x);
*************** template <typename _Abi>
*** 2825,2832 ****
  	      {
  		__k = __generate_from_n_evaluations<_Np,
  						    __vector_type_t<_Tp, _Np>>(
! 		  [&](auto __j) {
! 		    if (__i == __j)
  		      return _Tp(-__x);
  		    else
  		      return __k[+__j];
--- 2887,2894 ----
  	      {
  		__k = __generate_from_n_evaluations<_Np,
  						    __vector_type_t<_Tp, _Np>>(
! 		  [&](auto __j) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		    if (__i == static_cast<int>(__j))
  		      return _Tp(-__x);
  		    else
  		      return __k[+__j];
*************** template <typename _Abi>
*** 2840,2854 ****
      // _S_masked_assign{{{2
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_assign(_SimdWrapper<_Tp, _Np> __k,
! 		       _SimdWrapper<_Tp, _Np>& __lhs,
  		       __type_identity_t<_SimdWrapper<_Tp, _Np>> __rhs)
        { __lhs = _CommonImpl::_S_blend(__k, __lhs, __rhs); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_assign(_SimdWrapper<_Tp, _Np> __k,
! 		       _SimdWrapper<_Tp, _Np>& __lhs, bool __rhs)
        {
  	if (__builtin_constant_p(__rhs))
  	  {
--- 2902,2914 ----
      // _S_masked_assign{{{2
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_assign(_SimdWrapper<_Tp, _Np> __k, _SimdWrapper<_Tp, _Np>& __lhs,
  		       __type_identity_t<_SimdWrapper<_Tp, _Np>> __rhs)
        { __lhs = _CommonImpl::_S_blend(__k, __lhs, __rhs); }
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_assign(_SimdWrapper<_Tp, _Np> __k, _SimdWrapper<_Tp, _Np>& __lhs, bool __rhs)
        {
  	if (__builtin_constant_p(__rhs))
  	  {
*************** template <typename _Abi>
*** 2870,2876 ****
        {
  	return __call_with_subscripts(
  	  __data(__k), make_index_sequence<_S_size<_Tp>>(),
! 	  [](const auto... __ent) constexpr { return (... && !(__ent == 0)); });
        }
  
      // }}}
--- 2930,2937 ----
        {
  	return __call_with_subscripts(
  	  __data(__k), make_index_sequence<_S_size<_Tp>>(),
! 	  [](const auto... __ent) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 	  { return (... && !(__ent == 0)); });
        }
  
      // }}}
*************** template <typename _Abi>
*** 2881,2887 ****
        {
  	return __call_with_subscripts(
  	  __data(__k), make_index_sequence<_S_size<_Tp>>(),
! 	  [](const auto... __ent) constexpr { return (... || !(__ent == 0)); });
        }
  
      // }}}
--- 2942,2949 ----
        {
  	return __call_with_subscripts(
  	  __data(__k), make_index_sequence<_S_size<_Tp>>(),
! 	  [](const auto... __ent) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 	  { return (... || !(__ent == 0)); });
        }
  
      // }}}
*************** template <typename _Abi>
*** 2892,2898 ****
        {
  	return __call_with_subscripts(
  	  __data(__k), make_index_sequence<_S_size<_Tp>>(),
! 	  [](const auto... __ent) constexpr { return (... && (__ent == 0)); });
        }
  
      // }}}
--- 2954,2961 ----
        {
  	return __call_with_subscripts(
  	  __data(__k), make_index_sequence<_S_size<_Tp>>(),
! 	  [](const auto... __ent) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 	  { return (... && (__ent == 0)); });
        }
  
      // }}}
*************** template <typename _Abi>
*** 2925,2944 ****
      template <typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static int
        _S_find_first_set(simd_mask<_Tp, _Abi> __k)
!       {
! 	return std::__countr_zero(
! 	  _SuperImpl::_S_to_bits(__data(__k))._M_to_bits());
!       }
  
      // }}}
      // _S_find_last_set {{{
      template <typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static int
        _S_find_last_set(simd_mask<_Tp, _Abi> __k)
!       {
! 	return std::__bit_width(
! 	  _SuperImpl::_S_to_bits(__data(__k))._M_to_bits()) - 1;
!       }
  
      // }}}
    };
--- 2988,3001 ----
      template <typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static int
        _S_find_first_set(simd_mask<_Tp, _Abi> __k)
!       { return std::__countr_zero(_SuperImpl::_S_to_bits(__data(__k))._M_to_bits()); }
  
      // }}}
      // _S_find_last_set {{{
      template <typename _Tp>
        _GLIBCXX_SIMD_INTRINSIC static int
        _S_find_last_set(simd_mask<_Tp, _Abi> __k)
!       { return std::__bit_width(_SuperImpl::_S_to_bits(__data(__k))._M_to_bits()) - 1; }
  
      // }}}
    };
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_converter.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_converter.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_converter.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_converter.h	Mon May 29 08:46:33 2023
*************** template <typename _From, typename _To,
*** 121,127 ****
  	{
  	  return __call_with_subscripts(
  	    __x, make_index_sequence<_Np>(),
! 	    [](auto... __values) constexpr->_Ret {
  	      return __make_simd_tuple<_To, decltype((void) __values,
  						     simd_abi::scalar())...>(
  		static_cast<_To>(__values)...);
--- 121,127 ----
  	{
  	  return __call_with_subscripts(
  	    __x, make_index_sequence<_Np>(),
! 	    [](auto... __values) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA -> _Ret {
  	      return __make_simd_tuple<_To, decltype((void) __values,
  						     simd_abi::scalar())...>(
  		static_cast<_To>(__values)...);
*************** template <typename _From, typename _To,
*** 233,239 ****
  	  static_assert(_Ret::_FirstAbi::template _S_is_partial<_To>);
  	  return _Ret{__generate_from_n_evaluations<
  	    _Np, typename _VectorTraits<typename _Ret::_FirstType>::type>(
! 	    [&](auto __i) { return static_cast<_To>(__x[__i]); })};
  	}
        else
  	{
--- 233,241 ----
  	  static_assert(_Ret::_FirstAbi::template _S_is_partial<_To>);
  	  return _Ret{__generate_from_n_evaluations<
  	    _Np, typename _VectorTraits<typename _Ret::_FirstType>::type>(
! 	    [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	      return static_cast<_To>(__x[__i]);
! 	    })};
  	}
        else
  	{
*************** template <typename _From, typename _To,
*** 241,247 ****
  	  constexpr auto __n
  	    = __div_roundup(_Ret::_S_first_size, _Arg::_S_first_size);
  	  return __call_with_n_evaluations<__n>(
! 	    [&__x](auto... __uncvted) {
  	      // assuming _Arg Abi tags for all __i are _Arg::_FirstAbi
  	      _SimdConverter<_From, typename _Arg::_FirstAbi, _To,
  			     typename _Ret::_FirstAbi>
--- 243,249 ----
  	  constexpr auto __n
  	    = __div_roundup(_Ret::_S_first_size, _Arg::_S_first_size);
  	  return __call_with_n_evaluations<__n>(
! 	    [&__x](auto... __uncvted) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	      // assuming _Arg Abi tags for all __i are _Arg::_FirstAbi
  	      _SimdConverter<_From, typename _Arg::_FirstAbi, _To,
  			     typename _Ret::_FirstAbi>
*************** template <typename _From, typename _To,
*** 255,262 ****
  		    _From, simd_abi::fixed_size<_Np - _Ret::_S_first_size>, _To,
  		    simd_abi::fixed_size<_Np - _Ret::_S_first_size>>()(
  		    __simd_tuple_pop_front<_Ret::_S_first_size>(__x))};
! 	    },
! 	    [&__x](auto __i) { return __get_tuple_at<__i>(__x); });
  	}
      }
    };
--- 257,265 ----
  		    _From, simd_abi::fixed_size<_Np - _Ret::_S_first_size>, _To,
  		    simd_abi::fixed_size<_Np - _Ret::_S_first_size>>()(
  		    __simd_tuple_pop_front<_Ret::_S_first_size>(__x))};
! 	    }, [&__x](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	      return __get_tuple_at<__i>(__x);
! 	    });
  	}
      }
    };
*************** template <typename _From, int _Np, typen
*** 322,334 ****
  	return __vector_convert<__vector_type_t<_To, _Np>>(__x.first);
        else if constexpr (_Arg::_S_is_homogeneous)
  	return __call_with_n_evaluations<_Arg::_S_tuple_size>(
! 	  [](auto... __members) {
  	    if constexpr ((is_convertible_v<decltype(__members), _To> && ...))
  	      return __vector_type_t<_To, _Np>{static_cast<_To>(__members)...};
  	    else
  	      return __vector_convert<__vector_type_t<_To, _Np>>(__members...);
! 	  },
! 	  [&](auto __i) { return __get_tuple_at<__i>(__x); });
        else if constexpr (__fixed_size_storage_t<_To, _Np>::_S_tuple_size == 1)
  	{
  	  _SimdConverter<_From, simd_abi::fixed_size<_Np>, _To,
--- 325,338 ----
  	return __vector_convert<__vector_type_t<_To, _Np>>(__x.first);
        else if constexpr (_Arg::_S_is_homogeneous)
  	return __call_with_n_evaluations<_Arg::_S_tuple_size>(
! 	  [](auto... __members) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    if constexpr ((is_convertible_v<decltype(__members), _To> && ...))
  	      return __vector_type_t<_To, _Np>{static_cast<_To>(__members)...};
  	    else
  	      return __vector_convert<__vector_type_t<_To, _Np>>(__members...);
! 	  }, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	    return __get_tuple_at<__i>(__x);
! 	  });
        else if constexpr (__fixed_size_storage_t<_To, _Np>::_S_tuple_size == 1)
  	{
  	  _SimdConverter<_From, simd_abi::fixed_size<_Np>, _To,
*************** template <typename _From, int _Np, typen
*** 340,346 ****
  	{
  	  const _SimdWrapper<_From, _Np> __xv
  	    = __generate_from_n_evaluations<_Np, __vector_type_t<_From, _Np>>(
! 	      [&](auto __i) { return __x[__i]; });
  	  return __vector_convert<__vector_type_t<_To, _Np>>(__xv);
  	}
      }
--- 344,350 ----
  	{
  	  const _SimdWrapper<_From, _Np> __xv
  	    = __generate_from_n_evaluations<_Np, __vector_type_t<_From, _Np>>(
! 		[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; });
  	  return __vector_convert<__vector_type_t<_To, _Np>>(__xv);
  	}
      }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_detail.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_detail.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_detail.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_detail.h	Mon May 29 08:46:33 2023
***************
*** 214,222 ****
--- 214,224 ----
  
  #ifdef __clang__
  #define _GLIBCXX_SIMD_NORMAL_MATH
+ #define _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
  #else
  #define _GLIBCXX_SIMD_NORMAL_MATH                                              \
    [[__gnu__::__optimize__("finite-math-only,no-signed-zeros")]]
+ #define _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA __attribute__((__always_inline__))
  #endif
  #define _GLIBCXX_SIMD_NEVER_INLINE [[__gnu__::__noinline__]]
  #define _GLIBCXX_SIMD_INTRINSIC                                                \
***************
*** 225,231 ****
  #define _GLIBCXX_SIMD_IS_UNLIKELY(__x) __builtin_expect(__x, 0)
  #define _GLIBCXX_SIMD_IS_LIKELY(__x) __builtin_expect(__x, 1)
  
! #if defined __STRICT_ANSI__ && __STRICT_ANSI__
  #define _GLIBCXX_SIMD_CONSTEXPR
  #define _GLIBCXX_SIMD_USE_CONSTEXPR_API const
  #else
--- 227,233 ----
  #define _GLIBCXX_SIMD_IS_UNLIKELY(__x) __builtin_expect(__x, 0)
  #define _GLIBCXX_SIMD_IS_LIKELY(__x) __builtin_expect(__x, 1)
  
! #if __STRICT_ANSI__ || defined __clang__
  #define _GLIBCXX_SIMD_CONSTEXPR
  #define _GLIBCXX_SIMD_USE_CONSTEXPR_API const
  #else
***************
*** 254,259 ****
--- 256,263 ----
  #ifdef _GLIBCXX_SIMD_NO_ALWAYS_INLINE
  #undef _GLIBCXX_SIMD_ALWAYS_INLINE
  #define _GLIBCXX_SIMD_ALWAYS_INLINE inline
+ #undef _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
+ #define _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
  #undef _GLIBCXX_SIMD_INTRINSIC
  #define _GLIBCXX_SIMD_INTRINSIC inline
  #endif
***************
*** 276,282 ****
--- 280,288 ----
  #endif
  
  // integer division not optimized
+ #ifndef __clang__
  #define _GLIBCXX_SIMD_WORKAROUND_PR90993 1
+ #endif
  
  // very bad codegen for extraction and concatenation of 128/256 "subregisters"
  // with sizeof(element type) < 8: https://godbolt.org/g/mqUsgM
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_fixed_size.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_fixed_size.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_fixed_size.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_fixed_size.h	Mon May 29 08:46:33 2023
*************** template <typename _Tp, typename _A0, ty
*** 55,64 ****
  
  template <size_t _I, typename _Tp, typename _A0, typename... _As>
    struct __simd_tuple_element<_I, _SimdTuple<_Tp, _A0, _As...>>
!   {
!     using type =
!       typename __simd_tuple_element<_I - 1, _SimdTuple<_Tp, _As...>>::type;
!   };
  
  template <size_t _I, typename _Tp>
    using __simd_tuple_element_t = typename __simd_tuple_element<_I, _Tp>::type;
--- 55,61 ----
  
  template <size_t _I, typename _Tp, typename _A0, typename... _As>
    struct __simd_tuple_element<_I, _SimdTuple<_Tp, _A0, _As...>>
!   { using type = typename __simd_tuple_element<_I - 1, _SimdTuple<_Tp, _As...>>::type; };
  
  template <size_t _I, typename _Tp>
    using __simd_tuple_element_t = typename __simd_tuple_element<_I, _Tp>::type;
*************** template <typename _Tp, typename... _A0s
*** 80,89 ****
    }
  
  template <typename _Tp, typename _A10, typename... _A1s>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp, simd_abi::scalar, _A10,
! 					       _A1s...>
!   __simd_tuple_concat(const _Tp& __left,
! 		      const _SimdTuple<_Tp, _A10, _A1s...>& __right)
    { return {__left, __right}; }
  
  // }}}
--- 77,84 ----
    }
  
  template <typename _Tp, typename _A10, typename... _A1s>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp, simd_abi::scalar, _A10, _A1s...>
!   __simd_tuple_concat(const _Tp& __left, const _SimdTuple<_Tp, _A10, _A1s...>& __right)
    { return {__left, __right}; }
  
  // }}}
*************** struct __as_simd_tuple {};
*** 112,148 ****
  
  template <typename _Tp, typename _A0, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr simd<_Tp, _A0>
!   __simd_tuple_get_impl(__as_simd, const _SimdTuple<_Tp, _A0, _Abis...>& __t,
! 			_SizeConstant<0>)
    { return {__private_init, __t.first}; }
  
  template <typename _Tp, typename _A0, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr const auto&
!   __simd_tuple_get_impl(__as_simd_tuple,
! 			const _SimdTuple<_Tp, _A0, _Abis...>& __t,
  			_SizeConstant<0>)
    { return __t.first; }
  
  template <typename _Tp, typename _A0, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto&
!   __simd_tuple_get_impl(__as_simd_tuple, _SimdTuple<_Tp, _A0, _Abis...>& __t,
! 			_SizeConstant<0>)
    { return __t.first; }
  
  template <typename _R, size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto
!   __simd_tuple_get_impl(_R, const _SimdTuple<_Tp, _Abis...>& __t,
! 			_SizeConstant<_Np>)
    { return __simd_tuple_get_impl(_R(), __t.second, _SizeConstant<_Np - 1>()); }
  
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto&
!   __simd_tuple_get_impl(__as_simd_tuple, _SimdTuple<_Tp, _Abis...>& __t,
! 			_SizeConstant<_Np>)
!   {
!     return __simd_tuple_get_impl(__as_simd_tuple(), __t.second,
! 				 _SizeConstant<_Np - 1>());
!   }
  
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto
--- 107,135 ----
  
  template <typename _Tp, typename _A0, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr simd<_Tp, _A0>
!   __simd_tuple_get_impl(__as_simd, const _SimdTuple<_Tp, _A0, _Abis...>& __t, _SizeConstant<0>)
    { return {__private_init, __t.first}; }
  
  template <typename _Tp, typename _A0, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr const auto&
!   __simd_tuple_get_impl(__as_simd_tuple, const _SimdTuple<_Tp, _A0, _Abis...>& __t,
  			_SizeConstant<0>)
    { return __t.first; }
  
  template <typename _Tp, typename _A0, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto&
!   __simd_tuple_get_impl(__as_simd_tuple, _SimdTuple<_Tp, _A0, _Abis...>& __t, _SizeConstant<0>)
    { return __t.first; }
  
  template <typename _R, size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto
!   __simd_tuple_get_impl(_R, const _SimdTuple<_Tp, _Abis...>& __t, _SizeConstant<_Np>)
    { return __simd_tuple_get_impl(_R(), __t.second, _SizeConstant<_Np - 1>()); }
  
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto&
!   __simd_tuple_get_impl(__as_simd_tuple, _SimdTuple<_Tp, _Abis...>& __t, _SizeConstant<_Np>)
!   { return __simd_tuple_get_impl(__as_simd_tuple(), __t.second, _SizeConstant<_Np - 1>()); }
  
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto
*************** template <size_t _Np, typename _Tp, type
*** 154,169 ****
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto
    __get_tuple_at(const _SimdTuple<_Tp, _Abis...>& __t)
!   {
!     return __simd_tuple_get_impl(__as_simd_tuple(), __t, _SizeConstant<_Np>());
!   }
  
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto&
    __get_tuple_at(_SimdTuple<_Tp, _Abis...>& __t)
!   {
!     return __simd_tuple_get_impl(__as_simd_tuple(), __t, _SizeConstant<_Np>());
!   }
  
  // __tuple_element_meta {{{1
  template <typename _Tp, typename _Abi, size_t _Offset>
--- 141,152 ----
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto
    __get_tuple_at(const _SimdTuple<_Tp, _Abis...>& __t)
!   { return __simd_tuple_get_impl(__as_simd_tuple(), __t, _SizeConstant<_Np>()); }
  
  template <size_t _Np, typename _Tp, typename... _Abis>
    _GLIBCXX_SIMD_INTRINSIC constexpr auto&
    __get_tuple_at(_SimdTuple<_Tp, _Abis...>& __t)
!   { return __simd_tuple_get_impl(__as_simd_tuple(), __t, _SizeConstant<_Np>()); }
  
  // __tuple_element_meta {{{1
  template <typename _Tp, typename _Abi, size_t _Offset>
*************** template <typename _Tp, typename _Abi, s
*** 183,206 ****
      static constexpr _MaskImpl _S_mask_impl = {};
  
      template <size_t _Np, bool _Sanitized>
!       _GLIBCXX_SIMD_INTRINSIC static auto
        _S_submask(_BitMask<_Np, _Sanitized> __bits)
        { return __bits.template _M_extract<_Offset, _S_size()>(); }
  
      template <size_t _Np, bool _Sanitized>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember
        _S_make_mask(_BitMask<_Np, _Sanitized> __bits)
        {
  	return _MaskImpl::template _S_convert<_Tp>(
  	  __bits.template _M_extract<_Offset, _S_size()>()._M_sanitized());
        }
  
!     _GLIBCXX_SIMD_INTRINSIC static _ULLong
      _S_mask_to_shifted_ullong(_MaskMember __k)
      { return _MaskImpl::_S_to_bits(__k).to_ullong() << _Offset; }
    };
  
  template <size_t _Offset, typename _Tp, typename _Abi, typename... _As>
    __tuple_element_meta<_Tp, _Abi, _Offset>
    __make_meta(const _SimdTuple<_Tp, _Abi, _As...>&)
    { return {}; }
--- 166,190 ----
      static constexpr _MaskImpl _S_mask_impl = {};
  
      template <size_t _Np, bool _Sanitized>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr auto
        _S_submask(_BitMask<_Np, _Sanitized> __bits)
        { return __bits.template _M_extract<_Offset, _S_size()>(); }
  
      template <size_t _Np, bool _Sanitized>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
        _S_make_mask(_BitMask<_Np, _Sanitized> __bits)
        {
  	return _MaskImpl::template _S_convert<_Tp>(
  	  __bits.template _M_extract<_Offset, _S_size()>()._M_sanitized());
        }
  
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _ULLong
      _S_mask_to_shifted_ullong(_MaskMember __k)
      { return _MaskImpl::_S_to_bits(__k).to_ullong() << _Offset; }
    };
  
  template <size_t _Offset, typename _Tp, typename _Abi, typename... _As>
+   constexpr
    __tuple_element_meta<_Tp, _Abi, _Offset>
    __make_meta(const _SimdTuple<_Tp, _Abi, _As...>&)
    { return {}; }
*************** template <size_t _Offset, typename _Base
*** 212,228 ****
    {
      static inline constexpr size_t _S_offset = _Offset;
  
!     _GLIBCXX_SIMD_INTRINSIC char* _M_as_charptr()
!     {
!       return reinterpret_cast<char*>(this)
! 	     + _S_offset * sizeof(typename _Base::value_type);
!     }
  
!     _GLIBCXX_SIMD_INTRINSIC const char* _M_as_charptr() const
!     {
!       return reinterpret_cast<const char*>(this)
! 	     + _S_offset * sizeof(typename _Base::value_type);
!     }
    };
  
  // make _WithOffset<_WithOffset> ill-formed to use:
--- 196,208 ----
    {
      static inline constexpr size_t _S_offset = _Offset;
  
!     _GLIBCXX_SIMD_INTRINSIC char*
!     _M_as_charptr()
!     { return reinterpret_cast<char*>(this) + _S_offset * sizeof(typename _Base::value_type); }
  
!     _GLIBCXX_SIMD_INTRINSIC const char*
!     _M_as_charptr() const
!     { return reinterpret_cast<const char*>(this) + _S_offset * sizeof(typename _Base::value_type); }
    };
  
  // make _WithOffset<_WithOffset> ill-formed to use:
*************** template <size_t _Offset, typename _Tp>
*** 237,254 ****
  template <size_t _Offset, typename _Tp>
    decltype(auto)
    __add_offset(const _Tp& __base)
!   {
!     return static_cast<const _WithOffset<_Offset, __remove_cvref_t<_Tp>>&>(
!       __base);
!   }
  
  template <size_t _Offset, size_t _ExistingOffset, typename _Tp>
    decltype(auto)
    __add_offset(_WithOffset<_ExistingOffset, _Tp>& __base)
!   {
!     return static_cast<_WithOffset<_Offset + _ExistingOffset, _Tp>&>(
!       static_cast<_Tp&>(__base));
!   }
  
  template <size_t _Offset, size_t _ExistingOffset, typename _Tp>
    decltype(auto)
--- 217,228 ----
  template <size_t _Offset, typename _Tp>
    decltype(auto)
    __add_offset(const _Tp& __base)
!   { return static_cast<const _WithOffset<_Offset, __remove_cvref_t<_Tp>>&>(__base); }
  
  template <size_t _Offset, size_t _ExistingOffset, typename _Tp>
    decltype(auto)
    __add_offset(_WithOffset<_ExistingOffset, _Tp>& __base)
!   { return static_cast<_WithOffset<_Offset + _ExistingOffset, _Tp>&>(static_cast<_Tp&>(__base)); }
  
  template <size_t _Offset, size_t _ExistingOffset, typename _Tp>
    decltype(auto)
*************** template <typename _FirstType, typename
*** 293,299 ****
      _SecondType second;
  
      _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool _M_is_constprop() const
      {
        if constexpr (is_class_v<_FirstType>)
  	return first._M_is_constprop() && second._M_is_constprop();
--- 267,274 ----
      _SecondType second;
  
      _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool
!     _M_is_constprop() const
      {
        if constexpr (is_class_v<_FirstType>)
  	return first._M_is_constprop() && second._M_is_constprop();
*************** template <typename _FirstType, typename
*** 309,315 ****
      static constexpr _SimdTuple<_Tp> second = {};
  
      _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool _M_is_constprop() const
      {
        if constexpr (is_class_v<_FirstType>)
  	return first._M_is_constprop();
--- 284,291 ----
      static constexpr _SimdTuple<_Tp> second = {};
  
      _GLIBCXX_SIMD_INTRINSIC
!     constexpr bool
!     _M_is_constprop() const
      {
        if constexpr (is_class_v<_FirstType>)
  	return first._M_is_constprop();
*************** template <typename _Tp, typename _Abi0,
*** 348,372 ****
        = default;
  
      template <typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple(_Up&& __x)
        : _Base{static_cast<_Up&&>(__x)} {}
  
      template <typename _Up, typename _Up2>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple(_Up&& __x, _Up2&& __y)
        : _Base{static_cast<_Up&&>(__x), static_cast<_Up2&&>(__y)} {}
  
      template <typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple(_Up&& __x, _SimdTuple<_Tp>)
        : _Base{static_cast<_Up&&>(__x)} {}
  
!     _GLIBCXX_SIMD_INTRINSIC char* _M_as_charptr()
      { return reinterpret_cast<char*>(this); }
  
!     _GLIBCXX_SIMD_INTRINSIC const char* _M_as_charptr() const
      { return reinterpret_cast<const char*>(this); }
  
      template <size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC constexpr auto& _M_at()
        {
  	if constexpr (_Np == 0)
  	  return first;
--- 324,354 ----
        = default;
  
      template <typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC constexpr
!       _SimdTuple(_Up&& __x)
        : _Base{static_cast<_Up&&>(__x)} {}
  
      template <typename _Up, typename _Up2>
!       _GLIBCXX_SIMD_INTRINSIC constexpr
!       _SimdTuple(_Up&& __x, _Up2&& __y)
        : _Base{static_cast<_Up&&>(__x), static_cast<_Up2&&>(__y)} {}
  
      template <typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC constexpr
!       _SimdTuple(_Up&& __x, _SimdTuple<_Tp>)
        : _Base{static_cast<_Up&&>(__x)} {}
  
!     _GLIBCXX_SIMD_INTRINSIC char*
!     _M_as_charptr()
      { return reinterpret_cast<char*>(this); }
  
!     _GLIBCXX_SIMD_INTRINSIC const char*
!     _M_as_charptr() const
      { return reinterpret_cast<const char*>(this); }
  
      template <size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC constexpr auto&
!       _M_at()
        {
  	if constexpr (_Np == 0)
  	  return first;
*************** template <typename _Tp, typename _Abi0,
*** 375,381 ****
        }
  
      template <size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC constexpr const auto& _M_at() const
        {
  	if constexpr (_Np == 0)
  	  return first;
--- 357,364 ----
        }
  
      template <size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC constexpr const auto&
!       _M_at() const
        {
  	if constexpr (_Np == 0)
  	  return first;
*************** template <typename _Tp, typename _Abi0,
*** 384,390 ****
        }
  
      template <size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC constexpr auto _M_simd_at() const
        {
  	if constexpr (_Np == 0)
  	  return simd<_Tp, _Abi0>(__private_init, first);
--- 367,374 ----
        }
  
      template <size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC constexpr auto
!       _M_simd_at() const
        {
  	if constexpr (_Np == 0)
  	  return simd<_Tp, _Abi0>(__private_init, first);
*************** template <typename _Tp, typename _Abi0,
*** 429,442 ****
  	if constexpr (is_same_v<_SimdTuple, __remove_cvref_t<_Tup>>)
  	  return __tup.first;
  	else if (__builtin_is_constant_evaluated())
! 	  return __fixed_size_storage_t<_TupT, _S_first_size>::_S_generate([&](
! 	    auto __meta) constexpr {
! 	    return __meta._S_generator(
! 	      [&](auto __i) constexpr { return __tup[__i]; },
! 	      static_cast<_TupT*>(nullptr));
  	  });
  	else
! 	  return [&]() {
  	    __fixed_size_storage_t<_TupT, _S_first_size> __r;
  	    __builtin_memcpy(__r._M_as_charptr(), __tup._M_as_charptr(),
  			     sizeof(__r));
--- 413,427 ----
  	if constexpr (is_same_v<_SimdTuple, __remove_cvref_t<_Tup>>)
  	  return __tup.first;
  	else if (__builtin_is_constant_evaluated())
! 	  return __fixed_size_storage_t<_TupT, _S_first_size>::_S_generate(
! 		   [&](auto __meta) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		     return __meta._S_generator(
! 			      [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				return __tup[__i];
! 			      }, static_cast<_TupT*>(nullptr));
  	  });
  	else
! 	  return [&]() { // not always_inline; allow the compiler to decide
  	    __fixed_size_storage_t<_TupT, _S_first_size> __r;
  	    __builtin_memcpy(__r._M_as_charptr(), __tup._M_as_charptr(),
  			     sizeof(__r));
*************** template <typename _Tp, typename _Abi0,
*** 510,521 ****
  			 negation<is_const<remove_reference_t<_More>>>>) )
  	  {
  	    // need to write back at least one of __more after calling __fun
! 	    auto&& __first = [&](auto... __args) constexpr
! 	    {
  	      auto __r = __fun(__tuple_element_meta<_Tp, _Abi0, 0>(), first,
  			       __args...);
  	      [[maybe_unused]] auto&& __ignore_me = {(
! 		[](auto&& __dst, const auto& __src) {
  		  if constexpr (is_assignable_v<decltype(__dst),
  						decltype(__dst)>)
  		    {
--- 495,505 ----
  			 negation<is_const<remove_reference_t<_More>>>>) )
  	  {
  	    // need to write back at least one of __more after calling __fun
! 	    auto&& __first = [&](auto... __args) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	      auto __r = __fun(__tuple_element_meta<_Tp, _Abi0, 0>(), first,
  			       __args...);
  	      [[maybe_unused]] auto&& __ignore_me = {(
! 		[](auto&& __dst, const auto& __src) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  if constexpr (is_assignable_v<decltype(__dst),
  						decltype(__dst)>)
  		    {
*************** template <typename _Tp, typename _Abi0,
*** 525,532 ****
  		}(static_cast<_More&&>(__more), __args),
  		0)...};
  	      return __r;
! 	    }
! 	    (_M_extract_argument(__more)...);
  	    if constexpr (_S_tuple_size == 1)
  	      return {__first};
  	    else
--- 509,515 ----
  		}(static_cast<_More&&>(__more), __args),
  		0)...};
  	      return __r;
! 	    }(_M_extract_argument(__more)...);
  	    if constexpr (_S_tuple_size == 1)
  	      return {__first};
  	    else
*************** template <typename _Tp, typename _Abi0,
*** 548,555 ****
        }
  
      template <typename _R = _Tp, typename _Fp, typename... _More>
!       _GLIBCXX_SIMD_INTRINSIC auto _M_apply_r(_Fp&& __fun,
! 					      const _More&... __more) const
        {
  	auto&& __first = __fun(__tuple_element_meta<_Tp, _Abi0, 0>(), first,
  			       __more.first...);
--- 531,538 ----
        }
  
      template <typename _R = _Tp, typename _Fp, typename... _More>
!       _GLIBCXX_SIMD_INTRINSIC constexpr auto
!       _M_apply_r(_Fp&& __fun, const _More&... __more) const
        {
  	auto&& __first = __fun(__tuple_element_meta<_Tp, _Abi0, 0>(), first,
  			       __more.first...);
*************** template <typename _Tp, typename _Abi0,
*** 586,633 ****
  	  return second[integral_constant<_Up, _I - simd_size_v<_Tp, _Abi0>>()];
        }
  
!     _Tp operator[](size_t __i) const noexcept
      {
        if constexpr (_S_tuple_size == 1)
  	return _M_subscript_read(__i);
-       else
- 	{
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
! 	  return reinterpret_cast<const __may_alias<_Tp>*>(this)[__i];
! #else
! 	  if constexpr (__is_scalar_abi<_Abi0>())
! 	    {
! 	      const _Tp* ptr = &first;
! 	      return ptr[__i];
! 	    }
! 	  else
! 	    return __i < simd_size_v<_Tp, _Abi0>
! 		     ? _M_subscript_read(__i)
! 		     : second[__i - simd_size_v<_Tp, _Abi0>];
  #endif
  	}
      }
  
!     void _M_set(size_t __i, _Tp __val) noexcept
      {
        if constexpr (_S_tuple_size == 1)
  	return _M_subscript_write(__i, __val);
-       else
- 	{
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
! 	  reinterpret_cast<__may_alias<_Tp>*>(this)[__i] = __val;
! #else
! 	  if (__i < simd_size_v<_Tp, _Abi0>)
! 	    _M_subscript_write(__i, __val);
! 	  else
! 	    second._M_set(__i - simd_size_v<_Tp, _Abi0>, __val);
  #endif
! 	}
      }
  
    private:
      // _M_subscript_read/_write {{{
!     _Tp _M_subscript_read([[maybe_unused]] size_t __i) const noexcept
      {
        if constexpr (__is_vectorizable_v<_FirstType>)
  	return first;
--- 569,612 ----
  	  return second[integral_constant<_Up, _I - simd_size_v<_Tp, _Abi0>>()];
        }
  
!     constexpr _Tp
!     operator[](size_t __i) const noexcept
      {
        if constexpr (_S_tuple_size == 1)
  	return _M_subscript_read(__i);
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
!       else if (not __builtin_is_constant_evaluated())
! 	return reinterpret_cast<const __may_alias<_Tp>*>(this)[__i];
  #endif
+       else if constexpr (__is_scalar_abi<_Abi0>())
+ 	{
+ 	  const _Tp* ptr = &first;
+ 	  return ptr[__i];
  	}
+       else
+ 	return __i < simd_size_v<_Tp, _Abi0> ? _M_subscript_read(__i)
+ 					     : second[__i - simd_size_v<_Tp, _Abi0>];
      }
  
!     constexpr void
!     _M_set(size_t __i, _Tp __val) noexcept
      {
        if constexpr (_S_tuple_size == 1)
  	return _M_subscript_write(__i, __val);
  #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS
!       else if (not __builtin_is_constant_evaluated())
! 	reinterpret_cast<__may_alias<_Tp>*>(this)[__i] = __val;
  #endif
!       else if (__i < simd_size_v<_Tp, _Abi0>)
! 	_M_subscript_write(__i, __val);
!       else
! 	second._M_set(__i - simd_size_v<_Tp, _Abi0>, __val);
      }
  
    private:
      // _M_subscript_read/_write {{{
!     constexpr _Tp
!     _M_subscript_read([[maybe_unused]] size_t __i) const noexcept
      {
        if constexpr (__is_vectorizable_v<_FirstType>)
  	return first;
*************** template <typename _Tp, typename _Abi0,
*** 635,641 ****
  	return first[__i];
      }
  
!     void _M_subscript_write([[maybe_unused]] size_t __i, _Tp __y) noexcept
      {
        if constexpr (__is_vectorizable_v<_FirstType>)
  	first = __y;
--- 614,621 ----
  	return first[__i];
      }
  
!     constexpr void
!     _M_subscript_write([[maybe_unused]] size_t __i, _Tp __y) noexcept
      {
        if constexpr (__is_vectorizable_v<_FirstType>)
  	first = __y;
*************** template <typename _Tp, typename _Abi0,
*** 648,669 ****
  
  // __make_simd_tuple {{{1
  template <typename _Tp, typename _A0>
!   _GLIBCXX_SIMD_INTRINSIC _SimdTuple<_Tp, _A0>
    __make_simd_tuple(simd<_Tp, _A0> __x0)
    { return {__data(__x0)}; }
  
  template <typename _Tp, typename _A0, typename... _As>
!   _GLIBCXX_SIMD_INTRINSIC _SimdTuple<_Tp, _A0, _As...>
    __make_simd_tuple(const simd<_Tp, _A0>& __x0, const simd<_Tp, _As>&... __xs)
    { return {__data(__x0), __make_simd_tuple(__xs...)}; }
  
  template <typename _Tp, typename _A0>
!   _GLIBCXX_SIMD_INTRINSIC _SimdTuple<_Tp, _A0>
    __make_simd_tuple(const typename _SimdTraits<_Tp, _A0>::_SimdMember& __arg0)
    { return {__arg0}; }
  
  template <typename _Tp, typename _A0, typename _A1, typename... _Abis>
!   _GLIBCXX_SIMD_INTRINSIC _SimdTuple<_Tp, _A0, _A1, _Abis...>
    __make_simd_tuple(
      const typename _SimdTraits<_Tp, _A0>::_SimdMember& __arg0,
      const typename _SimdTraits<_Tp, _A1>::_SimdMember& __arg1,
--- 628,649 ----
  
  // __make_simd_tuple {{{1
  template <typename _Tp, typename _A0>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp, _A0>
    __make_simd_tuple(simd<_Tp, _A0> __x0)
    { return {__data(__x0)}; }
  
  template <typename _Tp, typename _A0, typename... _As>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp, _A0, _As...>
    __make_simd_tuple(const simd<_Tp, _A0>& __x0, const simd<_Tp, _As>&... __xs)
    { return {__data(__x0), __make_simd_tuple(__xs...)}; }
  
  template <typename _Tp, typename _A0>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp, _A0>
    __make_simd_tuple(const typename _SimdTraits<_Tp, _A0>::_SimdMember& __arg0)
    { return {__arg0}; }
  
  template <typename _Tp, typename _A0, typename _A1, typename... _Abis>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp, _A0, _A1, _Abis...>
    __make_simd_tuple(
      const typename _SimdTraits<_Tp, _A0>::_SimdMember& __arg0,
      const typename _SimdTraits<_Tp, _A1>::_SimdMember& __arg1,
*************** template <typename _Tp, size_t _Np,
*** 679,686 ****
  	  size_t _Offset = 0, // skip this many elements in __from0
  	  typename _R = __fixed_size_storage_t<_Tp, _Np>, typename _V0,
  	  typename _V0VT = _VectorTraits<_V0>, typename... _VX>
!   _GLIBCXX_SIMD_INTRINSIC _R constexpr __to_simd_tuple(const _V0 __from0,
! 						       const _VX... __fromX)
    {
      static_assert(is_same_v<typename _V0VT::value_type, _Tp>);
      static_assert(_Offset < _V0VT::_S_full_size);
--- 659,665 ----
  	  size_t _Offset = 0, // skip this many elements in __from0
  	  typename _R = __fixed_size_storage_t<_Tp, _Np>, typename _V0,
  	  typename _V0VT = _VectorTraits<_V0>, typename... _VX>
!   _GLIBCXX_SIMD_INTRINSIC _R constexpr __to_simd_tuple(const _V0 __from0, const _VX... __fromX)
    {
      static_assert(is_same_v<typename _V0VT::value_type, _Tp>);
      static_assert(_Offset < _V0VT::_S_full_size);
*************** template <typename _Tp, size_t _Np, type
*** 767,784 ****
  	  sizeof...(_VX) == 0,
  	  "An array of scalars must be the last argument to __to_simd_tuple");
  	return __call_with_subscripts(
! 	  __from,
! 	  make_index_sequence<_NV>(), [&](const auto... __args) constexpr {
! 	    return __simd_tuple_concat(
! 	      _SimdTuple<_Tp, simd_abi::scalar>{__args}..., _SimdTuple<_Tp>());
! 	  });
        }
      else
        return __call_with_subscripts(
! 	__from,
! 	make_index_sequence<_NV>(), [&](const auto... __args) constexpr {
! 	  return __to_simd_tuple<_Tp, _Np>(__args..., __fromX...);
! 	});
    }
  
  template <size_t, typename _Tp>
--- 746,763 ----
  	  sizeof...(_VX) == 0,
  	  "An array of scalars must be the last argument to __to_simd_tuple");
  	return __call_with_subscripts(
! 		 __from, make_index_sequence<_NV>(),
! 		 [&](const auto... __args) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __simd_tuple_concat(
! 			    _SimdTuple<_Tp, simd_abi::scalar>{__args}..., _SimdTuple<_Tp>());
! 		 });
        }
      else
        return __call_with_subscripts(
! 	       __from, make_index_sequence<_NV>(),
! 	       [&](const auto... __args) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		 return __to_simd_tuple<_Tp, _Np>(__args..., __fromX...);
! 	       });
    }
  
  template <size_t, typename _Tp>
*************** template <typename _Tp, typename _A0, si
*** 807,825 ****
  
  // __optimize_simd_tuple {{{1
  template <typename _Tp>
!   _GLIBCXX_SIMD_INTRINSIC _SimdTuple<_Tp>
    __optimize_simd_tuple(const _SimdTuple<_Tp>)
    { return {}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC const _SimdTuple<_Tp, _Ap>&
    __optimize_simd_tuple(const _SimdTuple<_Tp, _Ap>& __x)
    { return __x; }
  
  template <typename _Tp, typename _A0, typename _A1, typename... _Abis,
  	  typename _R = __fixed_size_storage_t<
  	    _Tp, _SimdTuple<_Tp, _A0, _A1, _Abis...>::_S_size()>>
!   _GLIBCXX_SIMD_INTRINSIC _R
    __optimize_simd_tuple(const _SimdTuple<_Tp, _A0, _A1, _Abis...>& __x)
    {
      using _Tup = _SimdTuple<_Tp, _A0, _A1, _Abis...>;
--- 786,804 ----
  
  // __optimize_simd_tuple {{{1
  template <typename _Tp>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _SimdTuple<_Tp>
    __optimize_simd_tuple(const _SimdTuple<_Tp>)
    { return {}; }
  
  template <typename _Tp, typename _Ap>
!   _GLIBCXX_SIMD_INTRINSIC constexpr const _SimdTuple<_Tp, _Ap>&
    __optimize_simd_tuple(const _SimdTuple<_Tp, _Ap>& __x)
    { return __x; }
  
  template <typename _Tp, typename _A0, typename _A1, typename... _Abis,
  	  typename _R = __fixed_size_storage_t<
  	    _Tp, _SimdTuple<_Tp, _A0, _A1, _Abis...>::_S_size()>>
!   _GLIBCXX_SIMD_INTRINSIC constexpr _R
    __optimize_simd_tuple(const _SimdTuple<_Tp, _A0, _A1, _Abis...>& __x)
    {
      using _Tup = _SimdTuple<_Tp, _A0, _A1, _Abis...>;
*************** template <typename _Tp, typename _A0, ty
*** 832,838 ****
  		       || _A0::template _S_is_partial<_Tp>)
        return {__generate_from_n_evaluations<_R::_S_first_size,
  					    typename _R::_FirstType>(
! 		[&](auto __i) { return __x[__i]; }),
  	      __optimize_simd_tuple(
  		__simd_tuple_pop_front<_R::_S_first_size>(__x))};
      else if constexpr (is_same_v<_A0, _A1>
--- 811,817 ----
  		       || _A0::template _S_is_partial<_Tp>)
        return {__generate_from_n_evaluations<_R::_S_first_size,
  					    typename _R::_FirstType>(
! 		[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }),
  	      __optimize_simd_tuple(
  		__simd_tuple_pop_front<_R::_S_first_size>(__x))};
      else if constexpr (is_same_v<_A0, _A1>
*************** template <size_t _Offset = 0, typename _
*** 892,902 ****
  // __for_each(_SimdTuple &, const _SimdTuple &, Fun) {{{1
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _Fp>
    _GLIBCXX_SIMD_INTRINSIC constexpr void
!   __for_each(_SimdTuple<_Tp, _A0>& __a, const _SimdTuple<_Tp, _A0>& __b,
! 	     _Fp&& __fun)
!   {
!     static_cast<_Fp&&>(__fun)(__make_meta<_Offset>(__a), __a.first, __b.first);
!   }
  
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _A1,
  	  typename... _As, typename _Fp>
--- 871,878 ----
  // __for_each(_SimdTuple &, const _SimdTuple &, Fun) {{{1
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _Fp>
    _GLIBCXX_SIMD_INTRINSIC constexpr void
!   __for_each(_SimdTuple<_Tp, _A0>& __a, const _SimdTuple<_Tp, _A0>& __b, _Fp&& __fun)
!   { static_cast<_Fp&&>(__fun)(__make_meta<_Offset>(__a), __a.first, __b.first); }
  
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _A1,
  	  typename... _As, typename _Fp>
*************** template <size_t _Offset = 0, typename _
*** 912,922 ****
  // __for_each(const _SimdTuple &, const _SimdTuple &, Fun) {{{1
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _Fp>
    _GLIBCXX_SIMD_INTRINSIC constexpr void
!   __for_each(const _SimdTuple<_Tp, _A0>& __a, const _SimdTuple<_Tp, _A0>& __b,
! 	     _Fp&& __fun)
!   {
!     static_cast<_Fp&&>(__fun)(__make_meta<_Offset>(__a), __a.first, __b.first);
!   }
  
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _A1,
  	  typename... _As, typename _Fp>
--- 888,895 ----
  // __for_each(const _SimdTuple &, const _SimdTuple &, Fun) {{{1
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _Fp>
    _GLIBCXX_SIMD_INTRINSIC constexpr void
!   __for_each(const _SimdTuple<_Tp, _A0>& __a, const _SimdTuple<_Tp, _A0>& __b, _Fp&& __fun)
!   { static_cast<_Fp&&>(__fun)(__make_meta<_Offset>(__a), __a.first, __b.first); }
  
  template <size_t _Offset = 0, typename _Tp, typename _A0, typename _A1,
  	  typename... _As, typename _Fp>
*************** template <size_t _Offset = 0, typename _
*** 931,939 ****
  
  // }}}1
  // __extract_part(_SimdTuple) {{{
! template <int _Index, int _Total, int _Combine, typename _Tp, typename _A0,
! 	  typename... _As>
!   _GLIBCXX_SIMD_INTRINSIC auto // __vector_type_t or _SimdTuple
    __extract_part(const _SimdTuple<_Tp, _A0, _As...>& __x)
    {
      // worst cases:
--- 904,911 ----
  
  // }}}1
  // __extract_part(_SimdTuple) {{{
! template <int _Index, int _Total, int _Combine, typename _Tp, typename _A0, typename... _As>
!   _GLIBCXX_SIMD_INTRINSIC constexpr auto // __vector_type_t or _SimdTuple
    __extract_part(const _SimdTuple<_Tp, _A0, _As...>& __x)
    {
      // worst cases:
*************** template <int _Index, int _Total, int _C
*** 985,994 ****
  	return __as_vector(simd<_Tp, _RetAbi>(element_ptr, element_aligned));
  #else
  	[[maybe_unused]] constexpr size_t __offset = __values_to_skip;
! 	return __as_vector(simd<_Tp, _RetAbi>([&](auto __i) constexpr {
! 	  constexpr _SizeConstant<__i + __offset> __k;
! 	  return __x[__k];
! 	}));
  #endif
        }
  
--- 957,967 ----
  	return __as_vector(simd<_Tp, _RetAbi>(element_ptr, element_aligned));
  #else
  	[[maybe_unused]] constexpr size_t __offset = __values_to_skip;
! 	return __as_vector(simd<_Tp, _RetAbi>(
! 			     [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			       constexpr _SizeConstant<__i + __offset> __k;
! 			       return __x[__k];
! 			     }));
  #endif
        }
  
*************** template <typename _Tp, bool = is_arithm
*** 1082,1090 ****
--- 1055,1065 ----
      _Tp _M_data;
      using _TT = __remove_cvref_t<_Tp>;
  
+     constexpr
      operator _TT()
      { return _M_data; }
  
+     constexpr
      operator _TT&()
      {
        static_assert(is_lvalue_reference<_Tp>::value, "");
*************** template <typename _Tp, bool = is_arithm
*** 1092,1097 ****
--- 1067,1073 ----
        return _M_data;
      }
  
+     constexpr
      operator _TT*()
      {
        static_assert(is_lvalue_reference<_Tp>::value, "");
*************** template <typename _Tp, bool = is_arithm
*** 1099,1123 ****
        return &_M_data;
      }
  
!     constexpr inline __autocvt_to_simd(_Tp dd) : _M_data(dd) {}
  
      template <typename _Abi>
        operator simd<typename _TT::value_type, _Abi>()
        { return {__private_init, _M_data}; }
  
      template <typename _Abi>
        operator simd<typename _TT::value_type, _Abi>&()
!       {
! 	return *reinterpret_cast<simd<typename _TT::value_type, _Abi>*>(
! 	  &_M_data);
!       }
  
      template <typename _Abi>
        operator simd<typename _TT::value_type, _Abi>*()
!       {
! 	return reinterpret_cast<simd<typename _TT::value_type, _Abi>*>(
! 	  &_M_data);
!       }
    };
  
  template <typename _Tp>
--- 1075,1097 ----
        return &_M_data;
      }
  
!     constexpr inline
!     __autocvt_to_simd(_Tp dd) : _M_data(dd) {}
  
      template <typename _Abi>
+       constexpr
        operator simd<typename _TT::value_type, _Abi>()
        { return {__private_init, _M_data}; }
  
      template <typename _Abi>
+       constexpr
        operator simd<typename _TT::value_type, _Abi>&()
!       { return *reinterpret_cast<simd<typename _TT::value_type, _Abi>*>(&_M_data); }
  
      template <typename _Abi>
+       constexpr
        operator simd<typename _TT::value_type, _Abi>*()
!       { return reinterpret_cast<simd<typename _TT::value_type, _Abi>*>(&_M_data); }
    };
  
  template <typename _Tp>
*************** template <typename _Tp>
*** 1135,1143 ****
--- 1109,1119 ----
      ~__autocvt_to_simd()
      { _M_data = __data(_M_fd).first; }
  
+     constexpr
      operator fixed_size_simd<_TT, 1>()
      { return _M_fd; }
  
+     constexpr
      operator fixed_size_simd<_TT, 1> &()
      {
        static_assert(is_lvalue_reference<_Tp>::value, "");
*************** template <typename _Tp>
*** 1145,1150 ****
--- 1121,1127 ----
        return _M_fd;
      }
  
+     constexpr
      operator fixed_size_simd<_TT, 1> *()
      {
        static_assert(is_lvalue_reference<_Tp>::value, "");
*************** template <int _Np>
*** 1221,1233 ****
  	{
  	  // The following ensures, function arguments are passed via the stack.
  	  // This is important for ABI compatibility across TU boundaries
  	  _SimdBase(const _SimdBase&) {}
  	  _SimdBase() = default;
  
! 	  explicit operator const _SimdMember &() const
  	  { return static_cast<const simd<_Tp, _Fixed>*>(this)->_M_data; }
  
! 	  explicit operator array<_Tp, _Np>() const
  	  {
  	    array<_Tp, _Np> __r;
  	    // _SimdMember can be larger because of higher alignment
--- 1198,1214 ----
  	{
  	  // The following ensures, function arguments are passed via the stack.
  	  // This is important for ABI compatibility across TU boundaries
+ 	  constexpr
  	  _SimdBase(const _SimdBase&) {}
+ 
  	  _SimdBase() = default;
  
! 	  constexpr explicit
! 	  operator const _SimdMember &() const
  	  { return static_cast<const simd<_Tp, _Fixed>*>(this)->_M_data; }
  
! 	  constexpr explicit
! 	  operator array<_Tp, _Np>() const
  	  {
  	    array<_Tp, _Np> __r;
  	    // _SimdMember can be larger because of higher alignment
*************** template <int _Np>
*** 1247,1255 ****
  	// _SimdCastType {{{
  	struct _SimdCastType
  	{
  	  _SimdCastType(const array<_Tp, _Np>&);
  	  _SimdCastType(const _SimdMember& dd) : _M_data(dd) {}
! 	  explicit operator const _SimdMember &() const { return _M_data; }
  
  	private:
  	  const _SimdMember& _M_data;
--- 1228,1241 ----
  	// _SimdCastType {{{
  	struct _SimdCastType
  	{
+ 	  constexpr
  	  _SimdCastType(const array<_Tp, _Np>&);
+ 
+ 	  constexpr
  	  _SimdCastType(const _SimdMember& dd) : _M_data(dd) {}
! 
! 	  constexpr explicit
! 	  operator const _SimdMember &() const { return _M_data; }
  
  	private:
  	  const _SimdMember& _M_data;
*************** template <int _Np>
*** 1306,1357 ****
  
      // broadcast {{{2
      template <typename _Tp>
!       static constexpr inline _SimdMember<_Tp> _S_broadcast(_Tp __x) noexcept
        {
! 	return _SimdMember<_Tp>::_S_generate([&](auto __meta) constexpr {
! 	  return __meta._S_broadcast(__x);
! 	});
        }
  
      // _S_generator {{{2
      template <typename _Fp, typename _Tp>
!       static constexpr inline _SimdMember<_Tp> _S_generator(_Fp&& __gen,
! 							    _TypeTag<_Tp>)
        {
! 	return _SimdMember<_Tp>::_S_generate([&__gen](auto __meta) constexpr {
! 	  return __meta._S_generator(
! 	    [&](auto __i) constexpr {
! 	      return __i < _Np ? __gen(_SizeConstant<__meta._S_offset + __i>())
! 			       : 0;
! 	    },
! 	    _TypeTag<_Tp>());
! 	});
        }
  
      // _S_load {{{2
      template <typename _Tp, typename _Up>
!       static inline _SimdMember<_Tp> _S_load(const _Up* __mem,
! 					     _TypeTag<_Tp>) noexcept
        {
! 	return _SimdMember<_Tp>::_S_generate([&](auto __meta) {
! 	  return __meta._S_load(&__mem[__meta._S_offset], _TypeTag<_Tp>());
! 	});
        }
  
      // _S_masked_load {{{2
      template <typename _Tp, typename... _As, typename _Up>
!       static inline _SimdTuple<_Tp, _As...>
        _S_masked_load(const _SimdTuple<_Tp, _As...>& __old,
  		     const _MaskMember __bits, const _Up* __mem) noexcept
        {
  	auto __merge = __old;
! 	__for_each(__merge, [&](auto __meta, auto& __native) {
  	  if (__meta._S_submask(__bits).any())
  #pragma GCC diagnostic push
! 	  // __mem + __mem._S_offset could be UB ([expr.add]/4.3, but it punts
! 	  // the responsibility for avoiding UB to the caller of the masked load
! 	  // via the mask. Consequently, the compiler may assume this branch is
! 	  // unreachable, if the pointer arithmetic is UB.
  #pragma GCC diagnostic ignored "-Warray-bounds"
  	    __native
  	      = __meta._S_masked_load(__native, __meta._S_make_mask(__bits),
--- 1292,1347 ----
  
      // broadcast {{{2
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdMember<_Tp>
!       _S_broadcast(_Tp __x) noexcept
        {
! 	return _SimdMember<_Tp>::_S_generate(
! 		 [&](auto __meta) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __meta._S_broadcast(__x);
! 		 });
        }
  
      // _S_generator {{{2
      template <typename _Fp, typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdMember<_Tp>
!       _S_generator(_Fp&& __gen, _TypeTag<_Tp>)
        {
! 	return _SimdMember<_Tp>::_S_generate(
! 		 [&__gen](auto __meta) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __meta._S_generator(
! 			    [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			      return __i < _Np ? __gen(_SizeConstant<__meta._S_offset + __i>())
! 					       : 0;
! 			    },
! 			    _TypeTag<_Tp>());
! 		 });
        }
  
      // _S_load {{{2
      template <typename _Tp, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdMember<_Tp>
!       _S_load(const _Up* __mem, _TypeTag<_Tp>) noexcept
        {
! 	return _SimdMember<_Tp>::_S_generate(
! 		 [&](auto __meta) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __meta._S_load(&__mem[__meta._S_offset], _TypeTag<_Tp>());
! 		 });
        }
  
      // _S_masked_load {{{2
      template <typename _Tp, typename... _As, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static _SimdTuple<_Tp, _As...>
        _S_masked_load(const _SimdTuple<_Tp, _As...>& __old,
  		     const _MaskMember __bits, const _Up* __mem) noexcept
        {
  	auto __merge = __old;
! 	__for_each(__merge, [&](auto __meta, auto& __native) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  if (__meta._S_submask(__bits).any())
  #pragma GCC diagnostic push
! 	    // Dereferencing __mem + __meta._S_offset could be UB ([expr.add]/4.3).
! 	    // It is the responsibility of the caller of the masked load (via the mask's value) to
! 	    // avoid UB. Consequently, the compiler may assume this branch is unreachable, if the
! 	    // pointer arithmetic is UB.
  #pragma GCC diagnostic ignored "-Warray-bounds"
  	    __native
  	      = __meta._S_masked_load(__native, __meta._S_make_mask(__bits),
*************** template <int _Np>
*** 1363,1383 ****
  
      // _S_store {{{2
      template <typename _Tp, typename _Up>
!       static inline void _S_store(const _SimdMember<_Tp>& __v, _Up* __mem,
! 				  _TypeTag<_Tp>) noexcept
        {
! 	__for_each(__v, [&](auto __meta, auto __native) {
  	  __meta._S_store(__native, &__mem[__meta._S_offset], _TypeTag<_Tp>());
  	});
        }
  
      // _S_masked_store {{{2
      template <typename _Tp, typename... _As, typename _Up>
!       static inline void _S_masked_store(const _SimdTuple<_Tp, _As...>& __v,
! 					 _Up* __mem,
! 					 const _MaskMember __bits) noexcept
        {
! 	__for_each(__v, [&](auto __meta, auto __native) {
  	  if (__meta._S_submask(__bits).any())
  #pragma GCC diagnostic push
  	  // __mem + __mem._S_offset could be UB ([expr.add]/4.3, but it punts
--- 1353,1373 ----
  
      // _S_store {{{2
      template <typename _Tp, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
!       _S_store(const _SimdMember<_Tp>& __v, _Up* __mem, _TypeTag<_Tp>) noexcept
        {
! 	__for_each(__v, [&](auto __meta, auto __native) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  __meta._S_store(__native, &__mem[__meta._S_offset], _TypeTag<_Tp>());
  	});
        }
  
      // _S_masked_store {{{2
      template <typename _Tp, typename... _As, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_store(const _SimdTuple<_Tp, _As...>& __v, _Up* __mem,
! 		      const _MaskMember __bits) noexcept
        {
! 	__for_each(__v, [&](auto __meta, auto __native) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  if (__meta._S_submask(__bits).any())
  #pragma GCC diagnostic push
  	  // __mem + __mem._S_offset could be UB ([expr.add]/4.3, but it punts
*************** template <int _Np>
*** 1393,1404 ****
  
      // negation {{{2
      template <typename _Tp, typename... _As>
!       static inline _MaskMember
        _S_negate(const _SimdTuple<_Tp, _As...>& __x) noexcept
        {
  	_MaskMember __bits = 0;
  	__for_each(
! 	  __x, [&__bits](auto __meta, auto __native) constexpr {
  	    __bits
  	      |= __meta._S_mask_to_shifted_ullong(__meta._S_negate(__native));
  	  });
--- 1383,1394 ----
  
      // negation {{{2
      template <typename _Tp, typename... _As>
!       static constexpr inline _MaskMember
        _S_negate(const _SimdTuple<_Tp, _As...>& __x) noexcept
        {
  	_MaskMember __bits = 0;
  	__for_each(
! 	  __x, [&__bits](auto __meta, auto __native) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __bits
  	      |= __meta._S_mask_to_shifted_ullong(__meta._S_negate(__native));
  	  });
*************** template <int _Np>
*** 1436,1442 ****
  	  {
  	    const auto& __x2 = __call_with_n_evaluations<
  	      __div_roundup(_Tup::_S_tuple_size, 2)>(
! 	      [](auto __first_simd, auto... __remaining) {
  		if constexpr (sizeof...(__remaining) == 0)
  		  return __first_simd;
  		else
--- 1426,1432 ----
  	  {
  	    const auto& __x2 = __call_with_n_evaluations<
  	      __div_roundup(_Tup::_S_tuple_size, 2)>(
! 	      [](auto __first_simd, auto... __remaining) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		if constexpr (sizeof...(__remaining) == 0)
  		  return __first_simd;
  		else
*************** template <int _Np>
*** 1450,1456 ****
  		      __make_simd_tuple(__first_simd, __remaining...));
  		  }
  	      },
! 	      [&](auto __i) {
  		auto __left = __tup.template _M_simd_at<2 * __i>();
  		if constexpr (2 * __i + 1 == _Tup::_S_tuple_size)
  		  return __left;
--- 1440,1446 ----
  		      __make_simd_tuple(__first_simd, __remaining...));
  		  }
  	      },
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		auto __left = __tup.template _M_simd_at<2 * __i>();
  		if constexpr (2 * __i + 1 == _Tup::_S_tuple_size)
  		  return __left;
*************** template <int _Np>
*** 1466,1472 ****
  			_GLIBCXX_SIMD_USE_CONSTEXPR_API
  			typename _LT::mask_type __k(
  			  __private_init,
! 			  [](auto __j) constexpr { return __j < _RT::size(); });
  			_LT __ext_right = __left;
  			where(__k, __ext_right)
  			  = __proposed::resizing_simd_cast<_LT>(__right);
--- 1456,1464 ----
  			_GLIBCXX_SIMD_USE_CONSTEXPR_API
  			typename _LT::mask_type __k(
  			  __private_init,
! 			  [](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			    return __j < _RT::size();
! 			  });
  			_LT __ext_right = __left;
  			where(__k, __ext_right)
  			  = __proposed::resizing_simd_cast<_LT>(__right);
*************** template <int _Np>
*** 1481,1504 ****
  
      // _S_min, _S_max {{{2
      template <typename _Tp, typename... _As>
!       static inline constexpr _SimdTuple<_Tp, _As...>
!       _S_min(const _SimdTuple<_Tp, _As...>& __a,
! 	     const _SimdTuple<_Tp, _As...>& __b)
        {
  	return __a._M_apply_per_chunk(
! 	  [](auto __impl, auto __aa, auto __bb) constexpr {
  	    return __impl._S_min(__aa, __bb);
  	  },
  	  __b);
        }
  
      template <typename _Tp, typename... _As>
!       static inline constexpr _SimdTuple<_Tp, _As...>
!       _S_max(const _SimdTuple<_Tp, _As...>& __a,
! 	     const _SimdTuple<_Tp, _As...>& __b)
        {
  	return __a._M_apply_per_chunk(
! 	  [](auto __impl, auto __aa, auto __bb) constexpr {
  	    return __impl._S_max(__aa, __bb);
  	  },
  	  __b);
--- 1473,1494 ----
  
      // _S_min, _S_max {{{2
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...>
!       _S_min(const _SimdTuple<_Tp, _As...>& __a, const _SimdTuple<_Tp, _As...>& __b)
        {
  	return __a._M_apply_per_chunk(
! 	  [](auto __impl, auto __aa, auto __bb) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    return __impl._S_min(__aa, __bb);
  	  },
  	  __b);
        }
  
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...>
!       _S_max(const _SimdTuple<_Tp, _As...>& __a, const _SimdTuple<_Tp, _As...>& __b)
        {
  	return __a._M_apply_per_chunk(
! 	  [](auto __impl, auto __aa, auto __bb) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    return __impl._S_max(__aa, __bb);
  	  },
  	  __b);
*************** template <int _Np>
*** 1506,1541 ****
  
      // _S_complement {{{2
      template <typename _Tp, typename... _As>
!       static inline constexpr _SimdTuple<_Tp, _As...>
        _S_complement(const _SimdTuple<_Tp, _As...>& __x) noexcept
        {
! 	return __x._M_apply_per_chunk([](auto __impl, auto __xx) constexpr {
! 	  return __impl._S_complement(__xx);
! 	});
        }
  
      // _S_unary_minus {{{2
      template <typename _Tp, typename... _As>
!       static inline constexpr _SimdTuple<_Tp, _As...>
        _S_unary_minus(const _SimdTuple<_Tp, _As...>& __x) noexcept
        {
! 	return __x._M_apply_per_chunk([](auto __impl, auto __xx) constexpr {
! 	  return __impl._S_unary_minus(__xx);
! 	});
        }
  
      // arithmetic operators {{{2
  
! #define _GLIBCXX_SIMD_FIXED_OP(name_, op_)                                     \
!     template <typename _Tp, typename... _As>                                   \
!       static inline constexpr _SimdTuple<_Tp, _As...> name_(                   \
! 	const _SimdTuple<_Tp, _As...> __x, const _SimdTuple<_Tp, _As...> __y)  \
!       {                                                                        \
! 	return __x._M_apply_per_chunk(                                         \
! 	  [](auto __impl, auto __xx, auto __yy) constexpr {                    \
! 	    return __impl.name_(__xx, __yy);                                   \
! 	  },                                                                   \
! 	  __y);                                                                \
        }
  
      _GLIBCXX_SIMD_FIXED_OP(_S_plus, +)
--- 1496,1533 ----
  
      // _S_complement {{{2
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...>
        _S_complement(const _SimdTuple<_Tp, _As...>& __x) noexcept
        {
! 	return __x._M_apply_per_chunk(
! 		 [](auto __impl, auto __xx) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __impl._S_complement(__xx);
! 		 });
        }
  
      // _S_unary_minus {{{2
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...>
        _S_unary_minus(const _SimdTuple<_Tp, _As...>& __x) noexcept
        {
! 	return __x._M_apply_per_chunk(
! 		 [](auto __impl, auto __xx) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __impl._S_unary_minus(__xx);
! 		 });
        }
  
      // arithmetic operators {{{2
  
! #define _GLIBCXX_SIMD_FIXED_OP(name_, op_)                                                     \
!     template <typename _Tp, typename... _As>                                                   \
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...> name_(                  \
! 	const _SimdTuple<_Tp, _As...>& __x, const _SimdTuple<_Tp, _As...>& __y)                \
!       {                                                                                        \
! 	return __x._M_apply_per_chunk(                                                         \
! 	  [](auto __impl, auto __xx, auto __yy) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { \
! 	    return __impl.name_(__xx, __yy);                                                   \
! 	  },                                                                                   \
! 	  __y);                                                                                \
        }
  
      _GLIBCXX_SIMD_FIXED_OP(_S_plus, +)
*************** template <int _Np>
*** 1551,1571 ****
  #undef _GLIBCXX_SIMD_FIXED_OP
  
      template <typename _Tp, typename... _As>
!       static inline constexpr _SimdTuple<_Tp, _As...>
        _S_bit_shift_left(const _SimdTuple<_Tp, _As...>& __x, int __y)
        {
! 	return __x._M_apply_per_chunk([__y](auto __impl, auto __xx) constexpr {
! 	  return __impl._S_bit_shift_left(__xx, __y);
! 	});
        }
  
      template <typename _Tp, typename... _As>
!       static inline constexpr _SimdTuple<_Tp, _As...>
        _S_bit_shift_right(const _SimdTuple<_Tp, _As...>& __x, int __y)
        {
! 	return __x._M_apply_per_chunk([__y](auto __impl, auto __xx) constexpr {
! 	  return __impl._S_bit_shift_right(__xx, __y);
! 	});
        }
  
    // math {{{2
--- 1543,1565 ----
  #undef _GLIBCXX_SIMD_FIXED_OP
  
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...>
        _S_bit_shift_left(const _SimdTuple<_Tp, _As...>& __x, int __y)
        {
! 	return __x._M_apply_per_chunk(
! 		 [__y](auto __impl, auto __xx) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __impl._S_bit_shift_left(__xx, __y);
! 		 });
        }
  
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdTuple<_Tp, _As...>
        _S_bit_shift_right(const _SimdTuple<_Tp, _As...>& __x, int __y)
        {
! 	return __x._M_apply_per_chunk(
! 		 [__y](auto __impl, auto __xx) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __impl._S_bit_shift_right(__xx, __y);
! 		 });
        }
  
    // math {{{2
*************** template <int _Np>
*** 1579,1613 ****
  	  {                                                                    \
  	    if constexpr (is_same_v<_Tp, _RetTp>)                              \
  	      return __x._M_apply_per_chunk(                                   \
! 		[](auto __impl, auto __xx) constexpr {                         \
! 		  using _V = typename decltype(__impl)::simd_type;             \
! 		  return __data(__name(_V(__private_init, __xx)));             \
! 		});                                                            \
  	    else                                                               \
  	      return __optimize_simd_tuple(                                    \
! 		__x.template _M_apply_r<_RetTp>([](auto __impl, auto __xx) {   \
! 		  return __impl._S_##__name(__xx);                             \
! 		}));                                                           \
  	  }                                                                    \
  	else if constexpr (                                                    \
  	  is_same_v<                                                           \
  	    _Tp,                                                               \
  	    _RetTp> && (... && is_same_v<_SimdTuple<_Tp, _As...>, _More>) )    \
  	  return __x._M_apply_per_chunk(                                       \
! 	    [](auto __impl, auto __xx, auto... __pack) constexpr {             \
! 	      using _V = typename decltype(__impl)::simd_type;                 \
! 	      return __data(__name(_V(__private_init, __xx),                   \
! 				   _V(__private_init, __pack)...));            \
! 	    },                                                                 \
! 	    __more...);                                                        \
  	else if constexpr (is_same_v<_Tp, _RetTp>)                             \
  	  return __x._M_apply_per_chunk(                                       \
! 	    [](auto __impl, auto __xx, auto... __pack) constexpr {             \
! 	      using _V = typename decltype(__impl)::simd_type;                 \
! 	      return __data(__name(_V(__private_init, __xx),                   \
! 				   __autocvt_to_simd(__pack)...));             \
! 	    },                                                                 \
! 	    __more...);                                                        \
  	else                                                                   \
  	  __assert_unreachable<_Tp>();                                         \
        }
--- 1573,1612 ----
  	  {                                                                    \
  	    if constexpr (is_same_v<_Tp, _RetTp>)                              \
  	      return __x._M_apply_per_chunk(                                   \
! 		       [](auto __impl, auto __xx)                              \
! 			 constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA          \
! 		       {                                                       \
! 			 using _V = typename decltype(__impl)::simd_type;      \
! 			 return __data(__name(_V(__private_init, __xx)));      \
! 		       });                                                     \
  	    else                                                               \
  	      return __optimize_simd_tuple(                                    \
! 		       __x.template _M_apply_r<_RetTp>(                        \
! 			 [](auto __impl, auto __xx)                            \
! 			   _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA                  \
! 			 { return __impl._S_##__name(__xx); }));               \
  	  }                                                                    \
  	else if constexpr (                                                    \
  	  is_same_v<                                                           \
  	    _Tp,                                                               \
  	    _RetTp> && (... && is_same_v<_SimdTuple<_Tp, _As...>, _More>) )    \
  	  return __x._M_apply_per_chunk(                                       \
! 		   [](auto __impl, auto __xx, auto... __pack)                  \
! 		     constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA              \
! 		   {                                                           \
! 		     using _V = typename decltype(__impl)::simd_type;          \
! 		     return __data(__name(_V(__private_init, __xx),            \
! 					  _V(__private_init, __pack)...));     \
! 		   }, __more...);                                              \
  	else if constexpr (is_same_v<_Tp, _RetTp>)                             \
  	  return __x._M_apply_per_chunk(                                       \
! 		   [](auto __impl, auto __xx, auto... __pack)                  \
! 		     constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA              \
! 		   {                                                           \
! 		     using _V = typename decltype(__impl)::simd_type;          \
! 		     return __data(__name(_V(__private_init, __xx),            \
! 					  __autocvt_to_simd(__pack)...));      \
! 		   }, __more...);                                              \
  	else                                                                   \
  	  __assert_unreachable<_Tp>();                                         \
        }
*************** template <int _Np>
*** 1673,1688 ****
  #undef _GLIBCXX_SIMD_APPLY_ON_TUPLE
  
      template <typename _Tp, typename... _Abis>
!       static _SimdTuple<_Tp, _Abis...> _S_remquo(
! 	const _SimdTuple<_Tp, _Abis...>& __x,
! 	const _SimdTuple<_Tp, _Abis...>& __y,
! 	__fixed_size_storage_t<int, _SimdTuple<_Tp, _Abis...>::_S_size()>* __z)
        {
  	return __x._M_apply_per_chunk(
! 	  [](auto __impl, const auto __xx, const auto __yy, auto& __zz) {
! 	    return __impl._S_remquo(__xx, __yy, &__zz);
! 	  },
! 	  __y, *__z);
        }
  
      template <typename _Tp, typename... _As>
--- 1672,1686 ----
  #undef _GLIBCXX_SIMD_APPLY_ON_TUPLE
  
      template <typename _Tp, typename... _Abis>
!       static inline _SimdTuple<_Tp, _Abis...>
!       _S_remquo(const _SimdTuple<_Tp, _Abis...>& __x, const _SimdTuple<_Tp, _Abis...>& __y,
! 		__fixed_size_storage_t<int, _SimdTuple<_Tp, _Abis...>::_S_size()>* __z)
        {
  	return __x._M_apply_per_chunk(
! 		 [](auto __impl, const auto __xx, const auto __yy, auto& __zz)
! 		   _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 		 { return __impl._S_remquo(__xx, __yy, &__zz); },
! 		 __y, *__z);
        }
  
      template <typename _Tp, typename... _As>
*************** template <int _Np>
*** 1691,1712 ****
  	       __fixed_size_storage_t<int, _Np>& __exp) noexcept
        {
  	return __x._M_apply_per_chunk(
! 	  [](auto __impl, const auto& __a, auto& __b) {
! 	    return __data(
! 	      frexp(typename decltype(__impl)::simd_type(__private_init, __a),
! 		    __autocvt_to_simd(__b)));
! 	  },
! 	  __exp);
        }
  
! #define _GLIBCXX_SIMD_TEST_ON_TUPLE_(name_)                                    \
!     template <typename _Tp, typename... _As>                                   \
!       static inline _MaskMember                                                \
! 	_S_##name_(const _SimdTuple<_Tp, _As...>& __x) noexcept                \
!       {                                                                        \
! 	return _M_test([](auto __impl,                                         \
! 			  auto __xx) { return __impl._S_##name_(__xx); },      \
! 		       __x);                                                   \
        }
  
      _GLIBCXX_SIMD_TEST_ON_TUPLE_(isinf)
--- 1689,1708 ----
  	       __fixed_size_storage_t<int, _Np>& __exp) noexcept
        {
  	return __x._M_apply_per_chunk(
! 		 [](auto __impl, const auto& __a, auto& __b) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __data(frexp(typename decltype(__impl)::simd_type(__private_init, __a),
! 				       __autocvt_to_simd(__b)));
! 		 }, __exp);
        }
  
! #define _GLIBCXX_SIMD_TEST_ON_TUPLE_(name_)                                              \
!     template <typename _Tp, typename... _As>                                             \
!       static inline _MaskMember                                                          \
!       _S_##name_(const _SimdTuple<_Tp, _As...>& __x) noexcept                            \
!       {                                                                                  \
! 	return _M_test([] (auto __impl, auto __xx) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA  { \
! 		 return __impl._S_##name_(__xx);                                         \
! 	       }, __x);                                                                  \
        }
  
      _GLIBCXX_SIMD_TEST_ON_TUPLE_(isinf)
*************** template <int _Np>
*** 1722,1728 ****
        _S_increment(_SimdTuple<_Ts...>& __x)
        {
  	__for_each(
! 	  __x, [](auto __meta, auto& native) constexpr {
  	    __meta._S_increment(native);
  	  });
        }
--- 1718,1724 ----
        _S_increment(_SimdTuple<_Ts...>& __x)
        {
  	__for_each(
! 	  __x, [](auto __meta, auto& native) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __meta._S_increment(native);
  	  });
        }
*************** template <int _Np>
*** 1732,1738 ****
        _S_decrement(_SimdTuple<_Ts...>& __x)
        {
  	__for_each(
! 	  __x, [](auto __meta, auto& native) constexpr {
  	    __meta._S_decrement(native);
  	  });
        }
--- 1728,1734 ----
        _S_decrement(_SimdTuple<_Ts...>& __x)
        {
  	__for_each(
! 	  __x, [](auto __meta, auto& native) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __meta._S_decrement(native);
  	  });
        }
*************** template <int _Np>
*** 1740,1754 ****
      // compares {{{2
  #define _GLIBCXX_SIMD_CMP_OPERATIONS(__cmp)                                    \
      template <typename _Tp, typename... _As>                                   \
!       _GLIBCXX_SIMD_INTRINSIC constexpr static _MaskMember                     \
        __cmp(const _SimdTuple<_Tp, _As...>& __x,                                \
  	    const _SimdTuple<_Tp, _As...>& __y)                                \
        {                                                                        \
! 	return _M_test(                                                        \
! 	  [](auto __impl, auto __xx, auto __yy) constexpr {                    \
! 	    return __impl.__cmp(__xx, __yy);                                   \
! 	  },                                                                   \
! 	  __x, __y);                                                           \
        }
  
      _GLIBCXX_SIMD_CMP_OPERATIONS(_S_equal_to)
--- 1736,1749 ----
      // compares {{{2
  #define _GLIBCXX_SIMD_CMP_OPERATIONS(__cmp)                                    \
      template <typename _Tp, typename... _As>                                   \
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember                     \
        __cmp(const _SimdTuple<_Tp, _As...>& __x,                                \
  	    const _SimdTuple<_Tp, _As...>& __y)                                \
        {                                                                        \
! 	return _M_test([](auto __impl, auto __xx, auto __yy)                   \
! 			 constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA          \
! 		       { return __impl.__cmp(__xx, __yy); },                   \
! 		       __x, __y);                                              \
        }
  
      _GLIBCXX_SIMD_CMP_OPERATIONS(_S_equal_to)
*************** template <int _Np>
*** 1765,1797 ****
  
      // smart_reference access {{{2
      template <typename _Tp, typename... _As, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static void _S_set(_SimdTuple<_Tp, _As...>& __v,
! 						 int __i, _Up&& __x) noexcept
        { __v._M_set(__i, static_cast<_Up&&>(__x)); }
  
      // _S_masked_assign {{{2
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_assign(const _MaskMember __bits, _SimdTuple<_Tp, _As...>& __lhs,
  		       const __type_identity_t<_SimdTuple<_Tp, _As...>>& __rhs)
        {
! 	__for_each(
! 	  __lhs, __rhs,
! 	  [&](auto __meta, auto& __native_lhs, auto __native_rhs) constexpr {
! 	    __meta._S_masked_assign(__meta._S_make_mask(__bits), __native_lhs,
! 				    __native_rhs);
! 	  });
        }
  
      // Optimization for the case where the RHS is a scalar. No need to broadcast
      // the scalar to a simd first.
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_assign(const _MaskMember __bits, _SimdTuple<_Tp, _As...>& __lhs,
  		       const __type_identity_t<_Tp> __rhs)
        {
  	__for_each(
! 	  __lhs, [&](auto __meta, auto& __native_lhs) constexpr {
  	    __meta._S_masked_assign(__meta._S_make_mask(__bits), __native_lhs,
  				    __rhs);
  	  });
--- 1760,1793 ----
  
      // smart_reference access {{{2
      template <typename _Tp, typename... _As, typename _Up>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
!       _S_set(_SimdTuple<_Tp, _As...>& __v, int __i, _Up&& __x) noexcept
        { __v._M_set(__i, static_cast<_Up&&>(__x)); }
  
      // _S_masked_assign {{{2
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_masked_assign(const _MaskMember __bits, _SimdTuple<_Tp, _As...>& __lhs,
  		       const __type_identity_t<_SimdTuple<_Tp, _As...>>& __rhs)
        {
! 	__for_each(__lhs, __rhs,
! 		   [&](auto __meta, auto& __native_lhs, auto __native_rhs)
! 		     constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 		   {
! 		     __meta._S_masked_assign(__meta._S_make_mask(__bits), __native_lhs,
! 					     __native_rhs);
! 		   });
        }
  
      // Optimization for the case where the RHS is a scalar. No need to broadcast
      // the scalar to a simd first.
      template <typename _Tp, typename... _As>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
        _S_masked_assign(const _MaskMember __bits, _SimdTuple<_Tp, _As...>& __lhs,
  		       const __type_identity_t<_Tp> __rhs)
        {
  	__for_each(
! 	  __lhs, [&](auto __meta, auto& __native_lhs) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __meta._S_masked_assign(__meta._S_make_mask(__bits), __native_lhs,
  				    __rhs);
  	  });
*************** template <int _Np>
*** 1799,1826 ****
  
      // _S_masked_cassign {{{2
      template <typename _Op, typename _Tp, typename... _As>
!       static inline void _S_masked_cassign(const _MaskMember __bits,
! 					   _SimdTuple<_Tp, _As...>& __lhs,
! 					   const _SimdTuple<_Tp, _As...>& __rhs,
! 					   _Op __op)
        {
! 	__for_each(
! 	  __lhs, __rhs,
! 	  [&](auto __meta, auto& __native_lhs, auto __native_rhs) constexpr {
! 	    __meta.template _S_masked_cassign(__meta._S_make_mask(__bits),
! 					      __native_lhs, __native_rhs, __op);
! 	  });
        }
  
      // Optimization for the case where the RHS is a scalar. No need to broadcast
      // the scalar to a simd first.
      template <typename _Op, typename _Tp, typename... _As>
!       static inline void _S_masked_cassign(const _MaskMember __bits,
! 					   _SimdTuple<_Tp, _As...>& __lhs,
! 					   const _Tp& __rhs, _Op __op)
        {
  	__for_each(
! 	  __lhs, [&](auto __meta, auto& __native_lhs) constexpr {
  	    __meta.template _S_masked_cassign(__meta._S_make_mask(__bits),
  					      __native_lhs, __rhs, __op);
  	  });
--- 1795,1822 ----
  
      // _S_masked_cassign {{{2
      template <typename _Op, typename _Tp, typename... _As>
!       static constexpr inline void
!       _S_masked_cassign(const _MaskMember __bits, _SimdTuple<_Tp, _As...>& __lhs,
! 			const _SimdTuple<_Tp, _As...>& __rhs, _Op __op)
        {
! 	__for_each(__lhs, __rhs,
! 		   [&](auto __meta, auto& __native_lhs, auto __native_rhs)
! 		     constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 		   {
! 		     __meta.template _S_masked_cassign(__meta._S_make_mask(__bits),
! 						       __native_lhs, __native_rhs, __op);
! 		   });
        }
  
      // Optimization for the case where the RHS is a scalar. No need to broadcast
      // the scalar to a simd first.
      template <typename _Op, typename _Tp, typename... _As>
!       static constexpr inline void
!       _S_masked_cassign(const _MaskMember __bits, _SimdTuple<_Tp, _As...>& __lhs,
! 			const _Tp& __rhs, _Op __op)
        {
  	__for_each(
! 	  __lhs, [&](auto __meta, auto& __native_lhs) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	    __meta.template _S_masked_cassign(__meta._S_make_mask(__bits),
  					      __native_lhs, __rhs, __op);
  	  });
*************** template <int _Np>
*** 1828,1834 ****
  
      // _S_masked_unary {{{2
      template <template <typename> class _Op, typename _Tp, typename... _As>
!       static inline _SimdTuple<_Tp, _As...>
        _S_masked_unary(const _MaskMember __bits,
  		      const _SimdTuple<_Tp, _As...> __v) // TODO: const-ref __v?
        {
--- 1824,1830 ----
  
      // _S_masked_unary {{{2
      template <template <typename> class _Op, typename _Tp, typename... _As>
!       static constexpr inline _SimdTuple<_Tp, _As...>
        _S_masked_unary(const _MaskMember __bits,
  		      const _SimdTuple<_Tp, _As...> __v) // TODO: const-ref __v?
        {
*************** template <int _Np>
*** 1876,1881 ****
--- 1872,1884 ----
        _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
        _S_load(const bool* __mem)
        {
+ 	if (__builtin_is_constant_evaluated())
+ 	  {
+ 	    _MaskMember __r{};
+ 	    for (size_t __i = 0; __i < _Np; ++__i)
+ 	      __r.set(__i, __mem[__i]);
+ 	    return __r;
+ 	  }
  	using _Ip = __int_for_sizeof_t<bool>;
  	// the following load uses element_aligned and relies on __mem already
  	// carrying alignment information from when this load function was
*************** template <int _Np>
*** 1911,1928 ****
      // }}}
      // _S_from_bitmask {{{2
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static _MaskMember
        _S_from_bitmask(_MaskMember __bits, _TypeTag<_Tp>) noexcept
        { return __bits; }
  
      // _S_load {{{2
!     static inline _MaskMember _S_load(const bool* __mem) noexcept
      {
        // TODO: _UChar is not necessarily the best type to use here. For smaller
        // _Np _UShort, _UInt, _ULLong, float, and double can be more efficient.
        _ULLong __r = 0;
        using _Vs = __fixed_size_storage_t<_UChar, _Np>;
!       __for_each(_Vs{}, [&](auto __meta, auto) {
  	__r |= __meta._S_mask_to_shifted_ullong(
  	  __meta._S_mask_impl._S_load(&__mem[__meta._S_offset],
  				      _SizeConstant<__meta._S_size()>()));
--- 1914,1932 ----
      // }}}
      // _S_from_bitmask {{{2
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
        _S_from_bitmask(_MaskMember __bits, _TypeTag<_Tp>) noexcept
        { return __bits; }
  
      // _S_load {{{2
!     static constexpr inline _MaskMember
!     _S_load(const bool* __mem) noexcept
      {
        // TODO: _UChar is not necessarily the best type to use here. For smaller
        // _Np _UShort, _UInt, _ULLong, float, and double can be more efficient.
        _ULLong __r = 0;
        using _Vs = __fixed_size_storage_t<_UChar, _Np>;
!       __for_each(_Vs{}, [&](auto __meta, auto) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	__r |= __meta._S_mask_to_shifted_ullong(
  	  __meta._S_mask_impl._S_load(&__mem[__meta._S_offset],
  				      _SizeConstant<__meta._S_size()>()));
*************** template <int _Np>
*** 1931,1949 ****
      }
  
      // _S_masked_load {{{2
!     static inline _MaskMember _S_masked_load(_MaskMember __merge,
! 					     _MaskMember __mask,
! 					     const bool* __mem) noexcept
      {
!       _BitOps::_S_bit_iteration(__mask.to_ullong(), [&](auto __i) {
! 	__merge.set(__i, __mem[__i]);
!       });
        return __merge;
      }
  
      // _S_store {{{2
!     static inline void _S_store(const _MaskMember __bitmask,
! 				bool* __mem) noexcept
      {
        if constexpr (_Np == 1)
  	__mem[0] = __bitmask[0];
--- 1935,1953 ----
      }
  
      // _S_masked_load {{{2
!     static constexpr inline _MaskMember
!     _S_masked_load(_MaskMember __merge, _MaskMember __mask, const bool* __mem) noexcept
      {
!       _BitOps::_S_bit_iteration(__mask.to_ullong(),
! 				[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 				  __merge.set(__i, __mem[__i]);
! 				});
        return __merge;
      }
  
      // _S_store {{{2
!     static constexpr inline void
!     _S_store(const _MaskMember __bitmask, bool* __mem) noexcept
      {
        if constexpr (_Np == 1)
  	__mem[0] = __bitmask[0];
*************** template <int _Np>
*** 1952,1969 ****
      }
  
      // _S_masked_store {{{2
!     static inline void _S_masked_store(const _MaskMember __v, bool* __mem,
! 				       const _MaskMember __k) noexcept
      {
!       _BitOps::_S_bit_iteration(__k, [&](auto __i) { __mem[__i] = __v[__i]; });
      }
  
      // logical and bitwise operators {{{2
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember
      _S_logical_and(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x & __y; }
  
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember
      _S_logical_or(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x | __y; }
  
--- 1956,1974 ----
      }
  
      // _S_masked_store {{{2
!     static constexpr inline void
!     _S_masked_store(const _MaskMember __v, bool* __mem, const _MaskMember __k) noexcept
      {
!       _BitOps::_S_bit_iteration(
! 	__k, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { __mem[__i] = __v[__i]; });
      }
  
      // logical and bitwise operators {{{2
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
      _S_logical_and(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x & __y; }
  
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
      _S_logical_or(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x | __y; }
  
*************** template <int _Np>
*** 1971,2003 ****
      _S_bit_not(const _MaskMember& __x) noexcept
      { return ~__x; }
  
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember
      _S_bit_and(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x & __y; }
  
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember
      _S_bit_or(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x | __y; }
  
!     _GLIBCXX_SIMD_INTRINSIC static _MaskMember
      _S_bit_xor(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x ^ __y; }
  
      // smart_reference access {{{2
!     _GLIBCXX_SIMD_INTRINSIC static void _S_set(_MaskMember& __k, int __i,
! 					       bool __x) noexcept
      { __k.set(__i, __x); }
  
      // _S_masked_assign {{{2
!     _GLIBCXX_SIMD_INTRINSIC static void
!     _S_masked_assign(const _MaskMember __k, _MaskMember& __lhs,
! 		     const _MaskMember __rhs)
      { __lhs = (__lhs & ~__k) | (__rhs & __k); }
  
      // Optimization for the case where the RHS is a scalar.
!     _GLIBCXX_SIMD_INTRINSIC static void _S_masked_assign(const _MaskMember __k,
! 							 _MaskMember& __lhs,
! 							 const bool __rhs)
      {
        if (__rhs)
  	__lhs |= __k;
--- 1976,2006 ----
      _S_bit_not(const _MaskMember& __x) noexcept
      { return ~__x; }
  
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
      _S_bit_and(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x & __y; }
  
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
      _S_bit_or(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x | __y; }
  
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _MaskMember
      _S_bit_xor(const _MaskMember& __x, const _MaskMember& __y) noexcept
      { return __x ^ __y; }
  
      // smart_reference access {{{2
!     _GLIBCXX_SIMD_INTRINSIC static constexpr void
!     _S_set(_MaskMember& __k, int __i, bool __x) noexcept
      { __k.set(__i, __x); }
  
      // _S_masked_assign {{{2
!     _GLIBCXX_SIMD_INTRINSIC static constexpr void
!     _S_masked_assign(const _MaskMember __k, _MaskMember& __lhs, const _MaskMember __rhs)
      { __lhs = (__lhs & ~__k) | (__rhs & __k); }
  
      // Optimization for the case where the RHS is a scalar.
!     _GLIBCXX_SIMD_INTRINSIC static constexpr void
!     _S_masked_assign(const _MaskMember __k, _MaskMember& __lhs, const bool __rhs)
      {
        if (__rhs)
  	__lhs |= __k;
*************** template <int _Np>
*** 2008,2032 ****
      // }}}2
      // _S_all_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_all_of(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).all(); }
  
      // }}}
      // _S_any_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_any_of(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).any(); }
  
      // }}}
      // _S_none_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_none_of(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).none(); }
  
      // }}}
      // _S_some_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
        _S_some_of([[maybe_unused]] simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (_Np == 1)
--- 2011,2038 ----
      // }}}2
      // _S_all_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!       _S_all_of(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).all(); }
  
      // }}}
      // _S_any_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!       _S_any_of(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).any(); }
  
      // }}}
      // _S_none_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!       _S_none_of(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).none(); }
  
      // }}}
      // _S_some_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr bool
        _S_some_of([[maybe_unused]] simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (_Np == 1)
*************** template <int _Np>
*** 2038,2057 ****
      // }}}
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int _S_popcount(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).count(); }
  
      // }}}
      // _S_find_first_set {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int
        _S_find_first_set(simd_mask<_Tp, _Abi> __k)
        { return std::__countr_zero(__data(__k).to_ullong()); }
  
      // }}}
      // _S_find_last_set {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int
        _S_find_last_set(simd_mask<_Tp, _Abi> __k)
        { return std::__bit_width(__data(__k).to_ullong()) - 1; }
  
--- 2044,2064 ----
      // }}}
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr int
!       _S_popcount(simd_mask<_Tp, _Abi> __k)
        { return __data(__k).count(); }
  
      // }}}
      // _S_find_first_set {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr int
        _S_find_first_set(simd_mask<_Tp, _Abi> __k)
        { return std::__countr_zero(__data(__k).to_ullong()); }
  
      // }}}
      // _S_find_last_set {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr int
        _S_find_last_set(simd_mask<_Tp, _Abi> __k)
        { return std::__bit_width(__data(__k).to_ullong()) - 1; }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_math.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_math.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_math.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_math.h	Mon May 29 08:46:33 2023
*************** template <typename _Tp, typename _Abi>
*** 792,798 ****
  
  	// __exponent(__x) returns the exponent value (bias removed) as
  	// simd<_Up> with integral _Up
! 	auto&& __exponent = [](const _V& __v) {
  	  using namespace std::experimental::__proposed;
  	  using _IV = rebind_simd_t<
  	    conditional_t<sizeof(_Tp) == sizeof(_LLong), _LLong, int>, _V>;
--- 792,798 ----
  
  	// __exponent(__x) returns the exponent value (bias removed) as
  	// simd<_Up> with integral _Up
! 	auto&& __exponent = [](const _V& __v) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  using namespace std::experimental::__proposed;
  	  using _IV = rebind_simd_t<
  	    conditional_t<sizeof(_Tp) == sizeof(_LLong), _LLong, int>, _V>;
*************** template <typename _R, typename _ToApply
*** 952,958 ****
    {
      return {__private_init,
  	    __data(__arg0)._M_apply_per_chunk(
! 	      [&](auto __impl, const auto&... __inner) {
  		using _V = typename decltype(__impl)::simd_type;
  		return __data(__apply(_V(__private_init, __inner)...));
  	      },
--- 952,958 ----
    {
      return {__private_init,
  	    __data(__arg0)._M_apply_per_chunk(
! 	      [&](auto __impl, const auto&... __inner) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		using _V = typename decltype(__impl)::simd_type;
  		return __data(__apply(_V(__private_init, __inner)...));
  	      },
*************** _GLIBCXX_SIMD_CVTING2(hypot)
*** 1112,1119 ****
      if constexpr (__is_fixed_size_abi_v<_Abi> && _V::size() > 1)
        {
  	return __fixed_size_apply<simd<_Tp, _Abi>>(
! 	  [](auto __a, auto __b, auto __c) { return hypot(__a, __b, __c); },
! 	  __x, __y, __z);
        }
      else
        {
--- 1112,1120 ----
      if constexpr (__is_fixed_size_abi_v<_Abi> && _V::size() > 1)
        {
  	return __fixed_size_apply<simd<_Tp, _Abi>>(
! 		 [](auto __a, auto __b, auto __c) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return hypot(__a, __b, __c);
! 		 }, __x, __y, __z);
        }
      else
        {
*************** template <typename _Tp, typename _Abi>
*** 1400,1408 ****
  		 const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __m,
  		 const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) {
!       return std::assoc_laguerre(__n[__i], __m[__i], __x[__i]);
!     });
    }
  
  template <typename _Tp, typename _Abi>
--- 1401,1409 ----
  		 const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __m,
  		 const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::assoc_laguerre(__n[__i], __m[__i], __x[__i]);
! 	   });
    }
  
  template <typename _Tp, typename _Abi>
*************** template <typename _Tp, typename _Abi>
*** 1411,1419 ****
  		 const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __m,
  		 const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) {
!       return std::assoc_legendre(__n[__i], __m[__i], __x[__i]);
!     });
    }
  
  _GLIBCXX_SIMD_MATH_CALL2_(beta, _Tp)
--- 1412,1420 ----
  		 const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __m,
  		 const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::assoc_legendre(__n[__i], __m[__i], __x[__i]);
! 	   });
    }
  
  _GLIBCXX_SIMD_MATH_CALL2_(beta, _Tp)
*************** template <typename _Tp, typename _Abi>
*** 1434,1441 ****
    hermite(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	  const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>(
!       [&](auto __i) { return std::hermite(__n[__i], __x[__i]); });
    }
  
  template <typename _Tp, typename _Abi>
--- 1435,1443 ----
    hermite(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	  const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::hermite(__n[__i], __x[__i]);
! 	   });
    }
  
  template <typename _Tp, typename _Abi>
*************** template <typename _Tp, typename _Abi>
*** 1443,1450 ****
    laguerre(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	   const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>(
!       [&](auto __i) { return std::laguerre(__n[__i], __x[__i]); });
    }
  
  template <typename _Tp, typename _Abi>
--- 1445,1453 ----
    laguerre(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	   const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::laguerre(__n[__i], __x[__i]);
! 	   });
    }
  
  template <typename _Tp, typename _Abi>
*************** template <typename _Tp, typename _Abi>
*** 1452,1459 ****
    legendre(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	   const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>(
!       [&](auto __i) { return std::legendre(__n[__i], __x[__i]); });
    }
  
  _GLIBCXX_SIMD_MATH_CALL_(riemann_zeta)
--- 1455,1463 ----
    legendre(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	   const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::legendre(__n[__i], __x[__i]);
! 	   });
    }
  
  _GLIBCXX_SIMD_MATH_CALL_(riemann_zeta)
*************** template <typename _Tp, typename _Abi>
*** 1463,1470 ****
    sph_bessel(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	     const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>(
!       [&](auto __i) { return std::sph_bessel(__n[__i], __x[__i]); });
    }
  
  template <typename _Tp, typename _Abi>
--- 1467,1475 ----
    sph_bessel(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	     const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::sph_bessel(__n[__i], __x[__i]);
! 	   });
    }
  
  template <typename _Tp, typename _Abi>
*************** template <typename _Tp, typename _Abi>
*** 1473,1481 ****
  	       const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __m,
  	       const simd<_Tp, _Abi>& theta)
    {
!     return simd<_Tp, _Abi>([&](auto __i) {
!       return std::assoc_legendre(__l[__i], __m[__i], theta[__i]);
!     });
    }
  
  template <typename _Tp, typename _Abi>
--- 1478,1486 ----
  	       const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __m,
  	       const simd<_Tp, _Abi>& theta)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::assoc_legendre(__l[__i], __m[__i], theta[__i]);
! 	   });
    }
  
  template <typename _Tp, typename _Abi>
*************** template <typename _Tp, typename _Abi>
*** 1483,1490 ****
    sph_neumann(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	      const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>(
!       [&](auto __i) { return std::sph_neumann(__n[__i], __x[__i]); });
    }
  // }}}
  
--- 1488,1496 ----
    sph_neumann(const fixed_size_simd<unsigned, simd_size_v<_Tp, _Abi>>& __n,
  	      const simd<_Tp, _Abi>& __x)
    {
!     return simd<_Tp, _Abi>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 	     return std::sph_neumann(__n[__i], __x[__i]);
! 	   });
    }
  // }}}
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_neon.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_neon.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_neon.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_neon.h	Mon May 29 08:46:33 2023
*************** template <typename _Abi>
*** 61,67 ****
        _S_masked_load(_SimdWrapper<_Tp, _Np> __merge, _MaskMember<_Tp> __k,
  		     const _Up* __mem) noexcept
        {
! 	__execute_n_times<_Np>([&](auto __i) {
  	  if (__k[__i] != 0)
  	    __merge._M_set(__i, static_cast<_Tp>(__mem[__i]));
  	});
--- 61,67 ----
        _S_masked_load(_SimdWrapper<_Tp, _Np> __merge, _MaskMember<_Tp> __k,
  		     const _Up* __mem) noexcept
        {
! 	__execute_n_times<_Np>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  if (__k[__i] != 0)
  	    __merge._M_set(__i, static_cast<_Tp>(__mem[__i]));
  	});
*************** template <typename _Abi>
*** 75,81 ****
        _S_masked_store_nocvt(_SimdWrapper<_Tp, _Np> __v, _Tp* __mem,
  			    _MaskMember<_Tp> __k)
        {
! 	__execute_n_times<_Np>([&](auto __i) {
  	  if (__k[__i] != 0)
  	    __mem[__i] = __v[__i];
  	});
--- 75,81 ----
        _S_masked_store_nocvt(_SimdWrapper<_Tp, _Np> __v, _Tp* __mem,
  			    _MaskMember<_Tp> __k)
        {
! 	__execute_n_times<_Np>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  if (__k[__i] != 0)
  	    __mem[__i] = __v[__i];
  	});
*************** template <typename _Abi>
*** 84,140 ****
      // }}}
      // _S_reduce {{{
      template <typename _Tp, typename _BinaryOperation>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
        _S_reduce(simd<_Tp, _Abi> __x, _BinaryOperation&& __binary_op)
        {
! 	constexpr size_t _Np = __x.size();
! 	if constexpr (sizeof(__x) == 16 && _Np >= 4
! 		      && !_Abi::template _S_is_partial<_Tp>)
! 	  {
! 	    const auto __halves = split<simd<_Tp, simd_abi::_Neon<8>>>(__x);
! 	    const auto __y = __binary_op(__halves[0], __halves[1]);
! 	    return _SimdImplNeon<simd_abi::_Neon<8>>::_S_reduce(
! 	      __y, static_cast<_BinaryOperation&&>(__binary_op));
! 	  }
! 	else if constexpr (_Np == 8)
! 	  {
! 	    __x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 				     __vector_permute<1, 0, 3, 2, 5, 4, 7, 6>(
! 				       __x._M_data)));
! 	    __x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 				     __vector_permute<3, 2, 1, 0, 7, 6, 5, 4>(
! 				       __x._M_data)));
! 	    __x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 				     __vector_permute<7, 6, 5, 4, 3, 2, 1, 0>(
! 				       __x._M_data)));
! 	    return __x[0];
! 	  }
! 	else if constexpr (_Np == 4)
! 	  {
! 	    __x
! 	      = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 				   __vector_permute<1, 0, 3, 2>(__x._M_data)));
! 	    __x
! 	      = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 				   __vector_permute<3, 2, 1, 0>(__x._M_data)));
! 	    return __x[0];
! 	  }
! 	else if constexpr (_Np == 2)
  	  {
! 	    __x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 				     __vector_permute<1, 0>(__x._M_data)));
! 	    return __x[0];
  	  }
! 	else
! 	  return _Base::_S_reduce(__x,
! 				  static_cast<_BinaryOperation&&>(__binary_op));
        }
  
      // }}}
      // math {{{
      // _S_sqrt {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp _S_sqrt(_Tp __x)
        {
  	if constexpr (__have_neon_a64)
  	  {
--- 84,137 ----
      // }}}
      // _S_reduce {{{
      template <typename _Tp, typename _BinaryOperation>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp
        _S_reduce(simd<_Tp, _Abi> __x, _BinaryOperation&& __binary_op)
        {
! 	if (not __builtin_is_constant_evaluated())
  	  {
! 	    constexpr size_t _Np = __x.size();
! 	    if constexpr (sizeof(__x) == 16 && _Np >= 4
! 			    && !_Abi::template _S_is_partial<_Tp>)
! 	      {
! 		const auto __halves = split<simd<_Tp, simd_abi::_Neon<8>>>(__x);
! 		const auto __y = __binary_op(__halves[0], __halves[1]);
! 		return _SimdImplNeon<simd_abi::_Neon<8>>::_S_reduce(
! 			 __y, static_cast<_BinaryOperation&&>(__binary_op));
! 	      }
! 	    else if constexpr (_Np == 8)
! 	      {
! 		__x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 					 __vector_permute<1, 0, 3, 2, 5, 4, 7, 6>(__x._M_data)));
! 		__x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 					 __vector_permute<3, 2, 1, 0, 7, 6, 5, 4>(__x._M_data)));
! 		__x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 					 __vector_permute<7, 6, 5, 4, 3, 2, 1, 0>(__x._M_data)));
! 		return __x[0];
! 	      }
! 	    else if constexpr (_Np == 4)
! 	      {
! 		__x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 					 __vector_permute<1, 0, 3, 2>(__x._M_data)));
! 		__x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 					 __vector_permute<3, 2, 1, 0>(__x._M_data)));
! 		return __x[0];
! 	      }
! 	    else if constexpr (_Np == 2)
! 	      {
! 		__x = __binary_op(__x, _Base::template _M_make_simd<_Tp, _Np>(
! 					 __vector_permute<1, 0>(__x._M_data)));
! 		return __x[0];
! 	      }
  	  }
! 	return _Base::_S_reduce(__x, static_cast<_BinaryOperation&&>(__binary_op));
        }
  
      // }}}
      // math {{{
      // _S_sqrt {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_sqrt(_Tp __x)
        {
  	if constexpr (__have_neon_a64)
  	  {
*************** template <typename _Abi>
*** 157,163 ****
      // }}}
      // _S_trunc {{{
      template <typename _TW, typename _TVT = _VectorTraits<_TW>>
!       _GLIBCXX_SIMD_INTRINSIC static _TW _S_trunc(_TW __x)
        {
  	using _Tp = typename _TVT::value_type;
  	if constexpr (__have_neon_a32)
--- 154,161 ----
      // }}}
      // _S_trunc {{{
      template <typename _TW, typename _TVT = _VectorTraits<_TW>>
!       _GLIBCXX_SIMD_INTRINSIC static _TW
!       _S_trunc(_TW __x)
        {
  	using _Tp = typename _TVT::value_type;
  	if constexpr (__have_neon_a32)
*************** template <typename _Abi>
*** 216,222 ****
      // }}}
      // _S_floor {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp _S_floor(_Tp __x)
        {
  	if constexpr (__have_neon_a32)
  	  {
--- 214,221 ----
      // }}}
      // _S_floor {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_floor(_Tp __x)
        {
  	if constexpr (__have_neon_a32)
  	  {
*************** template <typename _Abi>
*** 239,245 ****
      // }}}
      // _S_ceil {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp _S_ceil(_Tp __x)
        {
  	if constexpr (__have_neon_a32)
  	  {
--- 238,245 ----
      // }}}
      // _S_ceil {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_ceil(_Tp __x)
        {
  	if constexpr (__have_neon_a32)
  	  {
*************** struct _MaskImplNeonMixin
*** 286,292 ****
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<16, __vector_type_t<_I, 16>>(
! 		  [&](auto __i) {
  		    return static_cast<_I>(
  		      __i < _Np ? (__i < 8 ? 1 << __i : 1 << (__i - 8)) : 0);
  		  });
--- 286,292 ----
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<16, __vector_type_t<_I, 16>>(
! 		  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		    return static_cast<_I>(
  		      __i < _Np ? (__i < 8 ? 1 << __i : 1 << (__i - 8)) : 0);
  		  });
*************** struct _MaskImplNeonMixin
*** 306,312 ****
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<8, __vector_type_t<_I, 8>>(
! 		  [&](auto __i) {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
--- 306,312 ----
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<8, __vector_type_t<_I, 8>>(
! 		  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
*************** struct _MaskImplNeonMixin
*** 322,328 ****
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<4, __vector_type_t<_I, 4>>(
! 		  [&](auto __i) {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
--- 322,328 ----
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<4, __vector_type_t<_I, 4>>(
! 		  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
*************** struct _MaskImplNeonMixin
*** 346,352 ****
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<8, __vector_type_t<_I, 8>>(
! 		  [&](auto __i) {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
--- 346,352 ----
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<8, __vector_type_t<_I, 8>>(
! 		  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
*************** struct _MaskImplNeonMixin
*** 361,367 ****
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<4, __vector_type_t<_I, 4>>(
! 		  [&](auto __i) {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
--- 361,367 ----
  	    {
  	      constexpr auto __bitsel
  		= __generate_from_n_evaluations<4, __vector_type_t<_I, 4>>(
! 		  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		    return static_cast<_I>(__i < _Np ? 1 << __i : 0);
  		  });
  	      __asint &= __bitsel;
*************** template <typename _Abi>
*** 400,406 ****
  
      // _S_all_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_all_of(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kk
  	  = __vector_bitcast<char>(__k._M_data)
--- 400,407 ----
  
      // _S_all_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_all_of(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kk
  	  = __vector_bitcast<char>(__k._M_data)
*************** template <typename _Abi>
*** 419,425 ****
      // }}}
      // _S_any_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_any_of(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kk
  	  = __vector_bitcast<char>(__k._M_data)
--- 420,427 ----
      // }}}
      // _S_any_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_any_of(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kk
  	  = __vector_bitcast<char>(__k._M_data)
*************** template <typename _Abi>
*** 438,444 ****
      // }}}
      // _S_none_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_none_of(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kk = _Abi::_S_masked(__k._M_data);
  	if constexpr (sizeof(__k) == 16)
--- 440,447 ----
      // }}}
      // _S_none_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_none_of(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kk = _Abi::_S_masked(__k._M_data);
  	if constexpr (sizeof(__k) == 16)
*************** template <typename _Abi>
*** 472,478 ****
      // }}}
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int _S_popcount(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (sizeof(_Tp) == 1)
  	  {
--- 475,482 ----
      // }}}
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int
!       _S_popcount(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (sizeof(_Tp) == 1)
  	  {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_ppc.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_ppc.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_ppc.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_ppc.h	Mon May 29 08:46:33 2023
*************** template <typename _Abi>
*** 124,135 ****
  
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int _S_popcount(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kv = __as_vector(__k);
  	if constexpr (__have_power10vec)
  	  {
! 	    return vec_cntm(__to_intrin(__kv), 1);
  	  }
  	else if constexpr (sizeof(_Tp) >= sizeof(int))
  	  {
--- 124,137 ----
  
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int
!       _S_popcount(simd_mask<_Tp, _Abi> __k)
        {
  	const auto __kv = __as_vector(__k);
  	if constexpr (__have_power10vec)
  	  {
! 	    using _Intrin = __intrinsic_type16_t<make_unsigned_t<__int_for_sizeof_t<_Tp>>>;
! 	    return vec_cntm(reinterpret_cast<_Intrin>(__kv), 1);
  	  }
  	else if constexpr (sizeof(_Tp) >= sizeof(int))
  	  {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_scalar.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_scalar.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_scalar.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_scalar.h	Mon May 29 08:46:33 2023
*************** struct simd_abi::_Scalar
*** 74,80 ****
    template <typename _Tp>
      static constexpr bool _S_is_valid_v = _IsValid<_Tp>::value;
  
!   _GLIBCXX_SIMD_INTRINSIC static constexpr bool _S_masked(bool __x)
    { return __x; }
  
    using _CommonImpl = _CommonImplScalar;
--- 74,81 ----
    template <typename _Tp>
      static constexpr bool _S_is_valid_v = _IsValid<_Tp>::value;
  
!   _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!   _S_masked(bool __x)
    { return __x; }
  
    using _CommonImpl = _CommonImplScalar;
*************** struct _CommonImplScalar
*** 110,116 ****
  {
    // _S_store {{{
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static void _S_store(_Tp __x, void* __addr)
      { __builtin_memcpy(__addr, &__x, sizeof(_Tp)); }
  
    // }}}
--- 111,118 ----
  {
    // _S_store {{{
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static void
!     _S_store(_Tp __x, void* __addr)
      { __builtin_memcpy(__addr, &__x, sizeof(_Tp)); }
  
    // }}}
*************** struct _SimdImplScalar
*** 138,162 ****
  
    // _S_broadcast {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp _S_broadcast(_Tp __x) noexcept
      { return __x; }
  
    // _S_generator {{{2
    template <typename _Fp, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp _S_generator(_Fp&& __gen,
! 							      _TypeTag<_Tp>)
      { return __gen(_SizeConstant<0>()); }
  
    // _S_load {{{2
    template <typename _Tp, typename _Up>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_load(const _Up* __mem,
! 					       _TypeTag<_Tp>) noexcept
      { return static_cast<_Tp>(__mem[0]); }
  
    // _S_masked_load {{{2
    template <typename _Tp, typename _Up>
!     static inline _Tp _S_masked_load(_Tp __merge, bool __k,
! 				     const _Up* __mem) noexcept
      {
        if (__k)
  	__merge = static_cast<_Tp>(__mem[0]);
--- 140,165 ----
  
    // _S_broadcast {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp
!     _S_broadcast(_Tp __x) noexcept
      { return __x; }
  
    // _S_generator {{{2
    template <typename _Fp, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp
!     _S_generator(_Fp&& __gen, _TypeTag<_Tp>)
      { return __gen(_SizeConstant<0>()); }
  
    // _S_load {{{2
    template <typename _Tp, typename _Up>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp
!     _S_load(const _Up* __mem, _TypeTag<_Tp>) noexcept
      { return static_cast<_Tp>(__mem[0]); }
  
    // _S_masked_load {{{2
    template <typename _Tp, typename _Up>
!     static constexpr _Tp
!     _S_masked_load(_Tp __merge, bool __k, const _Up* __mem) noexcept
      {
        if (__k)
  	__merge = static_cast<_Tp>(__mem[0]);
*************** struct _SimdImplScalar
*** 165,182 ****
  
    // _S_store {{{2
    template <typename _Tp, typename _Up>
!     static inline void _S_store(_Tp __v, _Up* __mem, _TypeTag<_Tp>) noexcept
      { __mem[0] = static_cast<_Up>(__v); }
  
    // _S_masked_store {{{2
    template <typename _Tp, typename _Up>
!     static inline void _S_masked_store(const _Tp __v, _Up* __mem,
! 				       const bool __k) noexcept
      { if (__k) __mem[0] = __v; }
  
    // _S_negate {{{2
    template <typename _Tp>
!     static constexpr inline bool _S_negate(_Tp __x) noexcept
      { return !__x; }
  
    // _S_reduce {{{2
--- 168,187 ----
  
    // _S_store {{{2
    template <typename _Tp, typename _Up>
!     static constexpr void
!     _S_store(_Tp __v, _Up* __mem, _TypeTag<_Tp>) noexcept
      { __mem[0] = static_cast<_Up>(__v); }
  
    // _S_masked_store {{{2
    template <typename _Tp, typename _Up>
!     static constexpr void
!     _S_masked_store(const _Tp __v, _Up* __mem, const bool __k) noexcept
      { if (__k) __mem[0] = __v; }
  
    // _S_negate {{{2
    template <typename _Tp>
!     static constexpr inline bool
!     _S_negate(_Tp __x) noexcept
      { return !__x; }
  
    // _S_reduce {{{2
*************** struct _SimdImplScalar
*** 187,247 ****
  
    // _S_min, _S_max {{{2
    template <typename _Tp>
!     static constexpr inline _Tp _S_min(const _Tp __a, const _Tp __b)
      { return std::min(__a, __b); }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_max(const _Tp __a, const _Tp __b)
      { return std::max(__a, __b); }
  
    // _S_complement {{{2
    template <typename _Tp>
!     static constexpr inline _Tp _S_complement(_Tp __x) noexcept
      { return static_cast<_Tp>(~__x); }
  
    // _S_unary_minus {{{2
    template <typename _Tp>
!     static constexpr inline _Tp _S_unary_minus(_Tp __x) noexcept
      { return static_cast<_Tp>(-__x); }
  
    // arithmetic operators {{{2
    template <typename _Tp>
!     static constexpr inline _Tp _S_plus(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      + __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_minus(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      - __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_multiplies(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      * __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_divides(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      / __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_modulus(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      % __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_bit_and(_Tp __x, _Tp __y)
      {
        if constexpr (is_floating_point_v<_Tp>)
  	{
--- 192,262 ----
  
    // _S_min, _S_max {{{2
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_min(const _Tp __a, const _Tp __b)
      { return std::min(__a, __b); }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_max(const _Tp __a, const _Tp __b)
      { return std::max(__a, __b); }
  
    // _S_complement {{{2
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_complement(_Tp __x) noexcept
      { return static_cast<_Tp>(~__x); }
  
    // _S_unary_minus {{{2
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_unary_minus(_Tp __x) noexcept
      { return static_cast<_Tp>(-__x); }
  
    // arithmetic operators {{{2
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_plus(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      + __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_minus(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      - __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_multiplies(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      * __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_divides(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      / __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_modulus(_Tp __x, _Tp __y)
      {
        return static_cast<_Tp>(__promote_preserving_unsigned(__x)
  			      % __promote_preserving_unsigned(__y));
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_bit_and(_Tp __x, _Tp __y)
      {
        if constexpr (is_floating_point_v<_Tp>)
  	{
*************** struct _SimdImplScalar
*** 254,260 ****
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_bit_or(_Tp __x, _Tp __y)
      {
        if constexpr (is_floating_point_v<_Tp>)
  	{
--- 269,276 ----
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_bit_or(_Tp __x, _Tp __y)
      {
        if constexpr (is_floating_point_v<_Tp>)
  	{
*************** struct _SimdImplScalar
*** 267,273 ****
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_bit_xor(_Tp __x, _Tp __y)
      {
        if constexpr (is_floating_point_v<_Tp>)
  	{
--- 283,290 ----
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_bit_xor(_Tp __x, _Tp __y)
      {
        if constexpr (is_floating_point_v<_Tp>)
  	{
*************** struct _SimdImplScalar
*** 280,290 ****
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_bit_shift_left(_Tp __x, int __y)
      { return static_cast<_Tp>(__promote_preserving_unsigned(__x) << __y); }
  
    template <typename _Tp>
!     static constexpr inline _Tp _S_bit_shift_right(_Tp __x, int __y)
      { return static_cast<_Tp>(__promote_preserving_unsigned(__x) >> __y); }
  
    // math {{{2
--- 297,309 ----
      }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_bit_shift_left(_Tp __x, int __y)
      { return static_cast<_Tp>(__promote_preserving_unsigned(__x) << __y); }
  
    template <typename _Tp>
!     static constexpr inline _Tp
!     _S_bit_shift_right(_Tp __x, int __y)
      { return static_cast<_Tp>(__promote_preserving_unsigned(__x) >> __y); }
  
    // math {{{2
*************** struct _SimdImplScalar
*** 293,589 ****
      using _ST = _SimdTuple<_Tp, simd_abi::scalar>;
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_acos(_Tp __x)
      { return std::acos(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_asin(_Tp __x)
      { return std::asin(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_atan(_Tp __x)
      { return std::atan(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_cos(_Tp __x)
      { return std::cos(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_sin(_Tp __x)
      { return std::sin(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_tan(_Tp __x)
      { return std::tan(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_acosh(_Tp __x)
      { return std::acosh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_asinh(_Tp __x)
      { return std::asinh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_atanh(_Tp __x)
      { return std::atanh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_cosh(_Tp __x)
      { return std::cosh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_sinh(_Tp __x)
      { return std::sinh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_tanh(_Tp __x)
      { return std::tanh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_atan2(_Tp __x, _Tp __y)
      { return std::atan2(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_exp(_Tp __x)
      { return std::exp(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_exp2(_Tp __x)
      { return std::exp2(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_expm1(_Tp __x)
      { return std::expm1(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_log(_Tp __x)
      { return std::log(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_log10(_Tp __x)
      { return std::log10(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_log1p(_Tp __x)
      { return std::log1p(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_log2(_Tp __x)
      { return std::log2(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_logb(_Tp __x)
      { return std::logb(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<int> _S_ilogb(_Tp __x)
      { return {std::ilogb(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_pow(_Tp __x, _Tp __y)
      { return std::pow(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_abs(_Tp __x)
      { return std::abs(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_fabs(_Tp __x)
      { return std::fabs(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_sqrt(_Tp __x)
      { return std::sqrt(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_cbrt(_Tp __x)
      { return std::cbrt(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_erf(_Tp __x)
      { return std::erf(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_erfc(_Tp __x)
      { return std::erfc(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_lgamma(_Tp __x)
      { return std::lgamma(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_tgamma(_Tp __x)
      { return std::tgamma(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_trunc(_Tp __x)
      { return std::trunc(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_floor(_Tp __x)
      { return std::floor(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_ceil(_Tp __x)
      { return std::ceil(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_nearbyint(_Tp __x)
      { return std::nearbyint(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_rint(_Tp __x)
      { return std::rint(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long> _S_lrint(_Tp __x)
      { return {std::lrint(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long long> _S_llrint(_Tp __x)
      { return {std::llrint(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_round(_Tp __x)
      { return std::round(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long> _S_lround(_Tp __x)
      { return {std::lround(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long long> _S_llround(_Tp __x)
      { return {std::llround(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_ldexp(_Tp __x, _ST<int> __y)
      { return std::ldexp(__x, __y.first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_scalbn(_Tp __x, _ST<int> __y)
      { return std::scalbn(__x, __y.first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_scalbln(_Tp __x, _ST<long> __y)
      { return std::scalbln(__x, __y.first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_fmod(_Tp __x, _Tp __y)
      { return std::fmod(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_remainder(_Tp __x, _Tp __y)
      { return std::remainder(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_nextafter(_Tp __x, _Tp __y)
      { return std::nextafter(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_fdim(_Tp __x, _Tp __y)
      { return std::fdim(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_fmax(_Tp __x, _Tp __y)
      { return std::fmax(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_fmin(_Tp __x, _Tp __y)
      { return std::fmin(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_fma(_Tp __x, _Tp __y, _Tp __z)
      { return std::fma(__x, __y, __z); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_remquo(_Tp __x, _Tp __y, _ST<int>* __z)
      { return std::remquo(__x, __y, &__z->first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static _ST<int> _S_fpclassify(_Tp __x)
      { return {std::fpclassify(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isfinite(_Tp __x)
      { return std::isfinite(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isinf(_Tp __x)
      { return std::isinf(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isnan(_Tp __x)
      { return std::isnan(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isnormal(_Tp __x)
      { return std::isnormal(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_signbit(_Tp __x)
      { return std::signbit(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isgreater(_Tp __x, _Tp __y)
      { return std::isgreater(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isgreaterequal(_Tp __x,
! 								    _Tp __y)
      { return std::isgreaterequal(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isless(_Tp __x, _Tp __y)
      { return std::isless(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_islessequal(_Tp __x, _Tp __y)
      { return std::islessequal(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_islessgreater(_Tp __x,
! 								   _Tp __y)
      { return std::islessgreater(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_isunordered(_Tp __x,
! 								 _Tp __y)
      { return std::isunordered(__x, __y); }
  
    // _S_increment & _S_decrement{{{2
    template <typename _Tp>
!     constexpr static inline void _S_increment(_Tp& __x)
      { ++__x; }
  
    template <typename _Tp>
!     constexpr static inline void _S_decrement(_Tp& __x)
      { --__x; }
  
- 
    // compares {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_equal_to(_Tp __x, _Tp __y)
      { return __x == __y; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_not_equal_to(_Tp __x,
! 								  _Tp __y)
      { return __x != __y; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_less(_Tp __x, _Tp __y)
      { return __x < __y; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool _S_less_equal(_Tp __x,
! 								_Tp __y)
      { return __x <= __y; }
  
    // smart_reference access {{{2
    template <typename _Tp, typename _Up>
!     constexpr static void _S_set(_Tp& __v, [[maybe_unused]] int __i,
! 				 _Up&& __x) noexcept
      {
        _GLIBCXX_DEBUG_ASSERT(__i == 0);
        __v = static_cast<_Up&&>(__x);
--- 312,672 ----
      using _ST = _SimdTuple<_Tp, simd_abi::scalar>;
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_acos(_Tp __x)
      { return std::acos(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_asin(_Tp __x)
      { return std::asin(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_atan(_Tp __x)
      { return std::atan(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_cos(_Tp __x)
      { return std::cos(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_sin(_Tp __x)
      { return std::sin(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_tan(_Tp __x)
      { return std::tan(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_acosh(_Tp __x)
      { return std::acosh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_asinh(_Tp __x)
      { return std::asinh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_atanh(_Tp __x)
      { return std::atanh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_cosh(_Tp __x)
      { return std::cosh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_sinh(_Tp __x)
      { return std::sinh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_tanh(_Tp __x)
      { return std::tanh(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_atan2(_Tp __x, _Tp __y)
      { return std::atan2(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_exp(_Tp __x)
      { return std::exp(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_exp2(_Tp __x)
      { return std::exp2(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_expm1(_Tp __x)
      { return std::expm1(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_log(_Tp __x)
      { return std::log(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_log10(_Tp __x)
      { return std::log10(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_log1p(_Tp __x)
      { return std::log1p(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_log2(_Tp __x)
      { return std::log2(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_logb(_Tp __x)
      { return std::logb(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<int>
!     _S_ilogb(_Tp __x)
      { return {std::ilogb(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_pow(_Tp __x, _Tp __y)
      { return std::pow(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_abs(_Tp __x)
      { return std::abs(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_fabs(_Tp __x)
      { return std::fabs(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_sqrt(_Tp __x)
      { return std::sqrt(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_cbrt(_Tp __x)
      { return std::cbrt(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_erf(_Tp __x)
      { return std::erf(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_erfc(_Tp __x)
      { return std::erfc(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_lgamma(_Tp __x)
      { return std::lgamma(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_tgamma(_Tp __x)
      { return std::tgamma(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_trunc(_Tp __x)
      { return std::trunc(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_floor(_Tp __x)
      { return std::floor(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_ceil(_Tp __x)
      { return std::ceil(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_nearbyint(_Tp __x)
      { return std::nearbyint(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_rint(_Tp __x)
      { return std::rint(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long>
!     _S_lrint(_Tp __x)
      { return {std::lrint(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long long>
!     _S_llrint(_Tp __x)
      { return {std::llrint(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_round(_Tp __x)
      { return std::round(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long>
!     _S_lround(_Tp __x)
      { return {std::lround(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _ST<long long>
!     _S_llround(_Tp __x)
      { return {std::llround(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_ldexp(_Tp __x, _ST<int> __y)
      { return std::ldexp(__x, __y.first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_scalbn(_Tp __x, _ST<int> __y)
      { return std::scalbn(__x, __y.first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_scalbln(_Tp __x, _ST<long> __y)
      { return std::scalbln(__x, __y.first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_fmod(_Tp __x, _Tp __y)
      { return std::fmod(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_remainder(_Tp __x, _Tp __y)
      { return std::remainder(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_nextafter(_Tp __x, _Tp __y)
      { return std::nextafter(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_fdim(_Tp __x, _Tp __y)
      { return std::fdim(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_fmax(_Tp __x, _Tp __y)
      { return std::fmax(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_fmin(_Tp __x, _Tp __y)
      { return std::fmin(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_fma(_Tp __x, _Tp __y, _Tp __z)
      { return std::fma(__x, __y, __z); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_remquo(_Tp __x, _Tp __y, _ST<int>* __z)
      { return std::remquo(__x, __y, &__z->first); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _ST<int>
!     _S_fpclassify(_Tp __x)
      { return {std::fpclassify(__x)}; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isfinite(_Tp __x)
      { return std::isfinite(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isinf(_Tp __x)
      { return std::isinf(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isnan(_Tp __x)
      { return std::isnan(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isnormal(_Tp __x)
      { return std::isnormal(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_signbit(_Tp __x)
      { return std::signbit(__x); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isgreater(_Tp __x, _Tp __y)
      { return std::isgreater(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isgreaterequal(_Tp __x, _Tp __y)
      { return std::isgreaterequal(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isless(_Tp __x, _Tp __y)
      { return std::isless(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_islessequal(_Tp __x, _Tp __y)
      { return std::islessequal(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_islessgreater(_Tp __x, _Tp __y)
      { return std::islessgreater(__x, __y); }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_isunordered(_Tp __x, _Tp __y)
      { return std::isunordered(__x, __y); }
  
    // _S_increment & _S_decrement{{{2
    template <typename _Tp>
!     static constexpr void
!     _S_increment(_Tp& __x)
      { ++__x; }
  
    template <typename _Tp>
!     static constexpr void
!     _S_decrement(_Tp& __x)
      { --__x; }
  
    // compares {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_equal_to(_Tp __x, _Tp __y)
      { return __x == __y; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_not_equal_to(_Tp __x, _Tp __y)
      { return __x != __y; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_less(_Tp __x, _Tp __y)
      { return __x < __y; }
  
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_less_equal(_Tp __x, _Tp __y)
      { return __x <= __y; }
  
    // smart_reference access {{{2
    template <typename _Tp, typename _Up>
!     static constexpr void
!     _S_set(_Tp& __v, [[maybe_unused]] int __i, _Up&& __x) noexcept
      {
        _GLIBCXX_DEBUG_ASSERT(__i == 0);
        __v = static_cast<_Up&&>(__x);
*************** struct _SimdImplScalar
*** 591,610 ****
  
    // _S_masked_assign {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static void
      _S_masked_assign(bool __k, _Tp& __lhs, _Tp __rhs)
      { if (__k) __lhs = __rhs; }
  
    // _S_masked_cassign {{{2
    template <typename _Op, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static void
      _S_masked_cassign(const bool __k, _Tp& __lhs, const _Tp __rhs, _Op __op)
      { if (__k) __lhs = __op(_SimdImplScalar{}, __lhs, __rhs); }
  
    // _S_masked_unary {{{2
    template <template <typename> class _Op, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static _Tp _S_masked_unary(const bool __k,
! 								 const _Tp __v)
      { return static_cast<_Tp>(__k ? _Op<_Tp>{}(__v) : __v); }
  
    // }}}2
--- 674,693 ----
  
    // _S_masked_assign {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr void
      _S_masked_assign(bool __k, _Tp& __lhs, _Tp __rhs)
      { if (__k) __lhs = __rhs; }
  
    // _S_masked_cassign {{{2
    template <typename _Op, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr void
      _S_masked_cassign(const bool __k, _Tp& __lhs, const _Tp __rhs, _Op __op)
      { if (__k) __lhs = __op(_SimdImplScalar{}, __lhs, __rhs); }
  
    // _S_masked_unary {{{2
    template <template <typename> class _Op, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr _Tp
!     _S_masked_unary(const bool __k, const _Tp __v)
      { return static_cast<_Tp>(__k ? _Op<_Tp>{}(__v) : __v); }
  
    // }}}2
*************** struct _MaskImplScalar
*** 621,633 ****
    // }}}
    // _S_broadcast {{{
    template <typename>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool _S_broadcast(bool __x)
      { return __x; }
  
    // }}}
    // _S_load {{{
    template <typename>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool _S_load(const bool* __mem)
      { return __mem[0]; }
  
    // }}}
--- 704,718 ----
    // }}}
    // _S_broadcast {{{
    template <typename>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_broadcast(bool __x)
      { return __x; }
  
    // }}}
    // _S_load {{{
    template <typename>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
!     _S_load(const bool* __mem)
      { return __mem[0]; }
  
    // }}}
*************** struct _MaskImplScalar
*** 651,662 ****
    // }}}
    // _S_from_bitmask {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool
      _S_from_bitmask(_SanitizedBitMask<1> __bits, _TypeTag<_Tp>) noexcept
      { return __bits[0]; }
  
    // _S_masked_load {{{2
!   _GLIBCXX_SIMD_INTRINSIC constexpr static bool
    _S_masked_load(bool __merge, bool __mask, const bool* __mem) noexcept
    {
      if (__mask)
--- 736,747 ----
    // }}}
    // _S_from_bitmask {{{2
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
      _S_from_bitmask(_SanitizedBitMask<1> __bits, _TypeTag<_Tp>) noexcept
      { return __bits[0]; }
  
    // _S_masked_load {{{2
!   _GLIBCXX_SIMD_INTRINSIC static constexpr bool
    _S_masked_load(bool __merge, bool __mask, const bool* __mem) noexcept
    {
      if (__mask)
*************** struct _MaskImplScalar
*** 665,675 ****
    }
  
    // _S_store {{{2
!   _GLIBCXX_SIMD_INTRINSIC static void _S_store(bool __v, bool* __mem) noexcept
    { __mem[0] = __v; }
  
    // _S_masked_store {{{2
!   _GLIBCXX_SIMD_INTRINSIC static void
    _S_masked_store(const bool __v, bool* __mem, const bool __k) noexcept
    {
      if (__k)
--- 750,761 ----
    }
  
    // _S_store {{{2
!   _GLIBCXX_SIMD_INTRINSIC static constexpr void
!   _S_store(bool __v, bool* __mem) noexcept
    { __mem[0] = __v; }
  
    // _S_masked_store {{{2
!   _GLIBCXX_SIMD_INTRINSIC static constexpr void
    _S_masked_store(const bool __v, bool* __mem, const bool __k) noexcept
    {
      if (__k)
*************** struct _MaskImplScalar
*** 677,711 ****
    }
  
    // logical and bitwise operators {{{2
!   static constexpr bool _S_logical_and(bool __x, bool __y)
    { return __x && __y; }
  
!   static constexpr bool _S_logical_or(bool __x, bool __y)
    { return __x || __y; }
  
!   static constexpr bool _S_bit_not(bool __x)
    { return !__x; }
  
!   static constexpr bool _S_bit_and(bool __x, bool __y)
    { return __x && __y; }
  
!   static constexpr bool _S_bit_or(bool __x, bool __y)
    { return __x || __y; }
  
!   static constexpr bool _S_bit_xor(bool __x, bool __y)
    { return __x != __y; }
  
    // smart_reference access {{{2
!   constexpr static void _S_set(bool& __k, [[maybe_unused]] int __i,
! 			       bool __x) noexcept
    {
      _GLIBCXX_DEBUG_ASSERT(__i == 0);
      __k = __x;
    }
  
    // _S_masked_assign {{{2
!   _GLIBCXX_SIMD_INTRINSIC static void _S_masked_assign(bool __k, bool& __lhs,
! 						       bool __rhs)
    {
      if (__k)
        __lhs = __rhs;
--- 763,803 ----
    }
  
    // logical and bitwise operators {{{2
!   static constexpr bool
!   _S_logical_and(bool __x, bool __y)
    { return __x && __y; }
  
!   static constexpr bool
!   _S_logical_or(bool __x, bool __y)
    { return __x || __y; }
  
!   static constexpr bool
!   _S_bit_not(bool __x)
    { return !__x; }
  
!   static constexpr bool
!   _S_bit_and(bool __x, bool __y)
    { return __x && __y; }
  
!   static constexpr bool
!   _S_bit_or(bool __x, bool __y)
    { return __x || __y; }
  
!   static constexpr bool
!   _S_bit_xor(bool __x, bool __y)
    { return __x != __y; }
  
    // smart_reference access {{{2
!   static constexpr void
!   _S_set(bool& __k, [[maybe_unused]] int __i, bool __x) noexcept
    {
      _GLIBCXX_DEBUG_ASSERT(__i == 0);
      __k = __x;
    }
  
    // _S_masked_assign {{{2
!   _GLIBCXX_SIMD_INTRINSIC static constexpr void
!   _S_masked_assign(bool __k, bool& __lhs, bool __rhs)
    {
      if (__k)
        __lhs = __rhs;
*************** struct _MaskImplScalar
*** 714,762 ****
    // }}}2
    // _S_all_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool
      _S_all_of(simd_mask<_Tp, _Abi> __k)
      { return __k._M_data; }
  
    // }}}
    // _S_any_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool
      _S_any_of(simd_mask<_Tp, _Abi> __k)
      { return __k._M_data; }
  
    // }}}
    // _S_none_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool
      _S_none_of(simd_mask<_Tp, _Abi> __k)
      { return !__k._M_data; }
  
    // }}}
    // _S_some_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static bool
      _S_some_of(simd_mask<_Tp, _Abi>)
      { return false; }
  
    // }}}
    // _S_popcount {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static int
      _S_popcount(simd_mask<_Tp, _Abi> __k)
      { return __k._M_data; }
  
    // }}}
    // _S_find_first_set {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static int
      _S_find_first_set(simd_mask<_Tp, _Abi>)
      { return 0; }
  
    // }}}
    // _S_find_last_set {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC constexpr static int
      _S_find_last_set(simd_mask<_Tp, _Abi>)
      { return 0; }
  
--- 806,854 ----
    // }}}2
    // _S_all_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
      _S_all_of(simd_mask<_Tp, _Abi> __k)
      { return __k._M_data; }
  
    // }}}
    // _S_any_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
      _S_any_of(simd_mask<_Tp, _Abi> __k)
      { return __k._M_data; }
  
    // }}}
    // _S_none_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
      _S_none_of(simd_mask<_Tp, _Abi> __k)
      { return !__k._M_data; }
  
    // }}}
    // _S_some_of {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr bool
      _S_some_of(simd_mask<_Tp, _Abi>)
      { return false; }
  
    // }}}
    // _S_popcount {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr int
      _S_popcount(simd_mask<_Tp, _Abi> __k)
      { return __k._M_data; }
  
    // }}}
    // _S_find_first_set {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr int
      _S_find_first_set(simd_mask<_Tp, _Abi>)
      { return 0; }
  
    // }}}
    // _S_find_last_set {{{
    template <typename _Tp, typename _Abi>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr int
      _S_find_last_set(simd_mask<_Tp, _Abi>)
      { return 0; }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_x86.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_x86.h
*** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd_x86.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_x86.h	Mon May 29 08:46:33 2023
*************** _GLIBCXX_SIMD_BEGIN_NAMESPACE
*** 40,49 ****
  template <typename _Tp, size_t _Np>
    _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper<__int_for_sizeof_t<_Tp>, _Np>
    __to_masktype(_SimdWrapper<_Tp, _Np> __x)
!   {
!     return reinterpret_cast<__vector_type_t<__int_for_sizeof_t<_Tp>, _Np>>(
!       __x._M_data);
!   }
  
  template <typename _TV,
  	  typename _TVT
--- 40,46 ----
  template <typename _Tp, size_t _Np>
    _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper<__int_for_sizeof_t<_Tp>, _Np>
    __to_masktype(_SimdWrapper<_Tp, _Np> __x)
!   { return reinterpret_cast<__vector_type_t<__int_for_sizeof_t<_Tp>, _Np>>(__x._M_data); }
  
  template <typename _TV,
  	  typename _TVT
*************** template <typename _Tp>
*** 366,371 ****
--- 363,415 ----
  
  // }}}
  
+ #ifdef __clang__
+ template <size_t _Np, typename _Tp, typename _Kp>
+   _GLIBCXX_SIMD_INTRINSIC constexpr auto
+   __movm(_Kp __k) noexcept
+   {
+     static_assert(is_unsigned_v<_Kp>);
+     if constexpr (sizeof(_Tp) == 1 && __have_avx512bw)
+       {
+ 	if constexpr (_Np <= 16 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2b128(__k);
+ 	else if constexpr (_Np <= 32 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2b256(__k);
+ 	else
+ 	  return __builtin_ia32_cvtmask2b512(__k);
+       }
+     else if constexpr (sizeof(_Tp) == 2 && __have_avx512bw)
+       {
+ 	if constexpr (_Np <= 8 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2w128(__k);
+ 	else if constexpr (_Np <= 16 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2w256(__k);
+ 	else
+ 	  return __builtin_ia32_cvtmask2w512(__k);
+       }
+     else if constexpr (sizeof(_Tp) == 4 && __have_avx512dq)
+       {
+ 	if constexpr (_Np <= 4 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2d128(__k);
+ 	else if constexpr (_Np <= 8 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2d256(__k);
+ 	else
+ 	  return __builtin_ia32_cvtmask2d512(__k);
+       }
+     else if constexpr (sizeof(_Tp) == 8 && __have_avx512dq)
+       {
+ 	if constexpr (_Np <= 2 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2q128(__k);
+ 	else if constexpr (_Np <= 4 && __have_avx512vl)
+ 	  return __builtin_ia32_cvtmask2q256(__k);
+ 	else
+ 	  return __builtin_ia32_cvtmask2q512(__k);
+       }
+     else
+       __assert_unreachable<_Tp>();
+   }
+ #endif // __clang__
+ 
  #ifdef _GLIBCXX_SIMD_WORKAROUND_PR85048
  #include "simd_x86_conversions.h"
  #endif
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 434,440 ****
  #ifdef _GLIBCXX_SIMD_WORKAROUND_PR85048
    // _S_converts_via_decomposition {{{
    template <typename _From, typename _To, size_t _ToSize>
!     static constexpr bool _S_converts_via_decomposition()
      {
        if constexpr (is_integral_v<
  		      _From> && is_integral_v<_To> && sizeof(_From) == 8
--- 478,485 ----
  #ifdef _GLIBCXX_SIMD_WORKAROUND_PR85048
    // _S_converts_via_decomposition {{{
    template <typename _From, typename _To, size_t _ToSize>
!     static constexpr bool
!     _S_converts_via_decomposition()
      {
        if constexpr (is_integral_v<
  		      _From> && is_integral_v<_To> && sizeof(_From) == 8
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 465,476 ****
    using _CommonImplBuiltin::_S_store;
  
    template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static void _S_store(_SimdWrapper<_Tp, _Np> __x,
! 						 void* __addr)
      {
        constexpr size_t _Bytes = _Np * sizeof(_Tp);
  
!       if constexpr ((_Bytes & (_Bytes - 1)) != 0 && __have_avx512bw_vl)
  	{
  	  const auto __v = __to_intrin(__x);
  
--- 510,523 ----
    using _CommonImplBuiltin::_S_store;
  
    template <typename _Tp, size_t _Np>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr void
!     _S_store(_SimdWrapper<_Tp, _Np> __x, void* __addr)
      {
        constexpr size_t _Bytes = _Np * sizeof(_Tp);
  
!       if (__builtin_is_constant_evaluated())
! 	_CommonImplBuiltin::_S_store(__x, __addr);
!       else if constexpr ((_Bytes & (_Bytes - 1)) != 0 && __have_avx512bw_vl)
  	{
  	  const auto __v = __to_intrin(__x);
  
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 536,552 ****
      _GLIBCXX_SIMD_INTRINSIC static constexpr void
      _S_store_bool_array(const _BitMask<_Np, _Sanitized> __x, bool* __mem)
      {
!       if constexpr (__have_avx512bw_vl) // don't care for BW w/o VL
! 	_S_store<_Np>(1 & __vector_bitcast<_UChar, _Np>([=]() constexpr {
! 			if constexpr (_Np <= 16)
! 			  return _mm_movm_epi8(__x._M_to_bits());
! 			else if constexpr (_Np <= 32)
! 			  return _mm256_movm_epi8(__x._M_to_bits());
! 			else if constexpr (_Np <= 64)
! 			  return _mm512_movm_epi8(__x._M_to_bits());
! 			else
! 			  __assert_unreachable<_SizeConstant<_Np>>();
! 		      }()),
  		      __mem);
        else if constexpr (__have_bmi2)
  	{
--- 583,602 ----
      _GLIBCXX_SIMD_INTRINSIC static constexpr void
      _S_store_bool_array(const _BitMask<_Np, _Sanitized> __x, bool* __mem)
      {
!       if (__builtin_is_constant_evaluated())
! 	_CommonImplBuiltin::_S_store_bool_array(__x, __mem);
!       else if constexpr (__have_avx512bw_vl) // don't care for BW w/o VL
! 	_S_store<_Np>(1 & __vector_bitcast<_UChar, _Np>(
! 			    [=]() constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 			      if constexpr (_Np <= 16)
! 				return _mm_movm_epi8(__x._M_to_bits());
! 			      else if constexpr (_Np <= 32)
! 				return _mm256_movm_epi8(__x._M_to_bits());
! 			      else if constexpr (_Np <= 64)
! 				return _mm512_movm_epi8(__x._M_to_bits());
! 			      else
! 				__assert_unreachable<_SizeConstant<_Np>>();
! 			    }()),
  		      __mem);
        else if constexpr (__have_bmi2)
  	{
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 554,560 ****
  	    _S_store<_Np>(_pdep_u32(__x._M_to_bits(), 0x01010101U), __mem);
  	  else
  	    __execute_n_times<__div_roundup(_Np, sizeof(size_t))>(
! 	      [&](auto __i) {
  		constexpr size_t __offset = __i * sizeof(size_t);
  		constexpr int __todo = std::min(sizeof(size_t), _Np - __offset);
  		if constexpr (__todo == 1)
--- 604,610 ----
  	    _S_store<_Np>(_pdep_u32(__x._M_to_bits(), 0x01010101U), __mem);
  	  else
  	    __execute_n_times<__div_roundup(_Np, sizeof(size_t))>(
! 	      [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		constexpr size_t __offset = __i * sizeof(size_t);
  		constexpr int __todo = std::min(sizeof(size_t), _Np - __offset);
  		if constexpr (__todo == 1)
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 575,581 ****
  	      });
  	}
        else if constexpr (__have_sse2 && _Np > 7)
! 	__execute_n_times<__div_roundup(_Np, 16)>([&](auto __i) {
  	  constexpr int __offset = __i * 16;
  	  constexpr int __todo = std::min(16, int(_Np) - __offset);
  	  const int __bits = __x.template _M_extract<__offset>()._M_to_bits();
--- 625,631 ----
  	      });
  	}
        else if constexpr (__have_sse2 && _Np > 7)
! 	__execute_n_times<__div_roundup(_Np, 16)>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  	  constexpr int __offset = __i * 16;
  	  constexpr int __todo = std::min(16, int(_Np) - __offset);
  	  const int __bits = __x.template _M_extract<__offset>()._M_to_bits();
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 620,633 ****
      _GLIBCXX_SIMD_INTRINSIC static _TV
      _S_blend_avx512(const _Kp __k, const _TV __a, const _TV __b) noexcept
      {
- #ifdef __clang__
-       // FIXME: this does a boolean choice, not a blend
-       return __k ? __a : __b;
- #else
        static_assert(__is_vector_type_v<_TV>);
        using _Tp = typename _VectorTraits<_TV>::value_type;
        static_assert(sizeof(_TV) >= 16);
        static_assert(sizeof(_Tp) <= 8);
        using _IntT
  	= conditional_t<(sizeof(_Tp) > 2),
  			conditional_t<sizeof(_Tp) == 4, int, long long>,
--- 670,682 ----
      _GLIBCXX_SIMD_INTRINSIC static _TV
      _S_blend_avx512(const _Kp __k, const _TV __a, const _TV __b) noexcept
      {
        static_assert(__is_vector_type_v<_TV>);
        using _Tp = typename _VectorTraits<_TV>::value_type;
        static_assert(sizeof(_TV) >= 16);
        static_assert(sizeof(_Tp) <= 8);
+ #ifdef __clang__
+       return __movm<_VectorTraits<_TV>::_S_full_size, _Tp>(__k) ? __b : __a;
+ #else
        using _IntT
  	= conditional_t<(sizeof(_Tp) > 2),
  			conditional_t<sizeof(_Tp) == 4, int, long long>,
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 701,708 ****
    // Requires: _Tp to be an intrinsic type (integers blend per byte) and 16/32
    //           Bytes wide
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp _S_blend_intrin(_Tp __k, _Tp __a,
! 						       _Tp __b) noexcept
      {
        static_assert(is_same_v<decltype(__to_intrin(__a)), _Tp>);
        constexpr struct
--- 750,757 ----
    // Requires: _Tp to be an intrinsic type (integers blend per byte) and 16/32
    //           Bytes wide
    template <typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static _Tp
!     _S_blend_intrin(_Tp __k, _Tp __a, _Tp __b) noexcept
      {
        static_assert(is_same_v<decltype(__to_intrin(__a)), _Tp>);
        constexpr struct
*************** struct _CommonImplX86 : _CommonImplBuilt
*** 765,773 ****
        static_assert(is_same_v<_Tp, _Tp> && __have_avx512f);
        if (__k._M_is_constprop() && __at0._M_is_constprop()
  	  && __at1._M_is_constprop())
! 	return __generate_from_n_evaluations<_Np,
! 					     __vector_type_t<_Tp, _Np>>([&](
! 	  auto __i) constexpr { return __k[__i] ? __at1[__i] : __at0[__i]; });
        else if constexpr (sizeof(__at0) == 64
  			 || (__have_avx512vl && sizeof(__at0) >= 16))
  	return _S_blend_avx512(__k._M_data, __at0._M_data, __at1._M_data);
--- 814,823 ----
        static_assert(is_same_v<_Tp, _Tp> && __have_avx512f);
        if (__k._M_is_constprop() && __at0._M_is_constprop()
  	  && __at1._M_is_constprop())
! 	return __generate_from_n_evaluations<_Np, __vector_type_t<_Tp, _Np>>(
! 		 [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		   return __k[__i] ? __at1[__i] : __at0[__i];
! 		 });
        else if constexpr (sizeof(__at0) == 64
  			 || (__have_avx512vl && sizeof(__at0) >= 16))
  	return _S_blend_avx512(__k._M_data, __at0._M_data, __at1._M_data);
*************** template <typename _Abi>
*** 841,846 ****
--- 891,897 ----
  	= (sizeof(_Tp) >= 4 && __have_avx512f) || __have_avx512bw  ? 64
  	  : (is_floating_point_v<_Tp>&& __have_avx) || __have_avx2 ? 32
  								   : 16;
+ 
      using _MaskImpl = typename _Abi::_MaskImpl;
  
      // _S_masked_load {{{
*************** template <typename _Abi>
*** 994,1002 ****
  	      }
  	    else
  	      _BitOps::_S_bit_iteration(_MaskImpl::_S_to_bits(__k),
! 					[&](auto __i) {
! 					  __merge._M_set(__i, static_cast<_Tp>(
! 								__mem[__i]));
  					});
  	  }
  	/* Very uncertain, that the following improves anything. Needs
--- 1045,1052 ----
  	      }
  	    else
  	      _BitOps::_S_bit_iteration(_MaskImpl::_S_to_bits(__k),
! 					[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 					  __merge._M_set(__i, static_cast<_Tp>(__mem[__i]));
  					});
  	  }
  	/* Very uncertain, that the following improves anything. Needs
*************** template <typename _Abi>
*** 1032,1039 ****
      // _S_masked_store_nocvt {{{
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_store_nocvt(_SimdWrapper<_Tp, _Np> __v, _Tp* __mem,
! 			    _SimdWrapper<bool, _Np> __k)
        {
  	[[maybe_unused]] const auto __vi = __to_intrin(__v);
  	if constexpr (sizeof(__vi) == 64)
--- 1082,1088 ----
      // _S_masked_store_nocvt {{{
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
!       _S_masked_store_nocvt(_SimdWrapper<_Tp, _Np> __v, _Tp* __mem, _SimdWrapper<bool, _Np> __k)
        {
  	[[maybe_unused]] const auto __vi = __to_intrin(__v);
  	if constexpr (sizeof(__vi) == 64)
*************** template <typename _Abi>
*** 1300,1306 ****
      // }}}
      // _S_multiplies {{{
      template <typename _V, typename _VVT = _VectorTraits<_V>>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _V _S_multiplies(_V __x, _V __y)
        {
  	using _Tp = typename _VVT::value_type;
  	if (__builtin_is_constant_evaluated() || __x._M_is_constprop()
--- 1349,1356 ----
      // }}}
      // _S_multiplies {{{
      template <typename _V, typename _VVT = _VectorTraits<_V>>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr _V
!       _S_multiplies(_V __x, _V __y)
        {
  	using _Tp = typename _VVT::value_type;
  	if (__builtin_is_constant_evaluated() || __x._M_is_constprop()
*************** template <typename _Abi>
*** 1417,1428 ****
  	      const auto __yf = __convert_all<_FloatV, __n_floatv>(
  		_Abi::__make_padding_nonzero(__as_vector(__y)));
  	      return __call_with_n_evaluations<__n_floatv>(
! 		[](auto... __quotients) {
  		  return __vector_convert<_R>(__quotients...);
  		},
! 		[&__xf,
! 		 &__yf](auto __i) -> _SimdWrapper<_Float, __n_intermediate> {
! #if !defined __clang__ && __GCC_IEC_559 == 0
  		  // If -freciprocal-math is active, using the `/` operator is
  		  // incorrect because it may be translated to an imprecise
  		  // multiplication with reciprocal. We need to use inline
--- 1467,1479 ----
  	      const auto __yf = __convert_all<_FloatV, __n_floatv>(
  		_Abi::__make_padding_nonzero(__as_vector(__y)));
  	      return __call_with_n_evaluations<__n_floatv>(
! 		[](auto... __quotients) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  return __vector_convert<_R>(__quotients...);
  		},
! 		[&__xf, &__yf](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA
! 		  -> _SimdWrapper<_Float, __n_intermediate>
! 		{
! #if __RECIPROCAL_MATH__
  		  // If -freciprocal-math is active, using the `/` operator is
  		  // incorrect because it may be translated to an imprecise
  		  // multiplication with reciprocal. We need to use inline
*************** template <typename _Abi>
*** 1477,1483 ****
  	  */
  	return _Base::_S_divides(__x, __y);
        }
!   #endif // _GLIBCXX_SIMD_WORKAROUND_PR90993
  
      // }}}
      // _S_modulus {{{
--- 1528,1536 ----
  	  */
  	return _Base::_S_divides(__x, __y);
        }
! #else
!     using _Base::_S_divides;
! #endif // _GLIBCXX_SIMD_WORKAROUND_PR90993
  
      // }}}
      // _S_modulus {{{
*************** template <typename _Abi>
*** 1524,1530 ****
      // values.
    #ifndef _GLIBCXX_SIMD_NO_SHIFT_OPT
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_left(_Tp __xx, int __y)
        {
  	using _V = typename _TVT::type;
--- 1577,1583 ----
      // values.
    #ifndef _GLIBCXX_SIMD_NO_SHIFT_OPT
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       constexpr inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_left(_Tp __xx, int __y)
        {
  	using _V = typename _TVT::type;
*************** template <typename _Abi>
*** 1629,1635 ****
        }
  
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_left(_Tp __xx, typename _TVT::type __y)
        {
  	using _V = typename _TVT::type;
--- 1682,1688 ----
        }
  
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       constexpr inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_left(_Tp __xx, typename _TVT::type __y)
        {
  	using _V = typename _TVT::type;
*************** template <typename _Abi>
*** 1798,1804 ****
      // _S_bit_shift_right {{{
  #ifndef _GLIBCXX_SIMD_NO_SHIFT_OPT
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_right(_Tp __xx, int __y)
        {
  	using _V = typename _TVT::type;
--- 1851,1857 ----
      // _S_bit_shift_right {{{
  #ifndef _GLIBCXX_SIMD_NO_SHIFT_OPT
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       constexpr inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_right(_Tp __xx, int __y)
        {
  	using _V = typename _TVT::type;
*************** template <typename _Abi>
*** 1848,1854 ****
        }
  
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_right(_Tp __xx, typename _TVT::type __y)
        {
  	using _V = typename _TVT::type;
--- 1901,1907 ----
        }
  
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       constexpr inline _GLIBCXX_CONST static typename _TVT::type
        _S_bit_shift_right(_Tp __xx, typename _TVT::type __y)
        {
  	using _V = typename _TVT::type;
*************** template <typename _Abi>
*** 1980,1986 ****
  	      {
  		auto __mask = __vector_bitcast<_UChar>(
  		  __vector_bitcast<_UShort>(__iy) << 5);
! 		auto __maskl = [&]() {
  		  return __to_intrin(__vector_bitcast<_UShort>(__mask) << 8);
  		};
  		auto __xh = __vector_bitcast<short>(__ix);
--- 2033,2039 ----
  	      {
  		auto __mask = __vector_bitcast<_UChar>(
  		  __vector_bitcast<_UShort>(__iy) << 5);
! 		auto __maskl = [&]() _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  return __to_intrin(__vector_bitcast<_UShort>(__mask) << 8);
  		};
  		auto __xh = __vector_bitcast<short>(__ix);
*************** template <typename _Abi>
*** 2067,2085 ****
  	  }                                                      //}}}
  	else if constexpr (sizeof(_Up) == 2 && sizeof(__x) >= 4) //{{{
  	  {
! 	    [[maybe_unused]] auto __blend_0xaa = [](auto __a, auto __b) {
! 	      if constexpr (sizeof(__a) == 16)
! 		return _mm_blend_epi16(__to_intrin(__a), __to_intrin(__b),
! 				       0xaa);
! 	      else if constexpr (sizeof(__a) == 32)
! 		return _mm256_blend_epi16(__to_intrin(__a), __to_intrin(__b),
! 					  0xaa);
! 	      else if constexpr (sizeof(__a) == 64)
! 		return _mm512_mask_blend_epi16(0xaaaa'aaaaU, __to_intrin(__a),
! 					       __to_intrin(__b));
! 	      else
! 		__assert_unreachable<decltype(__a)>();
! 	    };
  	    if constexpr (__have_avx512bw_vl && sizeof(_Tp) <= 16)
  	      return __intrin_bitcast<_V>(is_signed_v<_Up>
  					    ? _mm_srav_epi16(__ix, __iy)
--- 2120,2139 ----
  	  }                                                      //}}}
  	else if constexpr (sizeof(_Up) == 2 && sizeof(__x) >= 4) //{{{
  	  {
! 	    [[maybe_unused]] auto __blend_0xaa
! 	      = [](auto __a, auto __b) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		if constexpr (sizeof(__a) == 16)
! 		  return _mm_blend_epi16(__to_intrin(__a), __to_intrin(__b),
! 					 0xaa);
! 		else if constexpr (sizeof(__a) == 32)
! 		  return _mm256_blend_epi16(__to_intrin(__a), __to_intrin(__b),
! 					    0xaa);
! 		else if constexpr (sizeof(__a) == 64)
! 		  return _mm512_mask_blend_epi16(0xaaaa'aaaaU, __to_intrin(__a),
! 						 __to_intrin(__b));
! 		else
! 		  __assert_unreachable<decltype(__a)>();
! 	      };
  	    if constexpr (__have_avx512bw_vl && sizeof(_Tp) <= 16)
  	      return __intrin_bitcast<_V>(is_signed_v<_Up>
  					    ? _mm_srav_epi16(__ix, __iy)
*************** template <typename _Abi>
*** 2136,2144 ****
  	      {
  		auto __k = __vector_bitcast<_UShort>(__iy) << 11;
  		auto __x128 = __vector_bitcast<_Up>(__ix);
! 		auto __mask = [](__vector_type16_t<_UShort> __kk) {
! 		  return __vector_bitcast<short>(__kk) < 0;
! 		};
  		// do __x128 = 0 where __y[4] is set
  		__x128 = __mask(__k) ? decltype(__x128)() : __x128;
  		// do __x128 =>> 8 where __y[3] is set
--- 2190,2199 ----
  	      {
  		auto __k = __vector_bitcast<_UShort>(__iy) << 11;
  		auto __x128 = __vector_bitcast<_Up>(__ix);
! 		auto __mask
! 		  = [](__vector_type16_t<_UShort> __kk) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		    return __vector_bitcast<short>(__kk) < 0;
! 		  };
  		// do __x128 = 0 where __y[4] is set
  		__x128 = __mask(__k) ? decltype(__x128)() : __x128;
  		// do __x128 =>> 8 where __y[3] is set
*************** template <typename _Abi>
*** 2178,2184 ****
  	      }
  	    else
  	      {
! 		auto __shift = [](auto __a, auto __b) {
  		  if constexpr (is_signed_v<_Up>)
  		    return _mm_sra_epi32(__a, __b);
  		  else
--- 2233,2239 ----
  	      }
  	    else
  	      {
! 		auto __shift = [](auto __a, auto __b) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  if constexpr (is_signed_v<_Up>)
  		    return _mm_sra_epi32(__a, __b);
  		  else
*************** template <typename _Abi>
*** 2268,2281 ****
  	  } // }}}
  	else if (__builtin_is_constant_evaluated())
  	  return _Base::_S_equal_to(__x, __y);
! 	else if constexpr (sizeof(__x) == 8) // {{{
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				== __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64;
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  } // }}}
  	else
  	  return _Base::_S_equal_to(__x, __y);
        }
--- 2323,2336 ----
  	  } // }}}
  	else if (__builtin_is_constant_evaluated())
  	  return _Base::_S_equal_to(__x, __y);
! 	else if constexpr (sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				== __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64{};
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  }
  	else
  	  return _Base::_S_equal_to(__x, __y);
        }
*************** template <typename _Abi>
*** 2340,2354 ****
  	    else
  	      __assert_unreachable<_Tp>();
  	  }                                                   // }}}
! 	else if constexpr (!__builtin_is_constant_evaluated() // {{{
! 			   && sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				!= __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64;
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  } // }}}
  	else
  	  return _Base::_S_not_equal_to(__x, __y);
        }
--- 2395,2410 ----
  	    else
  	      __assert_unreachable<_Tp>();
  	  }                                                   // }}}
! 	else if (__builtin_is_constant_evaluated())
! 	  return _Base::_S_not_equal_to(__x, __y);
! 	else if constexpr (sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				!= __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64{};
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  }
  	else
  	  return _Base::_S_not_equal_to(__x, __y);
        }
*************** template <typename _Abi>
*** 2447,2461 ****
  	    else
  	      __assert_unreachable<_Tp>();
  	  }                                                   // }}}
! 	else if constexpr (!__builtin_is_constant_evaluated() // {{{
! 			   && sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				< __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64;
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  } // }}}
  	else
  	  return _Base::_S_less(__x, __y);
        }
--- 2503,2518 ----
  	    else
  	      __assert_unreachable<_Tp>();
  	  }                                                   // }}}
! 	else if (__builtin_is_constant_evaluated())
! 	  return _Base::_S_less(__x, __y);
! 	else if constexpr (sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				< __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64{};
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  }
  	else
  	  return _Base::_S_less(__x, __y);
        }
*************** template <typename _Abi>
*** 2554,2568 ****
  	    else
  	      __assert_unreachable<_Tp>();
  	  }                                                   // }}}
! 	else if constexpr (!__builtin_is_constant_evaluated() // {{{
! 			   && sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				<= __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64;
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  } // }}}
  	else
  	  return _Base::_S_less_equal(__x, __y);
        }
--- 2611,2626 ----
  	    else
  	      __assert_unreachable<_Tp>();
  	  }                                                   // }}}
! 	else if (__builtin_is_constant_evaluated())
! 	  return _Base::_S_less_equal(__x, __y);
! 	else if constexpr (sizeof(__x) == 8)
  	  {
  	    const auto __r128 = __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__x)
  				<= __vector_bitcast<_Tp, 16 / sizeof(_Tp)>(__y);
! 	    _MaskMember<_Tp> __r64{};
  	    __builtin_memcpy(&__r64._M_data, &__r128, sizeof(__r64));
  	    return __r64;
! 	  }
  	else
  	  return _Base::_S_less_equal(__x, __y);
        }
*************** template <typename _Abi>
*** 2731,2737 ****
      // }}}
      // _S_nearbyint {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp _S_nearbyint(_Tp __x) noexcept
        {
  	if constexpr (_TVT::template _S_is<float, 16>)
  	  return _mm512_roundscale_ps(__x, 0x0c);
--- 2789,2796 ----
      // }}}
      // _S_nearbyint {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_nearbyint(_Tp __x) noexcept
        {
  	if constexpr (_TVT::template _S_is<float, 16>)
  	  return _mm512_roundscale_ps(__x, 0x0c);
*************** template <typename _Abi>
*** 2756,2762 ****
      // }}}
      // _S_rint {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp _S_rint(_Tp __x) noexcept
        {
  	if constexpr (_TVT::template _S_is<float, 16>)
  	  return _mm512_roundscale_ps(__x, 0x04);
--- 2815,2822 ----
      // }}}
      // _S_rint {{{
      template <typename _Tp, typename _TVT = _VectorTraits<_Tp>>
!       _GLIBCXX_SIMD_INTRINSIC static _Tp
!       _S_rint(_Tp __x) noexcept
        {
  	if constexpr (_TVT::template _S_is<float, 16>)
  	  return _mm512_roundscale_ps(__x, 0x04);
*************** template <typename _Abi>
*** 2904,2910 ****
      // _S_isnonzerovalue_mask {{{
      // (isnormal | is subnormal == !isinf & !isnan & !is zero)
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static auto _S_isnonzerovalue_mask(_Tp __x)
        {
  	using _Traits = _VectorTraits<_Tp>;
  	if constexpr (__have_avx512dq_vl)
--- 2964,2971 ----
      // _S_isnonzerovalue_mask {{{
      // (isnormal | is subnormal == !isinf & !isnan & !is zero)
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static auto
!       _S_isnonzerovalue_mask(_Tp __x)
        {
  	using _Traits = _VectorTraits<_Tp>;
  	if constexpr (__have_avx512dq_vl)
*************** template <typename _Abi>
*** 3171,3178 ****
      // }}}
      // _S_isgreater {{{
      template <typename _Tp, size_t _Np>
!       static constexpr _MaskMember<_Tp> _S_isgreater(_SimdWrapper<_Tp, _Np> __x,
! 						     _SimdWrapper<_Tp, _Np> __y)
        {
  	const auto __xi = __to_intrin(__x);
  	const auto __yi = __to_intrin(__y);
--- 3232,3239 ----
      // }}}
      // _S_isgreater {{{
      template <typename _Tp, size_t _Np>
!       static constexpr _MaskMember<_Tp>
!       _S_isgreater(_SimdWrapper<_Tp, _Np> __x, _SimdWrapper<_Tp, _Np> __y)
        {
  	const auto __xi = __to_intrin(__x);
  	const auto __yi = __to_intrin(__y);
*************** template <typename _Abi>
*** 3289,3296 ****
      // }}}
      // _S_isless {{{
      template <typename _Tp, size_t _Np>
!       static constexpr _MaskMember<_Tp> _S_isless(_SimdWrapper<_Tp, _Np> __x,
! 						  _SimdWrapper<_Tp, _Np> __y)
        {
  	const auto __xi = __to_intrin(__x);
  	const auto __yi = __to_intrin(__y);
--- 3350,3357 ----
      // }}}
      // _S_isless {{{
      template <typename _Tp, size_t _Np>
!       static constexpr _MaskMember<_Tp>
!       _S_isless(_SimdWrapper<_Tp, _Np> __x, _SimdWrapper<_Tp, _Np> __y)
        {
  	const auto __xi = __to_intrin(__x);
  	const auto __yi = __to_intrin(__y);
*************** template <typename _Abi>
*** 3454,3459 ****
--- 3515,3590 ----
        }
  
      //}}} }}}
+     template <template <typename> class _Op, typename _Tp, typename _K, size_t _Np>
+       _GLIBCXX_SIMD_INTRINSIC static _SimdWrapper<_Tp, _Np>
+       _S_masked_unary(const _SimdWrapper<_K, _Np> __k, const _SimdWrapper<_Tp, _Np> __v)
+       {
+ 	if (__k._M_is_constprop_none_of())
+ 	  return __v;
+ 	else if (__k._M_is_constprop_all_of())
+ 	  {
+ 	    auto __vv = _Base::_M_make_simd(__v);
+ 	    _Op<decltype(__vv)> __op;
+ 	    return __data(__op(__vv));
+ 	  }
+ 	else if constexpr (__is_bitmask_v<decltype(__k)>
+ 			     && (is_same_v<_Op<void>, __increment<void>>
+ 				   || is_same_v<_Op<void>, __decrement<void>>))
+ 	  {
+ 	    // optimize masked unary increment and decrement as masked sub +/-1
+ 	    constexpr int __pm_one
+ 	      = is_same_v<_Op<void>, __increment<void>> ? -1 : 1;
+ #ifdef __clang__
+ 	    return __movm<_Np, _Tp>(__k._M_data) ? __v._M_data - __pm_one : __v._M_data;
+ #else // __clang__
+ 	    if constexpr (is_integral_v<_Tp>)
+ 	      {
+ 		constexpr bool __lp64 = sizeof(long) == sizeof(long long);
+ 		using _Ip = std::make_signed_t<_Tp>;
+ 		using _Up = std::conditional_t<
+ 			      std::is_same_v<_Ip, long>,
+ 			      std::conditional_t<__lp64, long long, int>,
+ 			      std::conditional_t<
+ 				std::is_same_v<_Ip, signed char>, char, _Ip>>;
+ 		const auto __value = __vector_bitcast<_Up>(__v._M_data);
+ #define _GLIBCXX_SIMD_MASK_SUB(_Sizeof, _Width, _Instr)                        \
+   if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__v) == _Width)               \
+     return __vector_bitcast<_Tp>(__builtin_ia32_##_Instr##_mask(__value,       \
+ 	     __vector_broadcast<_Np>(_Up(__pm_one)), __value, __k._M_data))
+ 		_GLIBCXX_SIMD_MASK_SUB(1, 64, psubb512);
+ 		_GLIBCXX_SIMD_MASK_SUB(1, 32, psubb256);
+ 		_GLIBCXX_SIMD_MASK_SUB(1, 16, psubb128);
+ 		_GLIBCXX_SIMD_MASK_SUB(2, 64, psubw512);
+ 		_GLIBCXX_SIMD_MASK_SUB(2, 32, psubw256);
+ 		_GLIBCXX_SIMD_MASK_SUB(2, 16, psubw128);
+ 		_GLIBCXX_SIMD_MASK_SUB(4, 64, psubd512);
+ 		_GLIBCXX_SIMD_MASK_SUB(4, 32, psubd256);
+ 		_GLIBCXX_SIMD_MASK_SUB(4, 16, psubd128);
+ 		_GLIBCXX_SIMD_MASK_SUB(8, 64, psubq512);
+ 		_GLIBCXX_SIMD_MASK_SUB(8, 32, psubq256);
+ 		_GLIBCXX_SIMD_MASK_SUB(8, 16, psubq128);
+ #undef _GLIBCXX_SIMD_MASK_SUB
+ 	      }
+ 	    else
+ 	      {
+ #define _GLIBCXX_SIMD_MASK_SUB(_Sizeof, _Width, _Instr)                        \
+   if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__v) == _Width)               \
+     return __builtin_ia32_##_Instr##_mask(                                     \
+ 	     __v._M_data, __vector_broadcast<_Np>(_Tp(__pm_one)), __v._M_data, \
+ 	     __k._M_data, _MM_FROUND_CUR_DIRECTION)
+ 		_GLIBCXX_SIMD_MASK_SUB(4, 64, subps512);
+ 		_GLIBCXX_SIMD_MASK_SUB(4, 32, subps256);
+ 		_GLIBCXX_SIMD_MASK_SUB(4, 16, subps128);
+ 		_GLIBCXX_SIMD_MASK_SUB(8, 64, subpd512);
+ 		_GLIBCXX_SIMD_MASK_SUB(8, 32, subpd256);
+ 		_GLIBCXX_SIMD_MASK_SUB(8, 16, subpd128);
+ #undef _GLIBCXX_SIMD_MASK_SUB
+ 	      }
+ #endif // __clang__
+ 	  }
+ 	else
+ 	  return _Base::template _S_masked_unary<_Op>(__k, __v);
+       }
    };
  
  // }}}
*************** struct _MaskImplX86Mixin
*** 3467,3474 ****
  
    // _S_to_maskvector(bool) {{{
    template <typename _Up, size_t _ToN = 1, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr enable_if_t<
!       is_same_v<_Tp, bool>, _SimdWrapper<_Up, _ToN>>
      _S_to_maskvector(_Tp __x)
      {
        static_assert(is_same_v<_Up, __int_for_sizeof_t<_Up>>);
--- 3598,3605 ----
  
    // _S_to_maskvector(bool) {{{
    template <typename _Up, size_t _ToN = 1, typename _Tp>
!     _GLIBCXX_SIMD_INTRINSIC static constexpr
!     enable_if_t<is_same_v<_Tp, bool>, _SimdWrapper<_Up, _ToN>>
      _S_to_maskvector(_Tp __x)
      {
        static_assert(is_same_v<_Up, __int_for_sizeof_t<_Up>>);
*************** struct _MaskImplX86Mixin
*** 3478,3485 ****
  
    // }}}
    // _S_to_maskvector(_SanitizedBitMask) {{{
!   template <typename _Up, size_t _UpN = 0, size_t _Np,
! 	    size_t _ToN = _UpN == 0 ? _Np : _UpN>
      _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Up, _ToN>
      _S_to_maskvector(_SanitizedBitMask<_Np> __x)
      {
--- 3609,3615 ----
  
    // }}}
    // _S_to_maskvector(_SanitizedBitMask) {{{
!   template <typename _Up, size_t _UpN = 0, size_t _Np, size_t _ToN = _UpN == 0 ? _Np : _UpN>
      _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Up, _ToN>
      _S_to_maskvector(_SanitizedBitMask<_Np> __x)
      {
*************** struct _MaskImplX86Mixin
*** 3491,3497 ****
  	return _S_to_maskvector<_Up, _ToN>(__k);
        else if (__x._M_is_constprop() || __builtin_is_constant_evaluated())
  	return __generate_from_n_evaluations<std::min(_ToN, _Np), _UV>(
! 	  [&](auto __i) -> _Up { return -__x[__i.value]; });
        else if constexpr (sizeof(_Up) == 1)
  	{
  	  if constexpr (sizeof(_UI) == 16)
--- 3621,3627 ----
  	return _S_to_maskvector<_Up, _ToN>(__k);
        else if (__x._M_is_constprop() || __builtin_is_constant_evaluated())
  	return __generate_from_n_evaluations<std::min(_ToN, _Np), _UV>(
! 	  [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA -> _Up { return -__x[__i.value]; });
        else if constexpr (sizeof(_Up) == 1)
  	{
  	  if constexpr (sizeof(_UI) == 16)
*************** struct _MaskImplX86Mixin
*** 3736,3744 ****
        else if constexpr (__bits_per_element >= _ToN)
  	{
  	  constexpr auto __bitmask
! 	    = __generate_vector<_V>([](auto __i) constexpr->_UpUInt {
! 		return __i < _ToN ? 1ull << __i : 0;
! 	      });
  	  const auto __bits
  	    = __vector_broadcast<_ToN, _UpUInt>(__k) & __bitmask;
  	  if constexpr (__bits_per_element > _ToN)
--- 3866,3874 ----
        else if constexpr (__bits_per_element >= _ToN)
  	{
  	  constexpr auto __bitmask
! 	    = __generate_vector<_V>([](auto __i)
! 				    constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA -> _UpUInt
! 				    { return __i < _ToN ? 1ull << __i : 0; });
  	  const auto __bits
  	    = __vector_broadcast<_ToN, _UpUInt>(__k) & __bitmask;
  	  if constexpr (__bits_per_element > _ToN)
*************** struct _MaskImplX86Mixin
*** 3749,3759 ****
        else
  	{
  	  const _V __tmp
! 	    = __generate_vector<_V>([&](auto __i) constexpr {
  		return static_cast<_UpUInt>(
  		  __k >> (__bits_per_element * (__i / __bits_per_element)));
  	      })
! 	      & __generate_vector<_V>([](auto __i) constexpr {
  		  return static_cast<_UpUInt>(1ull
  					      << (__i % __bits_per_element));
  		}); // mask bit index
--- 3879,3889 ----
        else
  	{
  	  const _V __tmp
! 	    = __generate_vector<_V>([&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		return static_cast<_UpUInt>(
  		  __k >> (__bits_per_element * (__i / __bits_per_element)));
  	      })
! 	      & __generate_vector<_V>([](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  return static_cast<_UpUInt>(1ull
  					      << (__i % __bits_per_element));
  		}); // mask bit index
*************** struct _MaskImplX86Mixin
*** 3789,3795 ****
  	      const auto __y = __vector_bitcast<__int_for_sizeof_t<_Tp>>(__x);
  	      return __generate_from_n_evaluations<std::min(_ToN, _Np),
  						   __vector_type_t<_Up, _ToN>>(
! 		[&](auto __i) -> _Up { return __y[__i.value]; });
  	    }
  	  using _To = __vector_type_t<_Up, _ToN>;
  	  [[maybe_unused]] constexpr size_t _FromN = _Np;
--- 3919,3925 ----
  	      const auto __y = __vector_bitcast<__int_for_sizeof_t<_Tp>>(__x);
  	      return __generate_from_n_evaluations<std::min(_ToN, _Np),
  						   __vector_type_t<_Up, _ToN>>(
! 		[&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA -> _Up { return __y[__i.value]; });
  	    }
  	  using _To = __vector_type_t<_Up, _ToN>;
  	  [[maybe_unused]] constexpr size_t _FromN = _Np;
*************** struct _MaskImplX86Mixin
*** 4124,4131 ****
  	    {
  	      const auto __bools = -__x._M_data;
  	      const _ULLong __k = __call_with_n_evaluations<_Np>(
! 		[](auto... __bits) { return (__bits | ...); },
! 		[&](auto __i) { return _ULLong(__bools[+__i]) << __i; });
  	      if (__builtin_is_constant_evaluated()
  		  || __builtin_constant_p(__k))
  		return __k;
--- 4254,4264 ----
  	    {
  	      const auto __bools = -__x._M_data;
  	      const _ULLong __k = __call_with_n_evaluations<_Np>(
! 		[](auto... __bits) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		  return (__bits | ...);
! 		}, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
! 		  return _ULLong(__bools[+__i]) << __i;
! 		});
  	      if (__builtin_is_constant_evaluated()
  		  || __builtin_constant_p(__k))
  		return __k;
*************** template <typename _Abi>
*** 4279,4293 ****
        _S_load(const bool* __mem)
        {
  	static_assert(is_same_v<_Tp, __int_for_sizeof_t<_Tp>>);
! 	if constexpr (__have_avx512bw)
  	  {
! 	    const auto __to_vec_or_bits = [](auto __bits) -> decltype(auto) {
! 	      if constexpr (__is_avx512_abi<_Abi>())
! 		return __bits;
! 	      else
! 		return _S_to_maskvector<_Tp>(
! 		  _BitMask<_S_size<_Tp>>(__bits)._M_sanitized());
! 	    };
  
  	    if constexpr (_S_size<_Tp> <= 16 && __have_avx512vl)
  	      {
--- 4412,4439 ----
        _S_load(const bool* __mem)
        {
  	static_assert(is_same_v<_Tp, __int_for_sizeof_t<_Tp>>);
! 	if (__builtin_is_constant_evaluated())
  	  {
! 	    if constexpr (__is_avx512_abi<_Abi>())
! 	      {
! 		_MaskMember<_Tp> __r{};
! 		for (size_t __i = 0; __i < _S_size<_Tp>; ++__i)
! 		  __r._M_data |= _ULLong(__mem[__i]) << __i;
! 		return __r;
! 	      }
! 	    else
! 	      return _Base::template _S_load<_Tp>(__mem);
! 	  }
! 	else if constexpr (__have_avx512bw)
! 	  {
! 	    const auto __to_vec_or_bits
! 	      = [](auto __bits) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA -> decltype(auto) {
! 		if constexpr (__is_avx512_abi<_Abi>())
! 		  return __bits;
! 		else
! 		  return _S_to_maskvector<_Tp>(
! 			   _BitMask<_S_size<_Tp>>(__bits)._M_sanitized());
! 	      };
  
  	    if constexpr (_S_size<_Tp> <= 16 && __have_avx512vl)
  	      {
*************** template <typename _Abi>
*** 4474,4480 ****
  	      }
  	    else
  	      {
! 		_BitOps::_S_bit_iteration(__mask, [&](auto __i) {
  		  __merge._M_set(__i, __mem[__i]);
  		});
  		return __merge;
--- 4620,4626 ----
  	      }
  	    else
  	      {
! 		_BitOps::_S_bit_iteration(__mask, [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  __merge._M_set(__i, __mem[__i]);
  		});
  		return __merge;
*************** template <typename _Abi>
*** 4546,4559 ****
  
      // _S_store {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static void _S_store(_SimdWrapper<_Tp, _Np> __v,
! 						   bool* __mem) noexcept
        {
! 	if constexpr (__is_avx512_abi<_Abi>())
  	  {
  	    if constexpr (__have_avx512bw_vl)
  	      _CommonImplX86::_S_store<_Np>(
! 		__vector_bitcast<char>([](auto __data) {
  		  if constexpr (_Np <= 16)
  		    return _mm_maskz_set1_epi8(__data, 1);
  		  else if constexpr (_Np <= 32)
--- 4692,4707 ----
  
      // _S_store {{{2
      template <typename _Tp, size_t _Np>
!       _GLIBCXX_SIMD_INTRINSIC static constexpr void
!       _S_store(_SimdWrapper<_Tp, _Np> __v, bool* __mem) noexcept
        {
! 	if (__builtin_is_constant_evaluated())
! 	  _Base::_S_store(__v, __mem);
! 	else if constexpr (__is_avx512_abi<_Abi>())
  	  {
  	    if constexpr (__have_avx512bw_vl)
  	      _CommonImplX86::_S_store<_Np>(
! 		__vector_bitcast<char>([](auto __data) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA {
  		  if constexpr (_Np <= 16)
  		    return _mm_maskz_set1_epi8(__data, 1);
  		  else if constexpr (_Np <= 32)
*************** template <typename _Abi>
*** 4631,4637 ****
  	    if constexpr (_Np <= 4 && sizeof(_Tp) == 8)
  	      {
  		auto __k = __intrin_bitcast<__m256i>(__to_intrin(__v));
! 		int __bool4;
  		if constexpr (__have_avx2)
  		  __bool4 = _mm256_movemask_epi8(__k);
  		else
--- 4779,4785 ----
  	    if constexpr (_Np <= 4 && sizeof(_Tp) == 8)
  	      {
  		auto __k = __intrin_bitcast<__m256i>(__to_intrin(__v));
! 		int __bool4{};
  		if constexpr (__have_avx2)
  		  __bool4 = _mm256_movemask_epi8(__k);
  		else
*************** template <typename _Abi>
*** 4711,4722 ****
      // logical and bitwise operators {{{2
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_and(const _SimdWrapper<_Tp, _Np>& __x,
! 		     const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kand_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kand_mask16(__x._M_data, __y._M_data);
--- 4859,4871 ----
      // logical and bitwise operators {{{2
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_and(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if (__builtin_is_constant_evaluated())
! 	      return __x._M_data & __y._M_data;
! 	    else if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kand_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kand_mask16(__x._M_data, __y._M_data);
*************** template <typename _Abi>
*** 4733,4744 ****
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_or(const _SimdWrapper<_Tp, _Np>& __x,
! 		    const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kor_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kor_mask16(__x._M_data, __y._M_data);
--- 4882,4894 ----
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_logical_or(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if (__builtin_is_constant_evaluated())
! 	      return __x._M_data | __y._M_data;
! 	    else if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kor_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kor_mask16(__x._M_data, __y._M_data);
*************** template <typename _Abi>
*** 4759,4765 ****
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kandn_mask8(__x._M_data,
  				  _Abi::template __implicit_mask_n<_Np>());
  	    else if constexpr (_Np <= 16)
--- 4909,4917 ----
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if (__builtin_is_constant_evaluated())
! 	      return __x._M_data ^ _Abi::template __implicit_mask_n<_Np>();
! 	    else if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kandn_mask8(__x._M_data,
  				  _Abi::template __implicit_mask_n<_Np>());
  	    else if constexpr (_Np <= 16)
*************** template <typename _Abi>
*** 4780,4791 ****
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_and(const _SimdWrapper<_Tp, _Np>& __x,
! 		 const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kand_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kand_mask16(__x._M_data, __y._M_data);
--- 4932,4944 ----
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_and(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if (__builtin_is_constant_evaluated())
! 	      return __x._M_data & __y._M_data;
! 	    else if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kand_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kand_mask16(__x._M_data, __y._M_data);
*************** template <typename _Abi>
*** 4802,4813 ****
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_or(const _SimdWrapper<_Tp, _Np>& __x,
! 		const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kor_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kor_mask16(__x._M_data, __y._M_data);
--- 4955,4967 ----
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_or(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if (__builtin_is_constant_evaluated())
! 	      return __x._M_data | __y._M_data;
! 	    else if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kor_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kor_mask16(__x._M_data, __y._M_data);
*************** template <typename _Abi>
*** 4824,4835 ****
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_xor(const _SimdWrapper<_Tp, _Np>& __x,
! 		 const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kxor_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kxor_mask16(__x._M_data, __y._M_data);
--- 4978,4990 ----
  
      template <typename _Tp, size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static constexpr _SimdWrapper<_Tp, _Np>
!       _S_bit_xor(const _SimdWrapper<_Tp, _Np>& __x, const _SimdWrapper<_Tp, _Np>& __y)
        {
  	if constexpr (is_same_v<_Tp, bool>)
  	  {
! 	    if (__builtin_is_constant_evaluated())
! 	      return __x._M_data ^ __y._M_data;
! 	    else if constexpr (__have_avx512dq && _Np <= 8)
  	      return _kxor_mask8(__x._M_data, __y._M_data);
  	    else if constexpr (_Np <= 16)
  	      return _kxor_mask16(__x._M_data, __y._M_data);
*************** template <typename _Abi>
*** 4849,4856 ****
      template <size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_assign(_SimdWrapper<bool, _Np> __k,
! 		       _SimdWrapper<bool, _Np>& __lhs,
! 		       _SimdWrapper<bool, _Np> __rhs)
        {
  	__lhs._M_data
  	  = (~__k._M_data & __lhs._M_data) | (__k._M_data & __rhs._M_data);
--- 5004,5010 ----
      template <size_t _Np>
        _GLIBCXX_SIMD_INTRINSIC static void
        _S_masked_assign(_SimdWrapper<bool, _Np> __k,
! 		       _SimdWrapper<bool, _Np>& __lhs, _SimdWrapper<bool, _Np> __rhs)
        {
  	__lhs._M_data
  	  = (~__k._M_data & __lhs._M_data) | (__k._M_data & __rhs._M_data);
*************** template <typename _Abi>
*** 4872,4878 ****
      //}}}
      // _S_all_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_all_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
--- 5026,5033 ----
      //}}}
      // _S_all_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_all_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
*************** template <typename _Abi>
*** 4928,4934 ****
      // }}}
      // _S_any_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_any_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
--- 5083,5090 ----
      // }}}
      // _S_any_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_any_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
*************** template <typename _Abi>
*** 4963,4969 ****
      // }}}
      // _S_none_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_none_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
--- 5119,5126 ----
      // }}}
      // _S_none_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_none_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
*************** template <typename _Abi>
*** 4998,5004 ****
      // }}}
      // _S_some_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool _S_some_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
--- 5155,5162 ----
      // }}}
      // _S_some_of {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static bool
!       _S_some_of(simd_mask<_Tp, _Abi> __k)
        {
  	if constexpr (__is_sse_abi<_Abi>() || __is_avx_abi<_Abi>())
  	  {
*************** template <typename _Abi>
*** 5039,5045 ****
      // }}}
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int _S_popcount(simd_mask<_Tp, _Abi> __k)
        {
  	constexpr size_t _Np = simd_size_v<_Tp, _Abi>;
  	const auto __kk = _Abi::_S_masked(__k._M_data)._M_data;
--- 5197,5204 ----
      // }}}
      // _S_popcount {{{
      template <typename _Tp>
!       _GLIBCXX_SIMD_INTRINSIC static int
!       _S_popcount(simd_mask<_Tp, _Abi> __k)
        {
  	constexpr size_t _Np = simd_size_v<_Tp, _Abi>;
  	const auto __kk = _Abi::_S_masked(__k._M_data)._M_data;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/internet gcc-11.4.0/libstdc++-v3/include/experimental/internet
*** gcc-11.3.0/libstdc++-v3/include/experimental/internet	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/internet	Mon May 29 08:46:33 2023
*************** namespace ip
*** 441,453 ****
      // constructors:
      constexpr address() noexcept : _M_v4(), _M_is_v4(true) { }
  
      constexpr
      address(const address& __a) noexcept : _M_uninit(), _M_is_v4(__a._M_is_v4)
      {
        if (_M_is_v4)
! 	::new (std::addressof(_M_v4)) address_v4(__a.to_v4());
        else
! 	::new (std::addressof(_M_v6)) address_v6(__a.to_v6());
      }
  
      constexpr
--- 441,455 ----
      // constructors:
      constexpr address() noexcept : _M_v4(), _M_is_v4(true) { }
  
+ #if __cpp_constexpr_dynamic_alloc
      constexpr
+ #endif
      address(const address& __a) noexcept : _M_uninit(), _M_is_v4(__a._M_is_v4)
      {
        if (_M_is_v4)
! 	std::_Construct(std::addressof(_M_v4), __a.to_v4());
        else
! 	std::_Construct(std::addressof(_M_v6), __a.to_v6());
      }
  
      constexpr
*************** namespace ip
*** 470,476 ****
      address&
      operator=(const address_v4& __a) noexcept
      {
!       ::new (std::addressof(_M_v4)) address_v4(__a);
        _M_is_v4 = true;
        return *this;
      }
--- 472,478 ----
      address&
      operator=(const address_v4& __a) noexcept
      {
!       std::_Construct(std::addressof(_M_v4), __a);
        _M_is_v4 = true;
        return *this;
      }
*************** namespace ip
*** 478,484 ****
      address&
      operator=(const address_v6& __a) noexcept
      {
!       ::new (std::addressof(_M_v6)) address_v6(__a);
        _M_is_v4 = false;
        return *this;
      }
--- 480,486 ----
      address&
      operator=(const address_v6& __a) noexcept
      {
!       std::_Construct(std::addressof(_M_v6), __a);
        _M_is_v4 = false;
        return *this;
      }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/numeric gcc-11.4.0/libstdc++-v3/include/experimental/numeric
*** gcc-11.3.0/libstdc++-v3/include/experimental/numeric	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/numeric	Mon May 29 08:46:33 2023
*************** inline namespace fundamentals_v2
*** 56,72 ****
      constexpr common_type_t<_Mn, _Nn>
      gcd(_Mn __m, _Nn __n) noexcept
      {
!       static_assert(is_integral_v<_Mn>,
! 	  "std::experimental::gcd arguments must be integers");
!       static_assert(is_integral_v<_Nn>,
! 	  "std::experimental::gcd arguments must be integers");
!       static_assert(_Mn(2) != _Mn(1),
! 	  "std::experimental::gcd arguments must not be bool");
!       static_assert(_Nn(2) != _Nn(1),
! 	  "std::experimental::gcd arguments must not be bool");
!       using _Up = make_unsigned_t<common_type_t<_Mn, _Nn>>;
!       return std::__detail::__gcd(std::__detail::__absu<_Up>(__m),
! 				  std::__detail::__absu<_Up>(__n));
      }
  
    /// Least common multiple
--- 56,70 ----
      constexpr common_type_t<_Mn, _Nn>
      gcd(_Mn __m, _Nn __n) noexcept
      {
!       static_assert(is_integral_v<_Mn> && is_integral_v<_Nn>,
! 		    "std::experimental::gcd arguments must be integers");
!       static_assert(_Mn(2) == 2 && _Nn(2) == 2,
! 		    "std::experimental::gcd arguments must not be bool");
!       namespace __detail = std::__detail;
!       using _Ct = common_type_t<_Mn, _Nn>;
!       const _Ct __m2 = __detail::__abs_r<_Ct>(__m);
!       const _Ct __n2 = __detail::__abs_r<_Ct>(__n);
!       return __detail::__gcd<make_unsigned_t<_Ct>>(__m2, __n2);
      }
  
    /// Least common multiple
*************** inline namespace fundamentals_v2
*** 74,90 ****
      constexpr common_type_t<_Mn, _Nn>
      lcm(_Mn __m, _Nn __n)
      {
!       static_assert(is_integral_v<_Mn>,
! 	  "std::experimental::lcm arguments must be integers");
!       static_assert(is_integral_v<_Nn>,
  	  "std::experimental::lcm arguments must be integers");
!       static_assert(_Mn(2) != _Mn(1),
! 	  "std::experimental::lcm arguments must not be bool");
!       static_assert(_Nn(2) != _Nn(1),
  	  "std::experimental::lcm arguments must not be bool");
!       using _Up = make_unsigned_t<common_type_t<_Mn, _Nn>>;
!       return std::__detail::__lcm(std::__detail::__absu<_Up>(__m),
! 				  std::__detail::__absu<_Up>(__n));
      }
  } // namespace fundamentals_v2
  } // namespace experimental
--- 72,98 ----
      constexpr common_type_t<_Mn, _Nn>
      lcm(_Mn __m, _Nn __n)
      {
!       static_assert(is_integral_v<_Mn> && is_integral_v<_Nn>,
  	  "std::experimental::lcm arguments must be integers");
!       static_assert(_Mn(2) == 2 && _Nn(2) == 2,
  	  "std::experimental::lcm arguments must not be bool");
!       namespace __detail = std::__detail;
!       using _Ct = common_type_t<_Mn, _Nn>;
!       const _Ct __m2 = __detail::__abs_r<_Ct>(__m);
!       const _Ct __n2 = __detail::__abs_r<_Ct>(__n);
!       if (__m2 == 0 || __n2 == 0)
! 	return 0;
!       _Ct __r = __m2 / __detail::__gcd<make_unsigned_t<_Ct>>(__m2, __n2);
! 
! #if defined _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED
!       if _GLIBCXX17_CONSTEXPR (is_signed_v<_Ct>)
! 	if (__builtin_is_constant_evaluated())
! 	  return __r * __n2; // constant evaluation can detect overflow here.
! #endif
! 
!       bool __overflow = __builtin_mul_overflow(__r, __n2, &__r);
!       __glibcxx_assert(!__overflow);
!       return __r;
      }
  } // namespace fundamentals_v2
  } // namespace experimental
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/optional gcc-11.4.0/libstdc++-v3/include/experimental/optional
*** gcc-11.3.0/libstdc++-v3/include/experimental/optional	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/experimental/optional	Mon May 29 08:46:33 2023
***************
*** 1,4 ****
! // <optional> -*- C++ -*-
  
  // Copyright (C) 2013-2021 Free Software Foundation, Inc.
  //
--- 1,4 ----
! // <experimental/optional> -*- C++ -*-
  
  // Copyright (C) 2013-2021 Free Software Foundation, Inc.
  //
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/atomic gcc-11.4.0/libstdc++-v3/include/std/atomic
*** gcc-11.3.0/libstdc++-v3/include/std/atomic	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/atomic	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 172,182 ****
      // TODO add const volatile overload
  
      void
!     notify_one() const noexcept
      { _M_base.notify_one(); }
  
      void
!     notify_all() const noexcept
      { _M_base.notify_all(); }
  #endif // __cpp_lib_atomic_wait
    };
--- 172,182 ----
      // TODO add const volatile overload
  
      void
!     notify_one() noexcept
      { _M_base.notify_one(); }
  
      void
!     notify_all() noexcept
      { _M_base.notify_all(); }
  #endif // __cpp_lib_atomic_wait
    };
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 320,325 ****
--- 320,327 ----
        compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s,
  			    memory_order __f) noexcept
        {
+ 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__f));
+ 
  	return __atomic_compare_exchange(std::__addressof(_M_i),
  					 std::__addressof(__e),
  					 std::__addressof(__i),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 330,335 ****
--- 332,339 ----
        compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s,
  			    memory_order __f) volatile noexcept
        {
+ 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__f));
+ 
  	return __atomic_compare_exchange(std::__addressof(_M_i),
  					 std::__addressof(__e),
  					 std::__addressof(__i),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 352,357 ****
--- 356,363 ----
        compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s,
  			      memory_order __f) noexcept
        {
+ 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__f));
+ 
  	return __atomic_compare_exchange(std::__addressof(_M_i),
  					 std::__addressof(__e),
  					 std::__addressof(__i),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 362,367 ****
--- 368,375 ----
        compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s,
  			      memory_order __f) volatile noexcept
        {
+ 	__glibcxx_assert(__is_valid_cmpexch_failure_order(__f));
+ 
  	return __atomic_compare_exchange(std::__addressof(_M_i),
  					 std::__addressof(__e),
  					 std::__addressof(__i),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 380,386 ****
        { return compare_exchange_strong(__e, __i, __m,
                                         __cmpexch_failure_order(__m)); }
  
! #if __cpp_lib_atomic_wait 
      void
      wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept
      {
--- 388,394 ----
        { return compare_exchange_strong(__e, __i, __m,
                                         __cmpexch_failure_order(__m)); }
  
! #if __cpp_lib_atomic_wait
      void
      wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 391,403 ****
      // TODO add const volatile overload
  
      void
!     notify_one() const noexcept
      { std::__atomic_notify_address(&_M_i, false); }
  
      void
!     notify_all() const noexcept
      { std::__atomic_notify_address(&_M_i, true); }
! #endif // __cpp_lib_atomic_wait 
  
      };
  #undef _GLIBCXX20_INIT
--- 399,411 ----
      // TODO add const volatile overload
  
      void
!     notify_one() noexcept
      { std::__atomic_notify_address(&_M_i, false); }
  
      void
!     notify_all() noexcept
      { std::__atomic_notify_address(&_M_i, true); }
! #endif // __cpp_lib_atomic_wait
  
      };
  #undef _GLIBCXX20_INIT
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 645,655 ****
      // TODO add const volatile overload
  
      void
!     notify_one() const noexcept
      { _M_b.notify_one(); }
  
      void
!     notify_all() const noexcept
      { _M_b.notify_all(); }
  #endif // __cpp_lib_atomic_wait
        __pointer_type
--- 653,663 ----
      // TODO add const volatile overload
  
      void
!     notify_one() noexcept
      { _M_b.notify_one(); }
  
      void
!     notify_all() noexcept
      { _M_b.notify_all(); }
  #endif // __cpp_lib_atomic_wait
        __pointer_type
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1203,1208 ****
--- 1211,1236 ----
  				    memory_order __m) noexcept
    { return __a->test_and_set(__m); }
  
+ #if __cpp_lib_atomic_flag_test
+   inline bool
+   atomic_flag_test(const atomic_flag* __a) noexcept
+   { return __a->test(); }
+ 
+   inline bool
+   atomic_flag_test(const volatile atomic_flag* __a) noexcept
+   { return __a->test(); }
+ 
+   inline bool
+   atomic_flag_test_explicit(const atomic_flag* __a,
+ 			    memory_order __m) noexcept
+   { return __a->test(__m); }
+ 
+   inline bool
+   atomic_flag_test_explicit(const volatile atomic_flag* __a,
+ 			    memory_order __m) noexcept
+   { return __a->test(__m); }
+ #endif
+ 
    inline void
    atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept
    { __a->clear(__m); }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1228,1238 ****
    atomic_flag_clear(volatile atomic_flag* __a) noexcept
    { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
  
  
    template<typename _Tp>
!     using __atomic_val_t = typename atomic<_Tp>::value_type;
    template<typename _Tp>
      using __atomic_diff_t = typename atomic<_Tp>::difference_type;
  
    // [atomics.nonmembers] Non-member functions.
    // Function templates generally applicable to atomic types.
--- 1256,1288 ----
    atomic_flag_clear(volatile atomic_flag* __a) noexcept
    { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
  
+ #if __cpp_lib_atomic_wait
+   inline void
+   atomic_flag_wait(atomic_flag* __a, bool __old) noexcept
+   { __a->wait(__old); }
+ 
+   inline void
+   atomic_flag_wait_explicit(atomic_flag* __a, bool __old,
+                                 memory_order __m) noexcept
+   { __a->wait(__old, __m); }
+ 
+   inline void
+   atomic_flag_notify_one(atomic_flag* __a) noexcept
+   { __a->notify_one(); }
  
+   inline void
+   atomic_flag_notify_all(atomic_flag* __a) noexcept
+   { __a->notify_all(); }
+ #endif // __cpp_lib_atomic_wait
+ 
+   /// @cond undocumented
+   // _GLIBCXX_RESOLVE_LIB_DEFECTS
+   // 3220. P0558 broke conforming C++14 uses of atomic shared_ptr
    template<typename _Tp>
!     using __atomic_val_t = __type_identity_t<_Tp>;
    template<typename _Tp>
      using __atomic_diff_t = typename atomic<_Tp>::difference_type;
+   /// @endcond
  
    // [atomics.nonmembers] Non-member functions.
    // Function templates generally applicable to atomic types.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1421,1432 ****
  
    template<typename _Tp>
      inline void
!     atomic_notify_one(const atomic<_Tp>* __a) noexcept
      { __a->notify_one(); }
  
    template<typename _Tp>
      inline void
!     atomic_notify_all(const atomic<_Tp>* __a) noexcept
      { __a->notify_all(); }
  #endif // __cpp_lib_atomic_wait
  
--- 1471,1482 ----
  
    template<typename _Tp>
      inline void
!     atomic_notify_one(atomic<_Tp>* __a) noexcept
      { __a->notify_one(); }
  
    template<typename _Tp>
      inline void
!     atomic_notify_all(atomic<_Tp>* __a) noexcept
      { __a->notify_all(); }
  #endif // __cpp_lib_atomic_wait
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/barrier gcc-11.4.0/libstdc++-v3/include/std/barrier
*** gcc-11.3.0/libstdc++-v3/include/std/barrier	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/barrier	Mon May 29 08:46:33 2023
***************
*** 13,20 ****
  // 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 library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
  // This implementation is based on libcxx/include/barrier
--- 13,25 ----
  // 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 implementation is based on libcxx/include/barrier
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/charconv gcc-11.4.0/libstdc++-v3/include/std/charconv
*** gcc-11.3.0/libstdc++-v3/include/std/charconv	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/charconv	Mon May 29 08:46:33 2023
***************
*** 39,45 ****
  
  #include <type_traits>
  #include <bit>			// for __bit_width
- #include <cctype>		// for isdigit
  #include <bits/charconv.h>	// for __to_chars_len, __to_chars_10_impl
  #include <bits/error_constants.h> // for std::errc
  #include <ext/numeric_traits.h>
--- 39,44 ----
*************** namespace __detail
*** 466,472 ****
        return true;
      }
  
!   constexpr unsigned char
    __from_chars_alpha_to_num(char __c)
    {
      switch (__c)
--- 465,471 ----
        return true;
      }
  
!   constexpr char
    __from_chars_alpha_to_num(char __c)
    {
      switch (__c)
*************** namespace __detail
*** 550,559 ****
      case 'Z':
        return 35;
      }
!     return __gnu_cxx::__int_traits<unsigned char>::__max;
    }
  
!   /// std::from_chars implementation for integers in bases 11 to 26.
    template<typename _Tp>
      bool
      __from_chars_alnum(const char*& __first, const char* __last, _Tp& __val,
--- 549,558 ----
      case 'Z':
        return 35;
      }
!     return 127;
    }
  
!   /// std::from_chars implementation for integers in bases 11 to 36.
    template<typename _Tp>
      bool
      __from_chars_alnum(const char*& __first, const char* __last, _Tp& __val,
*************** namespace __detail
*** 562,569 ****
        bool __valid = true;
        while (__first != __last)
  	{
! 	  unsigned char __c = *__first;
! 	  if (std::isdigit(__c))
  	    __c -= '0';
  	  else
  	    {
--- 561,568 ----
        bool __valid = true;
        while (__first != __last)
  	{
! 	  char __c = *__first;
! 	  if ('0' <= __c && __c <= '9') // isdigit
  	    __c -= '0';
  	  else
  	    {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/chrono gcc-11.4.0/libstdc++-v3/include/std/chrono
*** gcc-11.3.0/libstdc++-v3/include/std/chrono	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/chrono	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 3083,3088 ****
--- 3083,3111 ----
  	  return __width;
  	}
  
+ 	constexpr
+ 	hh_mm_ss(_Duration __d, bool __is_neg)
+ 	: _M_is_neg(__is_neg),
+ 	  _M_h (duration_cast<chrono::hours>(__d)),
+ 	  _M_m (duration_cast<chrono::minutes>(__d - hours())),
+ 	  _M_s (duration_cast<chrono::seconds>(__d - hours() - minutes()))
+ 	{
+ 	  auto __ss = __d - hours() - minutes() - seconds();
+ 	  if constexpr (treat_as_floating_point_v<typename precision::rep>)
+ 	    _M_ss = __ss;
+ 	  else
+ 	    _M_ss = duration_cast<precision>(__ss);
+ 	}
+ 
+ 	static constexpr _Duration
+ 	_S_abs(_Duration __d)
+ 	{
+ 	  if constexpr (numeric_limits<typename _Duration::rep>::is_signed)
+ 	    return chrono::abs(__d);
+ 	  else
+ 	    return __d;
+ 	}
+ 
        public:
  	static constexpr unsigned fractional_width = {_S_fractional_width()};
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 3097,3114 ****
  	{ }
  
  	constexpr explicit
! 	hh_mm_ss(_Duration __d) noexcept
! 	: _M_is_neg (__d < _Duration::zero()),
! 	  _M_h (duration_cast<chrono::hours>(abs(__d))),
! 	  _M_m (duration_cast<chrono::minutes>(abs(__d) - hours())),
! 	  _M_s (duration_cast<chrono::seconds>(abs(__d) - hours() - minutes()))
! 	{
! 	  if constexpr (treat_as_floating_point_v<typename precision::rep>)
! 	    _M_ss = abs(__d) - hours() - minutes() - seconds();
! 	  else
! 	    _M_ss = duration_cast<precision>(abs(__d) - hours()
! 					     - minutes() - seconds());
! 	}
  
  	constexpr bool
  	is_negative() const noexcept
--- 3120,3128 ----
  	{ }
  
  	constexpr explicit
! 	hh_mm_ss(_Duration __d)
! 	: hh_mm_ss(_S_abs(__d), __d < _Duration::zero())
! 	{ }
  
  	constexpr bool
  	is_negative() const noexcept
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/future gcc-11.4.0/libstdc++-v3/include/std/future
*** gcc-11.3.0/libstdc++-v3/include/std/future	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/future	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 139,172 ****
      deferred = 2
    };
  
!   constexpr launch operator&(launch __x, launch __y)
    {
      return static_cast<launch>(
  	static_cast<int>(__x) & static_cast<int>(__y));
    }
  
!   constexpr launch operator|(launch __x, launch __y)
    {
      return static_cast<launch>(
  	static_cast<int>(__x) | static_cast<int>(__y));
    }
  
!   constexpr launch operator^(launch __x, launch __y)
    {
      return static_cast<launch>(
  	static_cast<int>(__x) ^ static_cast<int>(__y));
    }
  
!   constexpr launch operator~(launch __x)
    { return static_cast<launch>(~static_cast<int>(__x)); }
  
!   inline launch& operator&=(launch& __x, launch __y)
    { return __x = __x & __y; }
  
!   inline launch& operator|=(launch& __x, launch __y)
    { return __x = __x | __y; }
  
!   inline launch& operator^=(launch& __x, launch __y)
    { return __x = __x ^ __y; }
  
    /// Status code for futures
--- 139,172 ----
      deferred = 2
    };
  
!   constexpr launch operator&(launch __x, launch __y) noexcept
    {
      return static_cast<launch>(
  	static_cast<int>(__x) & static_cast<int>(__y));
    }
  
!   constexpr launch operator|(launch __x, launch __y) noexcept
    {
      return static_cast<launch>(
  	static_cast<int>(__x) | static_cast<int>(__y));
    }
  
!   constexpr launch operator^(launch __x, launch __y) noexcept
    {
      return static_cast<launch>(
  	static_cast<int>(__x) ^ static_cast<int>(__y));
    }
  
!   constexpr launch operator~(launch __x) noexcept
    { return static_cast<launch>(~static_cast<int>(__x)); }
  
!   inline launch& operator&=(launch& __x, launch __y) noexcept
    { return __x = __x & __y; }
  
!   inline launch& operator|=(launch& __x, launch __y) noexcept
    { return __x = __x | __y; }
  
!   inline launch& operator^=(launch& __x, launch __y) noexcept
    { return __x = __x ^ __y; }
  
    /// Status code for futures
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1621,1626 ****
--- 1621,1637 ----
        }
      };
  
+   // _GLIBCXX_RESOLVE_LIB_DEFECTS
+   // 3117. Missing packaged_task deduction guides
+ #if __cpp_deduction_guides >= 201606
+   template<typename _Res, typename... _ArgTypes>
+     packaged_task(_Res(*)(_ArgTypes...)) -> packaged_task<_Res(_ArgTypes...)>;
+ 
+   template<typename _Fun, typename _Signature = typename
+ 	   __function_guide_helper<decltype(&_Fun::operator())>::type>
+     packaged_task(_Fun) -> packaged_task<_Signature>;
+ #endif
+ 
    /// swap
    template<typename _Res, typename... _ArgTypes>
      inline void
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1647,1653 ****
  	explicit
  	_Deferred_state(_Args&&... __args)
  	: _M_result(new _Result<_Res>()),
! 	  _M_fn{{std::forward<_Args>(__args)...}}
  	{ }
  
      private:
--- 1658,1664 ----
  	explicit
  	_Deferred_state(_Args&&... __args)
  	: _M_result(new _Result<_Res>()),
! 	  _M_fn(std::forward<_Args>(__args)...)
  	{ }
  
      private:
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1714,1720 ****
  	explicit
  	_Async_state_impl(_Args&&... __args)
  	: _M_result(new _Result<_Res>()),
! 	  _M_fn{{std::forward<_Args>(__args)...}}
  	{
  	  _M_thread = std::thread{&_Async_state_impl::_M_run, this};
  	}
--- 1725,1731 ----
  	explicit
  	_Async_state_impl(_Args&&... __args)
  	: _M_result(new _Result<_Res>()),
! 	  _M_fn(std::forward<_Args>(__args)...)
  	{
  	  _M_thread = std::thread{&_Async_state_impl::_M_run, this};
  	}
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/iosfwd gcc-11.4.0/libstdc++-v3/include/std/iosfwd
*** gcc-11.3.0/libstdc++-v3/include/std/iosfwd	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/iosfwd	Mon May 29 08:46:33 2023
*************** _GLIBCXX_END_NAMESPACE_CXX11
*** 207,212 ****
--- 207,230 ----
    /// Class for @c wchar_t mixed input and output file streams.
    typedef basic_fstream<wchar_t> 	wfstream;
  #endif
+ 
+ #if __cplusplus >= 202002L && _GLIBCXX_USE_CXX11_ABI
+   template<typename _CharT, typename _Traits = char_traits<_CharT>,
+            typename _Allocator = allocator<_CharT>>
+     class basic_syncbuf;
+   template<typename _CharT, typename _Traits = char_traits<_CharT>,
+            typename _Allocator = allocator<_CharT>>
+     class basic_osyncstream;
+ 
+   using syncbuf = basic_syncbuf<char>;
+   using osyncstream = basic_osyncstream<char>;
+ 
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using wsyncbuf = basic_syncbuf<wchar_t>;
+   using wosyncstream = basic_osyncstream<wchar_t>;
+ #endif
+ #endif // C++20 && CXX11_ABI
+ 
    /** @}  */
  
  _GLIBCXX_END_NAMESPACE_VERSION
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/istream gcc-11.4.0/libstdc++-v3/include/std/istream
*** gcc-11.3.0/libstdc++-v3/include/std/istream	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/istream	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 784,790 ****
     *  - if `width()` is greater than zero, `n` is `min(width(), n)`
     *  - otherwise `n` is the number of elements of the array
     *  - (before C++20 the pointer is assumed to point to an array of
!    *  - the largest possible size for an array of `char_type`).
     *
     *  Characters are extracted and stored until one of the following happens:
     *  - `n - 1` characters are stored
--- 784,790 ----
     *  - if `width()` is greater than zero, `n` is `min(width(), n)`
     *  - otherwise `n` is the number of elements of the array
     *  - (before C++20 the pointer is assumed to point to an array of
!    *    the largest possible size for an array of `char_type`).
     *
     *  Characters are extracted and stored until one of the following happens:
     *  - `n - 1` characters are stored
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 802,820 ****
      inline basic_istream<_CharT, _Traits>&
      operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      {
        size_t __n = __builtin_object_size(__s, 0);
!       if (__builtin_expect(__n < sizeof(_CharT), false))
  	{
  	  // There is not even space for the required null terminator.
  	  __glibcxx_assert(__n >= sizeof(_CharT));
  	  __in.width(0);
  	  __in.setstate(ios_base::failbit);
  	}
        else
  	{
! 	  if (__n == (size_t)-1)
! 	    __n = __gnu_cxx::__numeric_traits<streamsize>::__max;
! 	  std::__istream_extract(__in, __s, __n / sizeof(_CharT));
  	}
        return __in;
      }
--- 802,841 ----
      inline basic_istream<_CharT, _Traits>&
      operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      {
+ #ifdef __OPTIMIZE__
+       // Function inlining might make the buffer size known, allowing us to
+       // prevent overflow.
        size_t __n = __builtin_object_size(__s, 0);
!       if (__n < sizeof(_CharT))
  	{
  	  // There is not even space for the required null terminator.
  	  __glibcxx_assert(__n >= sizeof(_CharT));
+ 	  // No point calling __istream_extract, but still need to reset width.
  	  __in.width(0);
  	  __in.setstate(ios_base::failbit);
  	}
+       else if (__n != (size_t)-1)
+ 	{
+ 	  __n /= sizeof(_CharT);
+ 	  streamsize __w = __in.width();
+ 	  std::__istream_extract(__in, __s, __n);
+ 	  if (__in.good() && (__w <= 0 || __n < __w))
+ 	    {
+ 	      // Stopped extracting early to avoid overflowing the buffer,
+ 	      // but might have stopped anyway (and set eofbit) if at EOF.
+ 	      const typename _Traits::int_type __c = __in.rdbuf()->sgetc();
+ 	      const bool __eof = _Traits::eq_int_type(__c, _Traits::eof());
+ 	      if (__builtin_expect(__eof, true)) // Assume EOF, not overflow.
+ 		__in.setstate(ios_base::eofbit);
+ 	    }
+ 	}
        else
+ #endif // __OPTIMIZE
  	{
! 	  // Buffer size is unknown, have to assume it's huge.
! 	  streamsize __n = __gnu_cxx::__numeric_traits<streamsize>::__max;
! 	  __n /= sizeof(_CharT);
! 	  std::__istream_extract(__in, __s, __n);
  	}
        return __in;
      }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/numeric gcc-11.4.0/libstdc++-v3/include/std/numeric
*** gcc-11.3.0/libstdc++-v3/include/std/numeric	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/numeric	Mon May 29 08:46:33 2023
***************
*** 68,73 ****
--- 68,74 ----
  #if __cplusplus >= 201402L
  # include <type_traits>
  # include <bit>
+ # include <ext/numeric_traits.h>
  #endif
  
  #if __cplusplus >= 201703L
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 93,111 ****
  #if __cplusplus >= 201402L
  namespace __detail
  {
!   // std::abs is not constexpr, doesn't support unsigned integers,
!   // and std::abs(std::numeric_limits<T>::min()) is undefined.
!   template<typename _Up, typename _Tp>
!     constexpr _Up
!     __absu(_Tp __val)
      {
!       static_assert(is_unsigned<_Up>::value, "result type must be unsigned");
!       static_assert(sizeof(_Up) >= sizeof(_Tp),
  	  "result type must be at least as wide as the input type");
!       return __val < 0 ? -(_Up)__val : (_Up)__val;
      }
  
!   template<typename _Up> void __absu(bool) = delete;
  
    // GCD implementation, using Stein's algorithm
    template<typename _Tp>
--- 94,118 ----
  #if __cplusplus >= 201402L
  namespace __detail
  {
!   // Like std::abs, but supports unsigned types and returns the specified type,
!   // so |std::numeric_limits<_Tp>::min()| is OK if representable in _Res.
!   template<typename _Res, typename _Tp>
!     constexpr _Res
!     __abs_r(_Tp __val)
      {
!       static_assert(sizeof(_Res) >= sizeof(_Tp),
  	  "result type must be at least as wide as the input type");
! 
!       if (__val >= 0)
! 	return __val;
! #if defined _GLIBCXX_ASSERTIONS && defined _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED
!       if (!__builtin_is_constant_evaluated()) // overflow already detected in constexpr
! 	__glibcxx_assert(__val != __gnu_cxx::__int_traits<_Res>::__min);
! #endif
!       return -static_cast<_Res>(__val);
      }
  
!   template<typename> void __abs_r(bool) = delete;
  
    // GCD implementation, using Stein's algorithm
    template<typename _Tp>
*************** namespace __detail
*** 142,157 ****
  	  __n >>= std::__countr_zero(__n);
  	}
      }
- 
-   // LCM implementation
-   template<typename _Tp>
-     constexpr _Tp
-     __lcm(_Tp __m, _Tp __n)
-     {
-       return (__m != 0 && __n != 0)
- 	? (__m / __detail::__gcd(__m, __n)) * __n
- 	: 0;
-     }
  } // namespace __detail
  
  #if __cplusplus >= 201703L
--- 149,154 ----
*************** namespace __detail
*** 166,178 ****
      constexpr common_type_t<_Mn, _Nn>
      gcd(_Mn __m, _Nn __n) noexcept
      {
!       static_assert(is_integral_v<_Mn>, "std::gcd arguments must be integers");
!       static_assert(is_integral_v<_Nn>, "std::gcd arguments must be integers");
!       static_assert(_Mn(2) != _Mn(1), "std::gcd arguments must not be bool");
!       static_assert(_Nn(2) != _Nn(1), "std::gcd arguments must not be bool");
!       using _Up = make_unsigned_t<common_type_t<_Mn, _Nn>>;
!       return __detail::__gcd(__detail::__absu<_Up>(__m),
! 			     __detail::__absu<_Up>(__n));
      }
  
    /// Least common multiple
--- 163,176 ----
      constexpr common_type_t<_Mn, _Nn>
      gcd(_Mn __m, _Nn __n) noexcept
      {
!       static_assert(is_integral_v<_Mn> && is_integral_v<_Nn>,
! 		    "std::gcd arguments must be integers");
!       static_assert(_Mn(2) == 2 && _Nn(2) == 2,
! 		    "std::gcd arguments must not be bool");
!       using _Ct = common_type_t<_Mn, _Nn>;
!       const _Ct __m2 = __detail::__abs_r<_Ct>(__m);
!       const _Ct __n2 = __detail::__abs_r<_Ct>(__n);
!       return __detail::__gcd<make_unsigned_t<_Ct>>(__m2, __n2);
      }
  
    /// Least common multiple
*************** namespace __detail
*** 180,192 ****
      constexpr common_type_t<_Mn, _Nn>
      lcm(_Mn __m, _Nn __n) noexcept
      {
!       static_assert(is_integral_v<_Mn>, "std::lcm arguments must be integers");
!       static_assert(is_integral_v<_Nn>, "std::lcm arguments must be integers");
!       static_assert(_Mn(2) == 2, "std::lcm arguments must not be bool");
!       static_assert(_Nn(2) == 2, "std::lcm arguments must not be bool");
!       using _Up = make_unsigned_t<common_type_t<_Mn, _Nn>>;
!       return __detail::__lcm(__detail::__absu<_Up>(__m),
! 			     __detail::__absu<_Up>(__n));
      }
  
  #endif // C++17
--- 178,203 ----
      constexpr common_type_t<_Mn, _Nn>
      lcm(_Mn __m, _Nn __n) noexcept
      {
!       static_assert(is_integral_v<_Mn> && is_integral_v<_Nn>,
! 		    "std::lcm arguments must be integers");
!       static_assert(_Mn(2) == 2 && _Nn(2) == 2,
! 		    "std::lcm arguments must not be bool");
!       using _Ct = common_type_t<_Mn, _Nn>;
!       const _Ct __m2 = __detail::__abs_r<_Ct>(__m);
!       const _Ct __n2 = __detail::__abs_r<_Ct>(__n);
!       if (__m2 == 0 || __n2 == 0)
! 	return 0;
!       _Ct __r = __m2 / __detail::__gcd<make_unsigned_t<_Ct>>(__m2, __n2);
! 
! #if defined _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED
!       if constexpr (is_signed_v<_Ct>)
! 	if (__builtin_is_constant_evaluated())
! 	  return __r * __n2; // constant evaluation can detect overflow here.
! #endif
! 
!       bool __overflow = __builtin_mul_overflow(__r, __n2, &__r);
!       __glibcxx_assert(!__overflow);
!       return __r;
      }
  
  #endif // C++17
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/ranges gcc-11.4.0/libstdc++-v3/include/std/ranges
*** gcc-11.3.0/libstdc++-v3/include/std/ranges	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/ranges	Mon May 29 08:46:33 2023
*************** namespace ranges
*** 200,206 ****
      class single_view : public view_interface<single_view<_Tp>>
      {
      public:
!       single_view() requires default_initializable<_Tp> = default;
  
        constexpr explicit
        single_view(const _Tp& __t)
--- 200,206 ----
      class single_view : public view_interface<single_view<_Tp>>
      {
      public:
!       single_view() = default;
  
        constexpr explicit
        single_view(const _Tp& __t)
*************** namespace views::__adaptor
*** 1463,1471 ****
        _Vp _M_base = _Vp();
  
      public:
!       filter_view() requires (default_initializable<_Vp>
! 			      && default_initializable<_Pred>)
! 	= default;
  
        constexpr
        filter_view(_Vp __base, _Pred __pred)
--- 1463,1469 ----
        _Vp _M_base = _Vp();
  
      public:
!       filter_view() requires default_initializable<_Vp> = default;
  
        constexpr
        filter_view(_Vp __base, _Pred __pred)
*************** namespace views::__adaptor
*** 1829,1837 ****
        _Vp _M_base = _Vp();
  
      public:
!       transform_view() requires (default_initializable<_Vp>
! 				 && default_initializable<_Fp>)
! 	= default;
  
        constexpr
        transform_view(_Vp __base, _Fp __fun)
--- 1827,1833 ----
        _Vp _M_base = _Vp();
  
      public:
!       transform_view() requires default_initializable<_Vp> = default;
  
        constexpr
        transform_view(_Vp __base, _Fp __fun)
*************** namespace views::__adaptor
*** 2150,2158 ****
        _Vp _M_base = _Vp();
  
      public:
!       take_while_view() requires (default_initializable<_Vp>
! 				  && default_initializable<_Pred>)
! 	= default;
  
        constexpr
        take_while_view(_Vp base, _Pred __pred)
--- 2146,2152 ----
        _Vp _M_base = _Vp();
  
      public:
!       take_while_view() requires default_initializable<_Vp> = default;
  
        constexpr
        take_while_view(_Vp base, _Pred __pred)
*************** namespace views::__adaptor
*** 2356,2364 ****
        _Vp _M_base = _Vp();
  
      public:
!       drop_while_view() requires (default_initializable<_Vp>
! 				  && default_initializable<_Pred>)
! 	= default;
  
        constexpr
        drop_while_view(_Vp __base, _Pred __pred)
--- 2350,2356 ----
        _Vp _M_base = _Vp();
  
      public:
!       drop_while_view() requires default_initializable<_Vp> = default;
  
        constexpr
        drop_while_view(_Vp __base, _Pred __pred)
*************** namespace views::__adaptor
*** 2916,2922 ****
  	    { return _InnerIter<_Const>{_M_i}; }
  
  	    constexpr default_sentinel_t
! 	    end() const
  	    { return default_sentinel; }
  	  };
  
--- 2908,2914 ----
  	    { return _InnerIter<_Const>{_M_i}; }
  
  	    constexpr default_sentinel_t
! 	    end() const noexcept
  	    { return default_sentinel; }
  	  };
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/source_location gcc-11.4.0/libstdc++-v3/include/std/source_location
*** gcc-11.3.0/libstdc++-v3/include/std/source_location	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/source_location	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 43,54 ****
    {
    private:
      using uint_least32_t = __UINT_LEAST32_TYPE__;
  
    public:
  
      // [support.srcloc.cons], creation
      static consteval source_location
!     current(const void* __p = __builtin_source_location()) noexcept
      {
        source_location __ret;
        __ret._M_impl = static_cast <const __impl*>(__p);
--- 43,62 ----
    {
    private:
      using uint_least32_t = __UINT_LEAST32_TYPE__;
+     struct __impl
+     {
+       const char* _M_file_name;
+       const char* _M_function_name;
+       unsigned _M_line;
+       unsigned _M_column;
+     };
+     using __builtin_ret_type = decltype(__builtin_source_location());
  
    public:
  
      // [support.srcloc.cons], creation
      static consteval source_location
!     current(__builtin_ret_type __p = __builtin_source_location()) noexcept
      {
        source_location __ret;
        __ret._M_impl = static_cast <const __impl*>(__p);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 75,88 ****
      { return _M_impl ? _M_impl->_M_function_name : ""; }
  
    private:
-     struct __impl
-     {
-       const char* _M_file_name;
-       const char* _M_function_name;
-       unsigned _M_line;
-       unsigned _M_column;
-     };
- 
      const __impl* _M_impl = nullptr;
    };
  
--- 83,88 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/span gcc-11.4.0/libstdc++-v3/include/std/span
*** gcc-11.3.0/libstdc++-v3/include/std/span	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/span	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 201,211 ****
  	{ }
  
        template<typename _Range>
! 	requires ranges::contiguous_range<_Range> && ranges::sized_range<_Range>
! 	  && (ranges::borrowed_range<_Range> || is_const_v<element_type>)
! 	  && (!__detail::__is_std_span<remove_cvref_t<_Range>>::value)
  	  && (!__detail::__is_std_array<remove_cvref_t<_Range>>::value)
  	  && (!is_array_v<remove_cvref_t<_Range>>)
  	  && __is_compatible_ref<ranges::range_reference_t<_Range>>::value
  	constexpr explicit(extent != dynamic_extent)
  	span(_Range&& __range)
--- 201,211 ----
  	{ }
  
        template<typename _Range>
! 	requires (!__detail::__is_std_span<remove_cvref_t<_Range>>::value)
  	  && (!__detail::__is_std_array<remove_cvref_t<_Range>>::value)
  	  && (!is_array_v<remove_cvref_t<_Range>>)
+ 	  && ranges::contiguous_range<_Range> && ranges::sized_range<_Range>
+ 	  && (ranges::borrowed_range<_Range> || is_const_v<element_type>)
  	  && __is_compatible_ref<ranges::range_reference_t<_Range>>::value
  	constexpr explicit(extent != dynamic_extent)
  	span(_Range&& __range)
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/sstream gcc-11.4.0/libstdc++-v3/include/std/sstream
*** gcc-11.3.0/libstdc++-v3/include/std/sstream	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/sstream	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 425,430 ****
--- 425,431 ----
        // This might not be the same character as _M_string.end() because
        // basic_stringbuf::overflow might have written to unused capacity
        // in _M_string without updating its length.
+       __attribute__((__always_inline__))
        char_type*
        _M_high_mark() const _GLIBCXX_NOEXCEPT
        {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/string_view gcc-11.4.0/libstdc++-v3/include/std/string_view
*** gcc-11.3.0/libstdc++-v3/include/std/string_view	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/string_view	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 160,166 ****
  	      })
  	  && (!requires { typename _DRange::traits_type; }
  	      || is_same_v<typename _DRange::traits_type, _Traits>)
! 	constexpr
  	basic_string_view(_Range&& __r)
  	noexcept(noexcept(ranges::size(__r)) && noexcept(ranges::data(__r)))
  	: _M_len(ranges::size(__r)), _M_str(ranges::data(__r))
--- 160,166 ----
  	      })
  	  && (!requires { typename _DRange::traits_type; }
  	      || is_same_v<typename _DRange::traits_type, _Traits>)
! 	constexpr explicit
  	basic_string_view(_Range&& __r)
  	noexcept(noexcept(ranges::size(__r)) && noexcept(ranges::data(__r)))
  	: _M_len(ranges::size(__r)), _M_str(ranges::data(__r))
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/syncstream gcc-11.4.0/libstdc++-v3/include/std/syncstream
*** gcc-11.3.0/libstdc++-v3/include/std/syncstream	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/syncstream	Mon May 29 08:46:33 2023
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 50,57 ****
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   template<typename _CharT, typename _Traits = char_traits<_CharT>,
! 	    typename _Alloc = allocator<_CharT>>
      class basic_syncbuf : public __syncbuf_base<_CharT, _Traits>
      {
      public:
--- 50,56 ----
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
!   template<typename _CharT, typename _Traits, typename _Alloc>
      class basic_syncbuf : public __syncbuf_base<_CharT, _Traits>
      {
      public:
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 241,248 ****
        __mutex _M_mtx;
      };
  
!   template <typename _CharT, typename _Traits = char_traits<_CharT>,
! 	    typename _Alloc = allocator<_CharT>>
      class basic_osyncstream : public basic_ostream<_CharT, _Traits>
      {
        using __ostream_type = basic_ostream<_CharT, _Traits>;
--- 240,246 ----
        __mutex _M_mtx;
      };
  
!   template <typename _CharT, typename _Traits, typename _Alloc>
      class basic_osyncstream : public basic_ostream<_CharT, _Traits>
      {
        using __ostream_type = basic_ostream<_CharT, _Traits>;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/tuple gcc-11.4.0/libstdc++-v3/include/std/tuple
*** gcc-11.3.0/libstdc++-v3/include/std/tuple	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/tuple	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 553,562 ****
    template<bool, typename... _Types>
      struct _TupleConstraints
      {
-       template<typename _Tp, typename _Up> // Workaround for PR 96592
- 	using is_constructible
- 	  = __bool_constant<__is_constructible(_Tp, _Up)>;
- 
        // Constraint for a non-explicit constructor.
        // True iff each Ti in _Types... can be constructed from Ui in _UTypes...
        // and every Ui is implicitly convertible to Ti.
--- 553,558 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/type_traits gcc-11.4.0/libstdc++-v3/include/std/type_traits
*** gcc-11.3.0/libstdc++-v3/include/std/type_traits	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/type_traits	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1492,1503 ****
      };
  #pragma GCC diagnostic pop
  
-   // is_nothrow_convertible for C++11
-   template<typename _From, typename _To>
-     struct __is_nothrow_convertible
-     : public __is_nt_convertible_helper<_From, _To>::type
-     { };
- 
  #if __cplusplus > 201703L
  #define __cpp_lib_is_nothrow_convertible 201806L
    /// is_nothrow_convertible
--- 1492,1497 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2881,2887 ****
    // The primary template is used for invalid INVOKE expressions.
    template<typename _Result, typename _Ret,
  	   bool = is_void<_Ret>::value, typename = void>
!     struct __is_invocable_impl : false_type { };
  
    // Used for valid INVOKE and INVOKE<void> expressions.
    template<typename _Result, typename _Ret>
--- 2875,2885 ----
    // The primary template is used for invalid INVOKE expressions.
    template<typename _Result, typename _Ret,
  	   bool = is_void<_Ret>::value, typename = void>
!     struct __is_invocable_impl
!     : false_type
!     {
!       using __nothrow_type = false_type; // For is_nothrow_invocable_r
!     };
  
    // Used for valid INVOKE and INVOKE<void> expressions.
    template<typename _Result, typename _Ret>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2889,2895 ****
  			       /* is_void<_Ret> = */ true,
  			       __void_t<typename _Result::type>>
      : true_type
!     { };
  
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
--- 2887,2895 ----
  			       /* is_void<_Ret> = */ true,
  			       __void_t<typename _Result::type>>
      : true_type
!     {
!       using __nothrow_type = true_type; // For is_nothrow_invocable_r
!     };
  
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wctor-dtor-privacy"
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2901,2923 ****
      {
      private:
        // The type of the INVOKE expression.
!       // Unlike declval, this doesn't add_rvalue_reference.
!       static typename _Result::type _S_get();
  
        template<typename _Tp>
! 	static void _S_conv(_Tp);
  
        // This overload is viable if INVOKE(f, args...) can convert to _Tp.
!       template<typename _Tp, typename = decltype(_S_conv<_Tp>(_S_get()))>
! 	static true_type
  	_S_test(int);
  
!       template<typename _Tp>
  	static false_type
  	_S_test(...);
  
      public:
        using type = decltype(_S_test<_Ret>(1));
      };
  #pragma GCC diagnostic pop
  
--- 2901,2930 ----
      {
      private:
        // The type of the INVOKE expression.
!       // Unlike declval, this doesn't add_rvalue_reference, so it respects
!       // guaranteed copy elision.
!       static typename _Result::type _S_get() noexcept;
  
        template<typename _Tp>
! 	static void _S_conv(_Tp) noexcept;
  
        // This overload is viable if INVOKE(f, args...) can convert to _Tp.
!       template<typename _Tp, bool _Check_Noex = false,
! 	       typename = decltype(_S_conv<_Tp>(_S_get())),
! 	       bool _Noex = noexcept(_S_conv<_Tp>(_S_get()))>
! 	static __bool_constant<_Check_Noex ? _Noex : true>
  	_S_test(int);
  
!       template<typename _Tp, bool = false>
  	static false_type
  	_S_test(...);
  
      public:
+       // For is_invocable_r
        using type = decltype(_S_test<_Ret>(1));
+ 
+       // For is_nothrow_invocable_r
+       using __nothrow_type = decltype(_S_test<_Ret, true>(1));
      };
  #pragma GCC diagnostic pop
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 3048,3062 ****
      };
  
    /// @cond undocumented
-   template<typename _Result, typename _Ret, typename = void>
-     struct __is_nt_invocable_impl : false_type { };
- 
    template<typename _Result, typename _Ret>
!     struct __is_nt_invocable_impl<_Result, _Ret,
! 				  __void_t<typename _Result::type>>
!     : __or_<is_void<_Ret>,
! 	    __is_nothrow_convertible<typename _Result::type, _Ret>>
!     { };
    /// @endcond
  
    /// std::is_nothrow_invocable_r
--- 3055,3063 ----
      };
  
    /// @cond undocumented
    template<typename _Result, typename _Ret>
!     using __is_nt_invocable_impl
!       = typename __is_invocable_impl<_Result, _Ret>::__nothrow_type;
    /// @endcond
  
    /// std::is_nothrow_invocable_r
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/valarray gcc-11.4.0/libstdc++-v3/include/std/valarray
*** gcc-11.3.0/libstdc++-v3/include/std/valarray	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/valarray	Mon May 29 08:46:33 2023
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1076,1081 ****
--- 1076,1082 ----
        return _Expr<_Closure, _Tp>(_Closure(*this, func));
      }
  
+   /// @cond undocumented
  #define _DEFINE_VALARRAY_UNARY_OPERATOR(_Op, _Name)                     \
    template<typename _Tp>						\
      inline typename valarray<_Tp>::template _UnaryOp<_Name>::_Rt	\
*************** _DEFINE_BINARY_OPERATOR(<=, __less_equal
*** 1202,1207 ****
--- 1203,1209 ----
  _DEFINE_BINARY_OPERATOR(>=, __greater_equal)
  
  #undef _DEFINE_BINARY_OPERATOR
+   /// @endcond
  
  #if __cplusplus >= 201103L
    /**
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/variant gcc-11.4.0/libstdc++-v3/include/std/variant
*** gcc-11.3.0/libstdc++-v3/include/std/variant	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/variant	Mon May 29 08:46:33 2023
*************** namespace __variant
*** 435,447 ****
        ~_Variant_storage()
        { _M_reset(); }
  
-       void*
-       _M_storage() const noexcept
-       {
- 	return const_cast<void*>(static_cast<const void*>(
- 	    std::addressof(_M_u)));
-       }
- 
        constexpr bool
        _M_valid() const noexcept
        {
--- 435,440 ----
*************** namespace __variant
*** 473,485 ****
        void _M_reset() noexcept
        { _M_index = static_cast<__index_type>(variant_npos); }
  
-       void*
-       _M_storage() const noexcept
-       {
- 	return const_cast<void*>(static_cast<const void*>(
- 	    std::addressof(_M_u)));
-       }
- 
        constexpr bool
        _M_valid() const noexcept
        {
--- 466,471 ----
*************** namespace __variant
*** 804,814 ****
      : _FUN_type<_Tp, _Variant>
      { };
  
-   // Returns the raw storage for __v.
-   template<typename _Variant>
-     void* __get_storage(_Variant&& __v) noexcept
-     { return __v._M_storage(); }
- 
    template <typename _Maybe_variant_cookie, typename _Variant>
      struct _Extra_visit_slot_needed
      {
--- 790,795 ----
*************** namespace __variant
*** 1108,1126 ****
  	>;
      }
  
- } // namespace __variant
- } // namespace __detail
- 
    template<size_t _Np, typename _Variant, typename... _Args>
!     void __variant_construct_by_index(_Variant& __v, _Args&&... __args)
      {
-       __v._M_index = _Np;
        auto&& __storage = __detail::__variant::__get<_Np>(__v);
        ::new ((void*)std::addressof(__storage))
          remove_reference_t<decltype(__storage)>
  	  (std::forward<_Args>(__args)...);
      }
  
    template<typename _Tp, typename... _Types>
      constexpr bool
      holds_alternative(const variant<_Types...>& __v) noexcept
--- 1089,1109 ----
  	>;
      }
  
    template<size_t _Np, typename _Variant, typename... _Args>
!     inline void
!     __construct_by_index(_Variant& __v, _Args&&... __args)
      {
        auto&& __storage = __detail::__variant::__get<_Np>(__v);
        ::new ((void*)std::addressof(__storage))
          remove_reference_t<decltype(__storage)>
  	  (std::forward<_Args>(__args)...);
+       // Construction didn't throw, so can set the new index now:
+       __v._M_index = _Np;
      }
  
+ } // namespace __variant
+ } // namespace __detail
+ 
    template<typename _Tp, typename... _Types>
      constexpr bool
      holds_alternative(const variant<_Types...>& __v) noexcept
*************** namespace __variant
*** 1356,1363 ****
        template <typename... _UTypes, typename _Tp>
  	friend decltype(auto) __variant_cast(_Tp&&);
        template<size_t _Np, typename _Variant, typename... _Args>
! 	friend void __variant_construct_by_index(_Variant& __v,
! 						 _Args&&... __args);
  
        static_assert(sizeof...(_Types) > 0,
  		    "variant must have at least one alternative");
--- 1339,1347 ----
        template <typename... _UTypes, typename _Tp>
  	friend decltype(auto) __variant_cast(_Tp&&);
        template<size_t _Np, typename _Variant, typename... _Args>
! 	friend void
! 	__detail::__variant::__construct_by_index(_Variant& __v,
! 						  _Args&&... __args);
  
        static_assert(sizeof...(_Types) > 0,
  		    "variant must have at least one alternative");
*************** namespace __variant
*** 1488,1494 ****
  			    || !is_nothrow_move_constructible_v<_Tj>)
  		this->emplace<__index>(std::forward<_Tp>(__rhs));
  	      else
! 		operator=(variant(std::forward<_Tp>(__rhs)));
  	    }
  	  return *this;
  	}
--- 1472,1480 ----
  			    || !is_nothrow_move_constructible_v<_Tj>)
  		this->emplace<__index>(std::forward<_Tp>(__rhs));
  	      else
! 		// _GLIBCXX_RESOLVE_LIB_DEFECTS
! 		// 3585. converting assignment with immovable alternative
! 		this->emplace<__index>(_Tj(std::forward<_Tp>(__rhs)));
  	    }
  	  return *this;
  	}
*************** namespace __variant
*** 1521,1532 ****
  	  static_assert(_Np < sizeof...(_Types),
  			"The index must be in [0, number of alternatives)");
  	  using type = variant_alternative_t<_Np, variant>;
  	  // Provide the strong exception-safety guarantee when possible,
  	  // to avoid becoming valueless.
  	  if constexpr (is_nothrow_constructible_v<type, _Args...>)
  	    {
  	      this->_M_reset();
! 	      __variant_construct_by_index<_Np>(*this,
  		  std::forward<_Args>(__args)...);
  	    }
  	  else if constexpr (is_scalar_v<type>)
--- 1507,1519 ----
  	  static_assert(_Np < sizeof...(_Types),
  			"The index must be in [0, number of alternatives)");
  	  using type = variant_alternative_t<_Np, variant>;
+ 	  namespace __variant = std::__detail::__variant;
  	  // Provide the strong exception-safety guarantee when possible,
  	  // to avoid becoming valueless.
  	  if constexpr (is_nothrow_constructible_v<type, _Args...>)
  	    {
  	      this->_M_reset();
! 	      __variant::__construct_by_index<_Np>(*this,
  		  std::forward<_Args>(__args)...);
  	    }
  	  else if constexpr (is_scalar_v<type>)
*************** namespace __variant
*** 1535,1543 ****
  	      const type __tmp(std::forward<_Args>(__args)...);
  	      // But these steps won't throw:
  	      this->_M_reset();
! 	      __variant_construct_by_index<_Np>(*this, __tmp);
  	    }
! 	  else if constexpr (__detail::__variant::_Never_valueless_alt<type>()
  	      && _Traits::_S_move_assign)
  	    {
  	      // This construction might throw:
--- 1522,1530 ----
  	      const type __tmp(std::forward<_Args>(__args)...);
  	      // But these steps won't throw:
  	      this->_M_reset();
! 	      __variant::__construct_by_index<_Np>(*this, __tmp);
  	    }
! 	  else if constexpr (__variant::_Never_valueless_alt<type>()
  	      && _Traits::_S_move_assign)
  	    {
  	      // This construction might throw:
*************** namespace __variant
*** 1551,1567 ****
  	      // This case only provides the basic exception-safety guarantee,
  	      // i.e. the variant can become valueless.
  	      this->_M_reset();
! 	      __try
! 		{
! 		  __variant_construct_by_index<_Np>(*this,
! 		    std::forward<_Args>(__args)...);
! 		}
! 	      __catch (...)
! 		{
! 		  using __index_type = decltype(this->_M_index);
! 		  this->_M_index = static_cast<__index_type>(variant_npos);
! 		  __throw_exception_again;
! 		}
  	    }
  	  return std::get<_Np>(*this);
  	}
--- 1538,1545 ----
  	      // This case only provides the basic exception-safety guarantee,
  	      // i.e. the variant can become valueless.
  	      this->_M_reset();
! 	      __variant::__construct_by_index<_Np>(*this,
! 		std::forward<_Args>(__args)...);
  	    }
  	  return std::get<_Np>(*this);
  	}
*************** namespace __variant
*** 1575,1580 ****
--- 1553,1559 ----
  	  static_assert(_Np < sizeof...(_Types),
  			"The index must be in [0, number of alternatives)");
  	  using type = variant_alternative_t<_Np, variant>;
+ 	  namespace __variant = std::__detail::__variant;
  	  // Provide the strong exception-safety guarantee when possible,
  	  // to avoid becoming valueless.
  	  if constexpr (is_nothrow_constructible_v<type,
*************** namespace __variant
*** 1582,1591 ****
  						   _Args...>)
  	    {
  	      this->_M_reset();
! 	      __variant_construct_by_index<_Np>(*this, __il,
  		  std::forward<_Args>(__args)...);
  	    }
! 	  else if constexpr (__detail::__variant::_Never_valueless_alt<type>()
  	      && _Traits::_S_move_assign)
  	    {
  	      // This construction might throw:
--- 1561,1570 ----
  						   _Args...>)
  	    {
  	      this->_M_reset();
! 	      __variant::__construct_by_index<_Np>(*this, __il,
  		  std::forward<_Args>(__args)...);
  	    }
! 	  else if constexpr (__variant::_Never_valueless_alt<type>()
  	      && _Traits::_S_move_assign)
  	    {
  	      // This construction might throw:
*************** namespace __variant
*** 1599,1615 ****
  	      // This case only provides the basic exception-safety guarantee,
  	      // i.e. the variant can become valueless.
  	      this->_M_reset();
! 	      __try
! 		{
! 		  __variant_construct_by_index<_Np>(*this, __il,
! 		    std::forward<_Args>(__args)...);
! 		}
! 	      __catch (...)
! 		{
! 		  using __index_type = decltype(this->_M_index);
! 		  this->_M_index = static_cast<__index_type>(variant_npos);
! 		  __throw_exception_again;
! 		}
  	    }
  	  return std::get<_Np>(*this);
  	}
--- 1578,1585 ----
  	      // This case only provides the basic exception-safety guarantee,
  	      // i.e. the variant can become valueless.
  	      this->_M_reset();
! 	      __variant::__construct_by_index<_Np>(*this, __il,
! 		std::forward<_Args>(__args)...);
  	    }
  	  return std::get<_Np>(*this);
  	}
*************** namespace __variant
*** 1685,1694 ****
  	friend constexpr decltype(auto)
  	__detail::__variant::__get(_Vp&& __v) noexcept;
  
-       template<typename _Vp>
- 	friend void*
- 	__detail::__variant::__get_storage(_Vp&& __v) noexcept;
- 
  #define _VARIANT_RELATION_FUNCTION_TEMPLATE(__OP) \
        template<typename... _Tp> \
  	friend constexpr bool \
--- 1655,1660 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/std/version gcc-11.4.0/libstdc++-v3/include/std/version
*** gcc-11.3.0/libstdc++-v3/include/std/version	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/include/std/version	Mon May 29 08:46:33 2023
***************
*** 177,182 ****
--- 177,185 ----
  #define __cpp_lib_atomic_float 201711L
  #define __cpp_lib_atomic_ref 201806L
  #define __cpp_lib_atomic_value_initialization 201911L
+ #if __has_builtin(__builtin_bit_cast)
+ # define __cpp_lib_bit_cast 201806L
+ #endif
  #define __cpp_lib_bitops 201907L
  #define __cpp_lib_bounded_array_traits 201902L
  // __cpp_lib_char8_t is defined in <bits/c++config.h>
***************
*** 209,217 ****
  # endif
  #endif
  #define __cpp_lib_bind_front 201907L
- #if __has_builtin(__builtin_bit_cast)
- # define __cpp_lib_bit_cast 201806L
- #endif
  // FIXME: #define __cpp_lib_execution 201902L
  #define __cpp_lib_integer_comparison_functions 202002L
  #define __cpp_lib_constexpr_algorithms 201806L
--- 212,217 ----
***************
*** 248,253 ****
--- 248,254 ----
  #define __cpp_lib_polymorphic_allocator 201902L
  #if __cpp_lib_concepts
  # define __cpp_lib_ranges 202106L
+ # define __cpp_lib_move_iterator_concept 202207L
  #endif
  #if __cpp_lib_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE
  # define __cpp_lib_semaphore 201907L
***************
*** 272,279 ****
--- 273,282 ----
  #if __cplusplus > 202002L
  // c++2b
  #define __cpp_lib_is_scoped_enum 202011L
+ #if _GLIBCXX_HOSTED
  #define __cpp_lib_string_contains 202011L
  #define __cpp_lib_to_underlying 202102L
+ #endif
  #endif // C++2b
  #endif // C++20
  #endif // C++17
diff -Nrcpad gcc-11.3.0/libstdc++-v3/python/libstdcxx/v6/printers.py gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/printers.py
*** gcc-11.3.0/libstdc++-v3/python/libstdcxx/v6/printers.py	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/printers.py	Mon May 29 08:46:33 2023
*************** class StdErrorCodePrinter:
*** 1626,1631 ****
--- 1626,1685 ----
          return '%s = {%s: %s}' % (self.typename, name, strval)
  
  
+ class StdSpanPrinter:
+     "Print a std::span"
+ 
+     class iterator(Iterator):
+         def __init__(self, begin, size):
+             self.count = 0
+             self.begin = begin
+             self.size = size
+ 
+         def __iter__ (self):
+             return self
+ 
+         def __next__ (self):
+             if self.count == self.size:
+                 raise StopIteration
+ 
+             count = self.count
+             self.count = self.count + 1
+             return '[%d]' % count, (self.begin + count).dereference()
+ 
+     def __init__(self, typename, val):
+         self.typename = strip_versioned_namespace(typename)
+         self.val = val
+         if val.type.template_argument(1) == gdb.parse_and_eval('static_cast<std::size_t>(-1)'):
+             self.size = val['_M_extent']['_M_extent_value']
+         else:
+             self.size = val.type.template_argument(1)
+ 
+     def to_string(self):
+         return '%s of length %d' % (self.typename, self.size)
+ 
+     def children(self):
+         return self.iterator(self.val['_M_ptr'], self.size)
+ 
+     def display_hint(self):
+         return 'array'
+ 
+ class StdInitializerListPrinter:
+     "Print a std::initializer_list"
+ 
+     def __init__(self, typename, val):
+         self.typename = typename
+         self.val = val
+         self.size = val['_M_len']
+ 
+     def to_string(self):
+         return '%s of length %d' % (self.typename, self.size)
+ 
+     def children(self):
+         return StdSpanPrinter.iterator(self.val['_M_array'], self.size)
+ 
+     def display_hint(self):
+         return 'array'
+ 
  # A "regular expression" printer which conforms to the
  # "SubPrettyPrinter" protocol from gdb.printing.
  class RxPrinter(object):
*************** class FilteringTypePrinter(object):
*** 1866,1872 ****
          self.enabled = True
  
      class _recognizer(object):
!         "The recognizer class for TemplateTypePrinter."
  
          def __init__(self, match, name):
              self.match = match
--- 1920,1926 ----
          self.enabled = True
  
      class _recognizer(object):
!         "The recognizer class for FilteringTypePrinter."
  
          def __init__(self, match, name):
              self.match = match
*************** def build_libstdcxx_dictionary ():
*** 2091,2096 ****
--- 2145,2154 ----
      libstdcxx_printer.add_version('std::tr1::', 'unordered_multiset',
                                    Tr1UnorderedSetPrinter)
  
+     libstdcxx_printer.add_version('std::', 'initializer_list',
+                                   StdInitializerListPrinter)
+ 
+ 
      # These are the C++11 printer registrations for -D_GLIBCXX_DEBUG cases.
      # The tr1 namespace containers do not have any debug equivalents,
      # so do not register printers for them.
*************** def build_libstdcxx_dictionary ():
*** 2138,2143 ****
--- 2196,2202 ----
      libstdcxx_printer.add_version('std::', 'partial_ordering', StdCmpCatPrinter)
      libstdcxx_printer.add_version('std::', 'weak_ordering', StdCmpCatPrinter)
      libstdcxx_printer.add_version('std::', 'strong_ordering', StdCmpCatPrinter)
+     libstdcxx_printer.add_version('std::', 'span', StdSpanPrinter)
  
      # Extensions.
      libstdcxx_printer.add_version('__gnu_cxx::', 'slist', StdSlistPrinter)
diff -Nrcpad gcc-11.3.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py
*** gcc-11.3.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py	Mon May 29 08:46:33 2023
*************** class SharedPtrUseCountWorker(gdb.xmetho
*** 730,736 ****
      "Implements std::shared_ptr<T>::use_count()"
  
      def __init__(self, elem_type):
!         SharedPtrUseCountWorker.__init__(self, elem_type)
  
      def get_arg_types(self):
          return None
--- 730,736 ----
      "Implements std::shared_ptr<T>::use_count()"
  
      def __init__(self, elem_type):
!         pass
  
      def get_arg_types(self):
          return None
*************** class SharedPtrUseCountWorker(gdb.xmetho
*** 738,743 ****
--- 738,746 ----
      def get_result_type(self, obj):
          return gdb.lookup_type('long')
  
+     def _supports(self, method_name):
+         return True
+ 
      def __call__(self, obj):
          refcounts = obj['_M_refcount']['_M_pi']
          return refcounts['_M_use_count'] if refcounts else 0
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/Makefile.am gcc-11.4.0/libstdc++-v3/src/Makefile.am
*** gcc-11.3.0/libstdc++-v3/src/Makefile.am	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/Makefile.am	Mon May 29 08:46:33 2023
*************** CXXLINK = \
*** 267,273 ****
  	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
  	--mode=link $(CXX) \
  	$(VTV_CXXLINKFLAGS) \
! 	$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
  
  # Symbol versioning for shared libraries.
  if ENABLE_SYMVERS
--- 267,275 ----
  	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
  	--mode=link $(CXX) \
  	$(VTV_CXXLINKFLAGS) \
! 	$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) \
! 	$(LTLDFLAGS) $(LTLIBICONV) \
! 	-o $@
  
  # Symbol versioning for shared libraries.
  if ENABLE_SYMVERS
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/Makefile.in gcc-11.4.0/libstdc++-v3/src/Makefile.in
*** gcc-11.3.0/libstdc++-v3/src/Makefile.in	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/Makefile.in	Mon May 29 08:46:33 2023
*************** CXXLINK = \
*** 631,637 ****
  	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
  	--mode=link $(CXX) \
  	$(VTV_CXXLINKFLAGS) \
! 	$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
  
  @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep)
  @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
--- 631,639 ----
  	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
  	--mode=link $(CXX) \
  	$(VTV_CXXLINKFLAGS) \
! 	$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) \
! 	$(LTLDFLAGS) $(LTLIBICONV) \
! 	-o $@
  
  @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep)
  @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++11/codecvt.cc gcc-11.4.0/libstdc++-v3/src/c++11/codecvt.cc
*** gcc-11.3.0/libstdc++-v3/src/c++11/codecvt.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++11/codecvt.cc	Mon May 29 08:46:33 2023
*************** namespace
*** 254,260 ****
      const size_t avail = from.size();
      if (avail == 0)
        return incomplete_mb_character;
!     unsigned char c1 = from[0];
      // https://en.wikipedia.org/wiki/UTF-8#Sample_code
      if (c1 < 0x80)
      {
--- 254,260 ----
      const size_t avail = from.size();
      if (avail == 0)
        return incomplete_mb_character;
!     char32_t c1 = (unsigned char) from[0];
      // https://en.wikipedia.org/wiki/UTF-8#Sample_code
      if (c1 < 0x80)
      {
*************** namespace
*** 267,273 ****
      {
        if (avail < 2)
  	return incomplete_mb_character;
!       unsigned char c2 = from[1];
        if ((c2 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        char32_t c = (c1 << 6) + c2 - 0x3080;
--- 267,273 ----
      {
        if (avail < 2)
  	return incomplete_mb_character;
!       char32_t c2 = (unsigned char) from[1];
        if ((c2 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        char32_t c = (c1 << 6) + c2 - 0x3080;
*************** namespace
*** 279,290 ****
      {
        if (avail < 3)
  	return incomplete_mb_character;
!       unsigned char c2 = from[1];
        if ((c2 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        if (c1 == 0xE0 && c2 < 0xA0) // overlong
  	return invalid_mb_sequence;
!       unsigned char c3 = from[2];
        if ((c3 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        char32_t c = (c1 << 12) + (c2 << 6) + c3 - 0xE2080;
--- 279,290 ----
      {
        if (avail < 3)
  	return incomplete_mb_character;
!       char32_t c2 = (unsigned char) from[1];
        if ((c2 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        if (c1 == 0xE0 && c2 < 0xA0) // overlong
  	return invalid_mb_sequence;
!       char32_t c3 = (unsigned char) from[2];
        if ((c3 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        char32_t c = (c1 << 12) + (c2 << 6) + c3 - 0xE2080;
*************** namespace
*** 296,312 ****
      {
        if (avail < 4)
  	return incomplete_mb_character;
!       unsigned char c2 = from[1];
        if ((c2 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        if (c1 == 0xF0 && c2 < 0x90) // overlong
  	return invalid_mb_sequence;
        if (c1 == 0xF4 && c2 >= 0x90) // > U+10FFFF
        return invalid_mb_sequence;
!       unsigned char c3 = from[2];
        if ((c3 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
!       unsigned char c4 = from[3];
        if ((c4 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        char32_t c = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4 - 0x3C82080;
--- 296,312 ----
      {
        if (avail < 4)
  	return incomplete_mb_character;
!       char32_t c2 = (unsigned char) from[1];
        if ((c2 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        if (c1 == 0xF0 && c2 < 0x90) // overlong
  	return invalid_mb_sequence;
        if (c1 == 0xF4 && c2 >= 0x90) // > U+10FFFF
        return invalid_mb_sequence;
!       char32_t c3 = (unsigned char) from[2];
        if ((c3 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
!       char32_t c4 = (unsigned char) from[3];
        if ((c4 & 0xC0) != 0x80)
  	return invalid_mb_sequence;
        char32_t c = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4 - 0x3C82080;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++11/cxx11-ios_failure.cc gcc-11.4.0/libstdc++-v3/src/c++11/cxx11-ios_failure.cc
*** gcc-11.3.0/libstdc++-v3/src/c++11/cxx11-ios_failure.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++11/cxx11-ios_failure.cc	Mon May 29 08:46:33 2023
***************
*** 44,57 ****
  
  namespace
  {
!   struct io_error_category : std::error_category
    {
!     virtual const char*
!     name() const noexcept
      { return "iostream"; }
  
      _GLIBCXX_DEFAULT_ABI_TAG
!     virtual std::string message(int __ec) const
      {
        std::string __msg;
        switch (std::io_errc(__ec))
--- 44,58 ----
  
  namespace
  {
!   struct io_error_category final : std::error_category
    {
!     const char*
!     name() const noexcept final
      { return "iostream"; }
  
      _GLIBCXX_DEFAULT_ABI_TAG
!     std::string
!     message(int __ec) const final
      {
        std::string __msg;
        switch (std::io_errc(__ec))
*************** namespace
*** 67,79 ****
      }
    };
  
!   const io_error_category&
!   __io_category_instance() noexcept
    {
!     static const io_error_category __ec{};
!     return __ec;
!   }
  
  } // namespace
  
  namespace std _GLIBCXX_VISIBILITY(default)
--- 68,84 ----
      }
    };
  
!   struct constant_init
    {
!     union {
!       unsigned char unused;
!       io_error_category cat;
!     };
!     constexpr constant_init() : cat() { }
!     ~constant_init() { /* do nothing, union member is not destroyed */ }
!   };
  
+   __constinit constant_init io_category_instance{};
  } // namespace
  
  namespace std _GLIBCXX_VISIBILITY(default)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 82,88 ****
  
    const error_category&
    iostream_category() noexcept
!   { return __io_category_instance(); }
  
    ios_base::failure::failure(const string& __str)
    : system_error(io_errc::stream, __str) { }
--- 87,93 ----
  
    const error_category&
    iostream_category() noexcept
!   { return io_category_instance.cat; }
  
    ios_base::failure::failure(const string& __str)
    : system_error(io_errc::stream, __str) { }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++11/future.cc gcc-11.4.0/libstdc++-v3/src/c++11/future.cc
*** gcc-11.3.0/libstdc++-v3/src/c++11/future.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++11/future.cc	Mon May 29 08:46:33 2023
***************
*** 27,40 ****
  
  namespace
  {
!   struct future_error_category : public std::error_category
    {
!     virtual const char*
!     name() const noexcept
      { return "future"; }
  
      _GLIBCXX_DEFAULT_ABI_TAG
!     virtual std::string message(int __ec) const
      {
        std::string __msg;
        switch (std::future_errc(__ec))
--- 27,41 ----
  
  namespace
  {
!   struct future_error_category final : public std::error_category
    {
!     const char*
!     name() const noexcept final
      { return "future"; }
  
      _GLIBCXX_DEFAULT_ABI_TAG
!     std::string
!     message(int __ec) const final
      {
        std::string __msg;
        switch (std::future_errc(__ec))
*************** namespace
*** 59,70 ****
      }
    };
  
!   const future_error_category&
!   __future_category_instance() noexcept
    {
!     static const future_error_category __fec{};
!     return __fec;
!   }
  }
  
  namespace std _GLIBCXX_VISIBILITY(default)
--- 60,76 ----
      }
    };
  
!   struct constant_init
    {
!     union {
!       unsigned char unused;
!       future_error_category cat;
!     };
!     constexpr constant_init() : cat() { }
!     ~constant_init() { /* do nothing, union member is not destroyed */ }
!   };
! 
!   __constinit constant_init future_category_instance{};
  }
  
  namespace std _GLIBCXX_VISIBILITY(default)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 76,82 ****
    { _GLIBCXX_THROW_OR_ABORT(future_error(make_error_code(future_errc(__i)))); }
  
    const error_category& future_category() noexcept
!   { return __future_category_instance(); }
  
    future_error::~future_error() noexcept { }
  
--- 82,88 ----
    { _GLIBCXX_THROW_OR_ABORT(future_error(make_error_code(future_errc(__i)))); }
  
    const error_category& future_category() noexcept
!   { return future_category_instance.cat; }
  
    future_error::~future_error() noexcept { }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++11/random.cc gcc-11.4.0/libstdc++-v3/src/c++11/random.cc
*** gcc-11.3.0/libstdc++-v3/src/c++11/random.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++11/random.cc	Mon May 29 08:46:33 2023
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 395,400 ****
--- 395,401 ----
        }
  #endif
  
+ #ifdef _GLIBCXX_USE_DEV_RANDOM
  #ifdef USE_POSIX_FILE_IO
      ::close(_M_fd);
      _M_fd = -1;
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 402,407 ****
--- 403,409 ----
      std::fclose(static_cast<FILE*>(_M_file));
  #endif
      _M_file = nullptr;
+ #endif
    }
  
    random_device::result_type
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++11/system_error.cc gcc-11.4.0/libstdc++-v3/src/c++11/system_error.cc
*** gcc-11.3.0/libstdc++-v3/src/c++11/system_error.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++11/system_error.cc	Mon May 29 08:46:33 2023
*************** namespace
*** 93,98 ****
--- 93,108 ----
        // and system category otherwise.
        switch (ev)
        {
+ #if defined __AVR__
+       // avr-libc only defines a few distinct error numbers. Most <errno.h>
+       // constants are not usable in #if directives and have the same value.
+       case EDOM:
+       case ERANGE:
+       case ENOSYS:
+       case EINTR:
+       case 0:
+ 	return std::error_condition(ev, generic_category_instance.obj);
+ #else
        // List of errno macros from [cerrno.syn].
        // C11 only defines EDOM, EILSEQ and ERANGE, the rest are from POSIX.
        // They expand to integer constant expressions with type int,
*************** namespace
*** 339,345 ****
        case EBLAH:
  	return std::error_condition(EINVAL, std::generic_category());
         */
! 
        default:
  	return std::error_condition(ev, *this);
        }
--- 349,355 ----
        case EBLAH:
  	return std::error_condition(EINVAL, std::generic_category());
         */
! #endif
        default:
  	return std::error_condition(ev, *this);
        }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++17/floating_from_chars.cc gcc-11.4.0/libstdc++-v3/src/c++17/floating_from_chars.cc
*** gcc-11.3.0/libstdc++-v3/src/c++17/floating_from_chars.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++17/floating_from_chars.cc	Mon May 29 08:46:33 2023
***************
*** 37,43 ****
  #include <cmath>
  #include <cstdlib>
  #include <cstring>
- #include <cctype>
  #include <locale.h>
  #include <bits/functexcept.h>
  #if _GLIBCXX_HAVE_XLOCALE_H
--- 37,42 ----
*************** namespace
*** 75,81 ****
  	return m_buf + std::__exchange(m_bytes, m_bytes + bytes);
  
        __glibcxx_assert(m_ptr == nullptr);
-       __glibcxx_assert(alignment != 1);
  
        m_ptr = operator new(bytes);
        m_bytes = bytes;
--- 74,79 ----
*************** namespace
*** 116,125 ****
  
    // Find initial portion of [first, last) containing a floating-point number.
    // The string `digits` is either `dec_digits` or `hex_digits`
!   // and `exp` is 'e' or 'p' or '\0'.
    const char*
    find_end_of_float(const char* first, const char* last, const char* digits,
! 		    char exp)
    {
      while (first < last && strchr(digits, *first) != nullptr)
        ++first;
--- 114,123 ----
  
    // Find initial portion of [first, last) containing a floating-point number.
    // The string `digits` is either `dec_digits` or `hex_digits`
!   // and `exp` is "eE", "pP" or NULL.
    const char*
    find_end_of_float(const char* first, const char* last, const char* digits,
! 		    const char *exp)
    {
      while (first < last && strchr(digits, *first) != nullptr)
        ++first;
*************** namespace
*** 129,135 ****
  	while (first < last && strchr(digits, *first))
  	  ++first;
        }
!     if (first < last && exp != 0 && std::tolower((unsigned char)*first) == exp)
        {
  	++first;
  	if (first < last && (*first == '-' || *first == '+'))
--- 127,133 ----
  	while (first < last && strchr(digits, *first))
  	  ++first;
        }
!     if (first < last && exp != nullptr && (*first == exp[0] || *first == exp[1]))
        {
  	++first;
  	if (first < last && (*first == '-' || *first == '+'))
*************** namespace
*** 211,217 ****
  
  	if ((last - first + 2) > buffer_resource::guaranteed_capacity())
  	  {
! 	    last = find_end_of_float(first + neg, last, digits, 'p');
  #ifndef __cpp_exceptions
  	    if ((last - first + 2) > buffer_resource::guaranteed_capacity())
  	      {
--- 209,215 ----
  
  	if ((last - first + 2) > buffer_resource::guaranteed_capacity())
  	  {
! 	    last = find_end_of_float(first + neg, last, digits, "pP");
  #ifndef __cpp_exceptions
  	    if ((last - first + 2) > buffer_resource::guaranteed_capacity())
  	      {
*************** namespace
*** 235,241 ****
  	if ((last - first) > buffer_resource::guaranteed_capacity())
  	  {
  	    last = find_end_of_float(first + neg, last, digits,
! 				     "e"[fmt == chars_format::fixed]);
  #ifndef __cpp_exceptions
  	    if ((last - first) > buffer_resource::guaranteed_capacity())
  	      {
--- 233,239 ----
  	if ((last - first) > buffer_resource::guaranteed_capacity())
  	  {
  	    last = find_end_of_float(first + neg, last, digits,
! 				     fmt == chars_format::fixed ? nullptr : "eE");
  #ifndef __cpp_exceptions
  	    if ((last - first) > buffer_resource::guaranteed_capacity())
  	      {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++17/fs_ops.cc gcc-11.4.0/libstdc++-v3/src/c++17/fs_ops.cc
*** gcc-11.3.0/libstdc++-v3/src/c++17/fs_ops.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++17/fs_ops.cc	Mon May 29 08:46:33 2023
***************
*** 27,32 ****
--- 27,36 ----
  # define NEED_DO_COPY_FILE
  # define NEED_DO_SPACE
  #endif
+ #ifndef _GNU_SOURCE
+ // Cygwin needs this for secure_getenv
+ # define _GNU_SOURCE 1
+ #endif
  
  #include <bits/largefile-config.h>
  #include <filesystem>
***************
*** 57,62 ****
--- 61,70 ----
  #define _GLIBCXX_END_NAMESPACE_FILESYSTEM }
  #include "../filesystem/ops-common.h"
  
+ #ifdef __AVR__
+ # define not_supported function_not_supported
+ #endif
+ 
  #pragma GCC diagnostic ignored "-Wunused-parameter"
  
  namespace fs = std::filesystem;
*************** fs::copy(const path& from, const path& t
*** 404,411 ****
        // set an unused bit in options to disable further recursion
        if (!is_set(options, copy_options::recursive))
  	options |= static_cast<copy_options>(4096);
!       for (const directory_entry& x : directory_iterator(from))
! 	copy(x.path(), to/x.path().filename(), options, ec);
      }
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
    // 2683. filesystem::copy() says "no effects"
--- 412,423 ----
        // set an unused bit in options to disable further recursion
        if (!is_set(options, copy_options::recursive))
  	options |= static_cast<copy_options>(4096);
!       for (const directory_entry& x : directory_iterator(from, ec))
! 	{
! 	  copy(x.path(), to/x.path().filename(), options, ec);
! 	  if (ec)
! 	    return;
! 	}
      }
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
    // 2683. filesystem::copy() says "no effects"
*************** fs::path
*** 727,733 ****
  fs::current_path(error_code& ec)
  {
    path p;
! #ifdef _GLIBCXX_HAVE_UNISTD_H
  #if defined __GLIBC__ || defined _GLIBCXX_FILESYSTEM_IS_WINDOWS
    if (char_ptr cwd = char_ptr{posix::getcwd(nullptr, 0)})
      {
--- 739,745 ----
  fs::current_path(error_code& ec)
  {
    path p;
! #if defined _GLIBCXX_HAVE_UNISTD_H && ! defined __AVR__
  #if defined __GLIBC__ || defined _GLIBCXX_FILESYSTEM_IS_WINDOWS
    if (char_ptr cwd = char_ptr{posix::getcwd(nullptr, 0)})
      {
*************** fs::symlink_status(const fs::path& p)
*** 1584,1590 ****
    return result;
  }
  
! fs::path fs::temp_directory_path()
  {
    error_code ec;
    path tmp = temp_directory_path(ec);
--- 1596,1603 ----
    return result;
  }
  
! fs::path
! fs::temp_directory_path()
  {
    error_code ec;
    path tmp = temp_directory_path(ec);
*************** fs::path fs::temp_directory_path()
*** 1593,1624 ****
    return tmp;
  }
  
! fs::path fs::temp_directory_path(error_code& ec)
  {
!   path p;
! #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
!   unsigned len = 1024;
!   std::wstring buf;
!   do
!     {
!       buf.resize(len);
!       len = GetTempPathW(buf.size(), buf.data());
!     } while (len > buf.size());
! 
!   if (len == 0)
!     {
!       ec.assign((int)GetLastError(), std::system_category());
!       return p;
!     }
!   buf.resize(len);
!   p = std::move(buf);
! #else
!   const char* tmpdir = nullptr;
!   const char* env[] = { "TMPDIR", "TMP", "TEMP", "TEMPDIR", nullptr };
!   for (auto e = env; tmpdir == nullptr && *e != nullptr; ++e)
!     tmpdir = ::getenv(*e);
!   p = tmpdir ? tmpdir : "/tmp";
! #endif
    auto st = status(p, ec);
    if (ec)
      p.clear();
--- 1606,1617 ----
    return tmp;
  }
  
! fs::path
! fs::temp_directory_path(error_code& ec)
  {
!   path p = fs::get_temp_directory_from_env(ec);
!   if (ec)
!     return p;
    auto st = status(p, ec);
    if (ec)
      p.clear();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++17/fs_path.cc gcc-11.4.0/libstdc++-v3/src/c++17/fs_path.cc
*** gcc-11.3.0/libstdc++-v3/src/c++17/fs_path.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++17/fs_path.cc	Mon May 29 08:46:33 2023
*************** struct path::_Parser
*** 186,191 ****
--- 186,204 ----
    { return origin + c.str.data() - input.data(); }
  };
  
+ inline
+ path::path(basic_string_view<value_type> __str, _Type __type)
+ : _M_pathname(__str)
+ {
+   __glibcxx_assert(__type != _Type::_Multi);
+   _M_cmpts.type(__type);
+ }
+ 
+ inline
+ path::_Cmpt::_Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos)
+ : path(__s, __t), _M_pos(__pos)
+ { }
+ 
  struct path::_List::_Impl
  {
    using value_type = _Cmpt;
*************** path::_M_split_cmpts()
*** 1872,1882 ****
        _M_cmpts.type(_Type::_Filename);
        return;
      }
-   if (_M_pathname.length() == 1 && _M_pathname[0] == preferred_separator)
-     {
-       _M_cmpts.type(_Type::_Root_dir);
-       return;
-     }
  
    _Parser parser(_M_pathname);
  
--- 1885,1890 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++17/memory_resource.cc gcc-11.4.0/libstdc++-v3/src/c++17/memory_resource.cc
*** gcc-11.3.0/libstdc++-v3/src/c++17/memory_resource.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++17/memory_resource.cc	Mon May 29 08:46:33 2023
*************** namespace pmr
*** 502,508 ****
      }
  
      // Allocated size of chunk:
!     uint32_t _M_bytes = 0;
      // Start of allocated chunk:
      std::byte* _M_p = nullptr;
  
--- 502,508 ----
      }
  
      // Allocated size of chunk:
!     bitset::size_type _M_bytes = 0;
      // Start of allocated chunk:
      std::byte* _M_p = nullptr;
  
*************** namespace pmr
*** 576,582 ****
    // For 16-bit pointers it's five pointers (10 bytes).
    // TODO pad 64-bit to 4*sizeof(void*) to avoid splitting across cache lines?
    static_assert(sizeof(chunk)
!       == sizeof(bitset::size_type) + sizeof(uint32_t) + 2 * sizeof(void*));
  
    // An oversized allocation that doesn't fit in a pool.
    struct big_block
--- 576,582 ----
    // For 16-bit pointers it's five pointers (10 bytes).
    // TODO pad 64-bit to 4*sizeof(void*) to avoid splitting across cache lines?
    static_assert(sizeof(chunk)
!       == 2 * sizeof(bitset::size_type) + 2 * sizeof(void*));
  
    // An oversized allocation that doesn't fit in a pool.
    struct big_block
*************** namespace pmr
*** 731,737 ****
  	  _M_blocks_per_chunk = std::min({
  	      max_blocks,
  	      __opts.max_blocks_per_chunk,
! 	      (size_t)_M_blocks_per_chunk * 2
  	  });
  	}
      }
--- 731,737 ----
  	  _M_blocks_per_chunk = std::min({
  	      max_blocks,
  	      __opts.max_blocks_per_chunk,
! 	      size_t(_M_blocks_per_chunk * 2)
  	  });
  	}
      }
*************** namespace pmr
*** 870,878 ****
        256, 320, 384, 448,
        512, 768,
  #if __SIZE_WIDTH__ > 16
        1024, 1536,
        2048, 3072,
! #if __SIZE_WIDTH__ > 20
        1<<12, 1<<13, 1<<14,
        1<<15, 1<<16, 1<<17,
        1<<20, 1<<21, 1<<22 // 4MB should be enough for anybody
--- 870,880 ----
        256, 320, 384, 448,
        512, 768,
  #if __SIZE_WIDTH__ > 16
+       // Use bigger pools if size_t has at least 20 bits.
        1024, 1536,
        2048, 3072,
! #if __INT_WIDTH__ >= 32
!       // Use even bigger pools if int has at least 32 bits.
        1<<12, 1<<13, 1<<14,
        1<<15, 1<<16, 1<<17,
        1<<20, 1<<21, 1<<22 // 4MB should be enough for anybody
*************** namespace pmr
*** 1052,1058 ****
  	// Decide on initial number of blocks per chunk.
  	// At least 16 blocks per chunk seems reasonable,
  	// more for smaller blocks:
! 	size_t blocks_per_chunk = std::max(size_t(16), 1024 / block_size);
  	// But don't exceed the requested max_blocks_per_chunk:
  	blocks_per_chunk
  	  = std::min(blocks_per_chunk, _M_opts.max_blocks_per_chunk);
--- 1054,1061 ----
  	// Decide on initial number of blocks per chunk.
  	// At least 16 blocks per chunk seems reasonable,
  	// more for smaller blocks:
! 	size_t blocks_per_chunk = 1024 / block_size;
! 	blocks_per_chunk = std::max(size_t(16), blocks_per_chunk);
  	// But don't exceed the requested max_blocks_per_chunk:
  	blocks_per_chunk
  	  = std::min(blocks_per_chunk, _M_opts.max_blocks_per_chunk);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/c++20/sstream-inst.cc gcc-11.4.0/libstdc++-v3/src/c++20/sstream-inst.cc
*** gcc-11.3.0/libstdc++-v3/src/c++20/sstream-inst.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/c++20/sstream-inst.cc	Mon May 29 08:46:33 2023
***************
*** 26,32 ****
  // ISO C++ 14882:
  //
  
! // Instantiations in this file are only for the new SSO std::string ABI
  #include <sstream>
  
  #if _GLIBCXX_USE_CXX11_ABI
--- 26,34 ----
  // ISO C++ 14882:
  //
  
! // Instantiations in this file are only for the new SSO std::string ABI.
! #define _GLIBCXX_USE_CXX11_ABI 1
! 
  #include <sstream>
  
  #if _GLIBCXX_USE_CXX11_ABI
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/filesystem/dir.cc gcc-11.4.0/libstdc++-v3/src/filesystem/dir.cc
*** gcc-11.3.0/libstdc++-v3/src/filesystem/dir.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/filesystem/dir.cc	Mon May 29 08:46:33 2023
***************
*** 25,30 ****
--- 25,34 ----
  #ifndef _GLIBCXX_USE_CXX11_ABI
  # define _GLIBCXX_USE_CXX11_ABI 1
  #endif
+ #ifndef _GNU_SOURCE
+ // Cygwin needs this for secure_getenv
+ # define _GNU_SOURCE 1
+ #endif
  
  #include <bits/largefile-config.h>
  #include <experimental/filesystem>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/filesystem/ops-common.h gcc-11.4.0/libstdc++-v3/src/filesystem/ops-common.h
*** gcc-11.3.0/libstdc++-v3/src/filesystem/ops-common.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/filesystem/ops-common.h	Mon May 29 08:46:33 2023
*************** namespace __gnu_posix
*** 128,134 ****
      return ret;
    }
    using char_type = wchar_t;
! #elif defined _GLIBCXX_HAVE_UNISTD_H
    using ::open;
    using ::close;
  # ifdef _GLIBCXX_HAVE_SYS_STAT_H
--- 128,134 ----
      return ret;
    }
    using char_type = wchar_t;
! #elif defined _GLIBCXX_HAVE_UNISTD_H && ! defined __AVR__
    using ::open;
    using ::close;
  # ifdef _GLIBCXX_HAVE_SYS_STAT_H
*************** namespace __gnu_posix
*** 170,175 ****
--- 170,179 ----
  # endif
    using char_type = char;
  #else // ! _GLIBCXX_FILESYSTEM_IS_WINDOWS && ! _GLIBCXX_HAVE_UNISTD_H
+ #ifdef __AVR__
+ # define ENOTSUP ENOSYS
+ #endif
+ 
    inline int open(const char*, int, ...) { errno = ENOTSUP; return -1; }
    inline int close(int) { errno = ENOTSUP; return -1; }
    using mode_t = int;
*************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM
*** 567,572 ****
--- 571,617 ----
  
  #endif // _GLIBCXX_HAVE_SYS_STAT_H
  
+   // Find OS-specific name of temporary directory from the environment,
+   // Caller must check that the path is an accessible directory.
+ #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
+   inline wstring
+   get_temp_directory_from_env(error_code& ec)
+   {
+     unsigned len = 1024;
+     std::wstring buf;
+     do
+       {
+ 	buf.resize(len);
+ 	len = GetTempPathW(buf.size(), buf.data());
+       } while (len > buf.size());
+ 
+     if (len == 0)
+       ec.assign((int)GetLastError(), std::system_category());
+     else
+       ec.clear();
+ 
+     buf.resize(len);
+     return buf;
+   }
+ #else
+   inline const char*
+   get_temp_directory_from_env(error_code& ec) noexcept
+   {
+     ec.clear();
+     for (auto env : { "TMPDIR", "TMP", "TEMP", "TEMPDIR" })
+       {
+ #if _GLIBCXX_HAVE_SECURE_GETENV
+ 	auto tmpdir = ::secure_getenv(env);
+ #else
+ 	auto tmpdir = ::getenv(env);
+ #endif
+ 	if (tmpdir)
+ 	  return tmpdir;
+       }
+     return "/tmp";
+   }
+ #endif
+ 
  _GLIBCXX_END_NAMESPACE_FILESYSTEM
  
  _GLIBCXX_END_NAMESPACE_VERSION
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/filesystem/ops.cc gcc-11.4.0/libstdc++-v3/src/filesystem/ops.cc
*** gcc-11.3.0/libstdc++-v3/src/filesystem/ops.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/filesystem/ops.cc	Mon May 29 08:46:33 2023
***************
*** 27,32 ****
--- 27,36 ----
  # define NEED_DO_COPY_FILE
  # define NEED_DO_SPACE
  #endif
+ #ifndef _GNU_SOURCE
+ // Cygwin needs this for secure_getenv
+ # define _GNU_SOURCE 1
+ #endif
  
  #include <bits/largefile-config.h>
  #include <experimental/filesystem>
*************** fs::copy(const path& from, const path& t
*** 344,351 ****
        // set an unused bit in options to disable further recursion
        if (!is_set(options, copy_options::recursive))
  	options |= static_cast<copy_options>(4096);
!       for (const directory_entry& x : directory_iterator(from))
! 	copy(x.path(), to/x.path().filename(), options, ec);
      }
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
    // 2683. filesystem::copy() says "no effects"
--- 348,359 ----
        // set an unused bit in options to disable further recursion
        if (!is_set(options, copy_options::recursive))
  	options |= static_cast<copy_options>(4096);
!       for (const directory_entry& x : directory_iterator(from, ec))
! 	{
! 	  copy(x.path(), to/x.path().filename(), options, ec);
! 	  if (ec)
! 	    return;
! 	}
      }
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
    // 2683. filesystem::copy() says "no effects"
*************** fs::space(const path& p, error_code& ec)
*** 1195,1207 ****
    return info;
  }
  
  #ifdef _GLIBCXX_HAVE_SYS_STAT_H
  fs::file_status
  fs::status(const fs::path& p, error_code& ec) noexcept
  {
    file_status status;
    stat_type st;
!   if (posix::stat(p.c_str(), &st))
      {
        int err = errno;
        ec.assign(err, std::generic_category());
--- 1203,1245 ----
    return info;
  }
  
+ #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
+ static bool has_trailing_slash(const fs::path& p)
+ {
+   wchar_t c = p.native().back();
+   return c == '/' || c == L'\\';
+ }
+ #endif
+ 
  #ifdef _GLIBCXX_HAVE_SYS_STAT_H
  fs::file_status
  fs::status(const fs::path& p, error_code& ec) noexcept
  {
    file_status status;
+ 
+   auto str = p.c_str();
+ 
+ #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
+   // stat() fails if there's a trailing slash (PR 88881)
+   path p2;
+   if (p.has_relative_path() && has_trailing_slash(p))
+     {
+       __try
+ 	{
+ 	  p2 = p.parent_path();
+ 	  str = p2.c_str();
+ 	}
+       __catch(const bad_alloc&)
+ 	{
+ 	  ec = std::make_error_code(std::errc::not_enough_memory);
+ 	  return status;
+ 	}
+       str = p2.c_str();
+     }
+ #endif
+ 
    stat_type st;
!   if (posix::stat(str, &st))
      {
        int err = errno;
        ec.assign(err, std::generic_category());
*************** fs::file_status
*** 1224,1231 ****
  fs::symlink_status(const fs::path& p, std::error_code& ec) noexcept
  {
    file_status status;
    stat_type st;
!   if (posix::lstat(p.c_str(), &st))
      {
        int err = errno;
        ec.assign(err, std::generic_category());
--- 1262,1291 ----
  fs::symlink_status(const fs::path& p, std::error_code& ec) noexcept
  {
    file_status status;
+ 
+   auto str = p.c_str();
+ 
+ #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
+   // stat() fails if there's a trailing slash (PR 88881)
+   path p2;
+   if (p.has_relative_path() && has_trailing_slash(p))
+     {
+       __try
+ 	{
+ 	  p2 = p.parent_path();
+ 	  str = p2.c_str();
+ 	}
+       __catch(const bad_alloc&)
+ 	{
+ 	  ec = std::make_error_code(std::errc::not_enough_memory);
+ 	  return status;
+ 	}
+       str = p2.c_str();
+     }
+ #endif
+ 
    stat_type st;
!   if (posix::lstat(str, &st))
      {
        int err = errno;
        ec.assign(err, std::generic_category());
*************** fs::system_complete(const path& p, error
*** 1289,1295 ****
  #endif
  }
  
! fs::path fs::temp_directory_path()
  {
    error_code ec;
    path tmp = temp_directory_path(ec);
--- 1349,1356 ----
  #endif
  }
  
! fs::path
! fs::temp_directory_path()
  {
    error_code ec;
    path tmp = temp_directory_path(ec);
*************** fs::path fs::temp_directory_path()
*** 1298,1328 ****
    return tmp;
  }
  
! fs::path fs::temp_directory_path(error_code& ec)
  {
!   path p;
! #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
!   unsigned len = 1024;
!   std::wstring buf;
!   do
!     {
!       buf.resize(len);
!       len = GetTempPathW(buf.size(), buf.data());
!     } while (len > buf.size());
! 
!   if (len == 0)
!     {
!       ec.assign((int)GetLastError(), std::system_category());
!       return p;
!     }
!   buf.resize(len);
!   p = std::move(buf);
! #else
!   const char* tmpdir = nullptr;
!   const char* env[] = { "TMPDIR", "TMP", "TEMP", "TEMPDIR", nullptr };
!   for (auto e = env; tmpdir == nullptr && *e != nullptr; ++e)
!     tmpdir = ::getenv(*e);
!   p = tmpdir ? tmpdir : "/tmp";
    auto st = status(p, ec);
    if (ec)
      p.clear();
--- 1359,1370 ----
    return tmp;
  }
  
! fs::path
! fs::temp_directory_path(error_code& ec)
  {
!   path p = fs::get_temp_directory_from_env(ec);
!   if (ec)
!     return p;
    auto st = status(p, ec);
    if (ec)
      p.clear();
*************** fs::path fs::temp_directory_path(error_c
*** 1331,1337 ****
        p.clear();
        ec = std::make_error_code(std::errc::not_a_directory);
      }
- #endif
    return p;
  }
- 
--- 1373,1377 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/src/filesystem/path.cc gcc-11.4.0/libstdc++-v3/src/filesystem/path.cc
*** gcc-11.3.0/libstdc++-v3/src/filesystem/path.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/src/filesystem/path.cc	Mon May 29 08:46:33 2023
*************** path::_M_split_cmpts()
*** 337,351 ****
    _M_type = _Type::_Multi;
    _M_cmpts.clear();
  
!   if (_M_pathname.empty())
      return;
  
    {
      // Approximate count of components, to reserve space in _M_cmpts vector:
      int count = 1;
!     bool saw_sep_last = _S_is_dir_sep(_M_pathname[0]);
      bool saw_non_sep = !saw_sep_last;
!     for (value_type c : _M_pathname)
        {
         if (_S_is_dir_sep(c))
           saw_sep_last = true;
--- 337,354 ----
    _M_type = _Type::_Multi;
    _M_cmpts.clear();
  
!   // Use const-reference to access _M_pathname, to avoid "leaking" COW string.
!   const auto& pathname = _M_pathname;
! 
!   if (pathname.empty())
      return;
  
    {
      // Approximate count of components, to reserve space in _M_cmpts vector:
      int count = 1;
!     bool saw_sep_last = _S_is_dir_sep(pathname[0]);
      bool saw_non_sep = !saw_sep_last;
!     for (value_type c : pathname)
        {
         if (_S_is_dir_sep(c))
           saw_sep_last = true;
*************** path::_M_split_cmpts()
*** 363,375 ****
    }
  
    size_t pos = 0;
!   const size_t len = _M_pathname.size();
  
    // look for root name or root directory
!   if (_S_is_dir_sep(_M_pathname[0]))
      {
        // look for root name, such as "//" or "//foo"
!       if (len > 1 && _M_pathname[1] == _M_pathname[0])
  	{
  	  if (len == 2)
  	    {
--- 366,378 ----
    }
  
    size_t pos = 0;
!   const size_t len = pathname.size();
  
    // look for root name or root directory
!   if (_S_is_dir_sep(pathname[0]))
      {
        // look for root name, such as "//" or "//foo"
!       if (len > 1 && pathname[1] == pathname[0])
  	{
  	  if (len == 2)
  	    {
*************** path::_M_split_cmpts()
*** 378,388 ****
  	      return;
  	    }
  
! 	  if (!_S_is_dir_sep(_M_pathname[2]))
  	    {
  	      // got root name, find its end
  	      pos = 3;
! 	      while (pos < len && !_S_is_dir_sep(_M_pathname[pos]))
  		++pos;
  	      if (pos == len)
  		{
--- 381,391 ----
  	      return;
  	    }
  
! 	  if (!_S_is_dir_sep(pathname[2]))
  	    {
  	      // got root name, find its end
  	      pos = 3;
! 	      while (pos < len && !_S_is_dir_sep(pathname[pos]))
  		++pos;
  	      if (pos == len)
  		{
*************** path::_M_split_cmpts()
*** 409,415 ****
        ++pos;
      }
  #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
!   else if (len > 1 && _M_pathname[1] == L':')
      {
        // got disk designator
        if (len == 2)
--- 412,418 ----
        ++pos;
      }
  #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
!   else if (len > 1 && pathname[1] == L':')
      {
        // got disk designator
        if (len == 2)
*************** path::_M_split_cmpts()
*** 418,424 ****
  	  return;
  	}
        _M_add_root_name(2);
!       if (len > 2 && _S_is_dir_sep(_M_pathname[2]))
  	_M_add_root_dir(2);
        pos = 2;
      }
--- 421,427 ----
  	  return;
  	}
        _M_add_root_name(2);
!       if (len > 2 && _S_is_dir_sep(pathname[2]))
  	_M_add_root_dir(2);
        pos = 2;
      }
*************** path::_M_split_cmpts()
*** 426,434 ****
    else
      {
        size_t n = 1;
!       for (; n < _M_pathname.size() && !_S_is_dir_sep(_M_pathname[n]); ++n)
  	{ }
!       if (n == _M_pathname.size())
  	{
  	  _M_type = _Type::_Filename;
  	  return;
--- 429,437 ----
    else
      {
        size_t n = 1;
!       for (; n < pathname.size() && !_S_is_dir_sep(pathname[n]); ++n)
  	{ }
!       if (n == pathname.size())
  	{
  	  _M_type = _Type::_Filename;
  	  return;
*************** path::_M_split_cmpts()
*** 438,444 ****
    size_t back = pos;
    while (pos < len)
      {
!       if (_S_is_dir_sep(_M_pathname[pos]))
  	{
  	  if (back != pos)
  	    _M_add_filename(back, pos - back);
--- 441,447 ----
    size_t back = pos;
    while (pos < len)
      {
!       if (_S_is_dir_sep(pathname[pos]))
  	{
  	  if (back != pos)
  	    _M_add_filename(back, pos - back);
*************** path::_M_split_cmpts()
*** 450,456 ****
  
    if (back != pos)
      _M_add_filename(back, pos - back);
!   else if (_S_is_dir_sep(_M_pathname.back()))
      {
        // [path.itr]/8
        // "Dot, if one or more trailing non-root slash characters are present."
--- 453,459 ----
  
    if (back != pos)
      _M_add_filename(back, pos - back);
!   else if (_S_is_dir_sep(pathname.back()))
      {
        // [path.itr]/8
        // "Dot, if one or more trailing non-root slash characters are present."
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/17_intro/names.cc gcc-11.4.0/libstdc++-v3/testsuite/17_intro/names.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/17_intro/names.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/17_intro/names.cc	Mon May 29 08:46:33 2023
***************
*** 106,111 ****
--- 106,113 ----
  #define z (
  
  #define tmp (
+ #define sz (
+ #define token (
  
  #if __cplusplus < 201103L
  #define uses_allocator  (
***************
*** 195,200 ****
--- 197,204 ----
  #undef y
  // <sys/var.h> defines vario::v
  #undef v
+ // <sys/timer.h> defines trb::func and cputime_tmr::func
+ #undef func
  #endif
  
  #ifdef __APPLE__
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/allocator/void.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/allocator/void.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/allocator/void.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/allocator/void.cc	Mon May 29 08:46:33 2023
*************** static_assert( std::is_same<std::allocat
*** 87,94 ****
--- 87,109 ----
      "const_pointer is const void*" );
  #endif // C++20
  
+ void
+ test02()
+ {
+   std::allocator<void> av;
+   int* p = std::allocator<int>().allocate(1);
+   const int* c = p;
+   std::allocator_traits<std::allocator<void>>::construct(av, c, 0);
+   volatile int* v = p;
+   std::allocator_traits<std::allocator<void>>::construct(av, v, 0);
+   const volatile int* cv = p;
+   std::allocator_traits<std::allocator<void>>::construct(av, cv, 0);
+   std::allocator<int>().deallocate(p, 1);
+ }
+ 
  int
  main()
  {
    test01();
+   test02();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/from_chars/4.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/from_chars/4.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/from_chars/4.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/from_chars/4.cc	Mon May 29 08:46:33 2023
*************** test_max_mantissa()
*** 300,308 ****
--- 300,310 ----
  
    if (Float_limits::is_iec559 && Float_limits::digits < UInt_limits::digits)
    {
+ #ifdef _GLIBCXX_USE_C99_MATH_TR1
      std::printf("Testing %d-bit float, using %zu-bit integer\n",
  	Float_limits::digits + (int)std::log2(Float_limits::max_exponent) + 1,
  	sizeof(UIntT) * __CHAR_BIT__);
+ #endif
  
      std::from_chars_result res;
      FloatT flt;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do run { target c++17 } }
+ 
+ #include <charconv>
+ #include <string>
+ 
+ int main()
+ {
+ #if __cpp_lib_to_chars >= 201611L // FP from_char not available otherwise.
+   // PR libstdc++/105324
+   // std::from_chars() assertion at floating_from_chars.cc:78
+   std::string s(512, '1');
+   s[1] = '.';
+   long double d;
+   std::from_chars(s.data(), s.data() + s.size(), d);
+ #endif
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc	Mon May 29 08:46:33 2023
***************
*** 21,29 ****
  #include <type_traits>
  #include <testsuite_tr1.h>
  
- #ifndef IS_NT_CONVERTIBLE_DEFINED
  using std::is_nothrow_convertible;
- #endif
  
  void test01()
  {
--- 21,27 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- // Copyright (C) 2019-2021 Free Software Foundation, Inc.
- //
- // 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.
- 
- // You should have received a copy of the GNU General Public License along
- // with this library; see the file COPYING3.  If not see
- // <http://www.gnu.org/licenses/>.
- 
- // { dg-do compile { target c++11 } }
- 
- #include <type_traits>
- 
- // Test the non-standard __is_nothrow_convertible trait
- 
- template<typename From, typename To>
-   using is_nothrow_convertible = std::__is_nothrow_convertible<From, To>;
- 
- #define IS_NT_CONVERTIBLE_DEFINED
- #include "value.cc"
--- 0 ----
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,35 ----
+ // Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ //
+ // 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.
+ 
+ // You should have received a copy of the GNU General Public License along
+ // with this library; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do compile { target c++17 } }
+ 
+ // PR 91456
+ // std::function and std::is_invocable_r do not understand guaranteed elision
+ 
+ #include <type_traits>
+ 
+ #include <functional>
+ 
+ struct Immovable {
+   Immovable() = default;
+   Immovable(const Immovable&) = delete;
+   Immovable& operator=(const Immovable&) = delete;
+ };
+ 
+ static_assert(std::is_nothrow_invocable_r_v<Immovable, Immovable(*)() noexcept>);
+ static_assert(std::is_nothrow_invocable_r_v<const Immovable, Immovable(*)() noexcept>);
+ static_assert(std::is_nothrow_invocable_r_v<Immovable, const Immovable(*)() noexcept>);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc	Mon May 29 08:46:33 2023
*************** test07()
*** 238,245 ****
--- 238,248 ----
    std::pmr::monotonic_buffer_resource mbr(&cr);
    try
    {
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Walloc-size-larger-than="
      // Try to allocate a ridiculous size:
      void* p = mbr.allocate(std::size_t(-2), 1);
+ #pragma GCC diagnostic pop
      // Should not reach here!
      VERIFY( !"attempt to allocate SIZE_MAX-1 should not have succeeded" );
      throw p;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,68 ----
+ // { dg-do compile { target c++11 } }
+ 
+ #include <utility>
+ 
+ template<int N, typename T, typename Pair>
+ constexpr bool
+ check()
+ {
+   return std::is_same<decltype(std::get<N>(std::declval<Pair>())), T>::value;
+ }
+ 
+ void
+ test_value_category()
+ {
+   using P = std::pair<int, long>;
+   static_assert( check<0, int&, P&>(),
+ 		 "get<0>(pair<T1, T2>&)" );
+   static_assert( check<1, long&, P&>(),
+ 		 "get<1>(pair<T1, T2>&)" );
+   static_assert( check<0, int&&, P&&>(),
+ 		 "get<0>(pair<T1, T2>&&)" );
+   static_assert( check<1, long&&, P&&>(),
+ 		 "get<1>(pair<T1, T2>&&)" );
+   static_assert( check<0, const int&, const P&>(),
+ 		 "get<0>(const pair<T1, T2>&)" );
+   static_assert( check<1, const long&, const P&>(),
+ 		 "get<1>(const pair<T1, T2>&)" );
+   static_assert( check<0, const int&&, const P&&>(),
+ 		 "get<0>(const pair<T1, T2>&&)" );
+   static_assert( check<1, const long&&, const P&&>(),
+ 		 "get<1>(const pair<T1, T2>&&)" );
+ 
+   using PL = std::pair<int&, long&>;
+   static_assert( check<0, int&, PL&>(),
+ 		 "get<0>(pair<T1&, T2&>&)" );
+   static_assert( check<1, long&, PL&>(),
+ 		 "get<1>(pair<T1&, T2&>&)" );
+   static_assert( check<0, int&, PL&&>(),
+ 		 "get<0>(pair<T1&, T2&>&&)" );
+   static_assert( check<1, long&, PL&&>(),
+ 		 "get<1>(pair<T1&, T2&>&&)" );
+   static_assert( check<0, int&, const PL&>(),
+ 		 "get<0>(const pair<T1&, T2&>&)" );
+   static_assert( check<1, long&, const PL&>(),
+ 		 "get<1>(const pair<T1&, T2&>&)" );
+   static_assert( check<0, int&, const PL&&>(),
+ 		 "get<0>(const pair<T1&, T2&>&&)" );
+   static_assert( check<1, long&, const PL&&>(),
+ 		 "get<1>(const pair<T1&, T2&>&&)" );
+ 
+   using PR = std::pair<int&&, long&&>;
+   static_assert( check<0, int&, P&>(),
+ 		 "get<0>(pair<T1&&, T2&&>&)" );
+   static_assert( check<1, long&, P&>(),
+ 		 "get<1>(pair<T1&&, T2&&>&)" );
+   static_assert( check<0, int&&, PR&&>(),
+ 		 "get<0>(pair<T1&&, T2&&>&&)" );
+   static_assert( check<1, long&&, PR&&>(),
+ 		 "get<1>(pair<T1&&, T2&&>&&)" );
+   static_assert( check<0, int&, const PR&>(),
+ 		 "get<0>(const pair<T1&&, T2&&>&)" );
+   static_assert( check<1, long&, const PR&>(),
+ 		 "get<1>(const pair<T1&&, T2&&>&)" );
+   static_assert( check<0, int&&, const PR&&>(),
+ 		 "get<0>(const pair<T1&&, T2&&>&&)" );
+   static_assert( check<1, long&&, const PR&&>(),
+ 		 "get<1>(const pair<T1&&, T2&&>&&)" );
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,23 ----
+ // { dg-do compile { target c++11 } }
+ 
+ #include <scoped_allocator>
+ 
+ struct move_only
+ {
+   move_only(move_only&&);
+ };
+ 
+ using P = std::pair<move_only, move_only>;
+ 
+ void
+ test_pr108952(std::pair<move_only&&, move_only&&> rvals)
+ {
+   // LWG 3527. uses_allocator_construction_args handles rvalue pairs of
+   // rvalue references incorrectly.
+   // PR libstdc++/108952 Regression in uses_allocator_construction_args
+   // for pair of rvalue references
+   std::scoped_allocator_adaptor<std::allocator<P>> a;
+   auto p = a.allocate(1);
+   a.construct(p, std::move(rvals));
+   a.deallocate(p, 1);
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/tuple/swap.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/tuple/swap.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/tuple/swap.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/tuple/swap.cc	Mon May 29 08:46:33 2023
*************** struct MoveOnly
*** 38,44 ****
    MoveOnly(MoveOnly const&) = delete;
    MoveOnly& operator=(MoveOnly const&) = delete;
  
!   bool operator==(MoveOnly const& m)
    { return i == m.i; }
  
    void swap(MoveOnly& m)
--- 38,44 ----
    MoveOnly(MoveOnly const&) = delete;
    MoveOnly& operator=(MoveOnly const&) = delete;
  
!   bool operator==(MoveOnly const& m) const
    { return i == m.i; }
  
    void swap(MoveOnly& m)
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc	Mon May 29 08:46:33 2023
*************** test07()
*** 281,290 ****
--- 281,293 ----
    std::pmr::unsynchronized_pool_resource upr(&cr);
    try
    {
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Walloc-size-larger-than="
      // Try to allocate a ridiculous size (and use a large extended alignment
      // so that careful_resource::do_allocate can distinguish this allocation
      // from any required for the pool resource's internal data structures):
      void* p = upr.allocate(std::size_t(-2), 1024);
+ #pragma GCC diagnostic pop
      // Should not reach here!
      VERIFY( !"attempt to allocate SIZE_MAX-1 should not have succeeded" );
      throw p;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,22 ----
+ // { dg-options "-std=gnu++20" }
+ // { dg-do compile { target c++20 } }
+ 
+ #include <memory>
+ 
+ struct move_only
+ {
+   move_only(move_only&&);
+ };
+ 
+ using P = std::pair<move_only, move_only>;
+ 
+ void
+ test_lwg3527(std::pair<move_only&&, move_only&&> rvals)
+ {
+   // LWG 3527. uses_allocator_construction_args handles rvalue pairs of
+   // rvalue references incorrectly.
+   // PR libstdc++/108952 Regression in uses_allocator_construction_args
+   // for pair of rvalue references
+   std::allocator<move_only> a;
+   (void) std::uses_allocator_construction_args<P>(a, std::move(rvals));
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/variant/lwg3585.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/variant/lwg3585.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/variant/lwg3585.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile { target c++17 } }
+ 
+ // LWG 3585. Variant converting assignment with immovable alternative
+ 
+ #include <variant>
+ #include <string>
+ 
+ struct A {
+   A() = default;
+   A(A&&) = delete;
+ };
+ 
+ int main() {
+   std::variant<A, std::string> v;
+   v = "hello";
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc gcc-11.4.0/libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do run { target c++11 } }
+ 
+ #include <memory>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_self_move()
+ {
+   std::shared_ptr<int> sp(new int(66));
+   std::weak_ptr<int> wp(sp);
+   wp = std::move(wp); // PR libstdc++/108118
+   std::shared_ptr<int> sp2(wp);
+   VERIFY(sp2 == sp);
+ }
+ 
+ int main()
+ {
+   test_self_move();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc	Mon May 29 08:46:33 2023
*************** void test01()
*** 35,41 ****
  
    std::string c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == '1' );
!   VERIFY( b.size() == 0 );
  }
  
  int main()
--- 35,43 ----
  
    std::string c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == '1' );
! #if ! _GLIBCXX_FULLY_DYNAMIC_STRING
!   VERIFY( b.size() == 0 ); // not guaranteed by the standard
! #endif
  }
  
  int main()
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc	Mon May 29 08:46:33 2023
*************** void test01()
*** 44,50 ****
  
    tstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == '1' );
!   VERIFY( b.size() == 0 );
  }
  
  int main()
--- 44,52 ----
  
    tstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == '1' );
! #if ! _GLIBCXX_FULLY_DYNAMIC_STRING
!   VERIFY( b.size() == 0 ); // not guaranteed by the standard
! #endif
  }
  
  int main()
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc	Mon May 29 08:46:33 2023
*************** void test01()
*** 42,48 ****
  
    tstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == '1' );
!   VERIFY( b.size() == 0 );
  }
  
  int main()
--- 42,50 ----
  
    tstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == '1' );
! #if ! _GLIBCXX_FULLY_DYNAMIC_STRING
!   VERIFY( b.size() == 0 ); // not guaranteed by the standard
! #endif
  }
  
  int main()
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc	Mon May 29 08:46:33 2023
*************** void test01()
*** 35,41 ****
  
    std::wstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == L'1' );
!   VERIFY( b.size() == 0 );
  }
  
  int main()
--- 35,43 ----
  
    std::wstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == L'1' );
! #if ! _GLIBCXX_FULLY_DYNAMIC_STRING
!   VERIFY( b.size() == 0 ); // not guaranteed by the standard
! #endif
  }
  
  int main()
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc	Mon May 29 08:46:33 2023
*************** void test01()
*** 44,50 ****
  
    twstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == L'1' );
!   VERIFY( b.size() == 0 );
  }
  
  int main()
--- 44,52 ----
  
    twstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == L'1' );
! #if ! _GLIBCXX_FULLY_DYNAMIC_STRING
!   VERIFY( b.size() == 0 ); // not guaranteed by the standard
! #endif
  }
  
  int main()
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc	Mon May 29 08:46:33 2023
*************** void test01()
*** 42,48 ****
  
    tstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == L'1' );
!   VERIFY( b.size() == 0 );
  }
  
  int main()
--- 42,50 ----
  
    tstring c(std::move(b));
    VERIFY( c.size() == 1 && c[0] == L'1' );
! #if ! _GLIBCXX_FULLY_DYNAMIC_STRING
!   VERIFY( b.size() == 0 ); // not guaranteed by the standard
! #endif
  }
  
  int main()
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc	Mon May 29 08:46:33 2023
*************** int main()
*** 71,78 ****
  
    string s = "PR libstdc++/87749 a string that is longer than a short string";
    const auto ptr = s.c_str();
-   oom = true;
    string ss;
    ss = std::move(s); // allocators are equal, should not allocate new storage
    VERIFY( ss.c_str() == ptr );
  }
--- 71,78 ----
  
    string s = "PR libstdc++/87749 a string that is longer than a short string";
    const auto ptr = s.c_str();
    string ss;
+   oom = true;
    ss = std::move(s); // allocators are equal, should not allocate new storage
    VERIFY( ss.c_str() == ptr );
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc	Mon May 29 08:46:33 2023
*************** int main()
*** 72,79 ****
  
    string s = L"PR libstdc++/87749 a string that is longer than a short string";
    const auto ptr = s.c_str();
-   oom = true;
    string ss;
    ss = std::move(s); // allocators are equal, should not allocate new storage
    VERIFY( ss.c_str() == ptr );
  }
--- 72,79 ----
  
    string s = L"PR libstdc++/87749 a string that is longer than a short string";
    const auto ptr = s.c_str();
    string ss;
+   oom = true;
    ss = std::move(s); // allocators are equal, should not allocate new storage
    VERIFY( ss.c_str() == ptr );
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 36,42 ****
    };
  
    R r;
!   std::string_view s = r;
    VERIFY( s == r.str );
    VERIFY( s.data() == std::ranges::data(r) );
    VERIFY( s.size() == std::ranges::size(r) );
--- 36,42 ----
    };
  
    R r;
!   std::string_view s{r};
    VERIFY( s == r.str );
    VERIFY( s.data() == std::ranges::data(r) );
    VERIFY( s.size() == std::ranges::size(r) );
*************** test01()
*** 50,59 ****
    static_assert( std::ranges::contiguous_range<R2> );
    static_assert( std::ranges::sized_range<R2> );
    R2 r2;
!   std::string_view s2 = r2; // uses conversion to string_view
    VERIFY( s2 == "Out of range" );
    VERIFY( std::string_view(const_cast<const R2&>(r2)) == s2 );
  
    struct R3 : R
    {
      using R::begin;
--- 50,64 ----
    static_assert( std::ranges::contiguous_range<R2> );
    static_assert( std::ranges::sized_range<R2> );
    R2 r2;
!   std::string_view s2(r2); // uses conversion to string_view
    VERIFY( s2 == "Out of range" );
    VERIFY( std::string_view(const_cast<const R2&>(r2)) == s2 );
  
+   // And again using copy-initialization instead of direct-initialization.
+   std::string_view s2_implicit = r2; // uses conversion to string_view
+   VERIFY( s2_implicit == "Out of range" );
+   VERIFY( std::string_view(const_cast<const R2&>(r2)) == s2_implicit );
+ 
    struct R3 : R
    {
      using R::begin;
*************** test01()
*** 91,97 ****
    static_assert( std::ranges::contiguous_range<R5> );
    static_assert( std::ranges::sized_range<R5> );
    R5 r5;
!   std::string_view s5 = r5; // Uses range constructor
    VERIFY( s5 == r5.str );
    s5 = std::string_view(std::move(r5)); // In C++20 this used conversion op.
    VERIFY( s5 == r5.str );	        // In C++23 it uses range constructor.
--- 96,102 ----
    static_assert( std::ranges::contiguous_range<R5> );
    static_assert( std::ranges::sized_range<R5> );
    R5 r5;
!   std::string_view s5(r5); // Uses range constructor
    VERIFY( s5 == r5.str );
    s5 = std::string_view(std::move(r5)); // In C++20 this used conversion op.
    VERIFY( s5 == r5.str );	        // In C++23 it uses range constructor.
*************** test04()
*** 156,170 ****
    };
  
    R r;
!   std::basic_string_view s = r; // Use deduction guide.
  
    static_assert( std::is_same_v<decltype(s), std::string_view> );
  }
  
  int main()
  {
    test01();
    test02();
    test03();
    test04();
  }
--- 161,190 ----
    };
  
    R r;
!   std::basic_string_view s(r); // Use deduction guide.
  
    static_assert( std::is_same_v<decltype(s), std::string_view> );
  }
  
+ void
+ test05()
+ {
+   struct R
+   {
+     const char* begin() const { return nullptr; }
+     const char* end() const { return nullptr; }
+   };
+ 
+   // P2499R0 string_view range constructor should be explicit
+   // P2516R0 string_view is implicitly convertible from what?
+   static_assert( ! std::is_convertible_v<R, std::string_view> );
+ }
+ 
  int main()
  {
    test01();
    test02();
    test03();
    test04();
+   test05();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 36,42 ****
    };
  
    R r;
!   std::wstring_view s = r;
    VERIFY( s == r.str );
    VERIFY( s.data() == std::ranges::data(r) );
    VERIFY( s.size() == std::ranges::size(r) );
--- 36,42 ----
    };
  
    R r;
!   std::wstring_view s{r};
    VERIFY( s == r.str );
    VERIFY( s.data() == std::ranges::data(r) );
    VERIFY( s.size() == std::ranges::size(r) );
*************** test01()
*** 50,59 ****
    static_assert( std::ranges::contiguous_range<R2> );
    static_assert( std::ranges::sized_range<R2> );
    R2 r2;
!   std::wstring_view s2 = r2; // uses conversion to wstring_view
    VERIFY( s2 == L"Out of range" );
    VERIFY( std::wstring_view(const_cast<const R2&>(r2)) == s2 );
  
    struct R3 : R
    {
      using R::begin;
--- 50,64 ----
    static_assert( std::ranges::contiguous_range<R2> );
    static_assert( std::ranges::sized_range<R2> );
    R2 r2;
!   std::wstring_view s2(r2); // uses conversion to wstring_view
    VERIFY( s2 == L"Out of range" );
    VERIFY( std::wstring_view(const_cast<const R2&>(r2)) == s2 );
  
+   // And again using copy-initialization instead of direct-initialization.
+   std::wstring_view s2_implicit = r2; // uses conversion to wstring_view
+   VERIFY( s2_implicit == L"Out of range" );
+   VERIFY( std::wstring_view(const_cast<const R2&>(r2)) == s2_implicit );
+ 
    struct R3 : R
    {
      using R::begin;
*************** test01()
*** 91,100 ****
    static_assert( std::ranges::contiguous_range<R5> );
    static_assert( std::ranges::sized_range<R5> );
    R5 r5;
!   std::wstring_view s5 = r5; // Uses range constructor
    VERIFY( s5 == r5.str );
    s5 = std::wstring_view(std::move(r5)); // In C++20 this used conversion op.
!   VERIFY( s5 == r5.str );	        // In C++23 it uses range constructor.
  
    wchar_t arr[] = L"arrangement\0with\0nulls";
    std::wstring_view sa = arr; // Does not use range constructor
--- 96,105 ----
    static_assert( std::ranges::contiguous_range<R5> );
    static_assert( std::ranges::sized_range<R5> );
    R5 r5;
!   std::wstring_view s5(r5); // Uses range constructor
    VERIFY( s5 == r5.str );
    s5 = std::wstring_view(std::move(r5)); // In C++20 this used conversion op.
!   VERIFY( s5 == r5.str );	         // In C++23 it uses range constructor.
  
    wchar_t arr[] = L"arrangement\0with\0nulls";
    std::wstring_view sa = arr; // Does not use range constructor
*************** test04()
*** 156,170 ****
    };
  
    R r;
!   std::basic_string_view s = r; // Use deduction guide.
  
    static_assert( std::is_same_v<decltype(s), std::wstring_view> );
  }
  
  int main()
  {
    test01();
    test02();
    test03();
    test04();
  }
--- 161,190 ----
    };
  
    R r;
!   std::basic_string_view s(r); // Use deduction guide.
  
    static_assert( std::is_same_v<decltype(s), std::wstring_view> );
  }
  
+ void
+ test05()
+ {
+   struct R
+   {
+     const wchar_t* begin() const { return nullptr; }
+     const wchar_t* end() const { return nullptr; }
+   };
+ 
+   // P2499R0 string_view range constructor should be explicit
+   // P2516R0 string_view is implicitly convertible from what?
+   static_assert( ! std::is_convertible_v<R, std::wstring_view> );
+ }
+ 
  int main()
  {
    test01();
    test02();
    test03();
    test04();
+   test05();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc	Mon May 29 08:46:33 2023
***************
*** 22,28 ****
  
  #ifndef __cpp_lib_constexpr_string_view
  # error "Feature test macro for constexpr copy is missing in <string_view>"
! #elif __cpp_lib_constexpr_iterator < 201811L
  # error "Feature test macro for constexpr copy has wrong value in <string_view>"
  #endif
  
--- 22,28 ----
  
  #ifndef __cpp_lib_constexpr_string_view
  # error "Feature test macro for constexpr copy is missing in <string_view>"
! #elif __cpp_lib_constexpr_string_view < 201811L
  # error "Feature test macro for constexpr copy has wrong value in <string_view>"
  #endif
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc gcc-11.4.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,48 ----
+ // { dg-do run { target c++11 } }
+ // C++11 23.3.4.6 Operations [forwardlist.ops]
+ 
+ #include <forward_list>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_stable()
+ {
+   std::forward_list<double> a{1.5, 2.0, 3.5, 4.1};
+   std::forward_list<double> b{1.0, 2.5, 3.0, 4.3, 4.2, 5.0};
+ 
+   a.merge(b, std::less<int>{});
+ 
+   // result is sorted with respect to std::less<int>, so 1.0 and 1.5 are
+   // equivalent, and stability guarantee means the element from a comes first.
+   const std::forward_list<double> r { 1.5, 1.0,
+ 				      2.0, 2.5,
+ 				      3.5, 3.0,
+ 				      4.1, 4.3, 4.2,
+ 				      5.0};
+ 
+   VERIFY(a == r);
+ }
+ 
+ void
+ test_lwg3088()
+ {
+   // LWG 3088: forward_list::merge behavior unclear when passed *this
+   // PR libstdc++/103853
+   std::forward_list<int> c1{ 1, 2, 3 };
+   const std::forward_list<int> c2 = c1;
+   c1.merge(c1);
+   VERIFY( c1 == c2 );
+   c1.merge(c1, std::less<long>{});
+   VERIFY( c1 == c2 );
+   c1.merge(std::move(c1));
+   VERIFY( c1 == c2 );
+   c1.merge(std::move(c1), std::less<long>{});
+   VERIFY( c1 == c2 );
+ }
+ 
+ int
+ main()
+ {
+   test_stable();
+   test_lwg3088();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 27,41 ****
    using I = std::common_iterator<int*, const int*>;
    static_assert( std::is_default_constructible_v<I> );
    static_assert( std::is_copy_constructible_v<I> );
    static_assert( std::is_copy_assignable_v<I> );
    static_assert( std::is_constructible_v<I, int*> );
    static_assert( std::is_constructible_v<I, const int*> );
  
!   struct sentinel { operator int*() const { return nullptr; } };
    using K = std::common_iterator<int*, sentinel>;
    static_assert( std::is_constructible_v<I, const K&> );
    static_assert( std::is_assignable_v<I, const K&> );
  
    struct sentinel2
    {
      const int* p;
--- 27,56 ----
    using I = std::common_iterator<int*, const int*>;
    static_assert( std::is_default_constructible_v<I> );
    static_assert( std::is_copy_constructible_v<I> );
+   static_assert( std::is_move_constructible_v<I> );
    static_assert( std::is_copy_assignable_v<I> );
+   static_assert( std::is_move_assignable_v<I> );
    static_assert( std::is_constructible_v<I, int*> );
    static_assert( std::is_constructible_v<I, const int*> );
  
!   static_assert( std::is_nothrow_copy_constructible_v<I> ); // GCC extension
!   static_assert( std::is_nothrow_move_constructible_v<I> ); // GCC extension
!   static_assert( std::is_nothrow_copy_assignable_v<I> ); // GCC extension
!   static_assert( std::is_nothrow_move_assignable_v<I> ); // GCC extension
! 
!   struct sentinel { operator int*() const noexcept { return nullptr; } };
    using K = std::common_iterator<int*, sentinel>;
    static_assert( std::is_constructible_v<I, const K&> );
    static_assert( std::is_assignable_v<I, const K&> );
  
+   static_assert( std::is_nothrow_assignable_v<I&, const K&> ); // GCC extension
+ 
+   struct sentinel_throwing { operator int*() const { return nullptr; } };
+   using K_throwing = std::common_iterator<int*, sentinel_throwing>;
+   // Conversion is noexcept(false)
+   static_assert( ! std::is_nothrow_assignable_v<I&, const K_throwing&> );
+ 
+ 
    struct sentinel2
    {
      const int* p;
*************** test01()
*** 46,51 ****
--- 61,72 ----
    using J = std::common_iterator<const int*, sentinel2>;
    static_assert( std::is_constructible_v<J, const I&> );
    static_assert( std::is_convertible_v<const I&, J> );
+ 
+   static_assert( std::is_constructible_v<J, I> );
+   static_assert( std::is_convertible_v<I, J> );
+ 
+   // Constructor is noexcept(false)
+   static_assert( ! std::is_nothrow_constructible_v<J, I> );
  }
  
  void
*************** test02()
*** 88,94 ****
      VERIFY( i == (&i - out) );
  }
  
! void
  test03()
  {
    int arr[2] = { 1, 2 };
--- 109,115 ----
      VERIFY( i == (&i - out) );
  }
  
! constexpr bool
  test03()
  {
    int arr[2] = { 1, 2 };
*************** test03()
*** 117,122 ****
--- 138,146 ----
    VERIFY( (j - end) == -2 );
    VERIFY( (j - i) == 0 );
  
+   if (std::is_constant_evaluated())
+     return true;
+ 
    try
    {
      struct S { operator const int*() const { throw 1; } };
*************** test03()
*** 126,133 ****
--- 150,161 ----
    catch (int)
    {
    }
+ 
+   return true;
  }
  
+ static_assert( test03() );
+ 
  void
  test04()
  {
*************** test04()
*** 150,155 ****
--- 178,199 ----
    VERIFY( x.i == 2 );
  }
  
+ constexpr bool
+ test_pr103992()
+ {
+   using C1 = std::common_iterator<std::reverse_iterator<int*>,
+ 				  std::unreachable_sentinel_t>;
+   using C2 = std::common_iterator<std::reverse_iterator<const int*>,
+ 				  std::unreachable_sentinel_t>;
+   C1 c1;
+   C2 c2 = c1;
+   C1 c3 = c1;
+ 
+   return true;
+ }
+ 
+ static_assert( test_pr103992() );
+ 
  int
  main()
  {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,43 ----
+ // { dg-options "-std=gnu++20 -D_GLIBCXX_ASSERTIONS" }
+ // { dg-do run { target c++20 } }
+ #include <iterator>
+ #include <testsuite_iterators.h>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_valueless_assignment()
+ {
+   int x[1] { };
+   __gnu_test::test_forward_range<int> r(x);
+   using Iter = decltype(r.begin());
+   using Sent = decltype(r.end());
+ 
+   std::common_iterator<Iter, Sent> i;
+   const std::common_iterator<Iter, Sent> j(r.begin());
+   try
+   {
+     struct Bomb
+     {
+       bool operator==(Iter) const { return true; }
+       operator Sent() const { throw 1; }
+     };
+     std::common_iterator<Iter, Bomb> b{Bomb{}};
+     i = b; // Throws, leaving i valueless-by-exception.
+     VERIFY(false);
+   }
+   catch (int)
+   {
+     std::common_iterator<Iter, Sent> k(i);
+ 
+     // PR libstdc++/100823
+     k = i; // Valid even though both operands are valueless.
+ 
+     i = j; // No longer valueless.
+   }
+   VERIFY( i == j );
+ }
+ 
+ int main()
+ {
+   test_valueless_assignment();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc	Mon May 29 08:46:33 2023
*************** struct iterator
*** 32,49 ****
    using difference_type = std::ptrdiff_t;
    using reference = value;
  
!   value operator*() const { return value{counter}; }
  
!   iterator& operator++() { ++counter; return *this; }
  
!   iterator operator++(int) { auto i = *this; ++counter; return i; }
  
!   bool operator==(sentinel s) const { return counter == s.limit; }
  
    int counter = 0;
  };
  
! void
  test01()
  {
    iterator i;
--- 32,49 ----
    using difference_type = std::ptrdiff_t;
    using reference = value;
  
!   constexpr value operator*() const { return value{counter}; }
  
!   constexpr iterator& operator++() { ++counter; return *this; }
  
!   constexpr iterator operator++(int) { auto i = *this; ++counter; return i; }
  
!   constexpr bool operator==(sentinel s) const { return counter == s.limit; }
  
    int counter = 0;
  };
  
! constexpr bool
  test01()
  {
    iterator i;
*************** test01()
*** 54,63 ****
    VERIFY( begin->n == 1 );
    ++begin;
    VERIFY( begin == end );
  }
  
  int
  main()
  {
!   test01();
  }
--- 54,65 ----
    VERIFY( begin->n == 1 );
    ++begin;
    VERIFY( begin == end );
+ 
+   return true;
  }
  
  int
  main()
  {
!   constexpr bool b1 = test01();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,27 ----
+ // { dg-options "-std=gnu++20" }
+ // { dg-do compile { target c++20 } }
+ 
+ #include <iterator>
+ 
+ struct InputIterator
+ {
+   using difference_type = int;
+   using value_type = int;
+ 
+   constexpr int operator*() const noexcept { return 0; }
+   InputIterator& operator++() { return *this; }
+   constexpr void operator++(int) { }
+ };
+ 
+ static_assert( std::input_iterator<InputIterator> );
+ static_assert( !std::forward_iterator<InputIterator> );
+ 
+ constexpr bool
+ test_lwg3643()
+ {
+   std::counted_iterator<InputIterator> iter({}, 1);
+   iter++;
+   return iter == std::default_sentinel;
+ }
+ 
+ static_assert( test_lwg3643() );
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc	Mon May 29 08:46:33 2023
***************
*** 15,21 ****
  // with this library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
! // { dg-do compile { target c++11 } }
  
  #include <iterator>
  
--- 15,21 ----
  // with this library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
! // { dg-do run { target c++11 } }
  
  #include <iterator>
  
*************** struct Iter
*** 27,44 ****
    using reference = int&;
    using difference_type = std::ptrdiff_t;
  
!   Iter();
  
!   // Construction from int* is not valid:
!   Iter(int*) = delete;
  
!   // Assignment from int* is valid:
!   Iter& operator=(int*);
  
!   Iter& operator++();
!   Iter operator++(int);
!   int& operator*() const;
!   int* operator->() const;
  
    template<int N> friend bool operator==(Iter, Iter);
  };
--- 27,44 ----
    using reference = int&;
    using difference_type = std::ptrdiff_t;
  
!   Iter() { }
  
!   // Construction from int* should not be used:
!   Iter(int*) { throw 1; }
  
!   // Assignment from int* is OK:
!   Iter& operator=(int*) { return *this; }
  
!   Iter& operator++() { return *this; }
!   Iter operator++(int) { return *this; }
!   int& operator*() const { static int i; return i; }
!   int* operator->() const { return &**this; }
  
    template<int N> friend bool operator==(Iter, Iter);
  };
*************** void test01()
*** 49,51 ****
--- 49,56 ----
    int i = 0;
    m = std::make_move_iterator(&i); // Should use assignment not construction
  }
+ 
+ int main()
+ {
+   test01();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,37 ----
+ // { dg-options "-std=gnu++20" }
+ // { dg-do compile { target c++20 } }
+ 
+ // Verify P2520R0 changes to move_iterator's iterator_concept, which we treat
+ // as a DR against C++20.
+ 
+ #include <iterator>
+ #if __cpp_lib_move_iterator_concept != 202207L
+ # error "Feature-test macro __cpp_lib_move_iterator_concept has wrong value in <iterator>"
+ #endif
+ 
+ #undef __cpp_lib_move_iterator_concept
+ #include <version>
+ #if __cpp_lib_move_iterator_concept != 202207L
+ # error "Feature-test macro __cpp_lib_move_iterator_concept has wrong value in <version>"
+ #endif
+ 
+ #include <testsuite_iterators.h>
+ 
+ using __gnu_test::test_input_range;
+ using __gnu_test::test_forward_range;
+ using __gnu_test::test_bidirectional_range;
+ using __gnu_test::test_random_access_range;
+ 
+ using ty1 = std::move_iterator<decltype(std::declval<test_input_range<int>&>().begin())>;
+ static_assert(std::same_as<ty1::iterator_concept, std::input_iterator_tag>);
+ 
+ using ty2 = std::move_iterator<decltype(std::declval<test_forward_range<int>&>().begin())>;
+ static_assert(std::same_as<ty2::iterator_concept, std::forward_iterator_tag>);
+ 
+ using ty3 = std::move_iterator<decltype(std::declval<test_bidirectional_range<int>&>().begin())>;
+ static_assert(std::same_as<ty3::iterator_concept, std::bidirectional_iterator_tag>);
+ 
+ using ty4 = std::move_iterator<decltype(std::declval<test_random_access_range<int>&>().begin())>;
+ static_assert(std::same_as<ty4::iterator_concept, std::random_access_iterator_tag>);
+ 
+ static_assert(std::random_access_iterator<std::move_iterator<int*>>);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,37 ----
+ // { dg-options "-std=gnu++20" }
+ // { dg-do compile { target c++20 } }
+ 
+ // Public domain testcase from Casey Carter, send to LWG list on 2021-07-24.
+ //
+ // Here's a compile-only test case for which n is INT_MIN, which will overflow
+ // if simply negated to get |n|: https://godbolt.org/z/M7Wz1nW58.
+ 
+ #include <cassert>
+ #include <iterator>
+ #include <limits>
+ 
+ struct I {
+     using difference_type = int;
+     using value_type = int;
+ 
+     int x;
+ 
+     constexpr int operator*() const { return x; }
+     constexpr I& operator++() { ++x; return *this; }
+     constexpr I operator++(int) { ++x; return {x - 1}; }
+     constexpr bool operator==(const I&) const = default;
+ 
+     constexpr int operator-(const I& that) const { return x - that.x; }
+ 
+     constexpr I& operator--() { --x; return *this; }
+     constexpr I operator--(int) { --x; return {x - 1}; }
+ };
+ static_assert(std::bidirectional_iterator<I>);
+ static_assert(std::sized_sentinel_for<I, I>);
+ 
+ constexpr bool test() {
+     using L = std::numeric_limits<int>;
+     I i{-2};
+     return std::ranges::advance(i, L::min(), I{-4}) == L::min() + 2;
+ }
+ static_assert(test());
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc gcc-11.4.0/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc	Mon May 29 08:46:33 2023
*************** test06()
*** 226,231 ****
--- 226,254 ----
    VERIFY( ranges::equal(v, (int[]){1,2,3,0}) );
  }
  
+ void
+ test07()
+ {
+   struct move_only_output_iterator
+   {
+     using value_type = int;
+     using difference_type = short;
+     using iterator_category = std::output_iterator_tag;
+ 
+     move_only_output_iterator() = default;
+     move_only_output_iterator(move_only_output_iterator&&) = default;
+     move_only_output_iterator& operator=(move_only_output_iterator&&) = default;
+ 
+     move_only_output_iterator& operator*() { return *this; }
+     move_only_output_iterator& operator++() { return *this; }
+     move_only_output_iterator operator++(int) { return std::move(*this); }
+ 
+     void operator=(int) { }
+   };
+ 
+   ranges::copy(std::vector<int>{1,2,3}, move_only_output_iterator{});
+ }
+ 
  int
  main()
  {
*************** main()
*** 235,238 ****
--- 258,262 ----
    test04();
    static_assert(test05());
    test06();
+   test07();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/gcd/105844.cc gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/gcd/105844.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/gcd/105844.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,23 ----
+ // { dg-do compile { target c++17 } }
+ #include <numeric>
+ #include <climits>
+ 
+ // PR libstdc++/105844
+ 
+ // |INT_MIN| can be represented in common_type_t<int, unsigned> i.e. unsigned.
+ static_assert( std::gcd(INT_MIN, 2u) == 2 );
+ static_assert( std::gcd(2u, INT_MIN) == 2 );
+ 
+ // |LLONG_MIN| can be represented in unsigned long long.
+ static_assert( std::gcd(LLONG_MIN, 2ull) == 2 );
+ static_assert( std::gcd(2ull, LLONG_MIN) == 2 );
+ 
+ // But |INT_MIN| cannot be represented in common_type<int, int> i.e. int.
+ constexpr int a = std::gcd(INT_MIN, 1); // { dg-error "overflow" }
+ constexpr int b = std::gcd(1, INT_MIN); // { dg-error "overflow" }
+ 
+ // And |LLONG_MIN| cannot be represented in long.
+ constexpr long long c = std::gcd(LLONG_MIN, 1); // { dg-error "overflow" }
+ constexpr long long d = std::gcd(1, LLONG_MIN); // { dg-error "overflow" }
+ 
+ // { dg-prune-output "in 'constexpr' expansion" }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 45,53 ****
    std::gcd<const int&, const int&>(0.1, 0.1);   // { dg-error "from here" }
  }
  
! // { dg-error "must be integers" "" { target *-*-* } 169 }
! // { dg-error "must be integers" "" { target *-*-* } 170 }
! // { dg-error "must not be bool" "" { target *-*-* } 171 }
! // { dg-error "must not be bool" "" { target *-*-* } 172 }
  // { dg-prune-output "deleted function" }
  // { dg-prune-output "incomplete type .*make_unsigned" }
--- 45,55 ----
    std::gcd<const int&, const int&>(0.1, 0.1);   // { dg-error "from here" }
  }
  
! // { dg-error "must be integers" "" { target *-*-* } 0 }
! // { dg-error "must not be bool" "" { target *-*-* } 0 }
! // These prunes could be removed if a fix for PR c++/96286 stops them.
  // { dg-prune-output "deleted function" }
  // { dg-prune-output "incomplete type .*make_unsigned" }
+ // { dg-prune-output "does not have integral type" }
+ // { dg-prune-output "non-integral type" }
+ // { dg-prune-output "invalid specialization" }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/lcm/105844.cc gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/lcm/105844.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/lcm/105844.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do compile { target c++17 } }
+ #include <numeric>
+ #include <climits>
+ 
+ // PR libstdc++/105844
+ 
+ // |INT_MIN| can be represented in common_type_t<int, unsigned> i.e. unsigned.
+ static_assert( std::lcm(INT_MIN, 1u) == INT_MAX+1u );
+ static_assert( std::lcm(1u, INT_MIN) == INT_MAX+1u );
+ 
+ // But |INT_MIN| cannot be represented in common_type<int, int> i.e. int.
+ constexpr int a = std::lcm(INT_MIN, 1); // { dg-error "overflow" }
+ constexpr int b = std::lcm(1, INT_MIN); // { dg-error "overflow" }
+ 
+ // And the LCM of 50000 and 49999 cannot be represented in int.
+ constexpr int c = std::lcm(50000, 49999); // { dg-error "overflow" }
+ constexpr int d = std::lcm(49999, 50000); // { dg-error "overflow" }
+ 
+ // Similarly for unsigned, but the diagnostic is a failed assertion instead.
+ constexpr int e = std::lcm(500000u, 499999); // { dg-error "in 'constexpr'" }
+ constexpr int f = std::lcm(499999u, 500000); // { dg-error "in 'constexpr'" }
+ // { dg-error "unreachable" "" { target *-*-* } 0 }
+ 
+ // { dg-prune-output "in 'constexpr' expansion" }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 45,53 ****
    std::lcm<const int&, const int&>(0.1, 0.1);   // { dg-error "from here" }
  }
  
! // { dg-error "must be integers" "" { target *-*-* } 183 }
! // { dg-error "must be integers" "" { target *-*-* } 184 }
! // { dg-error "must not be bool" "" { target *-*-* } 185 }
! // { dg-error "must not be bool" "" { target *-*-* } 186 }
  // { dg-prune-output "deleted function" }
  // { dg-prune-output "incomplete type .*make_unsigned" }
--- 45,55 ----
    std::lcm<const int&, const int&>(0.1, 0.1);   // { dg-error "from here" }
  }
  
! // { dg-error "must be integers" "" { target *-*-* } 0 }
! // { dg-error "must not be bool" "" { target *-*-* } 0 }
! // These prunes could be removed if a fix for PR c++/96286 stops them.
  // { dg-prune-output "deleted function" }
  // { dg-prune-output "incomplete type .*make_unsigned" }
+ // { dg-prune-output "does not have integral type" }
+ // { dg-prune-output "non-integral type" }
+ // { dg-prune-output "invalid specialization" }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc	Mon May 29 08:46:33 2023
***************
*** 25,30 ****
--- 25,31 ----
  
  #include <random>
  #include <sstream>
+ #include <testsuite_hooks.h>
  
  void
  test01()
*************** test01()
*** 37,46 ****
    str << u;
  
    str >> v;
  }
  
  int main()
  {
    test01();
!   return 0;
  }
--- 38,80 ----
    str << u;
  
    str >> v;
+   VERIFY( u == v );
+ }
+ 
+ void
+ test_pr105502()
+ {
+   // PR libstdc++/105502 std::normal_distribution deserialization issue
+   std::stringstream str;
+   std::normal_distribution<> d{1, 2}, d2;
+   std::minstd_rand0 g;
+   str << d;
+   VERIFY( str );
+   str >> d2;
+   VERIFY( str );
+   VERIFY( d == d2 );
+ 
+   (void) d(g); // sets d._M_saved_available = true
+   str.str("");
+   str.clear();
+   str << d;
+   VERIFY( str );
+   str >> d2;
+   VERIFY( str );
+   VERIFY( d == d2 );
+ 
+   (void) d(g); // sets d._M_saved_available = false
+   str.str("");
+   str.clear();
+   str << d;
+   VERIFY( str );
+   str >> d2;
+   VERIFY( str );
+   VERIFY( d == d2 );
  }
  
  int main()
  {
    test01();
!   test_pr105502();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/valarray/87641.cc gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/26_numerics/valarray/87641.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/26_numerics/valarray/87641.cc	Mon May 29 08:46:33 2023
*************** struct X
*** 39,45 ****
    X() : val(1) { }
  
    X& operator+=(const X& x) { val += x.val; return *this; }
!   bool operator==(const X& x) { return val == x.val; }
  
    int val;
  };
--- 39,45 ----
    X() : val(1) { }
  
    X& operator+=(const X& x) { val += x.val; return *this; }
!   bool operator==(const X& x) const { return val == x.val; }
  
    int val;
  };
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,40 ----
+ // { dg-do run }
+ 
+ #include <sstream>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_pr106248()
+ {
+   char buf[5] = {'x', 'x', 'x', 'x', 'x'};
+   std::string s("  four");
+   std::istringstream in(s);
+   in >> buf;
+ #if __cplusplus >= 202002L
+   // Extraction stops because buffer is full.
+   VERIFY( in.good() );
+ #else
+   // PR libstdc++/106248
+   // Extraction stops because all input has been consumed and eofbit is set.
+   VERIFY( in.eof() );
+ #endif
+   // Extracted string must be null-terminated.
+   VERIFY( buf[4] == '\0' );
+   VERIFY( std::string(buf) == "four" );
+ 
+   in.clear();
+   in.str(s);
+   for (int i = 0; i < 5; ++i)
+     s[i] = 'x';
+ 
+   in.width(5);
+   in >> buf;
+   // Extraction stops due to field width, eofbit not set.
+   VERIFY( in.good() );
+   VERIFY( std::string(buf) == "four" );
+ }
+ 
+ int main()
+ {
+   test_pr106248();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,40 ----
+ // { dg-do run }
+ 
+ #include <sstream>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_pr106248()
+ {
+   wchar_t buf[5] = {L'x', L'x', L'x', L'x', L'x'};
+   std::wstring s(L"  four");
+   std::wistringstream in(s);
+   in >> buf;
+ #if __cplusplus >= 202002L
+   // Extraction stops because buffer is full.
+   VERIFY( in.good() );
+ #else
+   // PR libstdc++/106248
+   // Extraction stops because all input has been consumed and eofbit is set.
+   VERIFY( in.eof() );
+ #endif
+   // Extracted string must be null-terminated.
+   VERIFY( buf[4] == L'\0' );
+   VERIFY( std::wstring(buf) == L"four" );
+ 
+   in.clear();
+   in.str(s);
+   for (int i = 0; i < 5; ++i)
+     s[i] = L'x';
+ 
+   in.width(5);
+   in >> buf;
+   // Extraction stops due to field width, eofbit not set.
+   VERIFY( in.good() );
+   VERIFY( std::wstring(buf) == L"four" );
+ }
+ 
+ int main()
+ {
+   test_pr106248();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc	Mon May 29 08:46:33 2023
***************
*** 28,62 ****
  
  int choice;
  
- struct dirent global_dirent;
- 
  extern "C" struct dirent* readdir(DIR*)
  {
    switch (choice)
    {
    case 1:
!     global_dirent.d_ino = 999;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_REG
!     global_dirent.d_type = DT_REG;
  #endif
!     global_dirent.d_reclen = 0;
!     std::char_traits<char>::copy(global_dirent.d_name, "file", 5);
      choice = 0;
!     return &global_dirent;
    case 2:
!     global_dirent.d_ino = 111;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_DIR
!     global_dirent.d_type = DT_DIR;
  #endif
!     global_dirent.d_reclen = 60;
!     std::char_traits<char>::copy(global_dirent.d_name, "subdir", 7);
      choice = 1;
!     return &global_dirent;
    default:
      errno = EIO;
      return nullptr;
    }
!   return &global_dirent;
  }
  
  void
--- 28,71 ----
  
  int choice;
  
  extern "C" struct dirent* readdir(DIR*)
  {
+   // On some targets dirent::d_name is very small, but the OS allocates
+   // a trailing char array after the dirent struct. Emulate that here.
+   union State
+   {
+     struct dirent d;
+     char buf[sizeof(struct dirent) + 16] = {};
+   };
+ 
+   static State state;
+   char* d_name = state.buf + offsetof(struct dirent, d_name);
+ 
    switch (choice)
    {
    case 1:
!     state.d.d_ino = 999;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_REG
!     state.d.d_type = DT_REG;
  #endif
!     state.d.d_reclen = 0;
!     std::char_traits<char>::copy(d_name, "file", 5);
      choice = 0;
!     return &state.d;
    case 2:
!     state.d.d_ino = 111;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_DIR
!     state.d.d_type = DT_DIR;
  #endif
!     state.d.d_reclen = 60;
!     std::char_traits<char>::copy(d_name, "subdir", 7);
      choice = 1;
!     return &state.d;
    default:
      errno = EIO;
      return nullptr;
    }
!   return &state.d;
  }
  
  void
*************** void
*** 98,104 ****
  test02()
  {
    namespace fs = std::filesystem;
!   auto dir = __gnu_test::nonexistent_path();
    fs::create_directories(dir/"subdir");
  
    std::error_code ec;
--- 107,113 ----
  test02()
  {
    namespace fs = std::filesystem;
!   const auto dir = __gnu_test::nonexistent_path();
    fs::create_directories(dir/"subdir");
  
    std::error_code ec;
*************** test02()
*** 128,134 ****
    }
  #endif
  
!   fs::remove_all(dir, ec);
  }
  
  int
--- 137,148 ----
    }
  #endif
  
!   // Cannot use fs::remove_all here because that uses
!   // recursive_directory_iterator which would use the fake readdir above.
! #ifndef _GLIBCXX_FILESYSTEM_IS_WINDOWS
!   ::rmdir((dir/"subdir").c_str());
!   ::rmdir(dir.c_str());
! #endif
  }
  
  int
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc	Mon May 29 08:46:33 2023
*************** test03()
*** 84,90 ****
    VERIFY( eabs.empty() );
  
    try {
!     absolute(path{});
      VERIFY( false );
    } catch (const std::filesystem::filesystem_error& e) {
      VERIFY( e.code() == std::errc::invalid_argument );
--- 84,90 ----
    VERIFY( eabs.empty() );
  
    try {
!     (void) absolute(path{});
      VERIFY( false );
    } catch (const std::filesystem::filesystem_error& e) {
      VERIFY( e.code() == std::errc::invalid_argument );
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc	Mon May 29 08:46:33 2023
*************** main()
*** 42,52 ****
    bool b [[maybe_unused]];
    std::uintmax_t size;
  
!   std::filesystem::absolute(p);
!   std::filesystem::absolute(p, ec);
  
!   std::filesystem::canonical(p);
!   std::filesystem::canonical(p, ec);
  
    std::filesystem::copy(p, p);
    std::filesystem::copy(p, p, ec);
--- 42,52 ----
    bool b [[maybe_unused]];
    std::uintmax_t size;
  
!   p2 = std::filesystem::absolute(p);
!   p2 = std::filesystem::absolute(p, ec);
  
!   p2 = std::filesystem::canonical(p);
!   p2 = std::filesystem::canonical(p, ec);
  
    std::filesystem::copy(p, p);
    std::filesystem::copy(p, p, ec);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 31,37 ****
    const std::error_code bad_ec = make_error_code(std::errc::invalid_argument);
    std::error_code ec;
    auto p = __gnu_test::nonexistent_path();
!   canonical( p, ec );
    VERIFY( ec );
  
    create_directory(p);
--- 31,37 ----
    const std::error_code bad_ec = make_error_code(std::errc::invalid_argument);
    std::error_code ec;
    auto p = __gnu_test::nonexistent_path();
!   (void) canonical( p, ec );
    VERIFY( ec );
  
    create_directory(p);
*************** test02()
*** 90,96 ****
  #if __cpp_exceptions
    fs::path e1, e2;
    try {
!     canonical(p);
    } catch (const fs::filesystem_error& e) {
      e1 = e.path1();
      e2 = e.path2();
--- 90,96 ----
  #if __cpp_exceptions
    fs::path e1, e2;
    try {
!     (void) canonical(p);
    } catch (const fs::filesystem_error& e) {
      e1 = e.path1();
      e2 = e.path2();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc	Mon May 29 08:46:33 2023
*************** test05()
*** 193,198 ****
--- 193,226 ----
    VERIFY( !ec );  // Previous value should be cleared (LWG 2683)
  }
  
+ void
+ test_pr99290()
+ {
+   auto dir = __gnu_test::nonexistent_path();
+   auto source = dir/"source";
+   auto dest = dir/"dest";
+   create_directories(source/"emptydir");
+   create_directories(dest/"emptydir");
+   std::ofstream{source/"file"} << 'a';
+   std::ofstream{dest/"file"} << 'b';
+   // PR libstdc++/99290
+   // std::filesystem::copy does not always report errors for recursion
+   std::error_code ec;
+   copy(source, dest, ec);
+   VERIFY( ec == std::errc::file_exists );
+ 
+ #if __cpp_exceptions
+   try {
+     copy(source, dest);
+     VERIFY( false );
+   } catch (const fs::filesystem_error& e) {
+     VERIFY( e.code() == std::errc::file_exists );
+   }
+ #endif
+ 
+   remove_all(dir);
+ }
+ 
  int
  main()
  {
*************** main()
*** 201,204 ****
--- 229,233 ----
    test03();
    test04();
    test05();
+   test_pr99290();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc	Mon May 29 08:46:33 2023
*************** test04()
*** 95,101 ****
    ec.clear();
    try
    {
!     exists(unr);
    }
    catch(const std::filesystem::filesystem_error& ex)
    {
--- 95,101 ----
    ec.clear();
    try
    {
!     (void) exists(unr);
    }
    catch(const std::filesystem::filesystem_error& ex)
    {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 40,46 ****
    VERIFY( !result );
  
    try {
!     fs::is_empty(p);
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 40,46 ----
    VERIFY( !result );
  
    try {
!     (void) fs::is_empty(p);
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
*************** test01()
*** 51,57 ****
    VERIFY( !result );
  
    try {
!     fs::is_empty(p/"f");
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 51,57 ----
    VERIFY( !result );
  
    try {
!     (void) fs::is_empty(p/"f");
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 31,37 ****
    auto p = __gnu_test::nonexistent_path();
    std::error_code ec;
  
!   read_symlink(p, ec);
    VERIFY( ec );
  
    fs::path tgt = ".";
--- 31,37 ----
    auto p = __gnu_test::nonexistent_path();
    std::error_code ec;
  
!   (void) read_symlink(p, ec);
    VERIFY( ec );
  
    fs::path tgt = ".";
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc	Mon May 29 08:46:33 2023
*************** test03()
*** 74,80 ****
    std::error_code ec2;
    fs::path p, p2;
    try {
!     fs::symlink_status(f.path);
    } catch (const fs::filesystem_error& e) {
      caught = true;
      p = e.path1();
--- 74,80 ----
    std::error_code ec2;
    fs::path p, p2;
    try {
!     (void) fs::symlink_status(f.path);
    } catch (const fs::filesystem_error& e) {
      caught = true;
      p = e.path1();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc	Mon May 29 08:46:33 2023
*************** test03()
*** 94,100 ****
    std::error_code ec2;
    fs::path p, p2;
    try {
!     fs::symlink_status(f.path);
    } catch (const fs::filesystem_error& e) {
      caught = true;
      p = e.path1();
--- 94,100 ----
    std::error_code ec2;
    fs::path p, p2;
    try {
!     (void) fs::symlink_status(f.path);
    } catch (const fs::filesystem_error& e) {
      caught = true;
      p = e.path1();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc	Mon May 29 08:46:33 2023
***************
*** 20,25 ****
--- 20,26 ----
  
  #include <filesystem>
  #include <stdlib.h>
+ #include <stdio.h>
  #include <testsuite_hooks.h>
  #include <testsuite_fs.h>
  
*************** test01()
*** 58,64 ****
--- 59,68 ----
    clean_env();
  
    if (!fs::exists("/tmp"))
+   {
+     puts("/tmp doesn't exist, not testing it for temp_directory_path");
      return; // just give up
+   }
  
    std::error_code ec = make_error_code(std::errc::invalid_argument);
    fs::path p1 = fs::temp_directory_path(ec);
*************** test02()
*** 75,81 ****
--- 79,88 ----
    clean_env();
  
    if (!set_env("TMP", __gnu_test::nonexistent_path().string()))
+   {
+     puts("Cannot set environment variables, not testing temp_directory_path");
      return; // just give up
+   }
  
    std::error_code ec;
    fs::path p = fs::temp_directory_path(ec);
*************** test03()
*** 110,116 ****
  
    std::error_code ec2;
    try {
!     fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 117,123 ----
  
    std::error_code ec2;
    try {
!     (void) fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
*************** test04()
*** 134,140 ****
  
    std::error_code ec2;
    try {
!     fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 141,147 ----
  
    std::error_code ec2;
    try {
!     (void) fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,8 ----
+ // { dg-do link { target c++17 } }
+ // { dg-options "-fkeep-inline-functions" }
+ 
+ #include <filesystem>
+ int main()
+ {
+   // PR libstdc++/108636 - link failure with -fkeep-inline-functions
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc	Mon May 29 08:46:33 2023
*************** test02()
*** 42,50 ****
--- 42,60 ----
    }
  }
  
+ void
+ test03()
+ {
+   std::hash<path> h;
+   // LWG 3657. std::hash<std::filesystem::path> is not enabled
+   for (const path p : __gnu_test::test_paths)
+     VERIFY( h(p) == hash_value(p) );
+ }
+ 
  int
  main()
  {
    test01();
    test02();
+   test03();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,119 ----
+ // { dg-do compile }
+ 
+ #include <iosfwd>
+ 
+ namespace std
+ {
+   // [iosfwd.syn]
+ 
+   template<class charT> struct char_traits;
+   template<> struct char_traits<char>;
+ #if __cplusplus >= 202002L
+   template<> struct char_traits<char8_t>;
+ #endif
+ #if __cplusplus >= 201103L
+   template<> struct char_traits<char16_t>;
+   template<> struct char_traits<char32_t>;
+ #endif
+   template<> struct char_traits<wchar_t>;
+ 
+   template<class T> class allocator;
+ 
+   template<class charT, class traits>
+     class basic_ios;
+   template<class charT, class traits>
+     class basic_streambuf;
+   template<class charT, class traits>
+     class basic_istream;
+   template<class charT, class traits>
+     class basic_ostream;
+   template<class charT, class traits>
+     class basic_iostream;
+ 
+ _GLIBCXX_BEGIN_NAMESPACE_CXX11
+   template<class charT, class traits, class Allocator>
+     class basic_stringbuf;
+   template<class charT, class traits, class Allocator>
+     class basic_istringstream;
+   template<class charT, class traits, class Allocator>
+     class basic_ostringstream;
+   template<class charT, class traits, class Allocator>
+     class basic_stringstream;
+ _GLIBCXX_END_NAMESPACE_CXX11
+ 
+   template<class charT, class traits>
+     class basic_filebuf;
+   template<class charT, class traits>
+     class basic_ifstream;
+   template<class charT, class traits>
+     class basic_ofstream;
+   template<class charT, class traits>
+     class basic_fstream;
+ 
+ #if __cplusplus >= 202002L && _GLIBCXX_USE_CXX11_ABI
+   template<class charT, class traits, class Allocator>
+     class basic_syncbuf;
+   template<class charT, class traits, class Allocator>
+     class basic_osyncstream;
+ #endif
+ 
+   template<class charT, class traits>
+     class istreambuf_iterator;
+   template<class charT, class traits>
+     class ostreambuf_iterator;
+ 
+   typedef basic_ios<char>    ios;
+   typedef basic_ios<wchar_t> wios;
+ 
+   typedef basic_streambuf<char> streambuf;
+   typedef basic_istream<char>   istream;
+   typedef basic_ostream<char>   ostream;
+   typedef basic_iostream<char>  iostream;
+ 
+   typedef basic_stringbuf<char>     stringbuf;
+   typedef basic_istringstream<char> istringstream;
+   typedef basic_ostringstream<char> ostringstream;
+   typedef basic_stringstream<char>  stringstream;
+ 
+ 
+   typedef basic_filebuf<char>  filebuf;
+   typedef basic_ifstream<char> ifstream;
+   typedef basic_ofstream<char> ofstream;
+   typedef basic_fstream<char>  fstream;
+ 
+ #if __cplusplus >= 202002L && _GLIBCXX_USE_CXX11_ABI
+   typedef basic_syncbuf<char>     syncbuf;
+   typedef basic_osyncstream<char> osyncstream;
+ #endif
+ 
+   typedef basic_streambuf<wchar_t> wstreambuf;
+   typedef basic_istream<wchar_t>   wistream;
+   typedef basic_ostream<wchar_t>   wostream;
+   typedef basic_iostream<wchar_t>  wiostream;
+ 
+   typedef basic_stringbuf<wchar_t>     wstringbuf;
+   typedef basic_istringstream<wchar_t> wistringstream;
+   typedef basic_ostringstream<wchar_t> wostringstream;
+   typedef basic_stringstream<wchar_t>  wstringstream;
+ 
+   typedef basic_filebuf<wchar_t>  wfilebuf;
+   typedef basic_ifstream<wchar_t> wifstream;
+   typedef basic_ofstream<wchar_t> wofstream;
+   typedef basic_fstream<wchar_t>  wfstream;
+ 
+ #if __cplusplus >= 202002L
+   typedef basic_syncbuf<wchar_t>     wsyncbuf;
+   typedef basic_osyncstream<wchar_t> wosyncstream;
+ #endif
+ 
+   template<class state> class fpos;
+   typedef fpos<std::mbstate_t> streampos;
+   typedef fpos<std::mbstate_t> wstreampos;
+ #if __cplusplus >= 202002L
+   typedef fpos<std::mbstate_t> u8streampos;
+ #endif
+ #if __cplusplus >= 201103L
+   typedef fpos<std::mbstate_t> u16streampos;
+   typedef fpos<std::mbstate_t> u32streampos;
+ #endif
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc gcc-11.4.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,214 ----
+ // { dg-do compile { target c++11 } }
+ 
+ #include <iosfwd>
+ 
+ template<class, class> struct Same { static constexpr bool value = false; };
+ template<class T> struct Same<T, T> { static constexpr bool value = true; };
+ 
+ template<class T> using Traits = std::char_traits<T>;
+ template<class T> using Alloc = std::allocator<T>;
+ 
+ using std::basic_ios;
+ 
+ static_assert(Same<basic_ios<char>,
+ 		   basic_ios<char, Traits<char>>
+ 		   >::value,
+     "std::basic_ios<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_ios<wchar_t>,
+ 		   basic_ios<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_ios<wchar_t> has the correct default template argument");
+ 
+ using std::basic_streambuf;
+ 
+ static_assert(Same<basic_streambuf<char>,
+ 		   basic_streambuf<char, Traits<char>>
+ 		   >::value,
+     "std::basic_streambuf<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_streambuf<wchar_t>,
+ 		   basic_streambuf<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_streambuf<wchar_t> has the correct default template argument");
+ 
+ using std::basic_istream;
+ 
+ static_assert(Same<basic_istream<char>,
+ 		   basic_istream<char, Traits<char>>
+ 		   >::value,
+     "std::basic_istream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_istream<wchar_t>,
+ 		   basic_istream<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_istream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_ostream;
+ 
+ static_assert(Same<basic_ostream<char>,
+ 		   basic_ostream<char, Traits<char>>
+ 		   >::value,
+     "std::basic_ostream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_ostream<wchar_t>,
+ 		   basic_ostream<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_ostream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_iostream;
+ 
+ static_assert(Same<basic_iostream<char>,
+ 		   basic_iostream<char, Traits<char>>>::value,
+     "std::basic_iostream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_iostream<wchar_t>,
+ 		   basic_iostream<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_iostream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_stringbuf;
+ 
+ static_assert(Same<basic_stringbuf<char>,
+ 		   basic_stringbuf<char, Traits<char>, Alloc<char>>
+ 		   >::value,
+     "std::basic_stringbuf<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_stringbuf<wchar_t>,
+ 		   basic_stringbuf<wchar_t, Traits<wchar_t>, Alloc<wchar_t>>
+ 		   >::value,
+     "std::basic_stringbuf<wchar_t> has the correct default template argument");
+ 
+ using std::basic_istringstream;
+ 
+ static_assert(Same<basic_istringstream<char>,
+ 		   basic_istringstream<char, Traits<char>, Alloc<char>>
+ 		   >::value,
+     "std::basic_istringstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_istringstream<wchar_t>,
+ 		   basic_istringstream<wchar_t, Traits<wchar_t>, Alloc<wchar_t>>
+ 		   >::value,
+     "std::basic_istringstream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_ostringstream;
+ 
+ static_assert(Same<basic_ostringstream<char>,
+ 		   basic_ostringstream<char, Traits<char>, Alloc<char>>
+ 		   >::value,
+     "std::basic_ostringstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_ostringstream<wchar_t>,
+ 		   basic_ostringstream<wchar_t, Traits<wchar_t>, Alloc<wchar_t>>
+ 		   >::value,
+     "std::basic_ostringstream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_stringstream;
+ 
+ static_assert(Same<basic_stringstream<char>,
+ 		   basic_stringstream<char, Traits<char>, Alloc<char>>
+ 		   >::value,
+     "std::basic_stringstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_stringstream<wchar_t>,
+ 		   basic_stringstream<wchar_t, Traits<wchar_t>, Alloc<wchar_t>>
+ 		   >::value,
+     "std::basic_stringstream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_filebuf;
+ 
+ static_assert(Same<basic_filebuf<char>,
+ 		   basic_filebuf<char, Traits<char>>
+ 		   >::value,
+     "std::basic_filebuf<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_filebuf<wchar_t>,
+ 		   basic_filebuf<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_filebuf<wchar_t> has the correct default template argument");
+ 
+ using std::basic_ifstream;
+ 
+ static_assert(Same<basic_ifstream<char>,
+ 		   basic_ifstream<char, Traits<char>>
+ 		   >::value,
+     "std::basic_ifstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_ifstream<wchar_t>,
+ 		   basic_ifstream<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_ifstream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_ofstream;
+ 
+ static_assert(Same<basic_ofstream<char>,
+ 		   basic_ofstream<char, Traits<char>>
+ 		   >::value,
+     "std::basic_ofstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_ofstream<wchar_t>,
+ 		   basic_ofstream<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_ofstream<wchar_t> has the correct default template argument");
+ 
+ using std::basic_fstream;
+ 
+ static_assert(Same<basic_fstream<char>,
+ 		   basic_fstream<char, Traits<char>>
+ 		   >::value,
+     "std::basic_fstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_fstream<wchar_t>,
+ 		   basic_fstream<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::basic_fstream<wchar_t> has the correct default template argument");
+ 
+ #if __cplusplus >= 202002L && _GLIBCXX_USE_CXX11_ABI
+ using std::basic_syncbuf;
+ 
+ static_assert(Same<basic_syncbuf<char>,
+ 		   basic_syncbuf<char, Traits<char>, Alloc<char>>
+ 		   >::value,
+     "std::basic_syncbuf<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_syncbuf<wchar_t>,
+ 		   basic_syncbuf<wchar_t, Traits<wchar_t>, Alloc<wchar_t>>
+ 		   >::value,
+     "std::basic_syncbuf<wchar_t> has the correct default template argument");
+ 
+ using std::basic_osyncstream;
+ 
+ static_assert(Same<basic_osyncstream<char>,
+ 		   basic_osyncstream<char, Traits<char>, Alloc<char>>
+ 		   >::value,
+     "std::basic_osyncstream<char> has the correct default template argument");
+ 
+ static_assert(Same<basic_osyncstream<wchar_t>,
+ 		   basic_osyncstream<wchar_t, Traits<wchar_t>, Alloc<wchar_t>>
+ 		   >::value,
+     "std::basic_osyncstream<wchar_t> has the correct default template argument");
+ #endif
+ 
+ using std::istreambuf_iterator;
+ 
+ static_assert(Same<istreambuf_iterator<char>,
+ 		   istreambuf_iterator<char, Traits<char>>
+ 		   >::value,
+     "std::istreambuf_iterator<char> has the correct default template argument");
+ 
+ static_assert(Same<istreambuf_iterator<wchar_t>,
+ 		   istreambuf_iterator<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::istreambuf_iterator<wchar_t> has the correct default template argument");
+ 
+ using std::ostreambuf_iterator;
+ 
+ static_assert(Same<ostreambuf_iterator<char>,
+ 		   ostreambuf_iterator<char, Traits<char>>
+ 		   >::value,
+     "std::ostreambuf_iterator<char> has the correct default template argument");
+ 
+ static_assert(Same<ostreambuf_iterator<wchar_t>,
+ 		   ostreambuf_iterator<wchar_t, Traits<wchar_t>>
+ 		   >::value,
+     "std::ostreambuf_iterator<wchar_t> has the correct default template argument");
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 69,74 ****
--- 69,84 ----
  void
  test02()
  {
+   VERIFY(regex_match("-", regex("[-]", regex_constants::ECMAScript)));
+   VERIFY(regex_match("-", regex("[--]", regex_constants::ECMAScript)));
+   VERIFY(regex_match("-", regex("[---]", regex_constants::ECMAScript)));
+   VERIFY(regex_match("-", regex("[----]", regex_constants::ECMAScript)));
+   VERIFY(regex_match("-", regex("[-----]", regex_constants::ECMAScript)));
+ 
+   VERIFY(regex_match("-", regex("[-]", regex_constants::extended)));
+   VERIFY(regex_match("-", regex("[--]", regex_constants::extended)));
+   VERIFY(regex_match("-", regex("[---]", regex_constants::extended)));
+   VERIFY(regex_match("-", regex("[----]", regex_constants::extended)));
    try
    {
      std::regex re("[-----]", std::regex::extended);
*************** test02()
*** 78,84 ****
    {
      VERIFY(e.code() == std::regex_constants::error_range);
    }
-   std::regex re("[-----]", std::regex::ECMAScript);
  
    VERIFY(!regex_match("b", regex("[-ac]", regex_constants::extended)));
    VERIFY(!regex_match("b", regex("[ac-]", regex_constants::extended)));
--- 88,93 ----
*************** test02()
*** 93,99 ****
--- 102,128 ----
    }
    catch (const std::regex_error& e)
    {
+     VERIFY(e.code() == std::regex_constants::error_range);
    }
+   try
+   {
+     regex("[@--]", regex_constants::extended);
+     VERIFY(false);
+   }
+   catch (const std::regex_error& e)
+   {
+     VERIFY(e.code() == std::regex_constants::error_range);
+   }
+   try
+   {
+     regex("[--%]", regex_constants::extended);
+     VERIFY(false);
+   }
+   catch (const std::regex_error& e)
+   {
+     VERIFY(e.code() == std::regex_constants::error_range);
+   }
+ 
    VERIFY(regex_match("].", regex("[][.hyphen.]-0]*", regex_constants::extended)));
  }
  
*************** test06()
*** 158,163 ****
--- 187,222 ----
    VERIFY(regex_match("a-", debian_cron_namespace_ok));
  }
  
+ // libstdc++/102447
+ void
+ test07()
+ {
+   VERIFY(regex_match("-", std::regex("[\\w-]", std::regex::ECMAScript)));
+   VERIFY(regex_match("a", std::regex("[\\w-]", std::regex::ECMAScript)));
+   VERIFY(regex_match("-", std::regex("[a-]", std::regex::ECMAScript)));
+   VERIFY(regex_match("a", std::regex("[a-]", std::regex::ECMAScript)));
+ 
+   try
+   {
+     std::regex re("[\\w-a]", std::regex::ECMAScript);
+     VERIFY(false);
+   }
+   catch (const std::regex_error& e)
+   {
+     VERIFY(e.code() == std::regex_constants::error_range);
+   }
+ 
+   try
+   {
+     std::regex re("[\\w--]", std::regex::ECMAScript);
+     VERIFY(false);
+   }
+   catch (const std::regex_error& e)
+   {
+     VERIFY(e.code() == std::regex_constants::error_range);
+   }
+ }
+ 
  int
  main()
  {
*************** main()
*** 167,172 ****
--- 226,232 ----
    test04();
    test05();
    test06();
+   test07();
  
    return 0;
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,74 ----
+ // { dg-do run { target c++11 } }
+ #include <regex>
+ #include <testsuite_hooks.h>
+ 
+ #if __cplusplus >= 201703L || !defined __STRICT_ANSI__
+ static_assert( std::regex_constants::multiline == std::regex::multiline );
+ static_assert( std::regex_constants::__multiline == std::regex::multiline );
+ #else
+ namespace test { constexpr int multiline = 0; }
+ namespace check {
+   using namespace test;
+   using namespace std::regex_constants;
+   int ml = multiline;
+ }
+ #endif
+ 
+ void
+ test01()
+ {
+   using namespace std::regex_constants;
+ 
+   std::regex ml{"^a.$", __multiline};
+   VERIFY( ml.flags() == __multiline );
+   VERIFY(!std::regex_search("abx\nxab", ml));
+   VERIFY(std::regex_search("x\nab", ml));
+   VERIFY(std::regex_search("ab\n", ml));
+   VERIFY(std::regex_search("x\nab\nx", ml));
+ 
+   ml.assign("a$\n^b$\n^c", ECMAScript|__multiline);
+   VERIFY( ml.flags() == ECMAScript|__multiline );
+   VERIFY( regex_search("a\nb\nc", ml) );
+ 
+   ml.assign("a$\n^b$\n^c", ECMAScript|__multiline|icase);
+   VERIFY( ml.flags() == ECMAScript|__multiline|icase );
+   VERIFY( regex_search("A\nB\nC", ml) );
+ }
+ 
+ void
+ test_pr102480()
+ {
+   using namespace std::regex_constants;
+ 
+   std::regex re("^a");
+   std::regex reml("^a", __multiline);
+   VERIFY( std::regex_match("\na" + 1, re));
+   VERIFY( std::regex_match("\na" + 1, reml));
+   // PR libstdc++/102480
+   VERIFY(!std::regex_match("\na" + 1, re, match_prev_avail));
+   VERIFY( std::regex_match("\na" + 1, reml, match_prev_avail));
+   VERIFY(!std::regex_match("\na" + 1, re, match_not_bol));
+   VERIFY(!std::regex_match("\na" + 1, re, match_prev_avail|match_not_bol));
+   VERIFY( std::regex_match("\na" + 1, reml, match_prev_avail|match_not_bol));
+   VERIFY(!std::regex_match("\ra" + 1, re, match_prev_avail));
+   VERIFY( std::regex_match("\ra" + 1, reml, match_prev_avail));
+   VERIFY(!std::regex_match("xa" + 1, re, match_prev_avail));
+   VERIFY(!std::regex_match("xa" + 1, reml, match_prev_avail));
+ 
+   std::regex bre("^a", basic|__multiline);
+   VERIFY(std::regex_match("\na" + 1, bre));
+   VERIFY(!std::regex_match("\na" + 1, bre, match_not_bol));
+   // multiline is ignored for any grammar except ECMAScript,
+   // so none of the following should match even though
+   // match_prev_avail is set and *--first == '\n'.
+   VERIFY(!std::regex_match("\na" + 1, bre, match_prev_avail));
+   VERIFY(!std::regex_match("\na" + 1, bre, match_prev_avail|match_not_bol));
+   VERIFY(!std::regex_match("\ra" + 1, bre, match_prev_avail));
+   VERIFY(!std::regex_match("xa" + 1, bre, match_prev_avail));
+ }
+ 
+ int main()
+ {
+   test01();
+   test_pr102480();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do run { target c++11 } }
+ // { dg-timeout-factor 2 }
+ 
+ #include <regex>
+ #include <testsuite_hooks.h>
+ 
+ int main()
+ {
+   // PR libstdc++/103664
+   std::string a = regex_replace("123", std::regex("2"), std::string("a\0b", 3));
+   VERIFY( a == std::string("1a\0b3", 5) );
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/106607.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,25 ----
+ // { dg-do run { target c++11 } }
+ 
+ #include <regex>
+ #include <string>
+ #include <climits>
+ #include <testsuite_hooks.h>
+ 
+ // PR libstdc++/106607 - Regex integer overflow on large backreference value
+ 
+ int main()
+ {
+   std::regex r("(.)\\1"); // OK
+ 
+   try
+   {
+     long long n = (unsigned)-1 + 2LL;          // 4294967297 for 32-bit int
+     VERIFY( (int)n == 1 );                     // 4294967297 % 2^32 == 1
+     std::regex r("(.)\\" + std::to_string(n)); // Invalid back reference.
+     VERIFY(false);
+   }
+   catch (const std::regex_error& e)
+   {
+     VERIFY( e.code() == std::regex_constants::error_backref );
+   }
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/84110.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,43 ----
+ // { dg-do run { target c++11 } }
+ // { dg-timeout-factor 2 }
+ #include <regex>
+ #include <string>
+ #include <testsuite_hooks.h>
+ 
+ void test01()
+ {
+   const std::string s(1ul, '\0');
+   std::regex re(s);
+   VERIFY( std::regex_match(s, re) ); // PR libstdc++/84110
+ 
+ #if __cpp_exceptions
+   using namespace std::regex_constants;
+   // See https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582486.html
+   using std::regex_constants::extended;
+ 
+   for (auto syn : {basic, extended, awk, grep, egrep})
+   {
+     try
+     {
+       std::regex{s, syn}; // '\0' is not valid for other grammars
+       VERIFY( false );
+     }
+     catch (const std::regex_error&)
+     {
+     }
+   }
+ #endif
+ }
+ 
+ void test02()
+ {
+   const std::string s("uh-\0h", 5);
+   std::regex re(s);
+   VERIFY( std::regex_match(s, re) );
+ }
+ 
+ int main()
+ {
+   test01();
+   test02();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,20 ----
+ // { dg-do run { target c++11 } }
+ #include <regex>
+ #include <testsuite_hooks.h>
+ 
+ int main()
+ {
+   const auto f = std::regex::ECMAScript|std::regex::icase;
+   std::regex re("abc", f);
+   try
+   {
+     re.assign("[", std::regex::extended);
+     VERIFY( false );
+   }
+   catch (const std::regex_error&)
+   {
+     // [re.regex.assign] "If an exception is thrown, *this is unchanged."
+     VERIFY( re.flags() == f );
+     VERIFY( std::regex_match("abc", re) );
+   }
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,38 ----
+ // { dg-do run { target c++11 } }
+ // { dg-timeout-factor 2 }
+ #include <regex>
+ #include <testsuite_iterators.h>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test01()
+ {
+   signed char s[] = { 'a', '.' };
+   std::regex re(s, s+2); // This used to fail up to GCC 11.2
+   // VERIFY( regex_match("an", re) );
+ 
+   std::wstring str = L"xx";
+   str[0] = '1';
+   str[1] = '2';
+   re.assign(str.begin(), str.end());
+   VERIFY( regex_match("12", re) );
+ }
+ 
+ void
+ test02()
+ {
+   int i[] = { 'a', '.', '[', 'x', 'y', 'z', ']' };
+   __gnu_test::forward_container<int> fwd(i);
+   std::regex re(fwd.begin(), fwd.end());
+   VERIFY( regex_match("any", re) );
+ 
+   __gnu_test::input_container<int> input(i);
+   re.assign(input.begin(), input.end(), std::regex::icase);
+   VERIFY( regex_match("ANY", re) );
+ }
+ 
+ int main()
+ {
+   test01();
+   test02();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/grammar.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,53 ----
+ // { dg-do run { target c++11 } }
+ #include <regex>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test01()
+ {
+   std::regex re{""};
+   VERIFY( re.flags() & std::regex::ECMAScript );
+ 
+   std::regex re2{"", std::regex::flag_type{}};
+   VERIFY( re2.flags() == std::regex::flag_type() ); // See also PR 83598
+ }
+ 
+ void
+ test02()
+ {
+   // A valid value of type syntax_option_type shall have at most one of the
+   // grammar elements ECMAScript, basic, extended, awk, grep, egrep, set.
+ 
+   try
+   {
+     std::regex{"", std::regex::ECMAScript|std::regex::basic};
+     VERIFY( false );
+   }
+   catch (const std::regex_error&)
+   {
+   }
+ 
+   try
+   {
+     std::regex{"", std::regex::extended|std::regex::basic};
+     VERIFY( false );
+   }
+   catch (const std::regex_error&)
+   {
+   }
+ 
+   try
+   {
+     std::regex{"", std::regex::grep|std::regex::basic};
+     VERIFY( false );
+   }
+   catch (const std::regex_error&)
+   {
+   }
+ }
+ 
+ int main()
+ {
+   test01();
+   test02();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc gcc-11.4.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc	Mon May 29 08:46:33 2023
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do run { target c++11 } }
+ // { dg-timeout-factor 2 }
  
  #include <regex>
  #include <testsuite_hooks.h>
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc	Mon May 29 08:46:33 2023
***************
*** 1,3 ****
--- 1,4 ----
+ // { dg-options "-O1" }
  // { dg-do link { target c++11 } }
  
  // Copyright (C) 2009-2021 Free Software Foundation, Inc.
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,13 ----
+ // { dg-do compile { target c++11 } }
+ // DR 3220. P0558 broke conforming C++14 uses of atomic shared_ptr
+ 
+ #include <atomic>
+ #include <memory>
+ 
+ struct Abstract { virtual void test() = 0; };
+ struct Concrete : Abstract { virtual void test() override {} };
+ 
+ int main() {
+   std::shared_ptr<Abstract> ptr;
+   std::atomic_store<Abstract>(&ptr, std::make_shared<Concrete>());
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc	Mon May 29 08:46:33 2023
***************
*** 5,17 ****
  #include <atomic>
  
  void
! test1(const std::atomic<char*>& a, char* p)
  {
    a.wait(p);
  }
  
  void
! test2(const std::atomic<int>* a, int v)
  {
    std::atomic_wait(a, v);
    std::atomic_notify_one(a);
--- 5,17 ----
  #include <atomic>
  
  void
! test1(std::atomic<char*>& a, char* p)
  {
    a.wait(p);
  }
  
  void
! test2(std::atomic<int>* a, int v)
  {
    std::atomic_wait(a, v);
    std::atomic_notify_one(a);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc	Mon May 29 08:46:33 2023
***************
*** 22,28 ****
  #include <atomic>
  #include <testsuite_hooks.h>
  
! int main()
  {
    using namespace std;
  
--- 22,29 ----
  #include <atomic>
  #include <testsuite_hooks.h>
  
! void
! test01()
  {
    using namespace std;
  
*************** int main()
*** 38,40 ****
--- 39,64 ----
    VERIFY( ! af.test(memory_order_acquire) );
    VERIFY( ! caf.test(memory_order_acquire) );
  }
+ 
+ void
+ test02()
+ {
+   using namespace std;
+ 
+   atomic_flag af{true};
+   const atomic_flag& caf = af;
+ 
+   VERIFY( atomic_flag_test_explicit(&af, memory_order_acquire) );
+   VERIFY( atomic_flag_test_explicit(&caf, memory_order_acquire) );
+   af.clear(memory_order_release);
+   VERIFY( ! atomic_flag_test_explicit(&af, memory_order_acquire) );
+   VERIFY( ! atomic_flag_test_explicit(&caf, memory_order_acquire) );
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc	Mon May 29 08:46:33 2023
***************
*** 22,28 ****
  #include <atomic>
  #include <testsuite_hooks.h>
  
! int main()
  {
    using namespace std;
  
--- 22,29 ----
  #include <atomic>
  #include <testsuite_hooks.h>
  
! void
! test01()
  {
    using namespace std;
  
*************** int main()
*** 38,40 ****
--- 39,64 ----
    VERIFY( ! af.test() );
    VERIFY( ! caf.test() );
  }
+ 
+ void
+ test02()
+ {
+   using namespace std;
+ 
+   atomic_flag af{true};
+   const atomic_flag& caf = af;
+ 
+   VERIFY( atomic_flag_test(&af) );
+   VERIFY( atomic_flag_test(&caf) );
+   af.clear(memory_order_release);
+   VERIFY( ! atomic_flag_test(&af) );
+   VERIFY( ! atomic_flag_test(&caf) );
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+   return 0;
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc	Mon May 29 08:46:33 2023
***************
*** 26,33 ****
  
  #include <testsuite_hooks.h>
  
! int
! main()
  {
    std::atomic_flag a;
    VERIFY( !a.test() );
--- 26,33 ----
  
  #include <testsuite_hooks.h>
  
! void
! test01()
  {
    std::atomic_flag a;
    VERIFY( !a.test() );
*************** main()
*** 39,43 ****
--- 39,65 ----
      });
    a.wait(false);
    t.join();
+ }
+ 
+ void
+ test02()
+ {
+   std::atomic_flag a;
+   VERIFY( !std::atomic_flag_test(&a) );
+   std::atomic_flag_wait(&a, true);
+   std::thread t([&]
+     {
+       std::atomic_flag_test_and_set(&a);
+       std::atomic_flag_notify_one(&a);
+     });
+     std::atomic_flag_wait(&a, false);
+     t.join();
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
    return 0;
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/30_threads/async/106695.cc gcc-11.4.0/libstdc++-v3/testsuite/30_threads/async/106695.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/30_threads/async/106695.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/30_threads/async/106695.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,29 ----
+ // { dg-do compile { target c++11 } }
+ // { dg-require-gthreads "" }
+ 
+ // PR libstdc++/106695
+ // Explicit copy constructor does not work for a parameter passed via std::async
+ 
+ #include <future>
+ 
+ struct A {
+   A() = default;
+   explicit A(const A&) = default;
+ };
+ 
+ void func(const A&) { }
+ 
+ void
+ test_async()
+ {
+   (void) std::async(std::launch::async, func, A{});
+   (void) std::async(std::launch::deferred, func, A{});
+   (void) std::async(func, A{});
+ }
+ 
+ void
+ test_task()
+ {
+   std::packaged_task<void(const A&)> task(func);
+   task(A{});
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc gcc-11.4.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,85 ----
+ // // Copyright (C) 2017-2022 Free Software Foundation, Inc.
+ //
+ // 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.
+ 
+ // You should have received a copy of the GNU General Public License along
+ // with this library; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do compile { target c++17 } }
+ 
+ #include <future>
+ 
+ template<typename T, typename U> struct require_same;
+ template<typename T> struct require_same<T, T> { using type = void; };
+ 
+ template<typename T, typename U>
+   typename require_same<T, U>::type
+   check_type(U&) { }
+ 
+ void f0v();
+ void f0vn() noexcept;
+ int f0i();
+ int f0in() noexcept;
+ long f1l(int&);
+ long f1ln(double*) noexcept;
+ 
+ void
+ test01()
+ {
+   std::packaged_task task1{f0v};
+   check_type<std::packaged_task<void()>>(task1);
+ 
+   std::packaged_task task2{f0vn};
+   check_type<std::packaged_task<void()>>(task2);
+ 
+   std::packaged_task task3{f0i};
+   check_type<std::packaged_task<int()>>(task3);
+ 
+   std::packaged_task task4{f0in};
+   check_type<std::packaged_task<int()>>(task4);
+ 
+   std::packaged_task task5{f1l};
+   check_type<std::packaged_task<long(int&)>>(task5);
+ 
+   std::packaged_task task6{f1ln};
+   check_type<std::packaged_task<long(double*)>>(task6);
+ 
+   std::packaged_task task5a{std::move(task5)};
+   check_type<std::packaged_task<long(int&)>>(task5a);
+ 
+   std::packaged_task task6a{std::move(task6)};
+   check_type<std::packaged_task<long(double*)>>(task6a);
+ }
+ 
+ struct X {
+   int operator()(const short&, void*);
+ };
+ 
+ struct Y {
+   void operator()(int) const & noexcept;
+ };
+ 
+ void
+ test02()
+ {
+   X x;
+   std::packaged_task task1{x};
+   check_type<std::packaged_task<int(const short&, void*)>>(task1);
+ 
+   Y y;
+   std::packaged_task task2{y};
+   check_type<std::packaged_task<void(int)>>(task2);
+ 
+   std::packaged_task task3{[&x](float) -> X& { return x; }};
+   check_type<std::packaged_task<X&(float)>>(task3);
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/30_threads/thread/106695.cc gcc-11.4.0/libstdc++-v3/testsuite/30_threads/thread/106695.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/30_threads/thread/106695.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/30_threads/thread/106695.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,21 ----
+ // { dg-do compile { target c++11 } }
+ // { dg-require-gthreads "" }
+ 
+ // PR libstdc++/106695
+ // Explicit copy constructor does not work for a parameter passed via std::async
+ 
+ #include <thread>
+ 
+ struct A {
+   A() = default;
+   explicit A(const A&) = default;
+ };
+ 
+ void func(const A&) { }
+ 
+ void
+ test_thread()
+ {
+   std::thread t(func, A{});
+   t.join();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc	Mon May 29 08:46:33 2023
***************
*** 29,63 ****
  
  int choice;
  
- struct dirent global_dirent;
- 
  extern "C" struct dirent* readdir(DIR*)
  {
    switch (choice)
    {
    case 1:
!     global_dirent.d_ino = 999;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_REG
!     global_dirent.d_type = DT_REG;
  #endif
!     global_dirent.d_reclen = 0;
!     std::char_traits<char>::copy(global_dirent.d_name, "file", 5);
      choice = 0;
!     return &global_dirent;
    case 2:
!     global_dirent.d_ino = 111;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_DIR
!     global_dirent.d_type = DT_DIR;
  #endif
!     global_dirent.d_reclen = 60;
!     std::char_traits<char>::copy(global_dirent.d_name, "subdir", 7);
      choice = 1;
!     return &global_dirent;
    default:
      errno = EIO;
      return nullptr;
    }
!   return &global_dirent;
  }
  
  void
--- 29,72 ----
  
  int choice;
  
  extern "C" struct dirent* readdir(DIR*)
  {
+   // On some targets dirent::d_name is very small, but the OS allocates
+   // a trailing char array after the dirent struct. Emulate that here.
+   union State
+   {
+     struct dirent d;
+     char buf[sizeof(struct dirent) + 16] = {};
+   };
+ 
+   static State state;
+   char* d_name = state.buf + offsetof(struct dirent, d_name);
+ 
    switch (choice)
    {
    case 1:
!     state.d.d_ino = 999;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_REG
!     state.d.d_type = DT_REG;
  #endif
!     state.d.d_reclen = 0;
!     std::char_traits<char>::copy(d_name, "file", 5);
      choice = 0;
!     return &state.d;
    case 2:
!     state.d.d_ino = 111;
  #if defined _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE && defined DT_DIR
!     state.d.d_type = DT_DIR;
  #endif
!     state.d.d_reclen = 60;
!     std::char_traits<char>::copy(d_name, "subdir", 7);
      choice = 1;
!     return &state.d;
    default:
      errno = EIO;
      return nullptr;
    }
!   return &state.d;
  }
  
  void
*************** void
*** 99,105 ****
  test02()
  {
    namespace fs = std::experimental::filesystem;
!   auto dir = __gnu_test::nonexistent_path();
    fs::create_directories(dir/"subdir");
  
    std::error_code ec;
--- 108,114 ----
  test02()
  {
    namespace fs = std::experimental::filesystem;
!   const auto dir = __gnu_test::nonexistent_path();
    fs::create_directories(dir/"subdir");
  
    std::error_code ec;
*************** test02()
*** 129,135 ****
    }
  #endif
  
!   fs::remove_all(dir, ec);
  }
  
  int
--- 138,149 ----
    }
  #endif
  
!   // Cannot use fs::remove_all here because that depends on
!   // recursive_directory_iterator which would use the fake readdir above.
! #ifndef _GLIBCXX_FILESYSTEM_IS_WINDOWS
!   ::rmdir((dir/"subdir").c_str());
!   ::rmdir(dir.c_str());
! #endif
  }
  
  int
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 30,40 ****
  {
    std::error_code ec;
    auto p = __gnu_test::nonexistent_path();
!   canonical( p, ec );
    VERIFY( ec );
  
    p = fs::current_path();
!   canonical( p, ec );
    VERIFY( !ec );
  
    const auto root = fs::absolute("/");
--- 30,40 ----
  {
    std::error_code ec;
    auto p = __gnu_test::nonexistent_path();
!   (void) canonical( p, ec );
    VERIFY( ec );
  
    p = fs::current_path();
!   (void) canonical( p, ec );
    VERIFY( !ec );
  
    const auto root = fs::absolute("/");
*************** test02()
*** 67,73 ****
    fs::path p = "rel", base = __gnu_test::nonexistent_path();
    fs::path e1, e2;
    try {
!     canonical(p, base);
    } catch (const fs::filesystem_error& e) {
      e1 = e.path1();
      e2 = e.path2();
--- 67,73 ----
    fs::path p = "rel", base = __gnu_test::nonexistent_path();
    fs::path e1, e2;
    try {
!     (void) canonical(p, base);
    } catch (const fs::filesystem_error& e) {
      e1 = e.path1();
      e2 = e.path2();
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc	Mon May 29 08:46:33 2023
*************** test05()
*** 190,195 ****
--- 190,223 ----
    VERIFY( !ec );  // Previous value should be cleared (LWG 2683)
  }
  
+ void
+ test_pr99290()
+ {
+   auto dir = __gnu_test::nonexistent_path();
+   auto source = dir/"source";
+   auto dest = dir/"dest";
+   create_directories(source/"emptydir");
+   create_directories(dest/"emptydir");
+   std::ofstream{source/"file"} << 'a';
+   std::ofstream{dest/"file"} << 'b';
+   // PR libstdc++/99290
+   // std::filesystem::copy does not always report errors for recursion
+   std::error_code ec;
+   copy(source, dest, ec);
+   VERIFY( ec == std::errc::file_exists );
+ 
+ #if __cpp_exceptions
+   try {
+     copy(source, dest);
+     VERIFY( false );
+   } catch (const fs::filesystem_error& e) {
+     VERIFY( e.code() == std::errc::file_exists );
+   }
+ #endif
+ 
+   remove_all(dir);
+ }
+ 
  int
  main()
  {
*************** main()
*** 198,201 ****
--- 226,230 ----
    test03();
    test04();
    test05();
+   test_pr99290();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc	Mon May 29 08:46:33 2023
*************** test04()
*** 89,95 ****
    ec.clear();
    try
    {
!     exists(unr);
    }
    catch(const std::experimental::filesystem::filesystem_error& ex)
    {
--- 89,95 ----
    ec.clear();
    try
    {
!     (void) exists(unr);
    }
    catch(const std::experimental::filesystem::filesystem_error& ex)
    {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 41,47 ****
    VERIFY( !result );
  
    try {
!     fs::is_empty(p);
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 41,47 ----
    VERIFY( !result );
  
    try {
!     (void) fs::is_empty(p);
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
*************** test01()
*** 52,58 ****
    VERIFY( !result );
  
    try {
!     fs::is_empty(p/"f");
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 52,58 ----
    VERIFY( !result );
  
    try {
!     (void) fs::is_empty(p/"f");
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc	Mon May 29 08:46:33 2023
*************** test01()
*** 32,38 ****
    auto p = __gnu_test::nonexistent_path();
    std::error_code ec;
  
!   read_symlink(p, ec);
    VERIFY( ec );
  
    fs::path tgt = ".";
--- 32,38 ----
    auto p = __gnu_test::nonexistent_path();
    std::error_code ec;
  
!   (void) read_symlink(p, ec);
    VERIFY( ec );
  
    fs::path tgt = ".";
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc	Mon May 29 08:46:33 2023
***************
*** 21,26 ****
--- 21,27 ----
  
  #include <experimental/filesystem>
  #include <stdlib.h>
+ #include <stdio.h>
  #include <testsuite_hooks.h>
  #include <testsuite_fs.h>
  
*************** test01()
*** 59,65 ****
--- 60,69 ----
    clean_env();
  
    if (!fs::exists("/tmp"))
+   {
+     puts("/tmp doesn't exist, not testing it for temp_directory_path");
      return; // just give up
+   }
  
    std::error_code ec = make_error_code(std::errc::invalid_argument);
    fs::path p1 = fs::temp_directory_path(ec);
*************** test02()
*** 75,82 ****
  {
    clean_env();
  
!   if (set_env("TMPDIR", __gnu_test::nonexistent_path().string()))
      return; // just give up
  
    std::error_code ec;
    fs::path p = fs::temp_directory_path(ec);
--- 79,89 ----
  {
    clean_env();
  
!   if (!set_env("TMP", __gnu_test::nonexistent_path().string()))
!   {
!     puts("Cannot set environment variables, not testing temp_directory_path");
      return; // just give up
+   }
  
    std::error_code ec;
    fs::path p = fs::temp_directory_path(ec);
*************** test03()
*** 98,103 ****
--- 105,112 ----
    if (!__gnu_test::permissions_are_testable())
      return;
  
+   clean_env();
+ 
    auto p = __gnu_test::nonexistent_path();
    create_directories(p/"tmp");
    permissions(p, fs::perms::none);
*************** test03()
*** 109,115 ****
  
    std::error_code ec2;
    try {
!     fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 118,124 ----
  
    std::error_code ec2;
    try {
!     (void) fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
*************** test03()
*** 122,129 ****
  void
  test04()
  {
    __gnu_test::scoped_file f;
!   set_env("TMPDIR", f.path.string());
    std::error_code ec;
    auto r = fs::temp_directory_path(ec);
    VERIFY( ec == std::make_error_code(std::errc::not_a_directory) );
--- 131,140 ----
  void
  test04()
  {
+   clean_env();
+ 
    __gnu_test::scoped_file f;
!   set_env("TMP", f.path.string());
    std::error_code ec;
    auto r = fs::temp_directory_path(ec);
    VERIFY( ec == std::make_error_code(std::errc::not_a_directory) );
*************** test04()
*** 131,137 ****
  
    std::error_code ec2;
    try {
!     fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
--- 142,148 ----
  
    std::error_code ec2;
    try {
!     (void) fs::temp_directory_path();
    } catch (const fs::filesystem_error& e) {
      ec2 = e.code();
    }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc	Thu Jan  1 00:00:00 1970
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc	Mon May 29 08:46:33 2023
***************
*** 0 ****
--- 1,91 ----
+ // { dg-options "-std=gnu++17" }
+ // { dg-do compile { target c++17 } }
+ // { dg-require-cmath "" }
+ 
+ #include <experimental/simd>
+ 
+ namespace stdx = std::experimental;
+ 
+ template <typename T, typename V>
+   void
+   test01()
+   {
+     constexpr T data[V::size()] = {};
+     constexpr auto a = V(data, stdx::element_aligned);
+ 
+     constexpr auto b = []() constexpr {
+       V x = T(1);
+       where(x > T(), x) = T();
+       where(x < T(), x) += T();
+       where(x >= T(), x) -= T();
+       where(x <= T(), x) *= T();
+       where(x != T(), x) += T(1);
+       return x;
+     }();
+ 
+     constexpr T c = V()[0];
+ 
+     constexpr auto d = !V() && !!V() || !V() & !V() | !V() ^ !V();
+ 
+     constexpr auto e = []() constexpr {
+       T data[V::size()] = {};
+       V(T(1)).copy_to(data, stdx::element_aligned);
+       V x = T();
+       x[0] = T(1);
+       x.copy_from(data, stdx::element_aligned);
+       bool mask[V::size()] = {};
+       auto k = hmin(x + x - x * x) == V(T(1));
+       k.copy_to(mask, stdx::element_aligned);
+       mask[0] = false;
+       using M = typename V::mask_type;
+       return M(mask, stdx::element_aligned);
+     }();
+ 
+     static_assert(not e[0]);
+     static_assert(popcount(e) == V::size() - 1);
+ 
+     static_assert(all_of(V(T(1)) == []() constexpr {
+       float data[V::size()] = {};
+       V(T(1)).copy_to(data, stdx::element_aligned);
+       V x = T();
+       x.copy_from(data, stdx::element_aligned);
+       return x;
+     }()));
+ 
+     static_assert(hmin(V()) == T());
+     static_assert(hmax(V()) == T());
+     static_assert(reduce(V(1)) == T(V::size()));
+   }
+ 
+ template <typename T>
+   void
+   iterate_abis()
+   {
+     test01<T, stdx::simd<T, stdx::simd_abi::scalar>>();
+     test01<T, stdx::simd<T>>();
+     test01<T, stdx::native_simd<T>>();
+     test01<T, stdx::fixed_size_simd<T, 3>>();
+     test01<T, stdx::fixed_size_simd<T, stdx::simd_abi::max_fixed_size<T> - 4>>();
+   }
+ 
+ int main()
+ {
+   iterate_abis<char>();
+   iterate_abis<wchar_t>();
+   iterate_abis<char16_t>();
+   iterate_abis<char32_t>();
+ 
+   iterate_abis<signed char>();
+   iterate_abis<unsigned char>();
+   iterate_abis<short>();
+   iterate_abis<unsigned short>();
+   iterate_abis<int>();
+   iterate_abis<unsigned int>();
+   iterate_abis<long>();
+   iterate_abis<unsigned long>();
+   iterate_abis<long long>();
+   iterate_abis<unsigned long long>();
+   iterate_abis<float>();
+   iterate_abis<double>();
+   iterate_abis<long double>();
+ }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h	Mon May 29 08:46:33 2023
*************** public:
*** 137,143 ****
      {
        if (m_failed)
  	[&] {
! 	  __builtin_fprintf(stderr, "%s:%d: (%s):\nInstruction Pointer: %x\n"
  				    "Assertion '%s' failed.\n",
  			    file, line, func, m_ip, cond);
  	  (print(extra_info, int()), ...);
--- 137,143 ----
      {
        if (m_failed)
  	[&] {
! 	  __builtin_fprintf(stderr, "%s:%d: (%s):\nInstruction Pointer: %zx\n"
  				    "Assertion '%s' failed.\n",
  			    file, line, func, m_ip, cond);
  	  (print(extra_info, int()), ...);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 40,48 ****
--- 40,50 ----
    {
      using T = typename V::value_type;
      using intv = std::experimental::fixed_size_simd<int, V::size()>;
+ #if __GCC_IEC_559 >= 2
      constexpr T inf = std::__infinity_v<T>;
      constexpr T denorm_min = std::__infinity_v<T>;
      constexpr T nan = std::__quiet_NaN_v<T>;
+ #endif
      constexpr T max = std::__finite_max_v<T>;
      constexpr T norm_min = std::__norm_min_v<T>;
      test_values<V>(
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 27,37 ****
--- 27,43 ----
    {
      using int_v = std::experimental::fixed_size_simd<int, V::size()>;
      using T = typename V::value_type;
+ #if __GCC_IEC_559 >= 2 || defined __STDC_IEC_559__
      constexpr auto denorm_min = std::__denorm_min_v<T>;
+ #endif
+ #if __GCC_IEC_559 >= 2
      constexpr auto norm_min = std::__norm_min_v<T>;
+ #endif
      constexpr auto max = std::__finite_max_v<T>;
+ #if defined __STDC_IEC_559__
      constexpr auto nan = std::__quiet_NaN_v<T>;
      constexpr auto inf = std::__infinity_v<T>;
+ #endif
      test_values<V>(
        {0, 0.25, 0.5, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
         20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 31, -0., -0.25, -0.5, -1,
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 139,145 ****
  	if (modf_is_broken)
  	  return;
  	V integral = {};
- 	const V totest = modf(input, &integral);
  	auto&& expected = [&](const auto& v) -> std::pair<const V, const V> {
  	  std::pair<V, V> tmp = {};
  	  using std::modf;
--- 139,144 ----
*************** template <typename V>
*** 151,158 ****
  	    }
  	  return tmp;
  	};
- 	const auto expect1 = expected(input);
  #ifdef __STDC_IEC_559__
  	COMPARE(isnan(totest), isnan(expect1.first))
  	  << "modf(" << input << ", iptr) = " << totest << " != " << expect1;
  	COMPARE(isnan(integral), isnan(expect1.second))
--- 150,158 ----
  	    }
  	  return tmp;
  	};
  #ifdef __STDC_IEC_559__
+ 	const V totest = modf(input, &integral);
+ 	const auto expect1 = expected(input);
  	COMPARE(isnan(totest), isnan(expect1.first))
  	  << "modf(" << input << ", iptr) = " << totest << " != " << expect1;
  	COMPARE(isnan(integral), isnan(expect1.second))
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 30,40 ****
      vir::test::setFuzzyness<double>(1);
  
      using T = typename V::value_type;
      constexpr T nan = std::__quiet_NaN_v<T>;
      constexpr T inf = std::__infinity_v<T>;
      constexpr T denorm_min = std::__denorm_min_v<T>;
-     constexpr T norm_min = std::__norm_min_v<T>;
      constexpr T min = std::__finite_min_v<T>;
      constexpr T max = std::__finite_max_v<T>;
      test_values<V>({1,
  		    2,
--- 30,42 ----
      vir::test::setFuzzyness<double>(1);
  
      using T = typename V::value_type;
+ #ifdef __STDC_IEC_559__
      constexpr T nan = std::__quiet_NaN_v<T>;
      constexpr T inf = std::__infinity_v<T>;
      constexpr T denorm_min = std::__denorm_min_v<T>;
      constexpr T min = std::__finite_min_v<T>;
+ #endif
+     constexpr T norm_min = std::__norm_min_v<T>;
      constexpr T max = std::__finite_max_v<T>;
      test_values<V>({1,
  		    2,
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/operators.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 223,229 ****
      }
  
      // divides
!     constexpr bool is_iec559 = __GCC_IEC_559 >= 2;
      if constexpr (std::is_floating_point_v<T> && !is_iec559)
        { // avoid testing subnormals and expect minor deltas for non-IEC559 float
  	V x = 2;
--- 223,236 ----
      }
  
      // divides
!     constexpr bool is_iec559 =
! #ifdef __GCC_IEC_559
!       __GCC_IEC_559 >= 2;
! #elif defined __STDC_IEC_559__
!       true;
! #else
!       false;
! #endif
      if constexpr (std::is_floating_point_v<T> && !is_iec559)
        { // avoid testing subnormals and expect minor deltas for non-IEC559 float
  	V x = 2;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 114,119 ****
        T acc = x[0];
        for (size_t i = 1; i < V::size(); ++i)
  	acc += x[i];
!       ULP_COMPARE(reduce(x), acc, V::size() / 2).on_failure("x = ", x);
      });
    }
--- 114,120 ----
        T acc = x[0];
        for (size_t i = 1; i < V::size(); ++i)
  	acc += x[i];
!       const T max_distance = std::is_integral_v<T> ? 0 : V::size() / 2;
!       ULP_COMPARE(reduce(x), acc, max_distance).on_failure("x = ", x);
      });
    }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc	Mon May 29 08:46:33 2023
*************** template <typename V>
*** 25,32 ****
--- 25,34 ----
    test()
    {
      using T = typename V::value_type;
+ #ifdef __STDC_IEC_559__
      constexpr T inf = std::__infinity_v<T>;
      constexpr T denorm_min = std::__denorm_min_v<T>;
+ #endif
      constexpr T norm_min = std::__norm_min_v<T>;
      constexpr T max = std::__finite_max_v<T>;
      constexpr T min = std::__finite_min_v<T>;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc gcc-11.4.0/libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc	Mon May 29 08:46:33 2023
***************
*** 20,25 ****
--- 20,26 ----
  // { dg-do run }
  // { dg-options "-pthread"  }
  // { dg-require-effective-target pthread }
+ // { dg-timeout-factor 2 }
  
  #include <ext/rope>
  #include <cstring>
*************** typedef __gnu_cxx::rope<char, std::alloc
*** 33,39 ****
  rope_type foo2;
  rope_type foo4;
  
! void* thread_main(void *) 
  {
    // To see a problem with gcc 3.3 and before, set a break point here.
    // Single step through c_str implementation, call sched_yield after
--- 34,40 ----
  rope_type foo2;
  rope_type foo4;
  
! void* thread_main(void *)
  {
    // To see a problem with gcc 3.3 and before, set a break point here.
    // Single step through c_str implementation, call sched_yield after
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc	Mon May 29 08:46:33 2023
***************
*** 25,30 ****
--- 25,31 ----
  #include <memory>
  #include <iostream>
  #include <future>
+ #include <initializer_list>
  #include "../util/testsuite_allocator.h" // NullablePointer
  
  typedef std::tuple<int, int> ExTuple;
*************** main()
*** 191,196 ****
--- 192,202 ----
    std::error_code ecfut0 = std::make_error_code(std::future_errc{});
    // { dg-final { note-test ecfut0 {std::error_code = {"future": 0}} } }
  
+   std::initializer_list<int> emptyIl = {};
+   // { dg-final { note-test emptyIl {std::initializer_list of length 0} } }
+   std::initializer_list<int> il = {3, 4};
+   // { dg-final { note-test il {std::initializer_list of length 2 = {3, 4}} } }
+ 
    placeholder(""); // Mark SPOT
    use(efl);
    use(fl);
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc	Mon May 29 08:46:33 2023
***************
*** 18,25 ****
--- 18,27 ----
  // with this library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
+ #include <array>
  #include <compare>
  #include <iostream>
+ #include <span>
  
  struct X
  {
*************** main()
*** 54,59 ****
--- 56,70 ----
    auto c10 = 0.0 <=> __builtin_nan("");
  // { dg-final { note-test c10 "std::partial_ordering::unordered" } }
  
+   auto il = {1, 2};
+   auto s1 = std::span(il);
+   static_assert(s1.extent == std::size_t(-1));
+ // { dg-final { note-test s1 {std::span of length 2 = {1, 2}} } }
+   auto a = std::array{3, 4};
+   auto s2 = std::span(a);
+   static_assert(s2.extent == std::size_t(2));
+ // { dg-final { note-test s2 {std::span of length 2 = {3, 4}} } }
+ 
    std::cout << "\n";
    return 0;			// Mark SPOT
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc	Mon May 29 08:46:33 2023
*************** main ()
*** 36,41 ****
--- 36,43 ----
  
    std::shared_ptr<x_struct[3]> s(new x_struct[2]{ {92}, {115} });
  
+   auto qq = q;
+ 
  // { dg-final { note-test *p 10 } }
  // { dg-final { regexp-test p.get() 0x.* } }
  
*************** main ()
*** 66,71 ****
--- 68,78 ----
  // { dg-final { whatis-test s.get() "x_struct \*" } }
  // { dg-final { whatis-test s\[1].y int } }
  
+ // { dg-final { note-test p.use_count() 1 } }
+ // { dg-final { note-test p.unique() true } }
+ // { dg-final { note-test q.use_count() 2 } }
+ // { dg-final { note-test q.unique() false } }
+ 
    return 0;  // Mark SPOT
  }
  
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/access/empty.cc gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/access/empty.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/access/empty.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/access/empty.cc	Mon May 29 08:46:33 2023
*************** test04()
*** 119,124 ****
--- 119,134 ----
    static_assert( ! noexcept(std::ranges::empty(E3{})) );
  }
  
+ template<typename T>
+   concept has_empty = requires (T& t) { std::ranges::empty(t); };
+ 
+ // If T is an array of unknown bound, ranges::empty(E) is ill-formed.
+ static_assert( ! has_empty<int[]> );
+ static_assert( ! has_empty<int(&)[]> );
+ static_assert( ! has_empty<int[][2]> );
+ struct Incomplete;
+ static_assert( ! has_empty<Incomplete[]> );
+ 
  int
  main()
  {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/access/size.cc gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/access/size.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/access/size.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/access/size.cc	Mon May 29 08:46:33 2023
*************** test06()
*** 120,125 ****
--- 120,135 ----
    static_assert( std::ranges::size(R{}) == 42 );
  }
  
+ template<typename T>
+   concept has_size = requires (T& t) { std::ranges::size(t); };
+ 
+ // If T is an array of unknown bound, ranges::size(E) is ill-formed.
+ static_assert( ! has_size<int[]> );
+ static_assert( ! has_size<int(&)[]> );
+ static_assert( ! has_size<int[][2]> );
+ struct Incomplete;
+ static_assert( ! has_size<Incomplete[]> );
+ 
  int
  main()
  {
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc	Mon May 29 08:46:33 2023
*************** test11()
*** 193,198 ****
--- 193,212 ----
      ;
  }
  
+ void
+ test13()
+ {
+   // PR libstdc++/106320
+   auto l = std::views::transform([](auto x) {
+     return x | std::views::transform([x=0](auto y) {
+       return y;
+     });
+   });
+   static_assert(!std::default_initializable<decltype(l)>);
+   std::vector<std::vector<int>> v{{5, 6, 7}};
+   v | l | std::views::join;
+ }
+ 
  int
  main()
  {
*************** main()
*** 207,210 ****
--- 221,225 ----
    test09();
    test10();
    test11();
+   test13();
  }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc	Mon May 29 08:46:33 2023
***************
*** 25,32 ****
--- 25,38 ----
  using max_size_t = std::ranges::__detail::__max_size_type;
  using max_diff_t = std::ranges::__detail::__max_diff_type;
  using rep_t = max_size_t::__rep;
+ #if __SIZEOF_INT128__
+ using signed_rep_t = __int128;
+ #else
+ using signed_rep_t = long long;
+ #endif
  
  static_assert(sizeof(max_size_t) == sizeof(max_diff_t));
+ static_assert(sizeof(rep_t) == sizeof(signed_rep_t));
  
  static_assert(std::regular<max_size_t>);
  static_assert(std::totally_ordered<max_size_t>);
*************** test01()
*** 53,58 ****
--- 59,66 ----
    static_assert(max_diff_t(3) % -2 == 1);
    static_assert(max_diff_t(-3) << 1 == -6);
    static_assert(max_diff_t(-3) >> 1 == -2);
+   static_assert(max_diff_t(-3) >> 2 == -1);
+   static_assert(max_diff_t(-3) >> 10 == -1);
    static_assert(max_diff_t(3) >> 1 == 1);
    static_assert(max_diff_t(3) >> 2 == 0);
  
*************** template<bool signed_p, bool shorten_p>
*** 187,193 ****
  void
  test02()
  {
!   using hw_type = std::conditional_t<signed_p, signed rep_t, rep_t>;
    using max_type = std::conditional_t<signed_p, max_diff_t, max_size_t>;
    using shorten_type = std::conditional_t<shorten_p, hw_type, max_type>;
    const int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__;
--- 195,201 ----
  void
  test02()
  {
!   using hw_type = std::conditional_t<signed_p, signed_rep_t, rep_t>;
    using max_type = std::conditional_t<signed_p, max_diff_t, max_size_t>;
    using shorten_type = std::conditional_t<shorten_p, hw_type, max_type>;
    const int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__;
*************** template<bool signed_p, bool toggle_base
*** 245,251 ****
  void
  test03()
  {
!   using hw_type = std::conditional_t<signed_p, signed rep_t, rep_t>;
    using max_type = std::conditional_t<signed_p, max_diff_t, max_size_t>;
    using base_type = std::conditional_t<toggle_base_p, hw_type, max_type>;
    constexpr int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__;
--- 253,259 ----
  void
  test03()
  {
!   using hw_type = std::conditional_t<signed_p, signed_rep_t, rep_t>;
    using max_type = std::conditional_t<signed_p, max_diff_t, max_size_t>;
    using base_type = std::conditional_t<toggle_base_p, hw_type, max_type>;
    constexpr int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__;
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/p2325.cc gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/p2325.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/std/ranges/p2325.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/p2325.cc	Mon May 29 08:46:33 2023
***************
*** 5,12 ****
  // Parts of P2325R3 are deliberately omitted in libstdc++ 11, in particular the
  // removal of default ctors for back_/front_insert_iterator, ostream_iterator,
  // ref_view and basic_istream_view/::iterator, so as to maximize backward
! // compatibility with pre-P2325R3 code.  So most static_asserts in this test fail,
! // see the xfails at the end of this file.
  
  #include <ranges>
  #include <iterator>
--- 5,12 ----
  // Parts of P2325R3 are deliberately omitted in libstdc++ 11, in particular the
  // removal of default ctors for back_/front_insert_iterator, ostream_iterator,
  // ref_view and basic_istream_view/::iterator, so as to maximize backward
! // compatibility with pre-P2325R3 code.  Namely all asserts that verify lack of
! // default constructibility fail; see the xfails at the end of this file.
  
  #include <ranges>
  #include <iterator>
*************** test06()
*** 93,99 ****
    static_assert(default_initializable<decltype(views::single(0) | adaptor(f1))>);
    static_assert(!default_initializable<decltype(views::single(0) | adaptor(f2))>);
  
!   struct S { S() = delete; };
    static_assert(!default_initializable<decltype(views::single(declval<S>()) | adaptor(f1))>);
    static_assert(!default_initializable<decltype(views::single(declval<S>()) | adaptor(f2))>);
  }
--- 93,99 ----
    static_assert(default_initializable<decltype(views::single(0) | adaptor(f1))>);
    static_assert(!default_initializable<decltype(views::single(0) | adaptor(f2))>);
  
!   struct S { S() = delete; S(const S&) = default; S(S&&) = default; };
    static_assert(!default_initializable<decltype(views::single(declval<S>()) | adaptor(f1))>);
    static_assert(!default_initializable<decltype(views::single(declval<S>()) | adaptor(f2))>);
  }
*************** void
*** 109,115 ****
  test07()
  {
    // Verify join_view is conditionally default constructible.
!   struct S { S() = delete; };
    using type1 = ranges::join_view<ranges::single_view<ranges::single_view<S>>>;
    static_assert(!default_initializable<type1>);
    using type2 = ranges::join_view<ranges::single_view<ranges::single_view<int>>>;
--- 109,115 ----
  test07()
  {
    // Verify join_view is conditionally default constructible.
!   struct S { S() = delete; S(const S&) = default; S(S&&) = default; };
    using type1 = ranges::join_view<ranges::single_view<ranges::single_view<S>>>;
    static_assert(!default_initializable<type1>);
    using type2 = ranges::join_view<ranges::single_view<ranges::single_view<int>>>;
*************** test11()
*** 173,178 ****
--- 173,182 ----
  // { dg-bogus "static assertion failed" "" { xfail *-*-* } 76 }
  // { dg-bogus "static assertion failed" "" { xfail *-*-* } 77 }
  // { dg-bogus "static assertion failed" "" { xfail *-*-* } 84 }
+ // { dg-bogus "static assertion failed" "" { xfail *-*-* } 94 }
+ // { dg-bogus "static assertion failed" "" { xfail *-*-* } 97 }
+ // { dg-bogus "static assertion failed" "" { xfail *-*-* } 98 }
+ // { dg-bogus "static assertion failed" "" { xfail *-*-* } 114 }
  // { dg-bogus "static assertion failed" "" { xfail *-*-* } 124 }
  // { dg-bogus "static assertion failed" "" { xfail *-*-* } 126 }
  // { dg-bogus "static assertion failed" "" { xfail *-*-* } 128 }
diff -Nrcpad gcc-11.3.0/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc gcc-11.4.0/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
*** gcc-11.3.0/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc	Thu Apr 21 07:58:57 2022
--- gcc-11.4.0/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc	Mon May 29 08:46:33 2023
*************** constexpr_hh_mm_ss()
*** 59,63 ****
  
    static_assert(seconds{hh_mm_ss{100min}} == 100min);
  
!   // TODO: treat_as_floating_point_v
  }
--- 59,115 ----
  
    static_assert(seconds{hh_mm_ss{100min}} == 100min);
  
!   // treat_as_floating_point_v
!   using fseconds = duration<double, ratio<1>>;
!   constexpr hh_mm_ss<fseconds> fsec{0x123.0004p5s};
!   static_assert(std::is_same_v<hh_mm_ss<fseconds>::precision, fseconds>);
!   static_assert(fsec.hours() == 2h);
!   static_assert(fsec.minutes() == 35min);
!   static_assert(fsec.seconds() == 12s);
!   static_assert(fsec.subseconds() == 0x.0004p5s);
!   static_assert(!fsec.is_negative());
!   static_assert(fsec.to_duration() == 0x123.0004p5s);
! 
!   using fminutes = duration<double, ratio<60>>;
!   constexpr hh_mm_ss<fminutes> fmin{-0x1.23p4min};
!   static_assert(std::is_same_v<hh_mm_ss<fminutes>::precision, fseconds>);
!   static_assert(fmin.hours() == 0h);
!   static_assert(fmin.minutes() == 18min);
!   static_assert(fmin.seconds() == 11s);
!   static_assert(fmin.subseconds() == 0.25s);
!   static_assert(fmin.is_negative());
!   static_assert(fmin.to_duration() == -0x1.23p4min);
! }
! 
! constexpr void
! default_construction()
! {
!   using namespace std::chrono;
! 
!   constexpr hh_mm_ss<seconds> s1;
!   static_assert(s1.to_duration() == s1.to_duration().zero());
!   constexpr hh_mm_ss<duration<char>> s2;
!   static_assert(s2.to_duration() == s2.to_duration().zero());
!   constexpr hh_mm_ss<duration<int, std::centi>> s3;
!   static_assert(s3.to_duration() == s3.to_duration().zero());
!   constexpr hh_mm_ss<duration<long long, std::femto>> s4;
!   static_assert(s4.to_duration() == s4.to_duration().zero());
!   constexpr hh_mm_ss<duration<double>> s5;
!   static_assert(s5.to_duration() == s5.to_duration().zero());
! }
! 
! constexpr void
! unsigned_rep()
! {
!   using namespace std::chrono;
! 
!   constexpr duration<unsigned, std::milli> ms(3690001);
! 
!   constexpr hh_mm_ss hms(ms); // PR libstdc++/108265
!   static_assert( ! hms.is_negative() );
!   static_assert( hms.to_duration() == milliseconds(ms.count()) );
!   static_assert( hms.hours() == 1h );
!   static_assert( hms.minutes() == 1min );
!   static_assert( hms.seconds() == 30s );
!   static_assert( hms.subseconds() == 1ms );
  }
diff -Nrcpad gcc-11.3.0/libvtv/ChangeLog gcc-11.4.0/libvtv/ChangeLog
*** gcc-11.3.0/libvtv/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/libvtv/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/lto-plugin/ChangeLog gcc-11.4.0/lto-plugin/ChangeLog
*** gcc-11.3.0/lto-plugin/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/lto-plugin/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/maintainer-scripts/ChangeLog gcc-11.4.0/maintainer-scripts/ChangeLog
*** gcc-11.3.0/maintainer-scripts/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/maintainer-scripts/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
diff -Nrcpad gcc-11.3.0/zlib/ChangeLog gcc-11.4.0/zlib/ChangeLog
*** gcc-11.3.0/zlib/ChangeLog	Thu Apr 21 07:59:16 2022
--- gcc-11.4.0/zlib/ChangeLog	Mon May 29 08:46:50 2023
***************
*** 1,3 ****
--- 1,7 ----
+ 2023-05-29  Release Manager
+ 
+ 	* GCC 11.4.0 released.
+ 
  2022-04-21  Release Manager
  
  	* GCC 11.3.0 released.
