diff -Nrcpad gcc-15-20260314/LAST_UPDATED gcc-15-20260321/LAST_UPDATED
*** gcc-15-20260314/LAST_UPDATED	Sat Mar 14 22:32:19 2026
--- gcc-15-20260321/LAST_UPDATED	Sat Mar 21 22:32:21 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision d562563661045e5158507d57a94fbb3781dcf8c0
--- 1 ----
! Obtained from git: releases/gcc-15 revision fa37bfd7f2d01858323d7b8100a154d0a526b8f9
diff -Nrcpad gcc-15-20260314/MD5SUMS gcc-15-20260321/MD5SUMS
*** gcc-15-20260314/MD5SUMS	Sat Mar 14 22:32:24 2026
--- gcc-15-20260321/MD5SUMS	Sat Mar 21 22:32:26 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260314.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-15-20260321.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
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 25,31 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f2e0e5bc3a96c2a5ca62a1a7c8ff4d2a  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 071f63e1b336d9c846c8a43eaf81589d  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 514,520 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! a05a16fadb05be3535259cceea7c43de  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 514,520 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 522a7c76721c4de58e28e3c7e8389be7  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 551,557 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! f75a0a0497fda9d1ccef7b67bd2e2d0d  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 551,557 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! f4320cb5f8485c32fc5e5d5a6b670761  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 563,569 ****
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 7769c1daae5aa2189520b4254fd9b176  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 563,569 ----
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 259cc2b047fa2f8b780efe159de71f37  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** e2d80b89552da0c6b4cb6bede3b2e573  gcc/co
*** 3476,3482 ****
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  b5b754958fa1c772f3c6b9961de6bb8d  gcc/config/aarch64/aarch64-sve-builtins.h
  f8e53efb41228263faa63280df0a8217  gcc/config/aarch64/aarch64-sve.md
! eb380a954053a41e73e4f6bb1d3572c0  gcc/config/aarch64/aarch64-sve2.md
  94024dd904900fa001fc7e12778c2f22  gcc/config/aarch64/aarch64-sys-regs.def
  b03a8cc94abbd83c9ad4852cd8527434  gcc/config/aarch64/aarch64-tune.md
  06480b67fa44a0b9fa7de2ed778a3df9  gcc/config/aarch64/aarch64-tuning-flags.def
--- 3476,3482 ----
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  b5b754958fa1c772f3c6b9961de6bb8d  gcc/config/aarch64/aarch64-sve-builtins.h
  f8e53efb41228263faa63280df0a8217  gcc/config/aarch64/aarch64-sve.md
! f4331859aa1baca8950f37fd9dfbe613  gcc/config/aarch64/aarch64-sve2.md
  94024dd904900fa001fc7e12778c2f22  gcc/config/aarch64/aarch64-sys-regs.def
  b03a8cc94abbd83c9ad4852cd8527434  gcc/config/aarch64/aarch64-tune.md
  06480b67fa44a0b9fa7de2ed778a3df9  gcc/config/aarch64/aarch64-tuning-flags.def
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5501,5507 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! e5968206f4f95095bfb434754fcb046c  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5501,5507 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 6c28511e4a3c3b881e5468ac4c2641de  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** c1cc5dac36866c611933c037cc1d6f2f  gcc/cp
*** 5565,5571 ****
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
  4fac0de789f395329ba3720ed69283a8  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
! 837b6648692cfc90631f43732905eba0  gcc/cp/error.cc
  86f47b28d673601022d0205cdd718f9d  gcc/cp/except.cc
  f1581b369c1962c764264b1b2af61ca2  gcc/cp/expr.cc
  3b7c086cfb4ed89e6ae40a09ca796704  gcc/cp/friend.cc
--- 5565,5571 ----
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
  4fac0de789f395329ba3720ed69283a8  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
! 4e63f55752a046b72fa1a5ecb4bb5688  gcc/cp/error.cc
  86f47b28d673601022d0205cdd718f9d  gcc/cp/except.cc
  f1581b369c1962c764264b1b2af61ca2  gcc/cp/expr.cc
  3b7c086cfb4ed89e6ae40a09ca796704  gcc/cp/friend.cc
*************** e7fe06956aada61bcaae5168ad47a9c1  gcc/cp
*** 5588,5594 ****
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  eae2e1338eefdbc34a442a4f5e164277  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 32fe1a31c9c64c035ebcd5d17e4620e1  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
--- 5588,5594 ----
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  eae2e1338eefdbc34a442a4f5e164277  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! f259f4b41d4c04ce153b31653a65eaaf  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
*************** eea2c218106edc18c40919ad04f90bf8  gcc/cp
*** 5607,5613 ****
  8608c219e99c630df8a20d1c1136246e  gcc/cprop.cc
  707af5ebd869ba97993a146f0958c180  gcc/crc-verification.cc
  ec1e9c9456a8530e241079823e2fc126  gcc/crc-verification.h
! 9d3c9741dc7aa7fb63e5b4b472a4feb1  gcc/cse.cc
  4d2f6ca081e1447a5bc287da4f7f1f06  gcc/cselib.cc
  44a1aa31be5edacb5f5644352fbb669c  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
--- 5607,5613 ----
  8608c219e99c630df8a20d1c1136246e  gcc/cprop.cc
  707af5ebd869ba97993a146f0958c180  gcc/crc-verification.cc
  ec1e9c9456a8530e241079823e2fc126  gcc/crc-verification.h
! 7b94d6dc56b6743bf96b1a2d23b142e7  gcc/cse.cc
  4d2f6ca081e1447a5bc287da4f7f1f06  gcc/cselib.cc
  44a1aa31be5edacb5f5644352fbb669c  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
*************** e7580325e4512cd9f5c2d665b528fa8f  gcc/fi
*** 6058,6067 ****
  e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
  a798cdca802a57ffa3473ab610b37c86  gcc/fold-const-call.cc
  182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! e117bcdbf02f50922c360befc5d72a04  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 2c116bc9895af2e9557be7c3adab45c3  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6058,6067 ----
  e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
  a798cdca802a57ffa3473ab610b37c86  gcc/fold-const-call.cc
  182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! c93bd28b3de1f9c783e16fc6ec4aab32  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 4e5741ff77479e20eaf881ba22e60141  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** e2cec99de05b647cb16807fa80637b97  gcc/fo
*** 6102,6108 ****
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
  a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! deb1774fa43b021f7fa8fde0fe6642d4  gcc/fortran/decl.cc
  917fd2716f1eef2f47d4f032e14958ad  gcc/fortran/dependency.cc
  70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
  9982bdf75ac5c9630f66edd2aea1fe8b  gcc/fortran/dump-parse-tree.cc
--- 6102,6108 ----
  b7e224f665bb5044ce35ed09435bd4fb  gcc/fortran/cpp.h
  a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
  d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! abf39bff93a97c8fa09ce7ec260b0fe4  gcc/fortran/decl.cc
  917fd2716f1eef2f47d4f032e14958ad  gcc/fortran/dependency.cc
  70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
  9982bdf75ac5c9630f66edd2aea1fe8b  gcc/fortran/dump-parse-tree.cc
*************** c51719103621c7d22803dcc683314e14  gcc/fo
*** 6112,6118 ****
  76bb26929c446b45cc1efbf25d27ea82  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 557c4faded3d865f6f6304bf63f9bb85  gcc/fortran/gfortran.h
  7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  9253f176e44c2708e2c503251b27d6b8  gcc/fortran/interface.cc
--- 6112,6118 ----
  76bb26929c446b45cc1efbf25d27ea82  gcc/fortran/frontend-passes.cc
  a39f360f255f1ef6dfd91ccefef63e05  gcc/fortran/gfc-diagnostic.def
  bd08c55098f00394b9922e6163c27b92  gcc/fortran/gfc-internals.texi
! 594106f4945aba24162f5490e0fec580  gcc/fortran/gfortran.h
  7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
  9253f176e44c2708e2c503251b27d6b8  gcc/fortran/interface.cc
*************** e350765243fa7b881ed82507561870ff  gcc/fo
*** 6140,6151 ****
  1d0a3022c08ef6b885d0772e22a2bf7f  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
! b99c66f0d8d9d173b5e559dd7cff0f1c  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
  3255bc920c3609e58d8a01f6464313e8  gcc/fortran/st.cc
! 7fc6fb7f159830fc0d98a9cd72e5cdf9  gcc/fortran/symbol.cc
  c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
  50451f5a575ab606948f8e72d8cc4721  gcc/fortran/target-memory.h
  3642bf5789a9f38411283c5e4969c5ab  gcc/fortran/trans-array.cc
--- 6140,6151 ----
  1d0a3022c08ef6b885d0772e22a2bf7f  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
! db182b9f9bffc428002f5b5b6fb821b8  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
  3255bc920c3609e58d8a01f6464313e8  gcc/fortran/st.cc
! abd1247d4f726490e981994fe5fc3124  gcc/fortran/symbol.cc
  c9238712914e77b971fde08221a31bf7  gcc/fortran/target-memory.cc
  50451f5a575ab606948f8e72d8cc4721  gcc/fortran/target-memory.h
  3642bf5789a9f38411283c5e4969c5ab  gcc/fortran/trans-array.cc
*************** d555f911945a83db335013815934e941  gcc/fo
*** 6157,6163 ****
  238ad5aa85447100b73b8f59bf5dcaa8  gcc/fortran/trans-expr.cc
  8ba8fa53a4179a343767efc9ef4e17be  gcc/fortran/trans-intrinsic.cc
  a26cd103074d9ae2f87ac35ba1b90970  gcc/fortran/trans-io.cc
! b1027c10f4a35d0040a0da3b22a13d59  gcc/fortran/trans-openmp.cc
  03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
  3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
  efefffe5a6b8f802f86ff8ace5e1bff6  gcc/fortran/trans-types.cc
--- 6157,6163 ----
  238ad5aa85447100b73b8f59bf5dcaa8  gcc/fortran/trans-expr.cc
  8ba8fa53a4179a343767efc9ef4e17be  gcc/fortran/trans-intrinsic.cc
  a26cd103074d9ae2f87ac35ba1b90970  gcc/fortran/trans-io.cc
! 2e5ebe2e22c411c3e1476d807025ae07  gcc/fortran/trans-openmp.cc
  03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
  3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
  efefffe5a6b8f802f86ff8ace5e1bff6  gcc/fortran/trans-types.cc
*************** a0c225f8a1deb41873e5984a058b0f45  gcc/gi
*** 6264,6270 ****
  9d283d6d05cc10c386454e9c6a25e22a  gcc/gimple-loop-versioning.cc
  de516dc4a59882c258bf01584c25b2de  gcc/gimple-low.cc
  a507a70e7f4b0dd99e594d15a5a9a89b  gcc/gimple-low.h
! e5c8937e0ec2740feb1de016f340e32d  gcc/gimple-lower-bitint.cc
  bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gimple-lower-bitint.h
  da1cba564288415af1f675747c508315  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
--- 6264,6270 ----
  9d283d6d05cc10c386454e9c6a25e22a  gcc/gimple-loop-versioning.cc
  de516dc4a59882c258bf01584c25b2de  gcc/gimple-low.cc
  a507a70e7f4b0dd99e594d15a5a9a89b  gcc/gimple-low.h
! 67548c60d7edef5b0ba4e00f1aa48697  gcc/gimple-lower-bitint.cc
  bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gimple-lower-bitint.h
  da1cba564288415af1f675747c508315  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
*************** afa2616e2d58a9137deaabc102d2d7c1  gcc/ip
*** 6478,6484 ****
  e1e331896b86db8a2281657bbb21ac72  gcc/ipa-locality-cloning.h
  04c488e1d6439252e0fa7047b4426f9c  gcc/ipa-modref-tree.cc
  5a1edb91a2b7237c3e946f040a3d9697  gcc/ipa-modref-tree.h
! 3f72461d9982b691967c88700eb6d7b8  gcc/ipa-modref.cc
  8fe1972490c1cce5a10c7cdcd57b2361  gcc/ipa-modref.h
  3d22f7330dddea6a398c36c252764f8e  gcc/ipa-param-manipulation.cc
  d33136e7edecd120aa035f0e1ad240b0  gcc/ipa-param-manipulation.h
--- 6478,6484 ----
  e1e331896b86db8a2281657bbb21ac72  gcc/ipa-locality-cloning.h
  04c488e1d6439252e0fa7047b4426f9c  gcc/ipa-modref-tree.cc
  5a1edb91a2b7237c3e946f040a3d9697  gcc/ipa-modref-tree.h
! 93f2daf8d38d0031acb96faf35260073  gcc/ipa-modref.cc
  8fe1972490c1cce5a10c7cdcd57b2361  gcc/ipa-modref.h
  3d22f7330dddea6a398c36c252764f8e  gcc/ipa-param-manipulation.cc
  d33136e7edecd120aa035f0e1ad240b0  gcc/ipa-param-manipulation.h
*************** d33136e7edecd120aa035f0e1ad240b0  gcc/ip
*** 6486,6492 ****
  83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
  3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
  efab6d5ed309040ea34311e2e35802fe  gcc/ipa-profile.cc
! 191f4b6285522225f83d829c5d171ce8  gcc/ipa-prop.cc
  769c7da3be6c74b69be2f9572626e59f  gcc/ipa-prop.h
  1ab3b52af464e998b39403664a5ee0c4  gcc/ipa-pure-const.cc
  ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
--- 6486,6492 ----
  83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
  3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
  efab6d5ed309040ea34311e2e35802fe  gcc/ipa-profile.cc
! 22383cc8b0b473c169dc79e083600d48  gcc/ipa-prop.cc
  769c7da3be6c74b69be2f9572626e59f  gcc/ipa-prop.h
  1ab3b52af464e998b39403664a5ee0c4  gcc/ipa-pure-const.cc
  ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7640,7646 ****
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
! fc0e6defd18a5b438ab2d47018db32f3  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
--- 7640,7646 ----
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
! e28922d743779c1a509da32bc7d57389  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 0a965cf755133e149f7eb7b787130e15  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8448,8454 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! e8dc0491ecfe698190f474b9aceb3de5  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** b4c316ecfeb0a9b078a76b658ed94668  gcc/te
*** 18611,18616 ****
--- 18611,18617 ----
  29f9291c87488a55a2dd5fa47188ab10  gcc/testsuite/g++.dg/cpp0x/pr119580.C
  9598abf127e6826158d64ee6b05b0791  gcc/testsuite/g++.dg/cpp0x/pr122302.C
  b2f7d7cab4ef6e12f25f82545d59869a  gcc/testsuite/g++.dg/cpp0x/pr123818.C
+ 823666b75dc5cb540393daba4df2d5df  gcc/testsuite/g++.dg/cpp0x/pr124489.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
*************** e6cd912bf923af3add3056c0b7235bab  gcc/te
*** 21096,21101 ****
--- 21097,21104 ----
  0c6fcbc76ec6471803e93062f104892d  gcc/testsuite/g++.dg/cpp26/decomp11.C
  d01e805b9f6fdb44547d559f5b04ea4a  gcc/testsuite/g++.dg/cpp26/decomp12.C
  70cb6b928ead9bbcb58e49f48aac09a0  gcc/testsuite/g++.dg/cpp26/decomp2.C
+ 068dc2156782fc310d9fc4cd498d213d  gcc/testsuite/g++.dg/cpp26/decomp28.C
+ 75839c098b838f1ccf72394115eaf18b  gcc/testsuite/g++.dg/cpp26/decomp29.C
  04625a49d6c21164c6f7e075e578b4d2  gcc/testsuite/g++.dg/cpp26/decomp3.C
  e0331653ca37862860617d90def1c2d9  gcc/testsuite/g++.dg/cpp26/decomp4.C
  2765a6ddd9be5099086c5f772077d8d1  gcc/testsuite/g++.dg/cpp26/decomp5.C
*************** f298eddbaaad3dfdc15f6cf9683ff08a  gcc/te
*** 31853,31860 ****
--- 31856,31865 ----
  34ccf862a19942e4a76e7409c03669c6  gcc/testsuite/g++.dg/torture/pr120119-1.C
  75b55c517ba9c0f47c83851f084cb294  gcc/testsuite/g++.dg/torture/pr121870.C
  4cb804aebd63b708ddcac6b88e4a9b7f  gcc/testsuite/g++.dg/torture/pr123040.C
+ 2fa3f60c4a0ae3a4528024698d6d2c3c  gcc/testsuite/g++.dg/torture/pr123596.C
  fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
  045de4cec99c01bff5389660b8937e19  gcc/testsuite/g++.dg/torture/pr123729.C
+ 947406bbc75c3117568a96cd4a4cc34b  gcc/testsuite/g++.dg/torture/pr124130.C
  61fcf1bc001bfcf25117da95aaa8edd8  gcc/testsuite/g++.dg/torture/pr124135-1.C
  101facde39ac59f9b142786ef251d0ca  gcc/testsuite/g++.dg/torture/pr124135-2.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
*************** fd4292c0fcabd728ea0a1a6dbef87843  gcc/te
*** 53515,53520 ****
--- 53520,53526 ----
  b6cc54f5d02a9045680d8ba8b767f7b8  gcc/testsuite/gcc.dg/torture/pr110924.c
  4dd66a9e59fc17c29835a93cd50deb03  gcc/testsuite/gcc.dg/torture/pr110979.c
  fa1cc5eb743efae6b534499912897d96  gcc/testsuite/gcc.dg/torture/pr111000.c
+ 7423e38f878a6e56fb7be82847619a5b  gcc/testsuite/gcc.dg/torture/pr111036.c
  1dd35b4e28b7f72f0b12fbe3e5efb60a  gcc/testsuite/gcc.dg/torture/pr111048.c
  b3155d2832f93397879a73cc5d6f43b5  gcc/testsuite/gcc.dg/torture/pr111128.c
  a5aabe56aa9f2db146fb1185eabbfacb  gcc/testsuite/gcc.dg/torture/pr111137.c
*************** a789d5fa70ddcb7ea1760ee8688e331c  gcc/te
*** 53701,53716 ****
--- 53707,53731 ----
  e23df6b1422011499b9a500d2bf25add  gcc/testsuite/gcc.dg/torture/pr120944.c
  8d649d57fe1e60239f2949a9cbec8646  gcc/testsuite/gcc.dg/torture/pr121103-1.c
  d41266e6594db1994e416e7a7353751e  gcc/testsuite/gcc.dg/torture/pr121370.c
+ c2d31caef52166d51e81e4dc165eda16  gcc/testsuite/gcc.dg/torture/pr121649.c
  949a4a95ad545289488a204b883b05d6  gcc/testsuite/gcc.dg/torture/pr121844.c
  a0fb3a08e712a34686912f981529e52a  gcc/testsuite/gcc.dg/torture/pr122012.c
  256200aae431c6598adbd4613b49ae06  gcc/testsuite/gcc.dg/torture/pr122016.c
  d4560440fd7b3647f8780537a59e4716  gcc/testsuite/gcc.dg/torture/pr122188.c
+ 98c07926a433421f3c019c7e8bf58ed7  gcc/testsuite/gcc.dg/torture/pr122537.c
+ 3142210a35bdb6d31b5c4bb65cf8e9e4  gcc/testsuite/gcc.dg/torture/pr123061.c
  10b3b873efcbbc683b1b7bc118deaf44  gcc/testsuite/gcc.dg/torture/pr123107.c
+ 555e199e2c16f6c135742459dd2921b3  gcc/testsuite/gcc.dg/torture/pr123175-1.c
+ a57694d59f86b331962949b865331a14  gcc/testsuite/gcc.dg/torture/pr123175-2.c
+ e03287adad00d313766ecc2e039fb9b5  gcc/testsuite/gcc.dg/torture/pr123298.c
+ 0cd9b5f403d655ca4804a15fc23543fd  gcc/testsuite/gcc.dg/torture/pr123416.c
+ 7d1a217129f5166f7cde3b004649bea9  gcc/testsuite/gcc.dg/torture/pr123636.c
  ea90221ab80b5c3561ffc7665d2a343a  gcc/testsuite/gcc.dg/torture/pr123645-1.c
  c6c07c813f67e0f94f1352f2810dfcff  gcc/testsuite/gcc.dg/torture/pr123645-2.c
  50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
  846de4745dc42cf6d9abe36308df2301  gcc/testsuite/gcc.dg/torture/pr123887-2.c
  45e84720260c50c6a2acdec6f8eec9ca  gcc/testsuite/gcc.dg/torture/pr123887.c
+ d4f9bc1a728b13f9940b71ab03cc40fd  gcc/testsuite/gcc.dg/torture/pr124132.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
*************** bbd27c9626a85b85613edc25e673f5b8  gcc/te
*** 55335,55340 ****
--- 55350,55356 ----
  88685d259411b8277a35ca6a1e889adb  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-2.c
  ab9071615cb96e67306f62799834192d  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-3.c
  3e33363df98971ca2810932b7646d933  gcc/testsuite/gcc.dg/tree-ssa/counts-1.c
+ 87cfb5f2ac7de7373e23d0716af3b247  gcc/testsuite/gcc.dg/tree-ssa/cselim-4.c
  cb85a2159e6429ded025be9506d3d3ec  gcc/testsuite/gcc.dg/tree-ssa/cswtch-2.c
  eff8f806b1a91fc87bafb5aaff55fd32  gcc/testsuite/gcc.dg/tree-ssa/cswtch-3.c
  b51831242139a92b34dbcd60cebb1cd5  gcc/testsuite/gcc.dg/tree-ssa/cswtch-4.c
*************** bc1b0eb9d58483a9f609b164efd64d18  gcc/te
*** 57085,57090 ****
--- 57101,57107 ----
  6a109e21502e5353e985b8e9180f3c79  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-23.c
  99cacb357948a00b34aa1d255c66558b  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.c
  a3fc09fc73db236301044a5b2f7e7fea  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-25.c
+ 982d2d128f70750a32db6150ef8991ef  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.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
*************** db7ec863bbc5f42e3eaaf7d41c078f60  gcc/te
*** 62818,62835 ****
  954127f6d3b08028a0dbbecea8abaea4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za32.c
  6c42cd7108db85285989b01cdfe0ceab  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za64.c
  f73c190603e33d11562ee018328fb06d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
! 57473390b86a03f32d83e9845fcd1e8f  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
! 610cf99edd9ae5f40f3a3a69e3efc55b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
! 494c59f5fc641ba1ca278e6162846419  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
! ad3bf5b4426c396c38ad710e89d302ac  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
! 5e7be0532c1cf9a24ceae0d2466cba9e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
! 0122c325c4687b56eab55136cc73671a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
! 9c0d30515c9685ca27aabb6a386b5537  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
! ee35ab070539123bfc539d4170588034  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
! b6285c7698184d8c087dacbadd41f5b4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
! d21f72a1590a30f18e73717e7a20cf48  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
! aff628cd65c21a022877761c02d814f0  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
! a3fa32026373764c9168da8a3c6feb13  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c
  92f3366342aae6b2ec7f6d53be3fe1a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za128.c
  4a2c37b58b46cda8f18baebab50b1238  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za16.c
  af7a839b3b15a2c2cfbbc10272a15951  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za32.c
--- 62835,62852 ----
  954127f6d3b08028a0dbbecea8abaea4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za32.c
  6c42cd7108db85285989b01cdfe0ceab  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za64.c
  f73c190603e33d11562ee018328fb06d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
! 3d25db1ad0afebd094545ea84e5f3aae  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
! 840005f252294243ace12ff7d5c6ef0a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
! ce7f61fdd320c854577401af81f7c2d4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
! 24ddf3db4f334ebe87c4dacc577c50a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
! 91a6c7952a3e12c0dc12f395162fae56  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
! 140dea06c2a63f12aa1cfeae3b45a418  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
! 4d1a33db10b9d8309a31c0d67aa11be8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
! b484f4e09608622165b4b3ff193dad13  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
! 460c33ca47010b78e006ddface805b08  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
! 9e58a54ddefabef835a663a6e4ad220e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
! 420869caff110ba03a219c0dbb0d6f6a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
! 18e20b3d14d5d844ff81a8286d4363fd  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c
  92f3366342aae6b2ec7f6d53be3fe1a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za128.c
  4a2c37b58b46cda8f18baebab50b1238  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za16.c
  af7a839b3b15a2c2cfbbc10272a15951  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za32.c
*************** fdf31615d4c23a6cda30ff2ff1493fcd  gcc/te
*** 62938,62944 ****
  5a4e5012170fd731aad53e8a5e8ca2b0  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7_ts.c
  c24e7b6e6657e7a0bc6f6c3324ca0e55  gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
  b7e9ea35db65f1f9ab0129b6787b4aa1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_9.c
! 474e35480cd904009962a6b25b99f50d  gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c
  c7c73b255f9579fb4fca5284ec152e31  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
  9ce9b56fcc81eccd70d155b7ba6b7628  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
  fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
--- 62955,62961 ----
  5a4e5012170fd731aad53e8a5e8ca2b0  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7_ts.c
  c24e7b6e6657e7a0bc6f6c3324ca0e55  gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
  b7e9ea35db65f1f9ab0129b6787b4aa1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_9.c
! 4d9577c81fc117dbb22c930c6def7e07  gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c
  c7c73b255f9579fb4fca5284ec152e31  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
  9ce9b56fcc81eccd70d155b7ba6b7628  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
  fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
*************** b9b880247845019946d9397ae50a7dcf  gcc/te
*** 68105,68122 ****
  96438bdfb17fb69927c45a82c26bcbd0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_s64.c
  4b908d3cdc65630d5d194574d04a9d04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_u64.c
  1e60fc894c3aa822383f66ed0fae4f0d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/recpe_u32.c
! 99dad9c3481eef0de2a4cd060e3a3a1f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c
! 3259cdf48120dc09b7fc2c8efb94097b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c
! 50b69c6d4926cbee4a08a9ec84ff3a81  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c
! 23eaee7e58f44f6e200aa8b355a263c0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c
! c32db97afd2d9cc1a09a84988f8f16be  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c
! c9959408786b02a63956b41e095add33  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c
! 2a09d57eb999e40f06bd820be5e4027f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c
! 01187424d3c6ca4bd77f86ac14381c51  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c
! b58ca786c874c40a9b5a8dfb94364f3b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c
! b5e97f46a70b15dfd94e483317742bde  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c
! 58ea6ac95932884e317f9f9c4937c816  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c
! e00b3221fce98366b7dda70015d71353  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c
  9596a6d388086fba832d8a2f53ea57c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s16.c
  10d33337c7eb8998a71c51e7f2bb3e30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s32.c
  dbc6f1ccc6394bbd64f2989e6f385bce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s64.c
--- 68122,68139 ----
  96438bdfb17fb69927c45a82c26bcbd0  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_s64.c
  4b908d3cdc65630d5d194574d04a9d04  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rax1_u64.c
  1e60fc894c3aa822383f66ed0fae4f0d  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/recpe_u32.c
! 6dcdd634683cc5bf89527f1b3aa8bbe1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c
! 012a6600194eaffae32608214f7961c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c
! 8f78cd01c576e45a1c23352b4a45549e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c
! 3139d30903d8bd1998eaa0bf27d502dd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c
! 57d9d47866b138860f9596ecf5f33c3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c
! 3a81d4e766ce2c370d5f1e889ebb6571  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c
! 7579a7ee86d83cfb156bfd8326fc64b9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c
! c1b1f25927be0ef1d0776d5609fa76f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c
! 28e02d840ab26dfbfdd422470b9a0664  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c
! 3ba755e3a4fcf839884e3245bac1c47b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c
! 439b4003f6ccff9474809f43a320434c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c
! 1e000b1c81ff64e2c2bc15b428bc2184  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c
  9596a6d388086fba832d8a2f53ea57c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s16.c
  10d33337c7eb8998a71c51e7f2bb3e30  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s32.c
  dbc6f1ccc6394bbd64f2989e6f385bce  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/rhadd_s64.c
*************** fc2eb8ac52faed5fba0a017b858d4ae4  gcc/te
*** 68723,68728 ****
--- 68740,68746 ----
  8ba6cf5317762b2b89350d4f652efa53  gcc/testsuite/gcc.target/aarch64/torture/pr116564.c
  626bb6bb64c1bbe8eb5e2b92bf925aeb  gcc/testsuite/gcc.target/aarch64/torture/pr120986-2.c
  d03b2f46140f14ae9b2101813aec3525  gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
+ 164477999ab21aa17183a55d49bb0d71  gcc/testsuite/gcc.target/aarch64/torture/pr124491.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
*************** d4ebe08b4cb963582547d8bb5712e712  gcc/te
*** 80375,80380 ****
--- 80393,80399 ----
  5064c3ab2b92e2f20dcd604d557d738c  gcc/testsuite/gcc.target/i386/pr121208-3b.c
  12e796120a8d76792772ddd159f57f3f  gcc/testsuite/gcc.target/i386/pr121274.c
  acecf2f1dc8cd91c8c8b1bdd86ee2f01  gcc/testsuite/gcc.target/i386/pr121571.c
+ 671eb6b6dd41d0afefc1347129213f3d  gcc/testsuite/gcc.target/i386/pr121726.c
  600ff3c5da35f468b87a23e0d1678a3e  gcc/testsuite/gcc.target/i386/pr122104.c
  dc0ac30205a49a37f80c833e996ed4d2  gcc/testsuite/gcc.target/i386/pr123121.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
*************** e6b0503077f4ef65c73a5ee91d64a1e4  gcc/te
*** 86482,86488 ****
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
  98706d03de6e03b69eeeb2965b987553  gcc/testsuite/gcc.target/powerpc/pr103353.c
! 4a0d8fa948f1e42c9d8e4482f83147b5  gcc/testsuite/gcc.target/powerpc/pr103515.c
  df7ee79b00954d8717bef9dacef99a6d  gcc/testsuite/gcc.target/powerpc/pr103605-1.c
  af8ca5b14e78666f87f75ec9728d5c7a  gcc/testsuite/gcc.target/powerpc/pr103605-2.c
  ddba8d82446a17f0e2280f3a093bc891  gcc/testsuite/gcc.target/powerpc/pr103605.h
--- 86501,86507 ----
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
  98706d03de6e03b69eeeb2965b987553  gcc/testsuite/gcc.target/powerpc/pr103353.c
! 0f42c3453fc643d36f313c59df4fb9ea  gcc/testsuite/gcc.target/powerpc/pr103515.c
  df7ee79b00954d8717bef9dacef99a6d  gcc/testsuite/gcc.target/powerpc/pr103605-1.c
  af8ca5b14e78666f87f75ec9728d5c7a  gcc/testsuite/gcc.target/powerpc/pr103605-2.c
  ddba8d82446a17f0e2280f3a093bc891  gcc/testsuite/gcc.target/powerpc/pr103605.h
*************** fc5031b16be6a0dc4152f151793f4acb  gcc/te
*** 105790,105795 ****
--- 105809,105815 ----
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
  73ad9dd0e1a553e17865bdfdf09510d0  gcc/testsuite/gfortran.dg/pr102532.f90
+ 4efde3b7d107b33c9c8792e23b683d17  gcc/testsuite/gfortran.dg/pr102596.f90
  c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
*************** d4b65efea892e3a54acdb92a298fc582  gcc/te
*** 105866,105871 ****
--- 105886,105892 ----
  0677f2dac82b1b95cde8edf69efd60a9  gcc/testsuite/gfortran.dg/pr106918.f90
  09719e2d59fe58682ef7a737cdf01620  gcc/testsuite/gfortran.dg/pr106934.f90
  e1ccca85dc432ca649742c05520157d9  gcc/testsuite/gfortran.dg/pr106945.f90
+ 1b7098a64b99eb214b607f599b3eb32f  gcc/testsuite/gfortran.dg/pr106946.f90
  a9c6ba4d14cec93cd2edec54fda6a916  gcc/testsuite/gfortran.dg/pr106985.f90
  eb96b826eeaf84f157c8635706721d40  gcc/testsuite/gfortran.dg/pr106986.f90
  054c58cb24c0bee4ea0b5fcf3cdbf86d  gcc/testsuite/gfortran.dg/pr106999.f90
*************** b1cb2c9a52574c2df5df49bd13ee7e5d  gcc/te
*** 105972,105977 ****
--- 105993,105999 ----
  9a63937be6d5e03574fd9c46968454c5  gcc/testsuite/gfortran.dg/pr121234.f90
  cf5eb5dbc3807278a7f8e6a11e5b41bf  gcc/testsuite/gfortran.dg/pr121743.f90
  b9c77c8cd78fcd9e57fbfafe732a8c95  gcc/testsuite/gfortran.dg/pr122936.f90
+ 9aa1b21c93a3838e52245be748b9b301  gcc/testsuite/gfortran.dg/pr124161.f90
  5bfaeea8d13a5035cf46aaab485c2803  gcc/testsuite/gfortran.dg/pr124450.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
*************** aa943f2bec85bb461999d2cb2adfc73a  gcc/te
*** 107577,107582 ****
--- 107599,107605 ----
  701cab3628ee98dbcccc1d64e72d4ed6  gcc/testsuite/gfortran.dg/submodule_31.f08
  2d0d1435c8fc29f13f4d8d923dcdddc5  gcc/testsuite/gfortran.dg/submodule_32.f08
  e87560f12976c9545d8b7ae479b2618c  gcc/testsuite/gfortran.dg/submodule_33.f08
+ ce6def9eadc42b1a4cd9adf6d9fe55ee  gcc/testsuite/gfortran.dg/submodule_34.f90
  68f9f70d888318a31160ba732171726f  gcc/testsuite/gfortran.dg/submodule_4.f08
  d470cf2de70b478f82f67f0729c09b76  gcc/testsuite/gfortran.dg/submodule_5.f08
  125419a41557152ac79de8af903ef20a  gcc/testsuite/gfortran.dg/submodule_6.f08
*************** f01aeac56dffd44808096094e2bf76c1  gcc/tr
*** 118157,118170 ****
  21e7c804e59b1471314ee9c773a41ed1  gcc/tree-diagnostic.h
  061a86cf1b2c01bdde3dc32a0701f5b5  gcc/tree-dump.cc
  f9731b5179d6c364587220c2aea59a3e  gcc/tree-dump.h
! 979524586cd9e564f98af3c19702737b  gcc/tree-eh.cc
  4687ad88ec16848852a4d3f21bafdeba  gcc/tree-eh.h
  f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
  e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
  e14744b5f500a4c01221207e438177b8  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
! 9a5c8f50993858fbfa4c25ce7b64cd20  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
  90ca59c0844cd326f35f9cae17ec174b  gcc/tree-into-ssa.cc
  ef1cb0fba517532ecda9f4e0dd5218f7  gcc/tree-into-ssa.h
--- 118180,118193 ----
  21e7c804e59b1471314ee9c773a41ed1  gcc/tree-diagnostic.h
  061a86cf1b2c01bdde3dc32a0701f5b5  gcc/tree-dump.cc
  f9731b5179d6c364587220c2aea59a3e  gcc/tree-dump.h
! 9efa24beafc3502f210cfd17eef55a96  gcc/tree-eh.cc
  4687ad88ec16848852a4d3f21bafdeba  gcc/tree-eh.h
  f3e814f679f1b8d21b1c54ad5ee16856  gcc/tree-emutls.cc
  e046a9c4874579f81515c4b3d9106b63  gcc/tree-hash-traits.h
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
  e14744b5f500a4c01221207e438177b8  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
! 268ce19b4711a0dfeb13d74f87ad5127  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
  90ca59c0844cd326f35f9cae17ec174b  gcc/tree-into-ssa.cc
  ef1cb0fba517532ecda9f4e0dd5218f7  gcc/tree-into-ssa.h
*************** fd4dd1219acc650a4f7855faa0097964  gcc/tr
*** 118192,118204 ****
  f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
  055f8d35b7a9085ff9d4a90cd58ba399  gcc/tree-scalar-evolution.cc
  dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! 9b68dd964270e3102c0674d65c22432e  gcc/tree-sra.cc
  c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
  b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
! 4fd21ec021c4ec50ec3ce679c9690886  gcc/tree-ssa-alias.cc
! 9d359861d05b5dfbc59cbf45c70feb0f  gcc/tree-ssa-alias.h
  8dc44d35f782ba1dee0da995849e4e40  gcc/tree-ssa-ccp.cc
  0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
  56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
--- 118215,118227 ----
  f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
  055f8d35b7a9085ff9d4a90cd58ba399  gcc/tree-scalar-evolution.cc
  dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! c1ca7a019e46dc910e45ca4477d10b01  gcc/tree-sra.cc
  c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
  b8450f3f71eba56c45cfa47b8a520ef2  gcc/tree-ssa-alias-compare.h
! a280a6011e02f219424be98a9e9e0286  gcc/tree-ssa-alias.cc
! cca706bca4e77342da318cc597425137  gcc/tree-ssa-alias.h
  8dc44d35f782ba1dee0da995849e4e40  gcc/tree-ssa-ccp.cc
  0facf771754439bdf307ff1c5ae92cb5  gcc/tree-ssa-ccp.h
  56468d0bf8f8f4c754ea03008cc6c0eb  gcc/tree-ssa-coalesce.cc
*************** a6d83be241a72da1740cf6c5b2ce7d52  gcc/tr
*** 118215,118230 ****
  488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
  02e9a1bf25d500979aa57640611d72bc  gcc/tree-ssa-loop-ch.cc
! b95106c31df764f5bd162b7d1cab8727  gcc/tree-ssa-loop-im.cc
  21088fa37f899ccd0056bf3486157db9  gcc/tree-ssa-loop-ivcanon.cc
  f5aabdf92f06e52bc27ccf01db908c7f  gcc/tree-ssa-loop-ivopts.cc
  1f70c217ef5bd5f655512b9232754870  gcc/tree-ssa-loop-ivopts.h
  71ebf1f6c8d82b1fdbca6c7aa3bd14cb  gcc/tree-ssa-loop-manip.cc
  fbcc93539b376489c1256eb8cf2d4800  gcc/tree-ssa-loop-manip.h
! 66f54027c40abbb5a8ce78570af5f508  gcc/tree-ssa-loop-niter.cc
  189317c0b965ddd0ee491f8e45af4b0d  gcc/tree-ssa-loop-niter.h
  523a4b7c5b7113009b3b1f0f514d0cd3  gcc/tree-ssa-loop-prefetch.cc
! 164c07dbb4079f7d4f41eb0101ed3193  gcc/tree-ssa-loop-split.cc
  ada2da4e4f03dd37043a0cc6daa67681  gcc/tree-ssa-loop-unswitch.cc
  2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
  538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
--- 118238,118253 ----
  488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
  02e9a1bf25d500979aa57640611d72bc  gcc/tree-ssa-loop-ch.cc
! 230a13be8028bce10bcbed2abe742c8c  gcc/tree-ssa-loop-im.cc
  21088fa37f899ccd0056bf3486157db9  gcc/tree-ssa-loop-ivcanon.cc
  f5aabdf92f06e52bc27ccf01db908c7f  gcc/tree-ssa-loop-ivopts.cc
  1f70c217ef5bd5f655512b9232754870  gcc/tree-ssa-loop-ivopts.h
  71ebf1f6c8d82b1fdbca6c7aa3bd14cb  gcc/tree-ssa-loop-manip.cc
  fbcc93539b376489c1256eb8cf2d4800  gcc/tree-ssa-loop-manip.h
! 241063e89ccdf4caa3028d44bfde8a72  gcc/tree-ssa-loop-niter.cc
  189317c0b965ddd0ee491f8e45af4b0d  gcc/tree-ssa-loop-niter.h
  523a4b7c5b7113009b3b1f0f514d0cd3  gcc/tree-ssa-loop-prefetch.cc
! 684cdd7a8e54471a9a485d08dec4ab1b  gcc/tree-ssa-loop-split.cc
  ada2da4e4f03dd37043a0cc6daa67681  gcc/tree-ssa-loop-unswitch.cc
  2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
  538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
*************** ada2da4e4f03dd37043a0cc6daa67681  gcc/tr
*** 118232,118247 ****
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  0ed882dedcd92c361bc556587aaa4b74  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! 6546b4eb87f94da8fa76a91a908fe7f0  gcc/tree-ssa-phiopt.cc
  0864f59d85045caee0a643f82fa6d20c  gcc/tree-ssa-phiprop.cc
! 56669b2d0405dccdeb2acb778d058e82  gcc/tree-ssa-pre.cc
  bc94d7017980d97ff957feb308ae771c  gcc/tree-ssa-propagate.cc
  299c5d8dabcb4a4d30bab51fbedc4e68  gcc/tree-ssa-propagate.h
  33b23ac0296e477b051caad07dcdfd79  gcc/tree-ssa-reassoc.cc
  258492cd7ef04be49374ea1e670f3b5b  gcc/tree-ssa-reassoc.h
! 16b851d2272426404eb018b5dfe16909  gcc/tree-ssa-sccvn.cc
  4b05103d4706bf37cd0bc9f018b40965  gcc/tree-ssa-sccvn.h
! a27c58eccc3d8929767feb76dc99399f  gcc/tree-ssa-scopedtables.cc
  aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
  1565dc0d975d174e5d53e4889ab223e3  gcc/tree-ssa-sink.cc
  406a54cdf8b5be043cc4908ed1ac0fe1  gcc/tree-ssa-strlen.cc
--- 118255,118270 ----
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  0ed882dedcd92c361bc556587aaa4b74  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! a976730172eb9a08c601510c1bf01a5a  gcc/tree-ssa-phiopt.cc
  0864f59d85045caee0a643f82fa6d20c  gcc/tree-ssa-phiprop.cc
! fcba91260f7125e0b7476810b2adceea  gcc/tree-ssa-pre.cc
  bc94d7017980d97ff957feb308ae771c  gcc/tree-ssa-propagate.cc
  299c5d8dabcb4a4d30bab51fbedc4e68  gcc/tree-ssa-propagate.h
  33b23ac0296e477b051caad07dcdfd79  gcc/tree-ssa-reassoc.cc
  258492cd7ef04be49374ea1e670f3b5b  gcc/tree-ssa-reassoc.h
! d34b2911339d018e0b5118b19ae66533  gcc/tree-ssa-sccvn.cc
  4b05103d4706bf37cd0bc9f018b40965  gcc/tree-ssa-sccvn.h
! 02e5eca7e4a68fce9ad832750594c313  gcc/tree-ssa-scopedtables.cc
  aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
  1565dc0d975d174e5d53e4889ab223e3  gcc/tree-ssa-sink.cc
  406a54cdf8b5be043cc4908ed1ac0fe1  gcc/tree-ssa-strlen.cc
*************** af4c63760c432f66b1c6c8e7e7666699  gcc/tr
*** 118271,118277 ****
  834999e1b44b915632e773927cdaa397  gcc/tree-switch-conversion.h
  cac3afe79bbadb8c304cebff78dbb3df  gcc/tree-tailcall.cc
  61a9b445a765d6b6d497bc7273d05f64  gcc/tree-vect-data-refs.cc
! 7ac587d2dd45a9437f9daa1b6409dca9  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
  6bc2a872ec2c5dda08efa8b277eb7783  gcc/tree-vect-loop.cc
  77240c08cea454c2d4a449206f7930c3  gcc/tree-vect-patterns.cc
--- 118294,118300 ----
  834999e1b44b915632e773927cdaa397  gcc/tree-switch-conversion.h
  cac3afe79bbadb8c304cebff78dbb3df  gcc/tree-tailcall.cc
  61a9b445a765d6b6d497bc7273d05f64  gcc/tree-vect-data-refs.cc
! cc4b6ecb376a4980bfd08a185c104993  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
  6bc2a872ec2c5dda08efa8b277eb7783  gcc/tree-vect-loop.cc
  77240c08cea454c2d4a449206f7930c3  gcc/tree-vect-patterns.cc
*************** cffdeae41b78da05839b193e90188f55  libcod
*** 118614,118620 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! b781f170d76c8e641df58219051141bb  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  e80a909ca87015a009bee9588bb84a64  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
--- 118637,118643 ----
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! 8fa8b0d7b60469bc18f64e76c5236852  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  e80a909ca87015a009bee9588bb84a64  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 127289,127295 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! f2947254f6103e1090451cab159c2e2a  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
  54c7bc8277669e3bf5f1a3db179ae206  libgomp/Makefile.in
--- 127312,127318 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! f94e3362d710445da15ea2d1fe257a38  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
  54c7bc8277669e3bf5f1a3db179ae206  libgomp/Makefile.in
*************** b018601a4e35da4037b1e04dfdb00b98  libgom
*** 129064,129069 ****
--- 129087,129093 ----
  10f51539240fd456f44686f1368a9ebb  libgomp/testsuite/libgomp.fortran/pointer1.f90
  ea1e8a0a21d27e85d504f82d979196a3  libgomp/testsuite/libgomp.fortran/pointer2.f90
  5a38dd4751898fd9556aa9ed131fad76  libgomp/testsuite/libgomp.fortran/pr100981-2.f90
+ bd4d373b7453a268a0da695bf8bf8f52  libgomp/testsuite/libgomp.fortran/pr120286.f90
  1e7de6c9f1376e7662fc088ab6ec5e64  libgomp/testsuite/libgomp.fortran/pr25162.f
  150790c35955da1ca1b74284c2553f34  libgomp/testsuite/libgomp.fortran/pr25219.f90
  a83bd562c0d1b609f2a71de244b3a1a0  libgomp/testsuite/libgomp.fortran/pr27395-1.f90
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132320,132326 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! ed7ea4f5da9414d7fc179915b637e146  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132344,132350 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 53a3cbf985b1945eccffc8771cf88209  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** ceee5b8e3956e8b0b5cf0c37821eb61a  libstd
*** 133758,133764 ****
  03274bc404214a9a2c8235a5ae90f4fd  libstdc++-v3/include/std/stdexcept
  ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
  ce747bb13a47b4ef33f5a3d2d11c472f  libstdc++-v3/include/std/stop_token
! 56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
  905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
  9d86912dd89fcd32c17f0b69d2b316d1  libstdc++-v3/include/std/string_view
  362d06f047ef5267af7587a8d12e0c0d  libstdc++-v3/include/std/syncstream
--- 133782,133788 ----
  03274bc404214a9a2c8235a5ae90f4fd  libstdc++-v3/include/std/stdexcept
  ece7d2fc2f03efd22a5d6ce6dc618b1b  libstdc++-v3/include/std/stdfloat
  ce747bb13a47b4ef33f5a3d2d11c472f  libstdc++-v3/include/std/stop_token
! 2d79bb9c8b0ddfefebfb1f8eb523c977  libstdc++-v3/include/std/streambuf
  905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
  9d86912dd89fcd32c17f0b69d2b316d1  libstdc++-v3/include/std/string_view
  362d06f047ef5267af7587a8d12e0c0d  libstdc++-v3/include/std/syncstream
*************** fc90aab2bcae05d7286b5666cd1f2be8  libstd
*** 134067,134073 ****
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
  5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
! 505d13577d7fcb40c2c710aeab89dfcd  libstdc++-v3/src/c++20/tzdb.cc
  3665d657cc35c7afb8b5cc7bae0ef058  libstdc++-v3/src/c++23/Makefile.am
  d85f3a53465585d54b96880e79456c79  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
--- 134091,134097 ----
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
  5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
! 0ca5db2be138624839e42b66e2e57238  libstdc++-v3/src/c++20/tzdb.cc
  3665d657cc35c7afb8b5cc7bae0ef058  libstdc++-v3/src/c++23/Makefile.am
  d85f3a53465585d54b96880e79456c79  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
*************** a9cdb8e686465e04357dd6853b03f1db  libstd
*** 138696,138701 ****
--- 138720,138726 ----
  56a66c737c731f21039a8d95b0de27dd  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
  f2795e80740d31215c14df45bcfec94d  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
  6b194bacfaa14edb84157fbb83ce9363  libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
+ 486fa49e6e6487aad2e12a66d481a54c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/105580.cc
  c89dc09a75ce203a2f073d2be856c3e2  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2.cc
  0eaf0a5eab483b6a8cf11573a6d6192d  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2627.cc
  3cf2980e126910c918c18f35cd60f00c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc
*************** b5add270eb89557e0c8d61fa1ace86e7  libstd
*** 141498,141504 ****
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
  0501a49acdbeebdf5bc829c9b499f09f  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  d4c98a94a0ffda92bd76d6f6dfdf9760  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! f2694c990b173c2f406022e2d327a1b7  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  952bd3c7bb4ba837b698e7f8d43b280f  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
--- 141523,141529 ----
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
  0501a49acdbeebdf5bc829c9b499f09f  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  d4c98a94a0ffda92bd76d6f6dfdf9760  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 822ec88a7f5dfe8ce7d354c55824d6bb  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  952bd3c7bb4ba837b698e7f8d43b280f  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
diff -Nrcpad gcc-15-20260314/gcc/ChangeLog gcc-15-20260321/gcc/ChangeLog
*** gcc-15-20260314/gcc/ChangeLog	Sat Mar 14 22:32:05 2026
--- gcc-15-20260321/gcc/ChangeLog	Sat Mar 21 22:32:05 2026
***************
*** 1,3 ****
--- 1,186 ----
+ 2026-03-17  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_pred_revd<mode>):
+ 	Remove movprfx alternative.
+ 	(@cond_revd<mode>): Likewise.
+ 
+ 2026-03-17  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-07  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/121649
+ 	* cse.cc (find_sets_in_insn):  Only use non-reg vec_select
+ 	simplifications.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123573
+ 	* fold-const.cc (fold_vec_perm): Actually check, not assert,
+ 	that input and output vector element numbers agree.
+ 	* match.pd (vec_perm @0 @1 @2): Make sure element numbers
+ 	are the same when folding to an input vector and wrap that
+ 	inside a VIEW_CONVERT_EXPR.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123175
+ 	* match.pd (vec_perm @0 @1 @2): Fixup for inputs having a
+ 	different number of elements than the result.
+ 	* tree-vect-generic.cc (lower_vec_perm): Likewise.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124132
+ 	* tree-ssa-loop-split.cc (compute_new_first_bound): Fix
+ 	bound difference computation.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124130
+ 	* tree-inline.cc (copy_edges_for_bb): Fixup noreturn calls
+ 	with abnormal edge source.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123596
+ 	* tree-eh.cc (sink_clobbers): Create a virtual PHI when
+ 	one is required but not present, queuing arguments
+ 	for renaming.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123298
+ 	* tree-ssa-alias.h (get_continuation_for_phi): Take a gphi *,
+ 	add is_backedge hook argument.
+ 	(walk_non_aliased_vuses): Add is_backedge hook argument.
+ 	* tree-ssa-alias.cc (maybe_skip_until): Adjust.
+ 	(get_continuation_for_phi): Use new hook to classify an
+ 	edge into the PHI as backedge.
+ 	(walk_non_aliased_vuses): Adjust.
+ 	* gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children):
+ 	Likewise.
+ 	* ipa-prop.cc (determine_known_aggregate_parts): Likewise.
+ 	* tree-ssa-scopedtables.cc (avail_exprs_stack::lookup_avail_expr):
+ 	Likewise.
+ 	* tree-ssa-pre.cc (translate_vuse_through_block): Likewise.
+ 	* tree-ssa-sccvn.cc (vn_bb_to_rpo): Make BB to RPO order
+ 	mapping accessible from new hook.
+ 	(do_rpo_vn_1): Likewise.
+ 	(vn_is_backedge): New hook to classify edge.
+ 	(vn_reference_lookup_pieces): Adjust.
+ 	(vn_reference_lookup): Likewise.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123061
+ 	PR tree-optimization/123636
+ 	* tree-ssa-loop-im.cc (fill_always_executed_in_1): Change
+ 	outer-to-inner to inner-to-outer iteration.  Update inner
+ 	loop state only when always executed in an immediately
+ 	nested loop.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122537
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne): Register
+ 	may_be_zero condition when the IV may overflow.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121726
+ 	* tree-sra.cc (build_ref_for_offset): Add force_ref_all
+ 	parameter and use ptr_type_node as alias pointer type in
+ 	that case.
+ 	(build_ref_for_model): Add force_ref_all parameter and
+ 	pass it through, forcing build_ref_for_offset.
+ 	(generate_subtree_copies): Likewise.
+ 	(sra_modify_call_arg): Force ref-all accesses.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/123416
+ 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining):
+ 	Fix typo in condtion for load merging when no callee summary.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116747
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Avoid
+ 	duplicate stmts in the set of store pairs to process.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/111036
+ 	* match.pd (__builtin_constant_p ((T)x)): Strip nop-conversions
+ 	from __builtin_constant_p arguments.
+ 
+ 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124461
+ 	* config/i386/i386.md (movrs<mode>): Use <imodesuffix> only for
+ 	-masm=att, not for -masm=intel.
+ 
+ 2026-03-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/123457
+ 	* config/aarch64/aarch64-sve-builtins.cc (struct registered_function_hasher):
+ 	Change base class to ggc_ptr_hash.
+ 	(initial_indexes): Mark with GTY.
+ 	(function_table): Likewise.
+ 	(handle_arm_sve_h): Allocate function_table from ggc instead of heap.
+ 
+ 2026-03-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/124126
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types): Copy
+ 	the array type before setting the mode.
+ 
+ 2026-03-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/123285
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::form_chains): Process clobbers
+ 	and ABI clobbers before starting to form the chain.
+ 
  2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/gcc/DATESTAMP gcc-15-20260321/gcc/DATESTAMP
*** gcc-15-20260314/gcc/DATESTAMP	Sat Mar 14 22:32:06 2026
--- gcc-15-20260321/gcc/DATESTAMP	Sat Mar 21 22:32:05 2026
***************
*** 1 ****
! 20260314
--- 1 ----
! 20260321
diff -Nrcpad gcc-15-20260314/gcc/ada/ChangeLog gcc-15-20260321/gcc/ada/ChangeLog
*** gcc-15-20260314/gcc/ada/ChangeLog	Sat Mar 14 22:32:06 2026
--- gcc-15-20260321/gcc/ada/ChangeLog	Sat Mar 21 22:32:05 2026
***************
*** 1,3 ****
--- 1,10 ----
+ 2026-03-14  Matthias Klose  <doko@gcc.gnu.org>
+ 
+ 	PR ada/107475
+ 	* Makefile.rtl (s390% linux%): Define MISCLIB.
+ 	(arm% linux-gnueabi%): Likewise.
+ 	(%x32 linux%): Likewise.
+ 
  2026-02-28  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124285
diff -Nrcpad gcc-15-20260314/gcc/config/aarch64/aarch64-sve2.md gcc-15-20260321/gcc/config/aarch64/aarch64-sve2.md
*** gcc-15-20260314/gcc/config/aarch64/aarch64-sve2.md	Sat Mar 14 22:32:06 2026
--- gcc-15-20260321/gcc/config/aarch64/aarch64-sve2.md	Sat Mar 21 22:32:06 2026
***************
*** 3774,3782 ****
  	     UNSPEC_REVD_ONLY)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2p1_OR_SME"
!   {@ [ cons: =0 , 1   , 2 ; attrs: movprfx ]
!      [ w        , Upl , 0 ; *              ] revd\t%0.q, %1/m, %2.q
!      [ ?&w      , Upl , w ; yes            ] movprfx\t%0, %2\;revd\t%0.q, %1/m, %2.q
    }
  )
  
--- 3774,3781 ----
  	     UNSPEC_REVD_ONLY)]
  	  UNSPEC_PRED_X))]
    "TARGET_SVE2p1_OR_SME"
!   {@ [ cons: =0 , 1   , 2 ]
!      [ w        , Upl , 0 ] revd\t%0.q, %1/m, %2.q
    }
  )
  
***************
*** 3790,3798 ****
  	   (match_operand:SVE_FULL 3 "register_operand")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2p1_OR_SME"
!   {@ [ cons: =0 , 1   , 2 , 3  ; attrs: movprfx ]
!      [ w        , Upl , w , 0  ; *              ] revd\t%0.q, %1/m, %2.q
!      [ ?&w      , Upl , w , w  ; yes            ] movprfx\t%0, %3\;revd\t%0.q, %1/m, %2.q
    }
  )
  
--- 3789,3796 ----
  	   (match_operand:SVE_FULL 3 "register_operand")]
  	  UNSPEC_SEL))]
    "TARGET_SVE2p1_OR_SME"
!   {@ [ cons: =0 , 1   , 2 , 3 ]
!      [ w        , Upl , w , 0 ] revd\t%0.q, %1/m, %2.q
    }
  )
  
diff -Nrcpad gcc-15-20260314/gcc/cp/ChangeLog gcc-15-20260321/gcc/cp/ChangeLog
*** gcc-15-20260314/gcc/cp/ChangeLog	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/cp/ChangeLog	Sat Mar 21 22:32:06 2026
***************
*** 1,3 ****
--- 1,31 ----
+ 2026-03-17  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-16  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124489
+ 	* error.cc (dump_type) <case NULLPTR_TYPE>: Use pp_cxx_ws_string
+ 	instead of pp_string.
+ 
+ 2026-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120039
+ 	PR c++/122559
+ 	* pt.cc (tsubst_expr) <case VAR_DECL>: Don't call lookup_name on
+ 	DECL_NAME (t) if it is NULL_TREE.
+ 
+ 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* parser.cc (cp_parser_omp_taskwait): Set TREE_TYPE of OMP_TASK
+ 	to void_type_node rather than void_node.
+ 	(cp_parser_omp_dispatch): Likewise.
+ 
  2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/gcc/cp/error.cc gcc-15-20260321/gcc/cp/error.cc
*** gcc-15-20260314/gcc/cp/error.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/cp/error.cc	Sat Mar 21 22:32:06 2026
*************** dump_type (cxx_pretty_printer *pp, tree
*** 834,840 ****
        break;
  
      case NULLPTR_TYPE:
!       pp_string (pp, "std::nullptr_t");
        break;
  
      default:
--- 834,840 ----
        break;
  
      case NULLPTR_TYPE:
!       pp_cxx_ws_string (pp, "std::nullptr_t");
        break;
  
      default:
diff -Nrcpad gcc-15-20260314/gcc/cp/pt.cc gcc-15-20260321/gcc/cp/pt.cc
*** gcc-15-20260314/gcc/cp/pt.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/cp/pt.cc	Sat Mar 21 22:32:06 2026
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 22046,22052 ****
  	  else if (r == NULL_TREE)
  	    {
  	      /* First try name lookup to find the instantiation.  */
! 	      r = lookup_name (DECL_NAME (t));
  	      if (r)
  		{
  		  if (!VAR_P (r))
--- 22046,22053 ----
  	  else if (r == NULL_TREE)
  	    {
  	      /* First try name lookup to find the instantiation.  */
! 	      if (DECL_NAME (t))
! 		r = lookup_name (DECL_NAME (t));
  	      if (r)
  		{
  		  if (!VAR_P (r))
diff -Nrcpad gcc-15-20260314/gcc/cse.cc gcc-15-20260321/gcc/cse.cc
*** gcc-15-20260314/gcc/cse.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/cse.cc	Sat Mar 21 22:32:06 2026
*************** find_sets_in_insn (rtx_insn *insn, vec<s
*** 4297,4304 ****
  		 used to tell CSE how to get to a particular constant.  */
  	      rtx y = simplify_gen_vec_select (SET_DEST (x), i);
  	      gcc_assert (y);
! 	      rtx set = gen_rtx_SET (y, CONST_VECTOR_ELT (src, i));
! 	      add_to_set (psets, set, true);
  	    }
  	}
        else
--- 4297,4307 ----
  		 used to tell CSE how to get to a particular constant.  */
  	      rtx y = simplify_gen_vec_select (SET_DEST (x), i);
  	      gcc_assert (y);
! 	      if (!REG_P (y))
! 		{
! 		  rtx set = gen_rtx_SET (y, CONST_VECTOR_ELT (src, i));
! 		  add_to_set (psets, set, true);
! 		}
  	    }
  	}
        else
diff -Nrcpad gcc-15-20260314/gcc/fold-const.cc gcc-15-20260321/gcc/fold-const.cc
*** gcc-15-20260314/gcc/fold-const.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fold-const.cc	Sat Mar 21 22:32:07 2026
*************** fold_vec_perm (tree type, tree arg0, tre
*** 10685,10695 ****
  
    /* For fall back case, we want to ensure we have VLS vectors
       with equal length.  */
!   if (!sel.length ().is_constant (&nelts))
      return NULL_TREE;
  
-   gcc_assert (known_eq (sel.length (),
- 			TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0))));
    tree *in_elts = XALLOCAVEC (tree, nelts * 2);
    if (!vec_cst_ctor_to_array (arg0, nelts, in_elts)
        || !vec_cst_ctor_to_array (arg1, nelts, in_elts + nelts))
--- 10685,10694 ----
  
    /* For fall back case, we want to ensure we have VLS vectors
       with equal length.  */
!   if (!sel.length ().is_constant (&nelts)
!       || !known_eq (sel.length (), TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0))))
      return NULL_TREE;
  
    tree *in_elts = XALLOCAVEC (tree, nelts * 2);
    if (!vec_cst_ctor_to_array (arg0, nelts, in_elts)
        || !vec_cst_ctor_to_array (arg1, nelts, in_elts + nelts))
diff -Nrcpad gcc-15-20260314/gcc/fortran/ChangeLog gcc-15-20260321/gcc/fortran/ChangeLog
*** gcc-15-20260314/gcc/fortran/ChangeLog	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fortran/ChangeLog	Sat Mar 21 22:32:07 2026
***************
*** 1,3 ****
--- 1,75 ----
+ 2026-03-20  Mikael Morin  <morin-mikael@orange.fr>
+ 
+ 	Backported from master:
+ 	2025-09-24  Mikael Morin  <morin-mikael@orange.fr>
+ 
+ 	PR fortran/122046
+ 	* symbol.cc (gfc_get_procedure_ns): Try to find the namespace
+ 	among the list of contained namespaces before returning the
+ 	value from the formal_ns field.
+ 
+ 2026-03-19  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-19  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/124161
+ 	* resolve.cc (resolve_symbol): Do not apply the default
+ 	initializer if the symbol is used in a submodule.
+ 
+ 2026-03-18  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-17  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/120286
+ 	* trans-openmp.cc (gfc_is_class_pointer_type): New helper.
+ 	(gfc_omp_clause_copy_ctor): Unwrap saved descriptors before
+ 	deciding whether privatization should preserve only pointer
+ 	association.  Handle scalar class pointers on that path too.
+ 	(gfc_omp_clause_dtor): Likewise.
+ 
+ 2026-03-16  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-12  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102596
+ 	* trans-openmp.cc (gfc_omp_clause_default_ctor): Only require an
+ 	outer reference when the constructor path actually uses it.
+ 
+ 2026-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/106946
+ 	PR fortran/124482
+ 	* decl.cc (gfc_match_data_decl): Defer CLASS container cleanup
+ 	until after all failed components are unlinked.  Check remaining
+ 	component list before freeing a shared container.
+ 	* gfortran.h (gfc_free_component): Declare.
+ 	(gfc_delete_symtree): Declare.
+ 	* symbol.cc (gfc_free_component): New function.
+ 	(free_components): Use it.
+ 
+ 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/124450
+ 	* trans-io.cc (transfer_expr): If code is NULL, call
+ 	transfer_array_component with NULL where argument rather than
+ 	&code->loc.
+ 
+ 2026-03-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 		    Gilles Gouaillardet  <gilles.gouaillardet@gmail.com>
+ 
+ 	PR fortran/121743
+ 	* trans-decl.cc (build_function_decl): Adjust the
+ 	gcc_assert condition to avoid the ICE.
+ 
  2026-02-14  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/gcc/fortran/decl.cc gcc-15-20260321/gcc/fortran/decl.cc
*** gcc-15-20260314/gcc/fortran/decl.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fortran/decl.cc	Sat Mar 21 22:32:07 2026
*************** gfc_match_data_decl (void)
*** 6333,6344 ****
--- 6333,6360 ----
    gfc_symbol *sym;
    match m;
    int elem;
+   gfc_component *comp_tail = NULL;
  
    type_param_spec_list = NULL;
    decl_type_param_list = NULL;
  
    num_idents_on_line = 0;
  
+   /* Record the last component before we start, so that we can roll back
+      any components added during this statement on error.  PR106946.
+      Must be set before any 'goto cleanup' with m == MATCH_ERROR.  */
+   if (gfc_comp_struct (gfc_current_state ()))
+     {
+       gfc_symbol *block = gfc_current_block ();
+       if (block)
+ 	{
+ 	  comp_tail = block->components;
+ 	  if (comp_tail)
+ 	    while (comp_tail->next)
+ 	      comp_tail = comp_tail->next;
+ 	}
+     }
+ 
    m = gfc_match_decl_type_spec (&current_ts, 0);
    if (m != MATCH_YES)
      return m;
*************** ok:
*** 6458,6463 ****
--- 6474,6553 ----
    gfc_free_data_all (gfc_current_ns);
  
  cleanup:
+   /* If we failed inside a derived type definition, remove any CLASS
+      components that were added during this failed statement.  For CLASS
+      components, gfc_build_class_symbol creates an extra container symbol in
+      the namespace outside the normal undo machinery.  When reject_statement
+      later calls gfc_undo_symbols, the declaration state is rolled back but
+      that helper symbol survives and leaves the component dangling.  Ordinary
+      components do not create that extra helper symbol, so leave them in
+      place for the usual follow-up diagnostics.  PR106946.
+ 
+      CLASS containers are shared between components of the same class type
+      and attributes (gfc_build_class_symbol reuses existing containers).
+      We must not free a container that is still referenced by a previously
+      committed component.  Unlink and free the components first, then clean
+      up only orphaned containers.  PR124482.  */
+   if (m == MATCH_ERROR && gfc_comp_struct (gfc_current_state ()))
+     {
+       gfc_symbol *block = gfc_current_block ();
+       if (block)
+ 	{
+ 	  gfc_component **prev;
+ 	  if (comp_tail)
+ 	    prev = &comp_tail->next;
+ 	  else
+ 	    prev = &block->components;
+ 
+ 	  /* Record the CLASS container from the removed components.
+ 	     Normally all components in one declaration share a single
+ 	     container, but per-variable array specs can produce
+ 	     additional ones; any beyond the first are harmlessly
+ 	     leaked until namespace destruction.  */
+ 	  gfc_symbol *fclass_container = NULL;
+ 
+ 	  while (*prev)
+ 	    {
+ 	      gfc_component *c = *prev;
+ 	      if (c->ts.type == BT_CLASS && c->ts.u.derived
+ 		  && c->ts.u.derived->attr.is_class)
+ 		{
+ 		  *prev = c->next;
+ 		  if (!fclass_container)
+ 		    fclass_container = c->ts.u.derived;
+ 		  c->ts.u.derived = NULL;
+ 		  gfc_free_component (c);
+ 		}
+ 	      else
+ 		prev = &c->next;
+ 	    }
+ 
+ 	  /* Free the container only if no remaining component still
+ 	     references it.  CLASS containers are shared between
+ 	     components of the same class type and attributes
+ 	     (gfc_build_class_symbol reuses existing ones).  */
+ 	  if (fclass_container)
+ 	    {
+ 	      bool shared = false;
+ 	      for (gfc_component *q = block->components; q; q = q->next)
+ 		if (q->ts.type == BT_CLASS
+ 		    && q->ts.u.derived == fclass_container)
+ 		  {
+ 		    shared = true;
+ 		    break;
+ 		  }
+ 	      if (!shared)
+ 		{
+ 		  if (gfc_find_symtree (fclass_container->ns->sym_root,
+ 					fclass_container->name))
+ 		    gfc_delete_symtree (&fclass_container->ns->sym_root,
+ 					fclass_container->name);
+ 		  gfc_release_symbol (fclass_container);
+ 		}
+ 	    }
+ 	}
+     }
+ 
    if (saved_kind_expr)
      gfc_free_expr (saved_kind_expr);
    if (type_param_spec_list)
diff -Nrcpad gcc-15-20260314/gcc/fortran/gfortran.h gcc-15-20260321/gcc/fortran/gfortran.h
*** gcc-15-20260314/gcc/fortran/gfortran.h	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fortran/gfortran.h	Sat Mar 21 22:32:07 2026
*************** bool gfc_missing_attr (symbol_attribute
*** 3693,3698 ****
--- 3693,3699 ----
  bool gfc_copy_attr (symbol_attribute *, symbol_attribute *, locus *);
  int gfc_copy_dummy_sym (gfc_symbol **, gfc_symbol *, int);
  bool gfc_add_component (gfc_symbol *, const char *, gfc_component **);
+ void gfc_free_component (gfc_component *);
  gfc_symbol *gfc_use_derived (gfc_symbol *);
  gfc_component *gfc_find_component (gfc_symbol *, const char *, bool, bool,
                                     gfc_ref **);
*************** bool gfc_reference_st_label (gfc_st_labe
*** 3706,3711 ****
--- 3707,3713 ----
  
  gfc_namespace *gfc_get_namespace (gfc_namespace *, int);
  gfc_symtree *gfc_new_symtree (gfc_symtree **, const char *);
+ void gfc_delete_symtree (gfc_symtree **, const char *);
  gfc_symtree *gfc_find_symtree (gfc_symtree *, const char *);
  gfc_symtree *gfc_get_unique_symtree (gfc_namespace *);
  gfc_user_op *gfc_get_uop (const char *);
diff -Nrcpad gcc-15-20260314/gcc/fortran/resolve.cc gcc-15-20260321/gcc/fortran/resolve.cc
*** gcc-15-20260314/gcc/fortran/resolve.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fortran/resolve.cc	Sat Mar 21 22:32:07 2026
*************** skip_interfaces:
*** 17964,17971 ****
  	  || (a->dummy && !a->pointer && a->intent == INTENT_OUT
  	      && sym->ns->proc_name->attr.if_source != IFSRC_IFBODY))
  	apply_default_init (sym);
!       else if (a->function && !a->pointer && !a->allocatable && !a->use_assoc
! 	       && sym->result)
  	/* Default initialization for function results.  */
  	apply_default_init (sym->result);
        else if (a->function && sym->result && a->access != ACCESS_PRIVATE
--- 17964,17971 ----
  	  || (a->dummy && !a->pointer && a->intent == INTENT_OUT
  	      && sym->ns->proc_name->attr.if_source != IFSRC_IFBODY))
  	apply_default_init (sym);
!       else if (a->function && !a->pointer && !a->allocatable
! 	       && !a->use_assoc && !a->used_in_submodule && sym->result)
  	/* Default initialization for function results.  */
  	apply_default_init (sym->result);
        else if (a->function && sym->result && a->access != ACCESS_PRIVATE
diff -Nrcpad gcc-15-20260314/gcc/fortran/symbol.cc gcc-15-20260321/gcc/fortran/symbol.cc
*** gcc-15-20260314/gcc/fortran/symbol.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fortran/symbol.cc	Sat Mar 21 22:32:07 2026
*************** gfc_find_component (gfc_symbol *sym, con
*** 2667,2672 ****
--- 2667,2687 ----
  /* Given a symbol, free all of the component structures and everything
     they point to.  */
  
+ void
+ gfc_free_component (gfc_component *p)
+ {
+   gfc_free_array_spec (p->as);
+   gfc_free_expr (p->initializer);
+   if (p->kind_expr)
+     gfc_free_expr (p->kind_expr);
+   if (p->param_list)
+     gfc_free_actual_arglist (p->param_list);
+   free (p->tb);
+   p->tb = NULL;
+   free (p);
+ }
+ 
+ 
  static void
  free_components (gfc_component *p)
  {
*************** free_components (gfc_component *p)
*** 2675,2690 ****
    for (; p; p = q)
      {
        q = p->next;
! 
!       gfc_free_array_spec (p->as);
!       gfc_free_expr (p->initializer);
!       if (p->kind_expr)
! 	gfc_free_expr (p->kind_expr);
!       if (p->param_list)
! 	gfc_free_actual_arglist (p->param_list);
!       free (p->tb);
!       p->tb = NULL;
!       free (p);
      }
  }
  
--- 2690,2696 ----
    for (; p; p = q)
      {
        q = p->next;
!       gfc_free_component (p);
      }
  }
  
*************** gfc_new_symtree (gfc_symtree **root, con
*** 3027,3033 ****
  
  /* Delete a symbol from the tree.  Does not free the symbol itself!  */
  
! static void
  gfc_delete_symtree (gfc_symtree **root, const char *name)
  {
    gfc_symtree st, *st0;
--- 3033,3039 ----
  
  /* Delete a symbol from the tree.  Does not free the symbol itself!  */
  
! void
  gfc_delete_symtree (gfc_symtree **root, const char *name)
  {
    gfc_symtree st, *st0;
*************** gfc_namespace *
*** 5500,5506 ****
  gfc_get_procedure_ns (gfc_symbol *sym)
  {
    if (sym->formal_ns
!       && sym->formal_ns->proc_name == sym)
      return sym->formal_ns;
  
    /* The above should have worked in most cases.  If it hasn't, try some other
--- 5506,5521 ----
  gfc_get_procedure_ns (gfc_symbol *sym)
  {
    if (sym->formal_ns
!       && sym->formal_ns->proc_name == sym
!       /* For module procedures used in submodules, there are two namespaces.
! 	 The one generated by the host association of the module is directly
! 	 accessible through SYM->FORMAL_NS but doesn't have any parent set.
! 	 The one generated by the parser is only accessible by walking the
! 	 contained namespace but has its parent set.  Prefer the one generated
! 	 by the parser below.  */
!       && !(sym->attr.used_in_submodule
! 	   && sym->attr.contained
! 	   && sym->formal_ns->parent == nullptr))
      return sym->formal_ns;
  
    /* The above should have worked in most cases.  If it hasn't, try some other
*************** gfc_get_procedure_ns (gfc_symbol *sym)
*** 5515,5520 ****
--- 5530,5539 ----
        if (ns->proc_name == sym)
  	return ns;
  
+   if (sym->formal_ns
+       && sym->formal_ns->proc_name == sym)
+     return sym->formal_ns;
+ 
    if (sym->formal)
      for (gfc_formal_arglist *f = sym->formal; f != nullptr; f = f->next)
        if (f->sym)
diff -Nrcpad gcc-15-20260314/gcc/fortran/trans-openmp.cc gcc-15-20260321/gcc/fortran/trans-openmp.cc
*** gcc-15-20260314/gcc/fortran/trans-openmp.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/fortran/trans-openmp.cc	Sat Mar 21 22:32:07 2026
*************** gfc_omp_replace_alloc_by_to_mapping (tre
*** 466,473 ****
  }
  
  
- /* Return true if TYPE is polymorphic but not with pointer attribute.  */
- 
  static bool
  gfc_is_polymorphic_nonptr (tree type)
  {
--- 466,471 ----
*************** gfc_is_polymorphic_nonptr (tree type)
*** 476,481 ****
--- 474,503 ----
    return GFC_CLASS_TYPE_P (type);
  }
  
+ /* Return true if TYPE is a class container for a POINTER entity.  */
+ 
+ static bool
+ gfc_is_class_pointer_type (tree type)
+ {
+   tree name;
+   const char *s;
+ 
+   if (POINTER_TYPE_P (type))
+     type = TREE_TYPE (type);
+ 
+   if (!GFC_CLASS_TYPE_P (type))
+     return false;
+ 
+   name = TYPE_NAME (type);
+   if (name && TREE_CODE (name) == TYPE_DECL)
+     name = DECL_NAME (name);
+   if (!name)
+     return false;
+ 
+   s = IDENTIFIER_POINTER (name);
+   return startswith (s, "__class_") && s[strlen (s) - 1] == 'p';
+ }
+ 
  /* Return true if TYPE is unlimited polymorphic but not with pointer attribute;
     unlimited means also intrinsic types are handled and _len is used.  */
  
*************** gfc_omp_clause_default_ctor (tree clause
*** 815,821 ****
        return NULL_TREE;
      }
  
!   gcc_assert (outer != NULL_TREE);
  
    /* Allocatable arrays and scalars in PRIVATE clauses need to be set to
       "not currently allocated" allocation status if outer
--- 837,846 ----
        return NULL_TREE;
      }
  
!   gcc_assert (outer != NULL_TREE
! 	      || (!GFC_DESCRIPTOR_TYPE_P (type)
! 		  && !gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause),
! 					   false)));
  
    /* Allocatable arrays and scalars in PRIVATE clauses need to be set to
       "not currently allocated" allocation status if outer
*************** gfc_omp_clause_copy_ctor (tree clause, t
*** 905,926 ****
  {
    tree type = TREE_TYPE (dest), ptr, size, call;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
    tree cond, then_b, else_b;
    stmtblock_t block, cond_block;
  
    gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_FIRSTPRIVATE
  	      || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR);
  
!   /* Privatize pointer, only; cf. gfc_omp_predetermined_sharing. */
!   if (DECL_P (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_ASSOCIATE_VAR_P (OMP_CLAUSE_DECL (clause)))
!     return build2 (MODIFY_EXPR, TREE_TYPE (dest), dest, src);
  
!   if (DECL_ARTIFICIAL (OMP_CLAUSE_DECL (clause))
!       && DECL_LANG_SPECIFIC (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)))
!     decl_type
!       = TREE_TYPE (GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)));
  
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
--- 930,958 ----
  {
    tree type = TREE_TYPE (dest), ptr, size, call;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
+   tree orig_decl = OMP_CLAUSE_DECL (clause);
    tree cond, then_b, else_b;
    stmtblock_t block, cond_block;
  
    gcc_assert (OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_FIRSTPRIVATE
  	      || OMP_CLAUSE_CODE (clause) == OMP_CLAUSE_LINEAR);
  
!   if (DECL_ARTIFICIAL (orig_decl)
!       && DECL_LANG_SPECIFIC (orig_decl)
!       && GFC_DECL_SAVED_DESCRIPTOR (orig_decl))
!     {
!       orig_decl = GFC_DECL_SAVED_DESCRIPTOR (orig_decl);
!       decl_type = TREE_TYPE (orig_decl);
!     }
  
!   /* Privatize pointer association only; cf. gfc_omp_predetermined_sharing.
!      This includes scalar class pointers, whose tree type is still the class
!      record even though the Fortran entity has POINTER semantics.  */
!   if (DECL_P (orig_decl)
!       && (GFC_DECL_ASSOCIATE_VAR_P (orig_decl)
! 	  || GFC_DECL_GET_SCALAR_POINTER (orig_decl)
! 	  || gfc_is_class_pointer_type (decl_type)))
!     return build2 (MODIFY_EXPR, TREE_TYPE (dest), dest, src);
  
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
*************** gfc_omp_clause_dtor (tree clause, tree d
*** 1428,1444 ****
  {
    tree type = TREE_TYPE (decl), tem;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
  
!   /* Only pointer was privatized; cf. gfc_omp_clause_copy_ctor. */
!   if (DECL_P (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_ASSOCIATE_VAR_P (OMP_CLAUSE_DECL (clause)))
!     return NULL_TREE;
  
!   if (DECL_ARTIFICIAL (OMP_CLAUSE_DECL (clause))
!       && DECL_LANG_SPECIFIC (OMP_CLAUSE_DECL (clause))
!       && GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)))
!     decl_type
! 	= TREE_TYPE (GFC_DECL_SAVED_DESCRIPTOR (OMP_CLAUSE_DECL (clause)));
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
        if (POINTER_TYPE_P (decl_type))
--- 1460,1482 ----
  {
    tree type = TREE_TYPE (decl), tem;
    tree decl_type = TREE_TYPE (OMP_CLAUSE_DECL (clause));
+   tree orig_decl = OMP_CLAUSE_DECL (clause);
  
!   if (DECL_ARTIFICIAL (orig_decl)
!       && DECL_LANG_SPECIFIC (orig_decl)
!       && GFC_DECL_SAVED_DESCRIPTOR (orig_decl))
!     {
!       orig_decl = GFC_DECL_SAVED_DESCRIPTOR (orig_decl);
!       decl_type = TREE_TYPE (orig_decl);
!     }
  
!   /* Only pointer association was privatized; cf. gfc_omp_clause_copy_ctor.
!      Scalar class pointers must not finalize or free their targets here.  */
!   if (DECL_P (orig_decl)
!       && (GFC_DECL_ASSOCIATE_VAR_P (orig_decl)
! 	  || GFC_DECL_GET_SCALAR_POINTER (orig_decl)
! 	  || gfc_is_class_pointer_type (decl_type)))
!     return NULL_TREE;
    if (gfc_is_polymorphic_nonptr (decl_type))
      {
        if (POINTER_TYPE_P (decl_type))
diff -Nrcpad gcc-15-20260314/gcc/gimple-lower-bitint.cc gcc-15-20260321/gcc/gimple-lower-bitint.cc
*** gcc-15-20260314/gcc/gimple-lower-bitint.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/gimple-lower-bitint.cc	Sat Mar 21 22:32:07 2026
*************** bitint_dom_walker::before_dom_children (
*** 5899,5905 ****
  	    vuse = vop;
  	  if (vuse != lvop
  	      && walk_non_aliased_vuses (&ref, vuse, false, vuse_eq,
! 					 NULL, NULL, limit, lvop) == NULL)
  	    bitmap_clear_bit (m_loads, SSA_NAME_VERSION (s));
  	}
      }
--- 5899,5905 ----
  	    vuse = vop;
  	  if (vuse != lvop
  	      && walk_non_aliased_vuses (&ref, vuse, false, vuse_eq,
! 					 NULL, NULL, NULL, limit, lvop) == NULL)
  	    bitmap_clear_bit (m_loads, SSA_NAME_VERSION (s));
  	}
      }
diff -Nrcpad gcc-15-20260314/gcc/ipa-modref.cc gcc-15-20260321/gcc/ipa-modref.cc
*** gcc-15-20260314/gcc/ipa-modref.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/ipa-modref.cc	Sat Mar 21 22:32:07 2026
*************** ipa_merge_modref_summary_after_inlining
*** 5352,5358 ****
  
    if (!callee_info && to_info)
      {
!       if (!(flags & (ECF_CONST | ECF_PURE | ECF_NOVOPS)))
  	to_info->loads->collapse ();
        if (!ignore_stores)
  	to_info->stores->collapse ();
--- 5352,5358 ----
  
    if (!callee_info && to_info)
      {
!       if (!(flags & (ECF_CONST | ECF_NOVOPS)))
  	to_info->loads->collapse ();
        if (!ignore_stores)
  	to_info->stores->collapse ();
diff -Nrcpad gcc-15-20260314/gcc/ipa-prop.cc gcc-15-20260321/gcc/ipa-prop.cc
*** gcc-15-20260314/gcc/ipa-prop.cc	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/ipa-prop.cc	Sat Mar 21 22:32:07 2026
*************** determine_known_aggregate_parts (struct
*** 2208,2216 ****
      {
        gimple *stmt = SSA_NAME_DEF_STMT (dom_vuse);
  
!       if (gimple_code (stmt) == GIMPLE_PHI)
  	{
! 	  dom_vuse = get_continuation_for_phi (stmt, &r, true,
  					       fbi->aa_walk_budget,
  					       &visited, false, NULL, NULL);
  	  continue;
--- 2208,2216 ----
      {
        gimple *stmt = SSA_NAME_DEF_STMT (dom_vuse);
  
!       if (gphi *phi = dyn_cast <gphi *> (stmt))
  	{
! 	  dom_vuse = get_continuation_for_phi (phi, &r, true,
  					       fbi->aa_walk_budget,
  					       &visited, false, NULL, NULL);
  	  continue;
diff -Nrcpad gcc-15-20260314/gcc/match.pd gcc-15-20260321/gcc/match.pd
*** gcc-15-20260314/gcc/match.pd	Sat Mar 14 22:32:07 2026
--- gcc-15-20260321/gcc/match.pd	Sat Mar 21 22:32:07 2026
*************** and,
*** 10953,10965 ****
      {
        /* Create a vec_perm_indices for the integer vector.  */
        poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
        bool single_arg = (op0 == op1);
!       vec_perm_indices sel (builder, single_arg ? 1 : 2, nelts);
      }
!     (if (sel.series_p (0, 1, 0, 1))
!      { op0; }
!      (if (sel.series_p (0, 1, nelts, 1))
!       { op1; }
        (with
         {
           if (!single_arg)
--- 10953,10966 ----
      {
        /* Create a vec_perm_indices for the integer vector.  */
        poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
+       poly_uint64 nelts_in = TYPE_VECTOR_SUBPARTS (TREE_TYPE (op0));
        bool single_arg = (op0 == op1);
!       vec_perm_indices sel (builder, single_arg ? 1 : 2, nelts_in);
      }
!     (if (known_eq (nelts, nelts_in) && sel.series_p (0, 1, 0, 1))
!      (view_convert @0)
!      (if (known_eq (nelts, nelts_in) && sel.series_p (0, 1, nelts_in, 1))
!       (view_convert @1)
        (with
         {
           if (!single_arg)
*************** and,
*** 10971,10977 ****
  	         op0 = op1;
  	         sel.rotate_inputs (1);
  	       }
! 	     else if (known_ge (poly_uint64 (sel[0]), nelts))
  	       {
  	         std::swap (op0, op1);
  	         sel.rotate_inputs (1);
--- 10972,10978 ----
  	         op0 = op1;
  	         sel.rotate_inputs (1);
  	       }
! 	     else if (known_ge (poly_uint64 (sel[0]), nelts_in))
  	       {
  	         std::swap (op0, op1);
  	         sel.rotate_inputs (1);
*************** and,
*** 11006,11011 ****
--- 11007,11013 ----
  	      in that case.  But only if the vector mode is supported,
  	      otherwise this is invalid GIMPLE.  */
  	   if (op_mode != BLKmode
+ 	       && known_eq (nelts, nelts_in)
  	       && (TREE_CODE (cop0) == VECTOR_CST
  		   || TREE_CODE (cop0) == CONSTRUCTOR
  		   || TREE_CODE (cop1) == VECTOR_CST
*************** and,
*** 11417,11419 ****
--- 11419,11426 ----
        }
        (if (full_perm_p)
  	(vec_perm (op@3 @0 @1) @3 @2))))))
+ 
+ /* Strip nop-conversions __builtin_constant_p arguments.  */
+ (simplify
+  (BUILT_IN_CONSTANT_P (nop_convert@1 @0))
+  (BUILT_IN_CONSTANT_P @0))
diff -Nrcpad gcc-15-20260314/gcc/testsuite/ChangeLog gcc-15-20260321/gcc/testsuite/ChangeLog
*** gcc-15-20260314/gcc/testsuite/ChangeLog	Sat Mar 14 22:32:08 2026
--- gcc-15-20260321/gcc/testsuite/ChangeLog	Sat Mar 21 22:32:07 2026
***************
*** 1,3 ****
--- 1,261 ----
+ 2026-03-20  Mikael Morin  <morin-mikael@orange.fr>
+ 
+ 	Backported from master:
+ 	2025-09-24  Mikael Morin  <morin-mikael@orange.fr>
+ 
+ 	PR fortran/122046
+ 	* gfortran.dg/submodule_34.f90: New test.
+ 
+ 2026-03-19  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-19  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/124161
+ 	* gfortran.dg/pr124161.f90: New test.
+ 
+ 2026-03-17  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	* gcc.target/aarch64/sme/sme-shrinkwrap.c: Add -save-temp to
+ 	dg-options, and move [[gnu::noipa]] to callee.
+ 
+ 2026-03-17  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	* gcc.target/aarch64/sme/acle-asm/revd_bf16.c: Update checks.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_f16.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_f32.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_f64.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_s16.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_s32.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_s64.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_s8.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_u16.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_u32.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_u64.c: Likewise.
+ 	* gcc.target/aarch64/sme/acle-asm/revd_u8.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_bf16.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_f16.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_f32.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_f64.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_s16.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_s32.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_s64.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_s8.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_u16.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_u32.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_u64.c: Likewise.
+ 	* gcc.target/aarch64/sve2/acle/asm/revd_u8.c: Likewise.
+ 
+ 2026-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124489
+ 	* g++.dg/cpp0x/pr124489.C: New test.
+ 
+ 2026-03-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120039
+ 	PR c++/122559
+ 	* g++.dg/cpp26/decomp28.C: New test.
+ 	* g++.dg/cpp26/decomp29.C: New test.
+ 
+ 2026-03-17  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-07  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/121649
+ 	* gcc.dg/torture/pr121649.c: New test.
+ 
+ 2026-03-16  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR middle-end/124491
+ 	* gcc.target/aarch64/torture/pr124491.c: New test.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123175
+ 	* gcc.dg/torture/pr123175-1.c: New testcase.
+ 	* gcc.dg/torture/pr123175-2.c: Likewise.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124132
+ 	* gcc.dg/torture/pr124132.c: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124130
+ 	* g++.dg/torture/pr124130.C: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123596
+ 	* g++.dg/torture/pr123596.C: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123298
+ 	* gcc.dg/torture/pr123298.c: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123061
+ 	PR tree-optimization/123636
+ 	* gcc.dg/torture/pr123061.c: New testcase.
+ 	* gcc.dg/torture/pr123636.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-lim-26.c: Likewise.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122537
+ 	* gcc.dg/torture/pr122537.c: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121726
+ 	* gcc.target/i386/pr121726.c: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/123416
+ 	* gcc.dg/torture/pr123416.c: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-02-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR testsuite/103515
+ 	* gcc.target/powerpc/pr103515.c: Mark the loop in foo1
+ 	with #pramga GCC novector.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116747
+ 	* gcc.dg/tree-ssa/cselim-4.c: New testcase.
+ 
+ 2026-03-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/111036
+ 	* gcc.dg/torture/pr111036.c: New testcase.
+ 
+ 2026-03-16  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-12  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102596
+ 	* gfortran.dg/pr102596.f90: New test.
+ 
+ 2026-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/106946
+ 	PR fortran/124482
+ 	* gfortran.dg/pr106946.f90: New test.
+ 
+ 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124461
+ 	* gcc.target/i386/movrs-pr124461.c: New test.
+ 
+ 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/124450
+ 	* gfortran.dg/pr124450.f90: New test.
+ 
+ 2026-03-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 		    Gilles Gouaillardet  <gilles.gouaillardet@gmail.com>
+ 
+ 	PR fortran/121743
+ 	* gfortran.dg/pr121743.f90: New test.
+ 
+ 2026-03-14  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	PR target/123457
+ 	* gcc.target/aarch64/pch/aarch64-pch.exp: Add new testsuite.
+ 	* gcc.target/aarch64/pch/pch_arm_acle.c: Add new test file.
+ 	* gcc.target/aarch64/pch/pch_arm_acle.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_acle_include_post.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_acle_include_post.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_multiple.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_multiple.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_multiple_include_post.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon_include_post.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon_include_post.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sme.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sme.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sme_include_post.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sme_include_post.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sve.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sve.hs: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sve_include_post.c: Likewise.
+ 	* gcc.target/aarch64/pch/pch_arm_sve_include_post.hs: Likewise.
+ 
+ 2026-03-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/124126
+ 	* g++.target/aarch64/pr124126-1.C: New test.
+ 
+ 2026-03-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/123285
+ 	* gcc.target/aarch64/pr123285-1.c: New test.
+ 
  2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/pr124489.C gcc-15-20260321/gcc/testsuite/g++.dg/cpp0x/pr124489.C
*** gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/pr124489.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/g++.dg/cpp0x/pr124489.C	Sat Mar 21 22:32:08 2026
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/124489
+ // { dg-do compile { target c++11 } }
+ 
+ void
+ g ()
+ {
+   constexpr decltype(nullptr) dm = nullptr; // { dg-message ".constexpr std::nullptr_t dm. previously declared here" }
+   constexpr decltype(nullptr) dm = nullptr; // { dg-error "redeclaration of .constexpr std::nullptr_t dm." }
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/g++.dg/cpp26/decomp28.C gcc-15-20260321/gcc/testsuite/g++.dg/cpp26/decomp28.C
*** gcc-15-20260314/gcc/testsuite/g++.dg/cpp26/decomp28.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/g++.dg/cpp26/decomp28.C	Sat Mar 21 22:32:08 2026
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/120039
+ // { dg-do compile { target c++11 } }
+ // { dg-options "" }
+ 
+ struct S {
+   int a; long long b; short c;
+   explicit operator bool () const noexcept { return true; }
+ };
+ 
+ template <int N>
+ void
+ foo ()
+ {
+   S s = S { 1, 2, 3 };
+   if (auto [sx, sy, sz] : s)	// { dg-warning "structured bindings in conditions only available with" "" { target c++23_down } }
+     ;				// { dg-error "expected initializer before ':' token" "" { target *-*-* } .-1 }
+ }				// { dg-error "expected '\\\)' before ':' token" "" { target *-*-* } .-2 }
+ 
+ int
+ main ()
+ {
+   foo <0> ();
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/g++.dg/cpp26/decomp29.C gcc-15-20260321/gcc/testsuite/g++.dg/cpp26/decomp29.C
*** gcc-15-20260314/gcc/testsuite/g++.dg/cpp26/decomp29.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/g++.dg/cpp26/decomp29.C	Sat Mar 21 22:32:08 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/122559
+ // { dg-do compile { target c++11 } }
+ // { dg-options "" }
+ 
+ enum class A : bool { B, C };
+ 
+ template <typename T>
+ A type (T &&x)
+ {
+   if (auto [value = x ()])	// { dg-warning "structured bindings in conditions only available with" "" { target c++23_down } }
+     return A::C;		// { dg-error "expected '\\\]' before '=' token" "" { target *-*-* } .-1 }
+   return A::B;			// { dg-error "expected initializer before '\\\)' token" "" { target *-*-* } .-2 }
+ }
+ 
+ int
+ main ()
+ {
+   auto _ = type (A::B);
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr123596.C gcc-15-20260321/gcc/testsuite/g++.dg/torture/pr123596.C
*** gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr123596.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/g++.dg/torture/pr123596.C	Sat Mar 21 22:32:09 2026
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile }
+ 
+ struct b {
+   ~b() {}
+ };
+ struct c {
+   c(long, const int &, b = b());
+ };
+ int _setjmp();
+ long d;
+ void e(int *);
+ int a;
+ int main()
+ {
+   auto f = [](int *data) { e(data); };
+   f(&a);
+   c(d, _setjmp());
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr124130.C gcc-15-20260321/gcc/testsuite/g++.dg/torture/pr124130.C
*** gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr124130.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/g++.dg/torture/pr124130.C	Sat Mar 21 22:32:09 2026
***************
*** 0 ****
--- 1,15 ----
+ // { dg-do compile }
+ 
+ void __sigsetjmp_cancel() __attribute__((__returns_twice__));
+ struct basic_ostream {
+   basic_ostream &operator<<(basic_ostream &__pf(basic_ostream &)) {
+     return __pf(*this);
+   }
+ } cerr;
+ extern "C" void _exit(int);
+ enum { Exit_Internal_Error };
+ basic_ostream &report_error(basic_ostream &) { _exit(Exit_Internal_Error); }
+ void thread_pool_thread_main() {
+   __sigsetjmp_cancel();
+   cerr << report_error;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr111036.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr111036.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr111036.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr111036.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ 
+ #include <stdlib.h>
+ 
+ __attribute__((aligned(32))) static struct
+ {
+   unsigned long long available_cmd_ids_per_core[2];
+ } _rl2c_cmd_id_data;
+ 
+ static inline void __attribute__((always_inline))
+ foo (void *base, size_t length)
+ {
+   unsigned long int p = (unsigned long int) base;
+   if (__builtin_constant_p(p) && (p & 31) == 0) { exit (0); } 
+   else if (__builtin_constant_p(length)) { exit (0); } 
+   else { exit (0); }
+ }
+ 
+ int main(int argc, char **argv)
+ {
+   foo(&_rl2c_cmd_id_data, sizeof(*(&_rl2c_cmd_id_data)));
+   return 0;
+ }
+ 
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr121649.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr121649.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr121649.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr121649.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,134 ----
+ /* { dg-do run { target bitint } } */
+ /* { dg-require-effective-target int128 } */
+ /* { dg-additional-options "-Wno-psabi" } */
+ 
+ typedef __attribute__((__vector_size__ (8))) char v64s8;
+ typedef __attribute__((__vector_size__ (8))) short v64s16;
+ typedef __attribute__((__vector_size__ (8))) int v64s32;
+ typedef __attribute__((__vector_size__ (16))) char v128s8;
+ typedef __attribute__((__vector_size__ (16))) short v128s16;
+ typedef __attribute__((__vector_size__ (16))) int v128s32;
+ typedef __attribute__((__vector_size__ (16))) long v128s64;
+ typedef __attribute__((__vector_size__ (32))) char v256s8;
+ typedef __attribute__((__vector_size__ (32))) short v256s16;
+ typedef __attribute__((__vector_size__ (32))) int v256s32;
+ typedef __attribute__((__vector_size__ (32))) long v256s64;
+ typedef __attribute__((__vector_size__ (32))) __int128 v256s128;
+ typedef __attribute__((__vector_size__ (64))) char v512s8;
+ typedef __attribute__((__vector_size__ (64))) short v512s16;
+ typedef __attribute__((__vector_size__ (64))) int v512s32;
+ typedef __attribute__((__vector_size__ (64))) long v512s64;
+ typedef __attribute__((__vector_size__ (64))) __int128 v512s128;
+ 
+ #if __BITINT_MAXWIDTH__ >= 60692
+ __attribute__((noipa, cold))
+ void
+ foo0 (int, int, int, int,
+       _BitInt (3) sb3_0, char, char, char,
+       char, char, char, char, char,
+       char,char,char,char,
+       _BitInt (5), _BitInt (5), short, short, char,
+       short, short, char, int,
+       int, int, int, int, char,
+       long, long, long, long, long,
+       long, char, char, char, __int128,
+       __int128, __int128, __int128, __int128,
+       __int128, char, _BitInt (129), _BitInt (129),
+       _BitInt (255), _BitInt (255), _BitInt (256), _BitInt (256),
+       _BitInt (257), _BitInt (257), _BitInt (511), _BitInt (511),
+       _BitInt (512), _BitInt (512), _BitInt (513), _BitInt (513),
+       _BitInt (1023), _BitInt (1023), _BitInt (1024),
+       _BitInt (1024), _BitInt (1025), _BitInt (1025), _BitInt (331),
+       _BitInt (331), _BitInt (412), _BitInt (412), _BitInt (985),
+       _BitInt (985), _BitInt (60692), _BitInt (60692), char, char,
+       char, char, short, short, char, char, short, short, unsigned,
+       int, v64s8, v64s8, v64s16, v64s16, v64s32, v64s32, long, long,
+       v128s8, v128s8, short, v128s16, int, v128s32, long, v128s64,
+       __int128, __int128, v256s8, v256s8, v256s16, v256s16, v256s32,
+       v256s32, v256s64, v256s64, v256s128, v256s128, v512s8, v512s8,
+       v512s16, v512s16, v512s32, v512s32, v512s64, v512s64,
+       v512s128, v512s128, char *ret)
+ {
+   *ret = sb3_0;
+ }
+ #endif
+ 
+ __attribute__ ((noipa))
+ void
+ xprintf (int x)
+ {
+   if (x != 0xfc)
+     __builtin_abort();
+ }
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 60692
+   char x;
+   foo0 (0, 0, 0, 0, -4, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 9, 2, 95,
+ 	67, -24064, 0, 5, 6, 7, 0, 8, 9, 20, 4, 3, 6018427387903, 53,
+ 	505857273496, 255, 6, 0, 18446744073709551612uwb,
+ 	70141183460469231731687303715884105726uwb,
+ 	0x1ab7415df78c5d6355b5bf722d2c32wb, 18266202578652419339uwb,
+ 	9594516560314871492uwb, 18446744073709551615uwb, 0,
+ 	404678514476015038251338572701189uwb, 0,
+ 	6044618658097711785492504343953926634992332820282019728792003956564819964uwb,
+ 	0, 0,
+ 	6044618658097711785492504343953926634992332820282019728792003956564819967uwb,
+ 	0,
+ 	0x10000000000000000000000000000000000000000000000000000000000000000wb, 0, 1, 0, 606316039853739674053402528525595147334676uwb, 0,
+ 	407807929942597099574024998205846127479363981533648751059337645126787177315524892796678197877342278766808798337256961671307362116160553321514205699439425uwb,
+ 	0,
+ 	40449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155532867238014401323013014363877264556147687333148794044698496604162935270824544179699376777403364901791967663653826658703420189949487003960239619175525152082242122474284732uwb,
+ 	90772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329623282435531uwb,
+ 	0, 0,
+ 	30203714894603546035770925859109268843954143792619895153655326951406405759993601526034894524347802740350892957243539456uwb,
+ 	0,
+ 	0x24c07bd236a355dac41c3e00fed83a2c01d47d7e7c155128f8474ab8acd075fe3be2661e9ba3b0498c2wb,
+ 	0,
+ 	-0x273d7a44735564a706be6f876e8c09a64c065028fc8719feace6b4ad22b722fc6628809c1bcfda902d563717b88876aa068496bwb,
+ 	0, 5, 0, 4, 0, 5, 0, 0115, 3, 92, 0, 1, 840, 839, 35, 4095, (v64s8)
+ 	{ }, (v64s8)
+ 	{ 3, -0x4 }, (v64s16)
+ 	{ }, (v64s16)
+ 	{ }, (v64s32)
+ 	{ }, (v64s32)
+ 	{ }, 7, 40, (v128s8)
+ 	{ }, (v128s8)
+ 	{ }, 126, (v128s16)
+ 	{ }, 95, (v128s32)
+ 	{ }, 6, (v128s64)
+ 	{ }, 18446462603027742720uwb, 11842991817553718011uwb, (v256s8)
+ 	{ 227, 84, 73, 5, 2, 45, 107, 55, 16, 128, 23, 17, 1, 226, 15 },
+ 	(v256s8)
+ 	{ 9, 111, 108, 19, 98, 27, 97, -0xe }, (v256s16)
+ 	{ 1, 167, 65280, 35, 15286, 9, 182, 13126, 15 }, (v256s16)
+ 	{ 72, 381, 185, 619, 978, 926, 42 }, (v256s32)
+ 	{ 20, 72, 905, 207, 63, 40 }, (v256s32)
+ 	{ 5, 503, 1, 152, 5519391 }, (v256s64)
+ 	{ 1280 }, (v256s64)
+ 	{ 94, 8851183291103289765uwb, 526 }, (v256s128)
+ 	{ 15013856701581711399uwb }, (v256s128)
+ 	{ 10389555769421265252uwb, 15766594437788011035uwb }, (v512s8)
+ 	{ 104, 131, 5, 21, 32, 127, 75, 54, 232, 1, 82, 255, 28, 178, 1,
+ 	121, 1, 14, 210, 240, 140, 53, 4, 91, 204, 78, 130, 76, 212, 52, 1,
+ 	200, 11, 25, 251, 41, 88, 12, 3, 59 }, (v512s8)
+ 	{ 13, 10, 48, -0x2f, 67, 85, 87, 123, 8, 26, 83, 114, 51, 6, 96,
+ 	-0x1c, 115, 49, 86, 103, 93, 31, -0x6, 112, 1, 7, -0xc, 18, 47, 5,
+ 	-0xf, 3 }, (v512s16)
+ 	{ 4094, 64492, 855, 61680, 27, 47569, 55, 65534, 76, -1024, 30,
+ 	254, 280, 11, 10, 14, 2, 4095, 3, 111, 65535, 67, 24289, 32, 25604,
+ 	26, 65535, 98, 65533, 5 }, (v512s16)
+ 	{ 615, 2032, 54, 52, 015, 45, 24, 6, 7, 68, 24015, 380, 3315, 5, 8,
+ 	23, -0xf, 62, 82, 4 }, (v512s32)
+ 	{ 54, 4294967294, 6, 16, 9, 13, 300, 80000000, 700, 600, 93, 040,
+ 	15 }, (v512s32)
+ 	{ 515, 3, 14, 10, 2, 80, 39, 215, 7, 3, 4 }, (v512s64)
+ 	{ 4, 9, 5, 3, 505 }, (v512s64)
+ 	{ 904293909041052234uwb, 4 }, (v512s128)
+ 	{ 9223372036854775808uwb, 1, 4073709551612 }, (v512s128)
+ 	{ 7, 30391054, 18446742974197923807uwb }, &x);
+       xprintf ((int)(unsigned char) x);
+ #endif
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr122537.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr122537.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr122537.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr122537.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fwrapv" } */
+ 
+ void abort ();
+ int a, b;
+ int main()
+ {
+   int c = 61;
+   int d = 61;
+   c += 8;
+   while (c + a - 80 >= d + a - 80) {
+     c -= d;
+     b++;
+   }
+   if (b != 1)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123061.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123061.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123061.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123061.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-ffinite-loops" } */
+ 
+ int a, b, c;
+ int d() {
+   while (a)
+     ;
+   return 0;
+ }
+ static int e(int f, int g) {
+   c = f;
+   while (1) {
+     f = 0;
+     do {
+       c = -c;
+       if (c >= 0)
+         goto h;
+     } while (-1 / b);
+     return d();
+   h:
+     b = g;
+   }
+ }
+ int main()
+ {
+   while (e(-4, 3))
+     ;
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123175-1.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123175-1.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123175-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123175-1.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fgimple" } */
+ 
+ typedef int v4si __attribute__((vector_size(16)));
+ typedef int v2si __attribute__((vector_size(8)));
+ typedef char v4qi __attribute__((vector_size(4)));
+ 
+ v4si res;
+ v2si a;
+ v2si b;
+ 
+ void __attribute__((noipa)) __GIMPLE() foo ()
+ {
+   v2si a_;
+   v2si b_;
+   v4si res_;
+   a_ = a;
+   b_ = b;
+   res_ = __VEC_PERM (a_, b_, _Literal (v4qi) { 0, 1, 2, 3 });
+   res = res_;
+ }
+ 
+ int main()
+ {
+   a = (v2si){ 4, 3 };
+   b = (v2si){ 2, 1 };
+   foo ();
+   if (res[0] != 4 || res[1] != 3 || res[2] != 2 || res[3] != 1)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123175-2.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123175-2.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123175-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123175-2.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fgimple" } */
+ 
+ typedef int v4si __attribute__((vector_size(16)));
+ typedef int v2si __attribute__((vector_size(8)));
+ typedef char v4qi __attribute__((vector_size(4)));
+ 
+ v4si res;
+ v2si a;
+ v2si b;
+ 
+ void __attribute__((noipa)) __GIMPLE() foo ()
+ {
+   v2si a_;
+   v2si b_;
+   v4si res_;
+   a_ = a;
+   b_ = b;
+   res_ = __VEC_PERM (a_, b_, _Literal (v4qi) { 0, 2, 2, 1 });
+   res = res_;
+ }
+ 
+ int main()
+ {
+   a = (v2si){ 4, 3 };
+   b = (v2si){ 2, 1 };
+   foo ();
+   if (res[0] != 4 || res[1] != 2 || res[2] != 2 || res[3] != 3)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123298.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123298.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123298.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123298.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run } */
+ 
+ __attribute__((noipa))
+ int
+ func_1 (int g_258, int func_1_BS_COND_11, int g_64)
+ {
+   int BS_VAR_1 = 10;
+   unsigned char BS_VAR_5[2] = { 19, 28 };
+   int LOCAL_CHECKSUM = 0;
+   if (func_1_BS_COND_11)
+     goto BS_LABEL_0;
+   BS_VAR_1 = 0;
+   while (g_64 <= 5)
+     {
+ BS_LABEL_0:
+       for (;;)
+ 	{
+ 	  LOCAL_CHECKSUM = BS_VAR_5[1];
+ 	  if (g_258 != 0) break;
+ 	  goto out;
+ 	}
+       BS_VAR_5[BS_VAR_1 < 5] = 0;
+       g_258 = 0;
+     }
+ out:
+   return LOCAL_CHECKSUM;
+ }
+ 
+ int
+ main ()
+ {
+   if (func_1 (50, 0, 0) != 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123416.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123416.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123416.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123416.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fno-strict-aliasing" } */
+ 
+ struct a {
+   int b;
+ } c;
+ 
+ int d;
+ 
+ static struct a
+ g()
+ {
+   int a[2], b, f = 0;
+   for (; f < 2; f++)
+     a[f] = 1;
+   b = a[0];
+   if (b)
+     return c;
+ }
+ int main()
+ {
+   c.b = 1;
+   struct a e = g();
+   c = g();
+   if (!c.b || !e.b)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123636.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123636.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123636.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr123636.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do run } */
+ 
+ int main()
+ {
+   int g_58;
+   _Bool g_170 = 0;
+   int m = 0;
+   for (int i = 0; i < 2; i++)
+     {
+       int arr[3] = {};
+ label:
+       g_58 = g_170 == 0;
+       for (int a = 0; a < 3; a++)
+ 	m += arr[a];
+       for (int j = 0; j != 7; ++j)
+ 	for (int k = 0; k < 2; k++)
+ 	  {
+ 	    --g_170;
+ 	    if (g_58) goto label;
+ 	    arr[0] = 2;
+ 	  }
+     }
+   if (m != 0)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr124132.c gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr124132.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr124132.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/torture/pr124132.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-w" } */
+ 
+ char slow_mul1_dst1, code_some_shards___gf_mulc__0, code_some_shards_lim;
+ long slow_mul1_dst_max;
+ long long code_some_shards_pos;
+ void code_some_shards()
+ {
+   char *dst = &slow_mul1_dst1;
+   for (; dst < &code_some_shards_lim; dst++)
+     {
+       if (code_some_shards_pos < slow_mul1_dst_max)
+         *dst = code_some_shards___gf_mulc__0;
+       code_some_shards_pos += 1;
+     }
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/tree-ssa/cselim-4.c gcc-15-20260321/gcc/testsuite/gcc.dg/tree-ssa/cselim-4.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/tree-ssa/cselim-4.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/tree-ssa/cselim-4.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fno-expensive-optimizations -fno-tree-dse -fgimple" } */
+ 
+ /* We're testing the CSELIM pass but we need VRP to compute the range
+    for b_4 to make the array1[] accesses out-of-bound.  */
+ 
+ int array1[1];
+ int __GIMPLE (ssa,startwith("vrp"),guessed_local(1073741824))
+ f1 (int a, short unsigned int b1, int c)
+ {
+   int b;
+ 
+   __BB(2,guessed_local(1073741824)):
+   b_3 = (int) b1_2(D);
+   b_4 = b_3 + 1;
+   if (a_5(D) != 0)
+     goto __BB3(guessed(67108864));
+   else
+     goto __BB4(guessed(67108864));
+ 
+   __BB(3,guessed_local(536870912)):
+   array1[b_4] = c_7(D);
+   array1[b_4] = c_7(D);
+   goto __BB5(precise(134217728));
+ 
+   __BB(4,guessed_local(536870912)):
+   array1[b_4] = c_7(D);
+   goto __BB5(precise(134217728));
+ 
+   __BB(5,guessed_local(1073741824)):
+   return;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c gcc-15-20260321/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c
*** gcc-15-20260314/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.c	Sat Mar 21 22:32:11 2026
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fdump-tree-lim2-details" } */
+ 
+ void foo (int n, int m, int *a, int *p, int * __restrict q)
+ {
+   for (int i = 0; i < n; ++i)
+     {
+       int j = 0;
+       do
+         {
+           q[j] = *a * p[i];
+         }
+       while (++j < m);
+     }
+ }
+ 
+ /* Verify we can hoist *a two levels.  */ 
+ /* { dg-final { scan-tree-dump-times "out of loop 1" 1 "lim2" } } */
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_bf16_m_tied1, svbfl
*** 22,30 ****
  
  /*
  ** revd_bf16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_tied2, svbfloat16_t,
--- 22,29 ----
  
  /*
  ** revd_bf16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_tied2, svbfloat16_t,
*************** TEST_UNIFORM_Z (revd_bf16_m_tied2, svbfl
*** 33,40 ****
  
  /*
  ** revd_bf16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_untied, svbfloat16_t,
--- 32,39 ----
  
  /*
  ** revd_bf16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_untied, svbfloat16_t,
*************** TEST_UNIFORM_Z (revd_bf16_x_tied1, svbfl
*** 67,74 ****
  
  /*
  ** revd_bf16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_x_untied, svbfloat16_t,
--- 66,73 ----
  
  /*
  ** revd_bf16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_x_untied, svbfloat16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_f16_m_tied1, svfloa
*** 22,30 ****
  
  /*
  ** revd_f16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_tied2, svfloat16_t,
--- 22,29 ----
  
  /*
  ** revd_f16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_tied2, svfloat16_t,
*************** TEST_UNIFORM_Z (revd_f16_m_tied2, svfloa
*** 33,40 ****
  
  /*
  ** revd_f16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_untied, svfloat16_t,
--- 32,39 ----
  
  /*
  ** revd_f16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_untied, svfloat16_t,
*************** TEST_UNIFORM_Z (revd_f16_x_tied1, svfloa
*** 67,74 ****
  
  /*
  ** revd_f16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_x_untied, svfloat16_t,
--- 66,73 ----
  
  /*
  ** revd_f16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_x_untied, svfloat16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_f32_m_tied1, svfloa
*** 22,30 ****
  
  /*
  ** revd_f32_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_tied2, svfloat32_t,
--- 22,29 ----
  
  /*
  ** revd_f32_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_tied2, svfloat32_t,
*************** TEST_UNIFORM_Z (revd_f32_m_tied2, svfloa
*** 33,40 ****
  
  /*
  ** revd_f32_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_untied, svfloat32_t,
--- 32,39 ----
  
  /*
  ** revd_f32_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_untied, svfloat32_t,
*************** TEST_UNIFORM_Z (revd_f32_x_tied1, svfloa
*** 67,74 ****
  
  /*
  ** revd_f32_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_x_untied, svfloat32_t,
--- 66,73 ----
  
  /*
  ** revd_f32_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_x_untied, svfloat32_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_f64_m_tied1, svfloa
*** 22,30 ****
  
  /*
  ** revd_f64_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_tied2, svfloat64_t,
--- 22,29 ----
  
  /*
  ** revd_f64_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_tied2, svfloat64_t,
*************** TEST_UNIFORM_Z (revd_f64_m_tied2, svfloa
*** 33,40 ****
  
  /*
  ** revd_f64_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_untied, svfloat64_t,
--- 32,39 ----
  
  /*
  ** revd_f64_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_untied, svfloat64_t,
*************** TEST_UNIFORM_Z (revd_f64_x_tied1, svfloa
*** 67,74 ****
  
  /*
  ** revd_f64_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_x_untied, svfloat64_t,
--- 66,73 ----
  
  /*
  ** revd_f64_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_x_untied, svfloat64_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s16_m_tied1, svint1
*** 22,30 ****
  
  /*
  ** revd_s16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_tied2, svint16_t,
--- 22,29 ----
  
  /*
  ** revd_s16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_tied2, svint16_t,
*************** TEST_UNIFORM_Z (revd_s16_m_tied2, svint1
*** 33,40 ****
  
  /*
  ** revd_s16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_untied, svint16_t,
--- 32,39 ----
  
  /*
  ** revd_s16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_untied, svint16_t,
*************** TEST_UNIFORM_Z (revd_s16_x_tied1, svint1
*** 67,74 ****
  
  /*
  ** revd_s16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_x_untied, svint16_t,
--- 66,73 ----
  
  /*
  ** revd_s16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_x_untied, svint16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s32_m_tied1, svint3
*** 22,30 ****
  
  /*
  ** revd_s32_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_tied2, svint32_t,
--- 22,29 ----
  
  /*
  ** revd_s32_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_tied2, svint32_t,
*************** TEST_UNIFORM_Z (revd_s32_m_tied2, svint3
*** 33,40 ****
  
  /*
  ** revd_s32_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_untied, svint32_t,
--- 32,39 ----
  
  /*
  ** revd_s32_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_untied, svint32_t,
*************** TEST_UNIFORM_Z (revd_s32_x_tied1, svint3
*** 67,74 ****
  
  /*
  ** revd_s32_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_x_untied, svint32_t,
--- 66,73 ----
  
  /*
  ** revd_s32_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_x_untied, svint32_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s64_m_tied1, svint6
*** 22,30 ****
  
  /*
  ** revd_s64_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_tied2, svint64_t,
--- 22,29 ----
  
  /*
  ** revd_s64_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_tied2, svint64_t,
*************** TEST_UNIFORM_Z (revd_s64_m_tied2, svint6
*** 33,40 ****
  
  /*
  ** revd_s64_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_untied, svint64_t,
--- 32,39 ----
  
  /*
  ** revd_s64_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_untied, svint64_t,
*************** TEST_UNIFORM_Z (revd_s64_x_tied1, svint6
*** 67,74 ****
  
  /*
  ** revd_s64_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_x_untied, svint64_t,
--- 66,73 ----
  
  /*
  ** revd_s64_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_x_untied, svint64_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s8_m_tied1, svint8_
*** 22,30 ****
  
  /*
  ** revd_s8_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_tied2, svint8_t,
--- 22,29 ----
  
  /*
  ** revd_s8_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_tied2, svint8_t,
*************** TEST_UNIFORM_Z (revd_s8_m_tied2, svint8_
*** 33,40 ****
  
  /*
  ** revd_s8_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_untied, svint8_t,
--- 32,39 ----
  
  /*
  ** revd_s8_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_untied, svint8_t,
*************** TEST_UNIFORM_Z (revd_s8_x_tied1, svint8_
*** 67,74 ****
  
  /*
  ** revd_s8_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_x_untied, svint8_t,
--- 66,73 ----
  
  /*
  ** revd_s8_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_x_untied, svint8_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u16_m_tied1, svuint
*** 22,30 ****
  
  /*
  ** revd_u16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_tied2, svuint16_t,
--- 22,29 ----
  
  /*
  ** revd_u16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_tied2, svuint16_t,
*************** TEST_UNIFORM_Z (revd_u16_m_tied2, svuint
*** 33,40 ****
  
  /*
  ** revd_u16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_untied, svuint16_t,
--- 32,39 ----
  
  /*
  ** revd_u16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_untied, svuint16_t,
*************** TEST_UNIFORM_Z (revd_u16_x_tied1, svuint
*** 67,74 ****
  
  /*
  ** revd_u16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_x_untied, svuint16_t,
--- 66,73 ----
  
  /*
  ** revd_u16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_x_untied, svuint16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u32_m_tied1, svuint
*** 22,30 ****
  
  /*
  ** revd_u32_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_tied2, svuint32_t,
--- 22,29 ----
  
  /*
  ** revd_u32_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_tied2, svuint32_t,
*************** TEST_UNIFORM_Z (revd_u32_m_tied2, svuint
*** 33,40 ****
  
  /*
  ** revd_u32_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_untied, svuint32_t,
--- 32,39 ----
  
  /*
  ** revd_u32_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_untied, svuint32_t,
*************** TEST_UNIFORM_Z (revd_u32_x_tied1, svuint
*** 67,74 ****
  
  /*
  ** revd_u32_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_x_untied, svuint32_t,
--- 66,73 ----
  
  /*
  ** revd_u32_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_x_untied, svuint32_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u64_m_tied1, svuint
*** 22,30 ****
  
  /*
  ** revd_u64_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_tied2, svuint64_t,
--- 22,29 ----
  
  /*
  ** revd_u64_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_tied2, svuint64_t,
*************** TEST_UNIFORM_Z (revd_u64_m_tied2, svuint
*** 33,40 ****
  
  /*
  ** revd_u64_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_untied, svuint64_t,
--- 32,39 ----
  
  /*
  ** revd_u64_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_untied, svuint64_t,
*************** TEST_UNIFORM_Z (revd_u64_x_tied1, svuint
*** 67,74 ****
  
  /*
  ** revd_u64_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_x_untied, svuint64_t,
--- 66,73 ----
  
  /*
  ** revd_u64_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_x_untied, svuint64_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u8.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u8_m_tied1, svuint8
*** 22,30 ****
  
  /*
  ** revd_u8_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_tied2, svuint8_t,
--- 22,29 ----
  
  /*
  ** revd_u8_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_tied2, svuint8_t,
*************** TEST_UNIFORM_Z (revd_u8_m_tied2, svuint8
*** 33,40 ****
  
  /*
  ** revd_u8_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_untied, svuint8_t,
--- 32,39 ----
  
  /*
  ** revd_u8_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_untied, svuint8_t,
*************** TEST_UNIFORM_Z (revd_u8_x_tied1, svuint8
*** 67,74 ****
  
  /*
  ** revd_u8_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_x_untied, svuint8_t,
--- 66,73 ----
  
  /*
  ** revd_u8_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_x_untied, svuint8_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c	Sat Mar 14 22:32:10 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c	Sat Mar 21 22:32:12 2026
***************
*** 1,4 ****
! /* { dg-options "-O3 -fshrink-wrap" } */
  /* { dg-do run { target { aarch64_sme_hw && aarch64_sve_hw } } } */
  /* { dg-do compile { target { ! { aarch64_sme_hw && aarch64_sve_hw } } } } */
  /* { dg-final { check-function-bodies "**" "" } } */
--- 1,4 ----
! /* { dg-options "-O3 -fshrink-wrap -save-temps" } */
  /* { dg-do run { target { aarch64_sme_hw && aarch64_sve_hw } } } */
  /* { dg-do compile { target { ! { aarch64_sme_hw && aarch64_sve_hw } } } } */
  /* { dg-final { check-function-bodies "**" "" } } */
*************** int foo(int x)
*** 46,51 ****
--- 46,52 ----
  **	...
  */
  
+ [[gnu::noipa]]
  __arm_locally_streaming
  int bar(int x)
  {
*************** int baz(int x)
*** 69,75 ****
      return svcntd();
  }
  
- [[gnu::noipa]]
  int main()
  {
    if (bar(0) != svcntsd())
--- 70,75 ----
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_bf16_m_tied1, svbfl
*** 26,34 ****
  
  /*
  ** revd_bf16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_tied2, svbfloat16_t,
--- 26,33 ----
  
  /*
  ** revd_bf16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_tied2, svbfloat16_t,
*************** TEST_UNIFORM_Z (revd_bf16_m_tied2, svbfl
*** 37,44 ****
  
  /*
  ** revd_bf16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_untied, svbfloat16_t,
--- 36,43 ----
  
  /*
  ** revd_bf16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_m_untied, svbfloat16_t,
*************** TEST_UNIFORM_Z (revd_bf16_x_tied1, svbfl
*** 71,78 ****
  
  /*
  ** revd_bf16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_x_untied, svbfloat16_t,
--- 70,77 ----
  
  /*
  ** revd_bf16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_bf16_x_untied, svbfloat16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_f16_m_tied1, svfloa
*** 26,34 ****
  
  /*
  ** revd_f16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_tied2, svfloat16_t,
--- 26,33 ----
  
  /*
  ** revd_f16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_tied2, svfloat16_t,
*************** TEST_UNIFORM_Z (revd_f16_m_tied2, svfloa
*** 37,44 ****
  
  /*
  ** revd_f16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_untied, svfloat16_t,
--- 36,43 ----
  
  /*
  ** revd_f16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_m_untied, svfloat16_t,
*************** TEST_UNIFORM_Z (revd_f16_x_tied1, svfloa
*** 71,78 ****
  
  /*
  ** revd_f16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_x_untied, svfloat16_t,
--- 70,77 ----
  
  /*
  ** revd_f16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f16_x_untied, svfloat16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_f32_m_tied1, svfloa
*** 26,34 ****
  
  /*
  ** revd_f32_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_tied2, svfloat32_t,
--- 26,33 ----
  
  /*
  ** revd_f32_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_tied2, svfloat32_t,
*************** TEST_UNIFORM_Z (revd_f32_m_tied2, svfloa
*** 37,44 ****
  
  /*
  ** revd_f32_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_untied, svfloat32_t,
--- 36,43 ----
  
  /*
  ** revd_f32_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_m_untied, svfloat32_t,
*************** TEST_UNIFORM_Z (revd_f32_x_tied1, svfloa
*** 71,78 ****
  
  /*
  ** revd_f32_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_x_untied, svfloat32_t,
--- 70,77 ----
  
  /*
  ** revd_f32_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f32_x_untied, svfloat32_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_f64_m_tied1, svfloa
*** 26,34 ****
  
  /*
  ** revd_f64_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_tied2, svfloat64_t,
--- 26,33 ----
  
  /*
  ** revd_f64_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_tied2, svfloat64_t,
*************** TEST_UNIFORM_Z (revd_f64_m_tied2, svfloa
*** 37,44 ****
  
  /*
  ** revd_f64_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_untied, svfloat64_t,
--- 36,43 ----
  
  /*
  ** revd_f64_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_m_untied, svfloat64_t,
*************** TEST_UNIFORM_Z (revd_f64_x_tied1, svfloa
*** 71,78 ****
  
  /*
  ** revd_f64_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_x_untied, svfloat64_t,
--- 70,77 ----
  
  /*
  ** revd_f64_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_f64_x_untied, svfloat64_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s16_m_tied1, svint1
*** 26,34 ****
  
  /*
  ** revd_s16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_tied2, svint16_t,
--- 26,33 ----
  
  /*
  ** revd_s16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_tied2, svint16_t,
*************** TEST_UNIFORM_Z (revd_s16_m_tied2, svint1
*** 37,44 ****
  
  /*
  ** revd_s16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_untied, svint16_t,
--- 36,43 ----
  
  /*
  ** revd_s16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_m_untied, svint16_t,
*************** TEST_UNIFORM_Z (revd_s16_x_tied1, svint1
*** 71,78 ****
  
  /*
  ** revd_s16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_x_untied, svint16_t,
--- 70,77 ----
  
  /*
  ** revd_s16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s16_x_untied, svint16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s32_m_tied1, svint3
*** 26,34 ****
  
  /*
  ** revd_s32_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_tied2, svint32_t,
--- 26,33 ----
  
  /*
  ** revd_s32_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_tied2, svint32_t,
*************** TEST_UNIFORM_Z (revd_s32_m_tied2, svint3
*** 37,44 ****
  
  /*
  ** revd_s32_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_untied, svint32_t,
--- 36,43 ----
  
  /*
  ** revd_s32_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_m_untied, svint32_t,
*************** TEST_UNIFORM_Z (revd_s32_x_tied1, svint3
*** 71,78 ****
  
  /*
  ** revd_s32_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_x_untied, svint32_t,
--- 70,77 ----
  
  /*
  ** revd_s32_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s32_x_untied, svint32_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s64_m_tied1, svint6
*** 26,34 ****
  
  /*
  ** revd_s64_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_tied2, svint64_t,
--- 26,33 ----
  
  /*
  ** revd_s64_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_tied2, svint64_t,
*************** TEST_UNIFORM_Z (revd_s64_m_tied2, svint6
*** 37,44 ****
  
  /*
  ** revd_s64_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_untied, svint64_t,
--- 36,43 ----
  
  /*
  ** revd_s64_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_m_untied, svint64_t,
*************** TEST_UNIFORM_Z (revd_s64_x_tied1, svint6
*** 71,78 ****
  
  /*
  ** revd_s64_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_x_untied, svint64_t,
--- 70,77 ----
  
  /*
  ** revd_s64_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s64_x_untied, svint64_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_s8_m_tied1, svint8_
*** 26,34 ****
  
  /*
  ** revd_s8_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_tied2, svint8_t,
--- 26,33 ----
  
  /*
  ** revd_s8_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_tied2, svint8_t,
*************** TEST_UNIFORM_Z (revd_s8_m_tied2, svint8_
*** 37,44 ****
  
  /*
  ** revd_s8_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_untied, svint8_t,
--- 36,43 ----
  
  /*
  ** revd_s8_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_m_untied, svint8_t,
*************** TEST_UNIFORM_Z (revd_s8_x_tied1, svint8_
*** 71,78 ****
  
  /*
  ** revd_s8_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_x_untied, svint8_t,
--- 70,77 ----
  
  /*
  ** revd_s8_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_s8_x_untied, svint8_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u16_m_tied1, svuint
*** 26,34 ****
  
  /*
  ** revd_u16_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_tied2, svuint16_t,
--- 26,33 ----
  
  /*
  ** revd_u16_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_tied2, svuint16_t,
*************** TEST_UNIFORM_Z (revd_u16_m_tied2, svuint
*** 37,44 ****
  
  /*
  ** revd_u16_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_untied, svuint16_t,
--- 36,43 ----
  
  /*
  ** revd_u16_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_m_untied, svuint16_t,
*************** TEST_UNIFORM_Z (revd_u16_x_tied1, svuint
*** 71,78 ****
  
  /*
  ** revd_u16_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_x_untied, svuint16_t,
--- 70,77 ----
  
  /*
  ** revd_u16_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u16_x_untied, svuint16_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u32_m_tied1, svuint
*** 26,34 ****
  
  /*
  ** revd_u32_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_tied2, svuint32_t,
--- 26,33 ----
  
  /*
  ** revd_u32_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_tied2, svuint32_t,
*************** TEST_UNIFORM_Z (revd_u32_m_tied2, svuint
*** 37,44 ****
  
  /*
  ** revd_u32_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_untied, svuint32_t,
--- 36,43 ----
  
  /*
  ** revd_u32_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_m_untied, svuint32_t,
*************** TEST_UNIFORM_Z (revd_u32_x_tied1, svuint
*** 71,78 ****
  
  /*
  ** revd_u32_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_x_untied, svuint32_t,
--- 70,77 ----
  
  /*
  ** revd_u32_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u32_x_untied, svuint32_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u64_m_tied1, svuint
*** 26,34 ****
  
  /*
  ** revd_u64_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_tied2, svuint64_t,
--- 26,33 ----
  
  /*
  ** revd_u64_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_tied2, svuint64_t,
*************** TEST_UNIFORM_Z (revd_u64_m_tied2, svuint
*** 37,44 ****
  
  /*
  ** revd_u64_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_untied, svuint64_t,
--- 36,43 ----
  
  /*
  ** revd_u64_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_m_untied, svuint64_t,
*************** TEST_UNIFORM_Z (revd_u64_x_tied1, svuint
*** 71,78 ****
  
  /*
  ** revd_u64_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_x_untied, svuint64_t,
--- 70,77 ----
  
  /*
  ** revd_u64_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u64_x_untied, svuint64_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c	Sat Mar 14 22:32:11 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u8.c	Sat Mar 21 22:32:12 2026
*************** TEST_UNIFORM_Z (revd_u8_m_tied1, svuint8
*** 26,34 ****
  
  /*
  ** revd_u8_m_tied2:
! **	mov	(z[0-9]+)\.d, z0\.d
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, \1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_tied2, svuint8_t,
--- 26,33 ----
  
  /*
  ** revd_u8_m_tied2:
! **	revd	z1\.q, p0/m, z0\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_tied2, svuint8_t,
*************** TEST_UNIFORM_Z (revd_u8_m_tied2, svuint8
*** 37,44 ****
  
  /*
  ** revd_u8_m_untied:
! **	movprfx	z0, z2
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_untied, svuint8_t,
--- 36,43 ----
  
  /*
  ** revd_u8_m_untied:
! **	revd	z2\.q, p0/m, z1\.q
! **	mov	z0.d, z2.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_m_untied, svuint8_t,
*************** TEST_UNIFORM_Z (revd_u8_x_tied1, svuint8
*** 71,78 ****
  
  /*
  ** revd_u8_x_untied:
! **	movprfx	z0, z1
! **	revd	z0\.q, p0/m, z1\.q
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_x_untied, svuint8_t,
--- 70,77 ----
  
  /*
  ** revd_u8_x_untied:
! **	revd	z1\.q, p0/m, z1\.q
! **	mov	z0.d, z1.d
  **	ret
  */
  TEST_UNIFORM_Z (revd_u8_x_untied, svuint8_t,
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c	Sat Mar 21 22:32:12 2026
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8.2-a+sve -msve-vector-bits=256" } */
+ #include <arm_sve.h>
+ svint64_t foo(long x, long y) {
+   return svdupq_n_s64(x, y);
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/i386/pr121726.c gcc-15-20260321/gcc/testsuite/gcc.target/i386/pr121726.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/i386/pr121726.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gcc.target/i386/pr121726.c	Sat Mar 21 22:32:13 2026
***************
*** 0 ****
--- 1,117 ----
+ /* { dg-do run { target { lp64 && avx2_runtime } } } */
+ /* { dg-options "-O3 -mavx2" } */
+ 
+ #include <stdint.h>
+ #include <string.h>
+ #include <immintrin.h>
+ 
+ #define SPX_N 16
+ 
+ typedef struct {
+     uint8_t pub_seed[SPX_N];
+ } spx_ctx;
+ 
+ typedef float __m256_u __attribute__ ((__vector_size__ (32), __may_alias__, __aligned__ (1)));
+ typedef double __m256d_u __attribute__ ((__vector_size__ (32), __may_alias__, __aligned__ (1)));
+ typedef long long __m256i_u __attribute__ ((__vector_size__ (32), __may_alias__, __aligned__ (1)));
+ 
+ __attribute__((noinline))
+ void Keccak(__m256i *states) { }
+ 
+ __attribute__((noipa))
+ void capture(uint8_t *v) { }
+ 
+ static void thashx4(uint64_t *out0,
+              uint64_t *out1,
+              uint64_t *out2,
+              uint64_t *out3,
+              unsigned int inblocks,
+              const uint64_t* pub_seed) {
+     if (inblocks == 1 || inblocks == 2) {
+         __m256i state[25];
+         for (int i = 0; i < 25; i++) {
+             state[i] = _mm256_set1_epi64x(0);
+         }
+         for (int i = 0; i < 2; i++) {
+             state[i] = _mm256_set1_epi64x(pub_seed[i]);
+         }
+ 
+         /* Domain separator and padding. */
+         for (size_t i = 4 * inblocks + 4; i < 16; i++) {
+             state[i] = _mm256_set1_epi64x(0);
+         }
+ 
+         Keccak(&state[0]);
+ 
+         for (int i = 0; i < SPX_N / 8; i++) {
+             out0[i] = _mm256_extract_epi64(state[i], 0);
+             out1[i] = _mm256_extract_epi64(state[i], 1);
+             out2[i] = _mm256_extract_epi64(state[i], 2);
+             out3[i] = _mm256_extract_epi64(state[i], 3);
+         }
+     } else {
+         unsigned char buf0[inblocks * SPX_N];
+         unsigned char buf1[inblocks * SPX_N];
+         unsigned char buf2[inblocks * SPX_N];
+ 
+         memcpy(buf0, pub_seed, SPX_N);
+         memcpy(buf1, pub_seed, SPX_N);
+         memcpy(buf2, pub_seed, SPX_N);
+ 
+         capture(buf0);
+         capture(buf1);
+         capture(buf2);
+     }
+ }
+ 
+ static
+ void wots_gen_leafx4(const spx_ctx *ctx) {
+ 	uint64_t dest[4];
+ 
+ 	thashx4(dest, dest, dest, dest, 1, (const uint64_t *) ctx->pub_seed);
+ 	thashx4(dest, dest, dest, dest, 3, (const uint64_t *) ctx->pub_seed);
+ }
+ 
+ void treehashx4_v2(const spx_ctx *ctx,
+                 void (*gen_leafx4)( const spx_ctx *),
+                 uint32_t* tree_addrx4
+                 ) {
+     for (int i = 0; i < 2; i++) {
+         gen_leafx4( ctx );
+     }
+ }
+ 
+ __attribute__((noipa))
+ void crypto_sign_signature(uint64_t *sg, uint8_t enable, const uint8_t *sk)
+ {
+   spx_ctx ctx;
+ 
+   memcpy(ctx.pub_seed, sk, SPX_N);
+ 
+   const uint64_t* ptr = (const uint64_t *)&ctx.pub_seed[0];
+   thashx4(sg, sg, sg, sg, 1, ptr);
+ 
+   if (!enable)
+     return;
+ 
+   uint32_t tree_addrx4[32] = { 0 };
+ 
+   treehashx4_v2(&ctx, wots_gen_leafx4, tree_addrx4);
+ }
+ 
+ #define length_secret_key 64
+ #define length_signature 64
+ 
+ int main() {
+   uint8_t secret_key[length_secret_key];
+   uint64_t signature[length_signature];
+   memset(secret_key, 0, length_secret_key);
+   memset(signature, 0, length_signature * sizeof(uint64_t));
+ 
+   crypto_sign_signature(signature, 0, secret_key);
+   
+   for (int i = 0; i < length_signature; ++i)
+     if (signature[i] != 0)
+       __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gcc.target/powerpc/pr103515.c gcc-15-20260321/gcc/testsuite/gcc.target/powerpc/pr103515.c
*** gcc-15-20260314/gcc/testsuite/gcc.target/powerpc/pr103515.c	Sat Mar 14 22:32:12 2026
--- gcc-15-20260321/gcc/testsuite/gcc.target/powerpc/pr103515.c	Sat Mar 21 22:32:13 2026
*************** void
*** 13,18 ****
--- 13,19 ----
  foo1 ()
  {
    int i;
+ #pragma GCC novector
    for (i = 0; i < n; i++)
      c1[i] += a1[i] + b1[i];
  }
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gfortran.dg/pr102596.f90 gcc-15-20260321/gcc/testsuite/gfortran.dg/pr102596.f90
*** gcc-15-20260314/gcc/testsuite/gfortran.dg/pr102596.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gfortran.dg/pr102596.f90	Sat Mar 21 22:32:14 2026
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fopenmp" }
+ 
+ program p
+   integer, allocatable :: r
+ 
+   allocate (r)
+   r = 0
+ 
+   !$omp target parallel reduction(task, +:r)
+   r = r + 1
+   !$omp end target parallel
+ end
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gfortran.dg/pr106946.f90 gcc-15-20260321/gcc/testsuite/gfortran.dg/pr106946.f90
*** gcc-15-20260314/gcc/testsuite/gfortran.dg/pr106946.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gfortran.dg/pr106946.f90	Sat Mar 21 22:32:14 2026
***************
*** 0 ****
--- 1,30 ----
+ ! { dg-do compile }
+ ! PR fortran/106946
+ ! ICE in resolve_component on invalid CLASS declaration with missing comma.
+ !
+ ! The bad declarations below should diagnose and continue without leaving
+ ! behind dangling CLASS container symbols in the surrounding namespace.
+ 
+ program p
+   type :: u
+   end type
+ 
+   type :: v
+   end type
+ 
+   type :: w
+   end type
+ 
+   type :: t1
+     class(u), allocatable :: a b  ! { dg-error "Syntax error in data declaration" }
+   end type
+ 
+   type :: t2
+     class(v), pointer :: p q  ! { dg-error "Syntax error in data declaration" }
+   end type
+ 
+   type :: t3
+     class(w), allocatable :: ok
+     class(w), allocatable :: x y  ! { dg-error "Syntax error in data declaration" }
+   end type
+ end
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gfortran.dg/pr124161.f90 gcc-15-20260321/gcc/testsuite/gfortran.dg/pr124161.f90
*** gcc-15-20260314/gcc/testsuite/gfortran.dg/pr124161.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gfortran.dg/pr124161.f90	Sat Mar 21 22:32:14 2026
***************
*** 0 ****
--- 1,61 ----
+ ! { dg-do compile }
+ !
+ ! Test the fix for the regression caused by r16-669-gd31ab498b12ebb - See line 59.
+ !
+ ! Contributed by Zaak Beekman  <zbeekman@gmail.com>
+ !
+ module inner_m
+     implicit none
+     type :: dt_t
+         integer, allocatable :: val
+     end type
+     type, abstract :: inner_t
+     contains
+         procedure(summary_i), deferred :: summary
+     end type
+     abstract interface
+         function summary_i(self)
+             import :: inner_t, dt_t
+             class(inner_t), intent(in) :: self
+             type(dt_t) :: summary_i
+         end function
+     end interface
+ end module inner_m
+ 
+ module concrete_m
+     use inner_m, only: inner_t, dt_t
+     implicit none
+     type, extends(inner_t) :: concrete_t
+     contains
+         procedure :: summary
+     end type
+ contains
+     function summary(self)
+         class(concrete_t), intent(in) :: self
+         type(dt_t) :: summary
+     end function
+ end module concrete_m
+ 
+ module outer_m
+     use inner_m, only: inner_t, dt_t
+     use concrete_m, only: concrete_t
+     implicit none
+     type :: outer_t
+         class(inner_t), allocatable :: component
+     contains
+         procedure :: summary
+     end type
+     interface
+         module function summary(self) result(res)
+             class(outer_t), intent(in) :: self
+             type(dt_t) :: res
+         end function
+     end interface
+ end module outer_m
+ 
+ submodule(outer_m) outer_impl
+ contains
+     module procedure summary
+         res = self%component%summary()  ! ICE in trans_scalar_assign here
+     end procedure
+ end submodule outer_impl
diff -Nrcpad gcc-15-20260314/gcc/testsuite/gfortran.dg/submodule_34.f90 gcc-15-20260321/gcc/testsuite/gfortran.dg/submodule_34.f90
*** gcc-15-20260314/gcc/testsuite/gfortran.dg/submodule_34.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/gcc/testsuite/gfortran.dg/submodule_34.f90	Sat Mar 21 22:32:14 2026
***************
*** 0 ****
--- 1,63 ----
+ ! { dg-do compile }
+ !
+ ! PR fortran/122046
+ ! The check for illegal recursion used to trigger on assertion when resolving
+ ! the array spec of the dummy argument in the submodule
+ !
+ ! Contributed by Tomáš Trnka <trnka@scm.com>
+ 
+ module ChemicalSystemModule
+ 
+    implicit none
+    private
+ 
+    type, public :: ChemicalSystemType
+    contains
+       procedure, public  :: NumAtoms
+    end type
+ 
+ contains
+ 
+    elemental integer function NumAtoms(self)
+       class(ChemicalSystemType), intent(in) :: self
+ 
+       NumAtoms = 123
+ 
+    end function
+ 
+ end module
+ 
+ module ChemicalSystemUtilsModule
+ 
+    use ChemicalSystemModule
+ 
+    implicit none
+    private
+ 
+    public :: ChemicalSystemRMSD
+ 
+    interface
+ 
+       module subroutine ChemicalSystemRMSD(modelSys, rmsdGrad)
+          type(ChemicalSystemType), intent(in)  :: modelSys
+          real                    , intent(out) :: rmsdGrad(3,modelSys%NumAtoms())
+       end subroutine
+ 
+    end interface
+ 
+ end module
+ 
+ submodule(ChemicalSystemUtilsModule) ChemicalSystemUtilsSubModule
+    use ChemicalSystemModule
+ 
+    implicit none
+ 
+ contains
+ 
+    module subroutine ChemicalSystemRMSD(modelSys, rmsdGrad)
+       type(ChemicalSystemType), intent(in)   :: modelSys
+       real                    , intent(out)  :: rmsdGrad(3,modelSys%NumAtoms())
+    end subroutine
+ 
+ end submodule
+ 
diff -Nrcpad gcc-15-20260314/gcc/tree-eh.cc gcc-15-20260321/gcc/tree-eh.cc
*** gcc-15-20260314/gcc/tree-eh.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-eh.cc	Sat Mar 21 22:32:15 2026
*************** sink_clobbers (basic_block bb,
*** 3770,3775 ****
--- 3770,3787 ----
      }
    if (first_sunk)
      {
+       /* If there isn't a single predecessor but no virtual PHI node
+ 	 create one and arrange for virtual operands to be renamed as
+ 	 we cannot be sure all incoming edges will updated from sinking
+ 	 something.  */
+       if (!vphi && !single_pred_p (succbb))
+ 	{
+ 	  vphi = create_phi_node (gimple_vop (cfun), succbb);
+ 	  FOR_EACH_EDGE (e, ei, succbb->preds)
+ 	    add_phi_arg (vphi, gimple_vop (cfun), e, UNKNOWN_LOCATION);
+ 	  mark_virtual_operands_for_renaming (cfun);
+ 	  todo |= TODO_update_ssa_only_virtuals;
+ 	}
        /* Adjust virtual operands if we sunk across a virtual PHI.  */
        if (vphi)
  	{
*************** sink_clobbers (basic_block bb,
*** 3789,3802 ****
  		   gimple_vuse (last_sunk));
  	  SET_USE (gimple_vuse_op (last_sunk), phi_def);
  	}
-       /* If there isn't a single predecessor but no virtual PHI node
-          arrange for virtual operands to be renamed.  */
-       else if (!single_pred_p (succbb)
- 	       && TREE_CODE (gimple_vuse (last_sunk)) == SSA_NAME)
- 	{
- 	  mark_virtual_operand_for_renaming (gimple_vuse (last_sunk));
- 	  todo |= TODO_update_ssa_only_virtuals;
- 	}
      }
  
    return todo;
--- 3801,3806 ----
diff -Nrcpad gcc-15-20260314/gcc/tree-inline.cc gcc-15-20260321/gcc/tree-inline.cc
*** gcc-15-20260314/gcc/tree-inline.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-inline.cc	Sat Mar 21 22:32:15 2026
*************** copy_edges_for_bb (basic_block bb, profi
*** 2733,2738 ****
--- 2733,2741 ----
  	      make_single_succ_edge (copy_stmt_bb, abnormal_goto_dest,
  				     EDGE_ABNORMAL);
  	      gimple_call_set_ctrl_altering (copy_stmt, true);
+ 	      if (is_a <gcall *> (copy_stmt)
+ 		  && (gimple_call_flags (copy_stmt) & ECF_NORETURN))
+ 		fixup_noreturn_call (copy_stmt);
  	    }
  	}
  
diff -Nrcpad gcc-15-20260314/gcc/tree-sra.cc gcc-15-20260321/gcc/tree-sra.cc
*** gcc-15-20260314/gcc/tree-sra.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-sra.cc	Sat Mar 21 22:32:15 2026
*************** make_fancy_name (tree expr)
*** 1880,1891 ****
     something for which get_addr_base_and_unit_offset returns NULL, gsi must
     be non-NULL and is used to insert new statements either before or below
     the current one as specified by INSERT_AFTER.  This function is not capable
!    of handling bitfields.  */
  
  tree
  build_ref_for_offset (location_t loc, tree base, poly_int64 offset,
  		      bool reverse, tree exp_type, gimple_stmt_iterator *gsi,
! 		      bool insert_after)
  {
    tree prev_base = base;
    tree off;
--- 1880,1892 ----
     something for which get_addr_base_and_unit_offset returns NULL, gsi must
     be non-NULL and is used to insert new statements either before or below
     the current one as specified by INSERT_AFTER.  This function is not capable
!    of handling bitfields.  If FORCE_REF_ALL is true then the memory access
!    will use alias-set zero.  */
  
  tree
  build_ref_for_offset (location_t loc, tree base, poly_int64 offset,
  		      bool reverse, tree exp_type, gimple_stmt_iterator *gsi,
! 		      bool insert_after, bool force_ref_all = false)
  {
    tree prev_base = base;
    tree off;
*************** build_ref_for_offset (location_t loc, tr
*** 1923,1941 ****
        else
  	gsi_insert_before (gsi, stmt, GSI_SAME_STMT);
  
!       off = build_int_cst (reference_alias_ptr_type (prev_base), byte_offset);
        base = tmp;
      }
    else if (TREE_CODE (base) == MEM_REF)
      {
!       off = build_int_cst (TREE_TYPE (TREE_OPERAND (base, 1)),
  			   base_offset + byte_offset);
        off = int_const_binop (PLUS_EXPR, TREE_OPERAND (base, 1), off);
        base = unshare_expr (TREE_OPERAND (base, 0));
      }
    else
      {
!       off = build_int_cst (reference_alias_ptr_type (prev_base),
  			   base_offset + byte_offset);
        base = build_fold_addr_expr (unshare_expr (base));
      }
--- 1924,1945 ----
        else
  	gsi_insert_before (gsi, stmt, GSI_SAME_STMT);
  
!       off = build_int_cst (force_ref_all ? ptr_type_node
! 			   : reference_alias_ptr_type (prev_base), byte_offset);
        base = tmp;
      }
    else if (TREE_CODE (base) == MEM_REF)
      {
!       off = build_int_cst (force_ref_all ? ptr_type_node
! 			   : TREE_TYPE (TREE_OPERAND (base, 1)),
  			   base_offset + byte_offset);
        off = int_const_binop (PLUS_EXPR, TREE_OPERAND (base, 1), off);
        base = unshare_expr (TREE_OPERAND (base, 0));
      }
    else
      {
!       off = build_int_cst (force_ref_all ? ptr_type_node
! 			   : reference_alias_ptr_type (prev_base),
  			   base_offset + byte_offset);
        base = build_fold_addr_expr (unshare_expr (base));
      }
*************** build_reconstructed_reference (location_
*** 1998,2009 ****
     build_ref_for_offset, furthermore, when GSI is NULL, the function expects
     that it re-builds the entire reference from a DECL to the final access and
     so will create a MEM_REF when OFFSET does not exactly match offset of
!    MODEL.  */
  
  static tree
  build_ref_for_model (location_t loc, tree base, HOST_WIDE_INT offset,
  		     struct access *model, gimple_stmt_iterator *gsi,
! 		     bool insert_after)
  {
    gcc_assert (offset >= 0);
    if (TREE_CODE (model->expr) == COMPONENT_REF
--- 2002,2014 ----
     build_ref_for_offset, furthermore, when GSI is NULL, the function expects
     that it re-builds the entire reference from a DECL to the final access and
     so will create a MEM_REF when OFFSET does not exactly match offset of
!    MODEL.  If FORCE_REF_ALL is true then the memory access will use
!    alias-set zero.  */
  
  static tree
  build_ref_for_model (location_t loc, tree base, HOST_WIDE_INT offset,
  		     struct access *model, gimple_stmt_iterator *gsi,
! 		     bool insert_after, bool force_ref_all = false)
  {
    gcc_assert (offset >= 0);
    if (TREE_CODE (model->expr) == COMPONENT_REF
*************** build_ref_for_model (location_t loc, tre
*** 2015,2021 ****
        offset -= int_bit_position (fld);
        exp_type = TREE_TYPE (TREE_OPERAND (model->expr, 0));
        t = build_ref_for_offset (loc, base, offset, model->reverse, exp_type,
! 				gsi, insert_after);
        /* The flag will be set on the record type.  */
        REF_REVERSE_STORAGE_ORDER (t) = 0;
        return fold_build3_loc (loc, COMPONENT_REF, TREE_TYPE (fld), t, fld,
--- 2020,2026 ----
        offset -= int_bit_position (fld);
        exp_type = TREE_TYPE (TREE_OPERAND (model->expr, 0));
        t = build_ref_for_offset (loc, base, offset, model->reverse, exp_type,
! 				gsi, insert_after, force_ref_all);
        /* The flag will be set on the record type.  */
        REF_REVERSE_STORAGE_ORDER (t) = 0;
        return fold_build3_loc (loc, COMPONENT_REF, TREE_TYPE (fld), t, fld,
*************** build_ref_for_model (location_t loc, tre
*** 2025,2030 ****
--- 2030,2036 ----
      {
        tree res;
        if (model->grp_same_access_path
+ 	  && !force_ref_all
  	  && !TREE_THIS_VOLATILE (base)
  	  && (TYPE_ADDR_SPACE (TREE_TYPE (base))
  	      == TYPE_ADDR_SPACE (TREE_TYPE (model->expr)))
*************** build_ref_for_model (location_t loc, tre
*** 2036,2042 ****
  	return res;
        else
  	return build_ref_for_offset (loc, base, offset, model->reverse,
! 				     model->type, gsi, insert_after);
      }
  }
  
--- 2042,2049 ----
  	return res;
        else
  	return build_ref_for_offset (loc, base, offset, model->reverse,
! 				     model->type, gsi, insert_after,
! 				     force_ref_all);
      }
  }
  
*************** analyze_all_variable_accesses (void)
*** 3920,3935 ****
     replacements in the interval <start_offset, start_offset + chunk_size>,
     otherwise copy all.  GSI is a statement iterator used to place the new
     statements.  WRITE should be true when the statements should write from AGG
!    to the replacement and false if vice versa.  if INSERT_AFTER is true, new
     statements will be added after the current statement in GSI, they will be
!    added before the statement otherwise.  */
  
  static void
  generate_subtree_copies (struct access *access, tree agg,
  			 HOST_WIDE_INT top_offset,
  			 HOST_WIDE_INT start_offset, HOST_WIDE_INT chunk_size,
  			 gimple_stmt_iterator *gsi, bool write,
! 			 bool insert_after, location_t loc)
  {
    /* Never write anything into constant pool decls.  See PR70602.  */
    if (!write && constant_decl_p (agg))
--- 3927,3944 ----
     replacements in the interval <start_offset, start_offset + chunk_size>,
     otherwise copy all.  GSI is a statement iterator used to place the new
     statements.  WRITE should be true when the statements should write from AGG
!    to the replacement and false if vice versa.  If INSERT_AFTER is true, new
     statements will be added after the current statement in GSI, they will be
!    added before the statement otherwise.  If FORCE_REF_ALL is true then
!    memory accesses will use alias-set zero.  */
  
  static void
  generate_subtree_copies (struct access *access, tree agg,
  			 HOST_WIDE_INT top_offset,
  			 HOST_WIDE_INT start_offset, HOST_WIDE_INT chunk_size,
  			 gimple_stmt_iterator *gsi, bool write,
! 			 bool insert_after, location_t loc,
! 			 bool force_ref_all = false)
  {
    /* Never write anything into constant pool decls.  See PR70602.  */
    if (!write && constant_decl_p (agg))
*************** generate_subtree_copies (struct access *
*** 3947,3953 ****
  	  gassign *stmt;
  
  	  expr = build_ref_for_model (loc, agg, access->offset - top_offset,
! 				      access, gsi, insert_after);
  
  	  if (write)
  	    {
--- 3956,3962 ----
  	  gassign *stmt;
  
  	  expr = build_ref_for_model (loc, agg, access->offset - top_offset,
! 				      access, gsi, insert_after, force_ref_all);
  
  	  if (write)
  	    {
*************** generate_subtree_copies (struct access *
*** 3997,4003 ****
        if (access->first_child)
  	generate_subtree_copies (access->first_child, agg, top_offset,
  				 start_offset, chunk_size, gsi,
! 				 write, insert_after, loc);
  
        access = access->next_sibling;
      }
--- 4006,4012 ----
        if (access->first_child)
  	generate_subtree_copies (access->first_child, agg, top_offset,
  				 start_offset, chunk_size, gsi,
! 				 write, insert_after, loc, force_ref_all);
  
        access = access->next_sibling;
      }
*************** sra_modify_call_arg (tree *expr, gimple_
*** 4299,4312 ****
    gimple *stmt = gsi_stmt (*call_gsi);
    location_t loc = gimple_location (stmt);
    generate_subtree_copies (access, base, 0, 0, 0, call_gsi, false, false,
! 			   loc);
  
    if (flags & EAF_NO_DIRECT_CLOBBER)
      return true;
  
    if (!stmt_ends_bb_p (stmt))
      generate_subtree_copies (access, base, 0, 0, 0, refresh_gsi, true,
! 			     true, loc);
    else
      {
        edge e;
--- 4308,4321 ----
    gimple *stmt = gsi_stmt (*call_gsi);
    location_t loc = gimple_location (stmt);
    generate_subtree_copies (access, base, 0, 0, 0, call_gsi, false, false,
! 			   loc, true);
  
    if (flags & EAF_NO_DIRECT_CLOBBER)
      return true;
  
    if (!stmt_ends_bb_p (stmt))
      generate_subtree_copies (access, base, 0, 0, 0, refresh_gsi, true,
! 			     true, loc, true);
    else
      {
        edge e;
*************** sra_modify_call_arg (tree *expr, gimple_
*** 4315,4321 ****
  	{
  	  gimple_stmt_iterator alt_gsi = gsi_start_edge (e);
  	  generate_subtree_copies (access, base, 0, 0, 0, &alt_gsi, true,
! 				   true, loc);
  	}
      }
    return true;
--- 4324,4330 ----
  	{
  	  gimple_stmt_iterator alt_gsi = gsi_start_edge (e);
  	  generate_subtree_copies (access, base, 0, 0, 0, &alt_gsi, true,
! 				   true, loc, true);
  	}
      }
    return true;
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-alias.cc gcc-15-20260321/gcc/tree-ssa-alias.cc
*** gcc-15-20260314/gcc/tree-ssa-alias.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-alias.cc	Sat Mar 21 22:32:15 2026
*************** maybe_skip_until (gimple *phi, tree &tar
*** 3736,3741 ****
--- 3736,3742 ----
  		  ao_ref *ref, tree vuse, bool tbaa_p, unsigned int &limit,
  		  bitmap *visited, bool abort_on_visited,
  		  void *(*translate)(ao_ref *, tree, void *, translate_flags *),
+ 		  bool (*is_backedge)(edge, void *),
  		  translate_flags disambiguate_only,
  		  void *data)
  {
*************** maybe_skip_until (gimple *phi, tree &tar
*** 3767,3780 ****
  	}
  
        /* Recurse for PHI nodes.  */
!       if (gimple_code (def_stmt) == GIMPLE_PHI)
  	{
  	  /* An already visited PHI node ends the walk successfully.  */
! 	  if (bitmap_bit_p (*visited, SSA_NAME_VERSION (PHI_RESULT (def_stmt))))
  	    return !abort_on_visited;
! 	  vuse = get_continuation_for_phi (def_stmt, ref, tbaa_p, limit,
  					   visited, abort_on_visited,
! 					   translate, data, disambiguate_only);
  	  if (!vuse)
  	    return false;
  	  continue;
--- 3768,3782 ----
  	}
  
        /* Recurse for PHI nodes.  */
!       if (gphi *phi = dyn_cast <gphi *> (def_stmt))
  	{
  	  /* An already visited PHI node ends the walk successfully.  */
! 	  if (bitmap_bit_p (*visited, SSA_NAME_VERSION (PHI_RESULT (phi))))
  	    return !abort_on_visited;
! 	  vuse = get_continuation_for_phi (phi, ref, tbaa_p, limit,
  					   visited, abort_on_visited,
! 					   translate, data, is_backedge,
! 					   disambiguate_only);
  	  if (!vuse)
  	    return false;
  	  continue;
*************** maybe_skip_until (gimple *phi, tree &tar
*** 3819,3830 ****
     Returns NULL_TREE if no suitable virtual operand can be found.  */
  
  tree
! get_continuation_for_phi (gimple *phi, ao_ref *ref, bool tbaa_p,
  			  unsigned int &limit, bitmap *visited,
  			  bool abort_on_visited,
  			  void *(*translate)(ao_ref *, tree, void *,
  					     translate_flags *),
  			  void *data,
  			  translate_flags disambiguate_only)
  {
    unsigned nargs = gimple_phi_num_args (phi);
--- 3821,3833 ----
     Returns NULL_TREE if no suitable virtual operand can be found.  */
  
  tree
! get_continuation_for_phi (gphi *phi, ao_ref *ref, bool tbaa_p,
  			  unsigned int &limit, bitmap *visited,
  			  bool abort_on_visited,
  			  void *(*translate)(ao_ref *, tree, void *,
  					     translate_flags *),
  			  void *data,
+ 			  bool (*is_backedge)(edge, void *),
  			  translate_flags disambiguate_only)
  {
    unsigned nargs = gimple_phi_num_args (phi);
*************** get_continuation_for_phi (gimple *phi, a
*** 3867,3881 ****
        else if (! maybe_skip_until (phi, arg0, dom, ref, arg1, tbaa_p,
  				   limit, visited,
  				   abort_on_visited,
! 				   translate,
  				   /* Do not valueize when walking over
  				      backedges.  */
! 				   dominated_by_p
! 				     (CDI_DOMINATORS,
! 				      gimple_bb (SSA_NAME_DEF_STMT (arg1)),
! 				      phi_bb)
! 				   ? TR_DISAMBIGUATE
! 				   : disambiguate_only, data))
  	return NULL_TREE;
      }
  
--- 3870,3883 ----
        else if (! maybe_skip_until (phi, arg0, dom, ref, arg1, tbaa_p,
  				   limit, visited,
  				   abort_on_visited,
! 				   translate, is_backedge,
  				   /* Do not valueize when walking over
  				      backedges.  */
! 				   (is_backedge
! 				    && !is_backedge
! 					  (gimple_phi_arg_edge (phi, i), data))
! 				   ? disambiguate_only : TR_DISAMBIGUATE,
! 				   data))
  	return NULL_TREE;
      }
  
*************** walk_non_aliased_vuses (ao_ref *ref, tre
*** 3915,3920 ****
--- 3917,3923 ----
  			void *(*walker)(ao_ref *, tree, void *),
  			void *(*translate)(ao_ref *, tree, void *,
  					   translate_flags *),
+ 			bool (*is_backedge)(edge, void *),
  			tree (*valueize)(tree),
  			unsigned &limit, void *data)
  {
*************** walk_non_aliased_vuses (ao_ref *ref, tre
*** 3952,3960 ****
        def_stmt = SSA_NAME_DEF_STMT (vuse);
        if (gimple_nop_p (def_stmt))
  	break;
!       else if (gimple_code (def_stmt) == GIMPLE_PHI)
! 	vuse = get_continuation_for_phi (def_stmt, ref, tbaa_p, limit,
! 					 &visited, translated, translate, data);
        else
  	{
  	  if ((int)limit <= 0)
--- 3955,3964 ----
        def_stmt = SSA_NAME_DEF_STMT (vuse);
        if (gimple_nop_p (def_stmt))
  	break;
!       else if (gphi *phi = dyn_cast <gphi *> (def_stmt))
! 	vuse = get_continuation_for_phi (phi, ref, tbaa_p, limit,
! 					 &visited, translated, translate, data,
! 					 is_backedge);
        else
  	{
  	  if ((int)limit <= 0)
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-alias.h gcc-15-20260321/gcc/tree-ssa-alias.h
*** gcc-15-20260314/gcc/tree-ssa-alias.h	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-alias.h	Sat Mar 21 22:32:15 2026
*************** extern bool ref_can_have_store_data_race
*** 148,163 ****
  
  enum translate_flags
    { TR_TRANSLATE, TR_VALUEIZE_AND_DISAMBIGUATE, TR_DISAMBIGUATE };
! extern tree get_continuation_for_phi (gimple *, ao_ref *, bool,
  				      unsigned int &, bitmap *, bool,
  				      void *(*)(ao_ref *, tree, void *,
  						translate_flags *),
! 				      void *, translate_flags
  				        = TR_VALUEIZE_AND_DISAMBIGUATE);
  extern void *walk_non_aliased_vuses (ao_ref *, tree, bool,
  				     void *(*)(ao_ref *, tree, void *),
  				     void *(*)(ao_ref *, tree, void *,
  					       translate_flags *),
  				     tree (*)(tree), unsigned &, void *);
  extern int walk_aliased_vdefs (ao_ref *, tree,
  			       bool (*)(ao_ref *, tree, void *),
--- 148,166 ----
  
  enum translate_flags
    { TR_TRANSLATE, TR_VALUEIZE_AND_DISAMBIGUATE, TR_DISAMBIGUATE };
! extern tree get_continuation_for_phi (gphi *, ao_ref *, bool,
  				      unsigned int &, bitmap *, bool,
  				      void *(*)(ao_ref *, tree, void *,
  						translate_flags *),
! 				      void *,
! 				      bool (*)(edge, void *) = nullptr,
! 				      translate_flags
  				        = TR_VALUEIZE_AND_DISAMBIGUATE);
  extern void *walk_non_aliased_vuses (ao_ref *, tree, bool,
  				     void *(*)(ao_ref *, tree, void *),
  				     void *(*)(ao_ref *, tree, void *,
  					       translate_flags *),
+ 				     bool (*)(edge, void *),
  				     tree (*)(tree), unsigned &, void *);
  extern int walk_aliased_vdefs (ao_ref *, tree,
  			       bool (*)(ao_ref *, tree, void *),
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-loop-im.cc gcc-15-20260321/gcc/tree-ssa-loop-im.cc
*** gcc-15-20260314/gcc/tree-ssa-loop-im.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-loop-im.cc	Sat Mar 21 22:32:15 2026
*************** fill_always_executed_in_1 (class loop *l
*** 3415,3508 ****
    edge e;
    class loop *inn_loop = loop;
  
!   if (ALWAYS_EXECUTED_IN (loop->header) == NULL)
      {
!       auto_vec<basic_block, 64> worklist;
!       worklist.reserve_exact (loop->num_nodes);
!       worklist.quick_push (loop->header);
!       do
! 	{
! 	  edge_iterator ei;
! 	  bb = worklist.pop ();
  
! 	  if (!flow_bb_inside_loop_p (inn_loop, bb))
! 	    {
! 	      /* When we are leaving a possibly infinite inner loop
! 		 we have to stop processing.  */
! 	      if (!finite_loop_p (inn_loop))
! 		break;
! 	      /* If the loop was finite we can continue with processing
! 		 the loop we exited to.  */
! 	      inn_loop = bb->loop_father;
! 	    }
  
! 	  if (dominated_by_p (CDI_DOMINATORS, loop->latch, bb))
! 	    last = bb;
  
! 	  if (bitmap_bit_p (contains_call, bb->index))
! 	    break;
  
! 	  /* If LOOP exits from this BB stop processing.  */
! 	  FOR_EACH_EDGE (e, ei, bb->succs)
! 	    if (!flow_bb_inside_loop_p (loop, e->dest))
! 	      break;
! 	  if (e)
! 	    break;
  
! 	  /* A loop might be infinite (TODO use simple loop analysis
! 	     to disprove this if possible).  */
! 	  if (bb->flags & BB_IRREDUCIBLE_LOOP)
! 	    break;
  
! 	  if (bb->loop_father->header == bb)
! 	    /* Record that we enter into a subloop since it might not
! 	       be finite.  */
! 	    /* ???  Entering into a not always executed subloop makes
! 	       fill_always_executed_in quadratic in loop depth since
! 	       we walk those loops N times.  This is not a problem
! 	       in practice though, see PR102253 for a worst-case testcase.  */
! 	    inn_loop = bb->loop_father;
  
! 	  /* Walk the body of LOOP sorted by dominance relation.  Additionally,
! 	     if a basic block S dominates the latch, then only blocks dominated
! 	     by S are after it.
! 	     This is get_loop_body_in_dom_order using a worklist algorithm and
! 	     stopping once we are no longer interested in visiting further
! 	     blocks.  */
! 	  unsigned old_len = worklist.length ();
! 	  unsigned postpone = 0;
! 	  for (basic_block son = first_dom_son (CDI_DOMINATORS, bb);
! 	       son;
! 	       son = next_dom_son (CDI_DOMINATORS, son))
! 	    {
! 	      if (!flow_bb_inside_loop_p (loop, son))
! 		continue;
! 	      if (dominated_by_p (CDI_DOMINATORS, loop->latch, son))
! 		postpone = worklist.length ();
! 	      worklist.quick_push (son);
! 	    }
! 	  if (postpone)
! 	    /* Postponing the block that dominates the latch means
! 	       processing it last and thus putting it earliest in the
! 	       worklist.  */
! 	    std::swap (worklist[old_len], worklist[postpone]);
  	}
!       while (!worklist.is_empty ());
  
!       while (1)
  	{
  	  if (dump_enabled_p ())
  	    dump_printf (MSG_NOTE, "BB %d is always executed in loop %d\n",
  			 last->index, loop->num);
  	  SET_ALWAYS_EXECUTED_IN (last, loop);
- 	  if (last == loop->header)
- 	    break;
- 	  last = get_immediate_dominator (CDI_DOMINATORS, last);
  	}
      }
- 
-   for (loop = loop->inner; loop; loop = loop->next)
-     fill_always_executed_in_1 (loop, contains_call);
  }
  
  /* Fills ALWAYS_EXECUTED_IN information for basic blocks, i.e.
--- 3415,3510 ----
    edge e;
    class loop *inn_loop = loop;
  
!   for (class loop *inner = loop->inner; inner; inner = inner->next)
!     fill_always_executed_in_1 (inner, contains_call);
! 
!   auto_vec<basic_block, 64> worklist;
!   worklist.reserve_exact (loop->num_nodes);
!   worklist.quick_push (loop->header);
!   do
      {
!       edge_iterator ei;
!       bb = worklist.pop ();
  
!       if (!flow_bb_inside_loop_p (inn_loop, bb))
! 	{
! 	  /* When we are leaving a possibly infinite inner loop
! 	     we have to stop processing.  */
! 	  if (!finite_loop_p (inn_loop))
! 	    break;
! 	  /* If the loop was finite we can continue with processing
! 	     the loop we exited to.  */
! 	  inn_loop = bb->loop_father;
! 	}
  
!       if (dominated_by_p (CDI_DOMINATORS, loop->latch, bb))
! 	last = bb;
  
!       if (bitmap_bit_p (contains_call, bb->index))
! 	break;
  
!       /* If LOOP exits from this BB stop processing.  */
!       FOR_EACH_EDGE (e, ei, bb->succs)
! 	if (!flow_bb_inside_loop_p (loop, e->dest))
! 	  break;
!       if (e)
! 	break;
  
!       /* A loop might be infinite (TODO use simple loop analysis
! 	 to disprove this if possible).  */
!       if (bb->flags & BB_IRREDUCIBLE_LOOP)
! 	break;
  
!       if (bb->loop_father->header == bb)
! 	/* Record that we enter into a subloop since it might not
! 	   be finite.  */
! 	/* ???  Entering into a not always executed subloop makes
! 	   fill_always_executed_in quadratic in loop depth since
! 	   we walk those loops N times.  This is not a problem
! 	   in practice though, see PR102253 for a worst-case testcase.  */
! 	inn_loop = bb->loop_father;
  
!       /* Walk the body of LOOP sorted by dominance relation.  Additionally,
! 	 if a basic block S dominates the latch, then only blocks dominated
! 	 by S are after it.
! 	 This is get_loop_body_in_dom_order using a worklist algorithm and
! 	 stopping once we are no longer interested in visiting further
! 	 blocks.  */
!       unsigned old_len = worklist.length ();
!       unsigned postpone = 0;
!       for (basic_block son = first_dom_son (CDI_DOMINATORS, bb);
! 	   son;
! 	   son = next_dom_son (CDI_DOMINATORS, son))
! 	{
! 	  if (!flow_bb_inside_loop_p (loop, son))
! 	    continue;
! 	  if (dominated_by_p (CDI_DOMINATORS, loop->latch, son))
! 	    postpone = worklist.length ();
! 	  worklist.quick_push (son);
  	}
!       if (postpone)
! 	/* Postponing the block that dominates the latch means
! 	   processing it last and thus putting it earliest in the
! 	   worklist.  */
! 	std::swap (worklist[old_len], worklist[postpone]);
!     }
!   while (!worklist.is_empty ());
  
!   while (1)
!     {
!       if (last->loop_father == loop
! 	  || (ALWAYS_EXECUTED_IN (last)
! 	      && loop_outer (ALWAYS_EXECUTED_IN (last)) == loop))
  	{
  	  if (dump_enabled_p ())
  	    dump_printf (MSG_NOTE, "BB %d is always executed in loop %d\n",
  			 last->index, loop->num);
  	  SET_ALWAYS_EXECUTED_IN (last, loop);
  	}
+       if (last == loop->header)
+ 	break;
+       last = get_immediate_dominator (CDI_DOMINATORS, last);
      }
  }
  
  /* Fills ALWAYS_EXECUTED_IN information for basic blocks, i.e.
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-loop-niter.cc gcc-15-20260321/gcc/tree-ssa-loop-niter.cc
*** gcc-15-20260314/gcc/tree-ssa-loop-niter.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-loop-niter.cc	Sat Mar 21 22:32:15 2026
*************** number_of_iterations_lt_to_ne (tree type
*** 1218,1224 ****
      }
  
    /* IV0 < IV1 does not loop if IV0->base >= IV1->base.  */
!   if (mpz_cmp (mmod, bnds->below) < 0)
      noloop = boolean_false_node;
    else
      noloop = fold_build2 (GE_EXPR, boolean_type_node,
--- 1218,1224 ----
      }
  
    /* IV0 < IV1 does not loop if IV0->base >= IV1->base.  */
!   if (fv_comp_no_overflow && mpz_cmp (mmod, bnds->below) < 0)
      noloop = boolean_false_node;
    else
      noloop = fold_build2 (GE_EXPR, boolean_type_node,
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-loop-split.cc gcc-15-20260321/gcc/tree-ssa-loop-split.cc
*** gcc-15-20260314/gcc/tree-ssa-loop-split.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-loop-split.cc	Sat Mar 21 22:32:15 2026
*************** compute_new_first_bound (gimple_seq *stm
*** 458,478 ****
    tree end = force_gimple_operand (niter->bound, &stmts2,
  					true, NULL_TREE);
    gimple_seq_add_seq_without_update (stmts, stmts2);
!   if (POINTER_TYPE_P (TREE_TYPE (enddiff)))
!     {
!       tree tem = gimple_convert (stmts, sizetype, enddiff);
!       tem = gimple_build (stmts, NEGATE_EXPR, sizetype, tem);
!       enddiff = gimple_build (stmts, POINTER_PLUS_EXPR,
! 			      TREE_TYPE (enddiff),
! 			      end, tem);
!     }
    else
      enddiff = gimple_build (stmts, MINUS_EXPR, TREE_TYPE (enddiff),
  			    end, enddiff);
  
    /* Compute guard_init + (end-beg).  */
    tree newbound;
-   enddiff = gimple_convert (stmts, TREE_TYPE (guard_init), enddiff);
    if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
      {
        enddiff = gimple_convert (stmts, sizetype, enddiff);
--- 458,472 ----
    tree end = force_gimple_operand (niter->bound, &stmts2,
  					true, NULL_TREE);
    gimple_seq_add_seq_without_update (stmts, stmts2);
!   if (POINTER_TYPE_P (TREE_TYPE (controlbase)))
!     enddiff = gimple_build (stmts, POINTER_DIFF_EXPR,
! 			    ssizetype, end, enddiff);
    else
      enddiff = gimple_build (stmts, MINUS_EXPR, TREE_TYPE (enddiff),
  			    end, enddiff);
  
    /* Compute guard_init + (end-beg).  */
    tree newbound;
    if (POINTER_TYPE_P (TREE_TYPE (guard_init)))
      {
        enddiff = gimple_convert (stmts, sizetype, enddiff);
*************** compute_new_first_bound (gimple_seq *stm
*** 481,488 ****
  			       guard_init, enddiff);
      }
    else
!     newbound = gimple_build (stmts, PLUS_EXPR, TREE_TYPE (guard_init),
! 			     guard_init, enddiff);
  
    /* Depending on the direction of the IVs the new bound for the first
       loop is the minimum or maximum of old bound and border.
--- 475,485 ----
  			       guard_init, enddiff);
      }
    else
!     {
!       enddiff = gimple_convert (stmts, TREE_TYPE (guard_init), enddiff);
!       newbound = gimple_build (stmts, PLUS_EXPR, TREE_TYPE (guard_init),
! 			       guard_init, enddiff);
!     }
  
    /* Depending on the direction of the IVs the new bound for the first
       loop is the minimum or maximum of old bound and border.
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-phiopt.cc gcc-15-20260321/gcc/tree-ssa-phiopt.cc
*** gcc-15-20260314/gcc/tree-ssa-phiopt.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-phiopt.cc	Sat Mar 21 22:32:15 2026
*************** cond_if_else_store_replacement (basic_bl
*** 3865,3873 ****
        return false;
      }
  
!   /* Find pairs of stores with equal LHS.  */
    auto_vec<std::pair<gimple *, gimple *>, 1> stores_pairs;
!   for (auto then_dr : then_datarefs)
      {
        if (DR_IS_READ (then_dr))
          continue;
--- 3865,3885 ----
        return false;
      }
  
!   /* Clear visited on else stores, we want to make sure to pick each store
!      at most once to avoid quadratic behavior.  */
!   for (auto else_dr : else_datarefs)
!     {
!       if (DR_IS_READ (else_dr))
! 	continue;
!       gimple_set_visited (DR_STMT (else_dr), false);
!     }
! 
!   /* Find pairs of stores with equal LHS.  Work from the end to avoid
!      re-ordering stores unnecessarily.  */
    auto_vec<std::pair<gimple *, gimple *>, 1> stores_pairs;
!   unsigned i;
!   data_reference_p then_dr;
!   FOR_EACH_VEC_ELT_REVERSE (then_datarefs, i, then_dr)
      {
        if (DR_IS_READ (then_dr))
          continue;
*************** cond_if_else_store_replacement (basic_bl
*** 3878,3889 ****
  	continue;
        found = false;
  
!       for (auto else_dr : else_datarefs)
          {
            if (DR_IS_READ (else_dr))
              continue;
  
            else_store = DR_STMT (else_dr);
            else_lhs = gimple_get_lhs (else_store);
  	  if (else_lhs == NULL_TREE)
  	    continue;
--- 3890,3905 ----
  	continue;
        found = false;
  
!       unsigned j;
!       data_reference_p else_dr;
!       FOR_EACH_VEC_ELT_REVERSE (else_datarefs, j, else_dr)
          {
            if (DR_IS_READ (else_dr))
              continue;
  
            else_store = DR_STMT (else_dr);
+ 	  if (gimple_visited_p (else_store))
+ 	    continue;
            else_lhs = gimple_get_lhs (else_store);
  	  if (else_lhs == NULL_TREE)
  	    continue;
*************** cond_if_else_store_replacement (basic_bl
*** 3898,3903 ****
--- 3914,3920 ----
        if (!found)
          continue;
  
+       gimple_set_visited (else_store, true);
        stores_pairs.safe_push (std::make_pair (then_store, else_store));
      }
  
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-pre.cc gcc-15-20260321/gcc/tree-ssa-pre.cc
*** gcc-15-20260314/gcc/tree-ssa-pre.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-pre.cc	Sat Mar 21 22:32:15 2026
*************** translate_vuse_through_block (vec<vn_ref
*** 1195,1201 ****
  			      tree type, tree vuse, edge e, bool *same_valid)
  {
    basic_block phiblock = e->dest;
!   gimple *phi = SSA_NAME_DEF_STMT (vuse);
    ao_ref ref;
  
    if (same_valid)
--- 1195,1201 ----
  			      tree type, tree vuse, edge e, bool *same_valid)
  {
    basic_block phiblock = e->dest;
!   gimple *def = SSA_NAME_DEF_STMT (vuse);
    ao_ref ref;
  
    if (same_valid)
*************** translate_vuse_through_block (vec<vn_ref
*** 1203,1211 ****
  
    /* If value-numbering provided a memory state for this
       that dominates PHIBLOCK we can just use that.  */
!   if (gimple_nop_p (phi)
!       || (gimple_bb (phi) != phiblock
! 	  && dominated_by_p (CDI_DOMINATORS, phiblock, gimple_bb (phi))))
      return vuse;
  
    /* We have pruned expressions that are killed in PHIBLOCK via
--- 1203,1211 ----
  
    /* If value-numbering provided a memory state for this
       that dominates PHIBLOCK we can just use that.  */
!   if (gimple_nop_p (def)
!       || (gimple_bb (def) != phiblock
! 	  && dominated_by_p (CDI_DOMINATORS, phiblock, gimple_bb (def))))
      return vuse;
  
    /* We have pruned expressions that are killed in PHIBLOCK via
*************** translate_vuse_through_block (vec<vn_ref
*** 1213,1219 ****
       live at the start of the block.  If there is no virtual PHI to translate
       through return the VUSE live at entry.  Otherwise the VUSE to translate
       is the def of the virtual PHI node.  */
!   phi = get_virtual_phi (phiblock);
    if (!phi)
      return BB_LIVE_VOP_ON_EXIT
  	     (get_immediate_dominator (CDI_DOMINATORS, phiblock));
--- 1213,1219 ----
       live at the start of the block.  If there is no virtual PHI to translate
       through return the VUSE live at entry.  Otherwise the VUSE to translate
       is the def of the virtual PHI node.  */
!   gphi *phi = get_virtual_phi (phiblock);
    if (!phi)
      return BB_LIVE_VOP_ON_EXIT
  	     (get_immediate_dominator (CDI_DOMINATORS, phiblock));
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-sccvn.cc gcc-15-20260321/gcc/tree-ssa-sccvn.cc
*** gcc-15-20260314/gcc/tree-ssa-sccvn.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-sccvn.cc	Sat Mar 21 22:32:15 2026
*************** static vn_tables_t valid_info;
*** 369,374 ****
--- 369,375 ----
  /* Global RPO state for access from hooks.  */
  static class eliminate_dom_walker *rpo_avail;
  basic_block vn_context_bb;
+ int *vn_bb_to_rpo;
  
  
  /* Valueization hook for simplify_replace_tree.  Valueize NAME if it is
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 3912,3917 ****
--- 3913,3928 ----
    return (void *)-1;
  }
  
+ /* Return true if E is a backedge with respect to our CFG walk order.  */
+ 
+ static bool
+ vn_is_backedge (edge e, void *)
+ {
+   /* During PRE elimination we no longer have access to this info.  */
+   return (!vn_bb_to_rpo
+ 	  || vn_bb_to_rpo[e->dest->index] <= vn_bb_to_rpo[e->src->index]);
+ }
+ 
  /* Return a reference op vector from OP that can be used for
     vn_reference_lookup_pieces.  The caller is responsible for releasing
     the vector.  */
*************** vn_reference_lookup_pieces (tree vuse, a
*** 3993,4000 ****
  	*vnresult
  	  = ((vn_reference_t)
  	     walk_non_aliased_vuses (&r, vr1.vuse, true, vn_reference_lookup_2,
! 				     vn_reference_lookup_3, vuse_valueize,
! 				     limit, &data));
        if (ops_for_ref != shared_lookup_references)
  	ops_for_ref.release ();
        gcc_checking_assert (vr1.operands == shared_lookup_references);
--- 4004,4011 ----
  	*vnresult
  	  = ((vn_reference_t)
  	     walk_non_aliased_vuses (&r, vr1.vuse, true, vn_reference_lookup_2,
! 				     vn_reference_lookup_3, vn_is_backedge,
! 				     vuse_valueize, limit, &data));
        if (ops_for_ref != shared_lookup_references)
  	ops_for_ref.release ();
        gcc_checking_assert (vr1.operands == shared_lookup_references);
*************** vn_reference_lookup (tree op, tree vuse,
*** 4123,4130 ****
        wvnresult
  	= ((vn_reference_t)
  	   walk_non_aliased_vuses (&r, vr1.vuse, tbaa_p, vn_reference_lookup_2,
! 				   vn_reference_lookup_3, vuse_valueize, limit,
! 				   &data));
        gcc_checking_assert (vr1.operands == shared_lookup_references);
        if (wvnresult)
  	{
--- 4134,4141 ----
        wvnresult
  	= ((vn_reference_t)
  	   walk_non_aliased_vuses (&r, vr1.vuse, tbaa_p, vn_reference_lookup_2,
! 				   vn_reference_lookup_3, vn_is_backedge,
! 				   vuse_valueize, limit, &data));
        gcc_checking_assert (vr1.operands == shared_lookup_references);
        if (wvnresult)
  	{
*************** do_rpo_vn_1 (function *fn, edge entry, b
*** 8561,8566 ****
--- 8572,8578 ----
    int *bb_to_rpo = XNEWVEC (int, last_basic_block_for_fn (fn));
    for (int i = 0; i < n; ++i)
      bb_to_rpo[rpo[i]] = i;
+   vn_bb_to_rpo = bb_to_rpo;
  
    unwind_state *rpo_state = XNEWVEC (unwind_state, n);
  
*************** do_rpo_vn_1 (function *fn, edge entry, b
*** 8918,8923 ****
--- 8930,8936 ----
  
    vn_valueize = NULL;
    rpo_avail = NULL;
+   vn_bb_to_rpo = NULL;
  
    XDELETEVEC (bb_to_rpo);
    XDELETEVEC (rpo);
diff -Nrcpad gcc-15-20260314/gcc/tree-ssa-scopedtables.cc gcc-15-20260321/gcc/tree-ssa-scopedtables.cc
*** gcc-15-20260314/gcc/tree-ssa-scopedtables.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-ssa-scopedtables.cc	Sat Mar 21 22:32:15 2026
*************** avail_exprs_stack::lookup_avail_expr (gi
*** 340,346 ****
  	    && (ao_ref_init (&ref, gimple_assign_rhs1 (stmt)),
  		ref.base_alias_set = ref.ref_alias_set = tbaa_p ? -1 : 0, true)
  	    && walk_non_aliased_vuses (&ref, vuse2, true, vuse_eq, NULL, NULL,
! 				       limit, vuse1) != NULL))
  	{
  	  if (insert)
  	    {
--- 340,346 ----
  	    && (ao_ref_init (&ref, gimple_assign_rhs1 (stmt)),
  		ref.base_alias_set = ref.ref_alias_set = tbaa_p ? -1 : 0, true)
  	    && walk_non_aliased_vuses (&ref, vuse2, true, vuse_eq, NULL, NULL,
! 				       NULL, limit, vuse1) != NULL))
  	{
  	  if (insert)
  	    {
diff -Nrcpad gcc-15-20260314/gcc/tree-vect-generic.cc gcc-15-20260321/gcc/tree-vect-generic.cc
*** gcc-15-20260314/gcc/tree-vect-generic.cc	Sat Mar 14 22:32:13 2026
--- gcc-15-20260321/gcc/tree-vect-generic.cc	Sat Mar 21 22:32:15 2026
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1407,1413 ****
    tree mask_type = TREE_TYPE (mask);
    tree vect_elt_type = TREE_TYPE (vect_type);
    tree mask_elt_type = TREE_TYPE (mask_type);
!   unsigned HOST_WIDE_INT elements;
    vec<constructor_elt, va_gc> *v;
    tree constr, t, si, i_val;
    tree vec0tmp = NULL_TREE, vec1tmp = NULL_TREE, masktmp = NULL_TREE;
--- 1407,1413 ----
    tree mask_type = TREE_TYPE (mask);
    tree vect_elt_type = TREE_TYPE (vect_type);
    tree mask_elt_type = TREE_TYPE (mask_type);
!   unsigned HOST_WIDE_INT elements, in_elements;
    vec<constructor_elt, va_gc> *v;
    tree constr, t, si, i_val;
    tree vec0tmp = NULL_TREE, vec1tmp = NULL_TREE, masktmp = NULL_TREE;
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1415,1421 ****
    location_t loc = gimple_location (gsi_stmt (*gsi));
    unsigned i;
  
!   if (!TYPE_VECTOR_SUBPARTS (res_vect_type).is_constant (&elements))
      return;
  
    if (TREE_CODE (mask) == SSA_NAME)
--- 1415,1422 ----
    location_t loc = gimple_location (gsi_stmt (*gsi));
    unsigned i;
  
!   if (!TYPE_VECTOR_SUBPARTS (res_vect_type).is_constant (&elements)
!       || !TYPE_VECTOR_SUBPARTS (vect_type).is_constant (&in_elements))
      return;
  
    if (TREE_CODE (mask) == SSA_NAME)
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1431,1437 ****
    if (TREE_CODE (mask) == VECTOR_CST
        && tree_to_vec_perm_builder (&sel_int, mask))
      {
!       vec_perm_indices indices (sel_int, 2, elements);
        machine_mode vmode = TYPE_MODE (vect_type);
        tree lhs_type = TREE_TYPE (gimple_assign_lhs (stmt));
        machine_mode lhs_mode = TYPE_MODE (lhs_type);
--- 1432,1438 ----
    if (TREE_CODE (mask) == VECTOR_CST
        && tree_to_vec_perm_builder (&sel_int, mask))
      {
!       vec_perm_indices indices (sel_int, 2, in_elements);
        machine_mode vmode = TYPE_MODE (vect_type);
        tree lhs_type = TREE_TYPE (gimple_assign_lhs (stmt));
        machine_mode lhs_mode = TYPE_MODE (lhs_type);
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1516,1525 ****
  	  unsigned HOST_WIDE_INT index;
  
  	  index = TREE_INT_CST_LOW (i_val);
! 	  if (!tree_fits_uhwi_p (i_val) || index >= elements)
! 	    i_val = build_int_cst (mask_elt_type, index & (elements - 1));
  
!           if (two_operand_p && (index & elements) != 0)
  	    t = vector_element (gsi, vec1, i_val, &vec1tmp);
  	  else
  	    t = vector_element (gsi, vec0, i_val, &vec0tmp);
--- 1517,1526 ----
  	  unsigned HOST_WIDE_INT index;
  
  	  index = TREE_INT_CST_LOW (i_val);
! 	  if (!tree_fits_uhwi_p (i_val) || index >= in_elements)
! 	    i_val = build_int_cst (mask_elt_type, index & (in_elements - 1));
  
! 	  if (two_operand_p && (index & in_elements) != 0)
  	    t = vector_element (gsi, vec1, i_val, &vec1tmp);
  	  else
  	    t = vector_element (gsi, vec0, i_val, &vec0tmp);
diff -Nrcpad gcc-15-20260314/libcpp/ChangeLog gcc-15-20260321/libcpp/ChangeLog
*** gcc-15-20260314/libcpp/ChangeLog	Sat Mar 14 22:32:14 2026
--- gcc-15-20260321/libcpp/ChangeLog	Sat Mar 21 22:32:15 2026
***************
*** 1,3 ****
--- 1,18 ----
+ 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/105412
+ 	* files.cc (_cpp_stack_file): Call deps_add_dep even on
+ 	empty file path.
+ 	* mkdeps.cc (class mkdeps): Add first_phony_dep member.
+ 	(mkdeps::mkdeps ()): Initialize it to 1.
+ 	(deps_add_dep): When called first with "" argument, decrease
+ 	d->first_phony_dep to 0.
+ 	(make_write): For -MP iterate from d->first_phony_dep
+ 	rather than 1.
+ 
  2026-03-08  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/libgomp/ChangeLog gcc-15-20260321/libgomp/ChangeLog
*** gcc-15-20260314/libgomp/ChangeLog	Sat Mar 14 22:32:15 2026
--- gcc-15-20260321/libgomp/ChangeLog	Sat Mar 21 22:32:16 2026
***************
*** 1,3 ****
--- 1,10 ----
+ 2026-03-18  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-17  Christopher Albert  <albert@tugraz.at>
+ 
+ 	* testsuite/libgomp.fortran/pr120286.f90: New test.
+ 
  2025-12-11  Frank Scheiner  <frank.scheiner@web.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/libgomp/testsuite/libgomp.fortran/pr120286.f90 gcc-15-20260321/libgomp/testsuite/libgomp.fortran/pr120286.f90
*** gcc-15-20260314/libgomp/testsuite/libgomp.fortran/pr120286.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/libgomp/testsuite/libgomp.fortran/pr120286.f90	Sat Mar 21 22:32:17 2026
***************
*** 0 ****
--- 1,49 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/120286 - scalar class pointers in OpenMP private/firstprivate
+ ! clauses must preserve association status without taking ownership.
+ 
+ program main
+   implicit none
+ 
+   type foo_t
+     integer :: dummy
+   end type foo_t
+ 
+   type fooPtr_t
+     class(foo_t), pointer :: p
+   end type fooPtr_t
+ 
+   type fooPtrStack_t
+     class(fooPtr_t), allocatable :: list(:)
+   end type fooPtrStack_t
+ 
+   type(fooPtrStack_t) :: x
+   class(foo_t), pointer :: ptr
+   integer :: it, n
+   logical :: ok
+ 
+   allocate (x%list(1))
+   allocate (x%list(1)%p)
+   x%list(1)%p%dummy = 7
+ 
+   do it = 1, 16
+ !$omp parallel do default(none) num_threads(2) private(n, ptr) shared(x)
+     do n = 1, 1
+       ptr => x%list(n)%p
+     end do
+ !$omp end parallel do
+   end do
+ 
+   if (.not. associated (x%list(1)%p)) stop 1
+   if (x%list(1)%p%dummy /= 7) stop 2
+ 
+   ptr => x%list(1)%p
+   ok = .false.
+ 
+ !$omp parallel default(none) num_threads(1) firstprivate(ptr) shared(x, ok)
+   ok = associated (ptr, x%list(1)%p) .and. ptr%dummy == 7
+ !$omp end parallel
+ 
+   if (.not. ok) stop 3
+ end program main
diff -Nrcpad gcc-15-20260314/libstdc++-v3/ChangeLog gcc-15-20260321/libstdc++-v3/ChangeLog
*** gcc-15-20260314/libstdc++-v3/ChangeLog	Sat Mar 14 22:32:15 2026
--- gcc-15-20260321/libstdc++-v3/ChangeLog	Sat Mar 21 22:32:17 2026
***************
*** 1,3 ****
--- 1,39 ----
+ 2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++20/tzdb.cc [_AIX]: Change #ifndef to #ifdef.
+ 
+ 2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124568
+ 	* testsuite/24_iterators/istreambuf_iterator/105580.cc: Add
+ 	no_pch option.
+ 
+ 2026-03-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/124124
+ 	* testsuite/29_atomics/atomic/cons/zero_padding.cc: Limit size of
+ 	test types to four bytes.
+ 
+ 2026-03-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/105580
+ 	* include/std/streambuf (streambuf::gptr, streambuf::egptr)
+ 	(streambuf::gbump): Surround with pragma disabling -Wnull-dereference.
+ 	* testsuite/24_iterators/istreambuf_iterator/105580.cc: New test.
+ 	(cherry picked from commits
+ 	8758503918a91dacff4dbc7126eced21787fbfc9
+ 	bfc2b87f8244a13ab00e8e3fe2af1d6d18fcaa36
+ 	a523d1ecc89dcb7ea205e3de22d00443d4a0d91d)
+ 
  2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260314/libstdc++-v3/include/std/streambuf gcc-15-20260321/libstdc++-v3/include/std/streambuf
*** gcc-15-20260314/libstdc++-v3/include/std/streambuf	Sat Mar 14 22:32:15 2026
--- gcc-15-20260321/libstdc++-v3/include/std/streambuf	Sat Mar 21 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 490,495 ****
--- 490,499 ----
        char_type*
        eback() const { return _M_in_beg; }
  
+ // Required to silence false-positive warnings originating from istream_iterator::operator++,
+ // see PR105580.
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wnull-dereference"
        char_type*
        gptr()  const { return _M_in_cur;  }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 505,510 ****
--- 509,515 ----
        */
        void
        gbump(int __n) { _M_in_cur += __n; }
+ #pragma GCC diagnostic pop
  
        /**
         *  @brief  Setting the three read area pointers.
diff -Nrcpad gcc-15-20260314/libstdc++-v3/src/c++20/tzdb.cc gcc-15-20260321/libstdc++-v3/src/c++20/tzdb.cc
*** gcc-15-20260314/libstdc++-v3/src/c++20/tzdb.cc	Sat Mar 14 22:32:15 2026
--- gcc-15-20260321/libstdc++-v3/src/c++20/tzdb.cc	Sat Mar 21 22:32:17 2026
***************
*** 40,46 ****
  #endif
  #include <filesystem> // filesystem::read_symlink
  
! #ifndef _AIX
  # include <cstdlib>   // getenv
  #endif
  
--- 40,46 ----
  #endif
  #include <filesystem> // filesystem::read_symlink
  
! #ifdef _AIX
  # include <cstdlib>   // getenv
  #endif
  
diff -Nrcpad gcc-15-20260314/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/105580.cc gcc-15-20260321/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/105580.cc
*** gcc-15-20260314/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/105580.cc	Thu Jan  1 00:00:00 1970
--- gcc-15-20260321/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/105580.cc	Sat Mar 21 22:32:18 2026
***************
*** 0 ****
--- 1,16 ----
+ // { dg-compile }
+ // { dg-additional-options "-Wnull-dereference" }
+ // { dg-add-options no_pch }
+ 
+ #include <string>
+ #include <sstream>
+ 
+ int main()
+ {
+   std::istringstream in("Hello, world");
+   std::istreambuf_iterator<char> it(in), end;
+   std::string ss(it, end);
+   return 0;
+ }
+ 
+ // { dg-bogus "null pointer dereference" "" { target *-*-* } 0 }
diff -Nrcpad gcc-15-20260314/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc gcc-15-20260321/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
*** gcc-15-20260314/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Sat Mar 14 22:32:16 2026
--- gcc-15-20260321/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Sat Mar 21 22:32:18 2026
***************
*** 6,17 ****
  #include <cstring>
  #include <testsuite_hooks.h>
  
! struct TailPadding { int i; char c; };
  TailPadding ztail{1, 2}; // zeroed-padding
  constexpr std::atomic<TailPadding> ctail(TailPadding{1,2});
  std::atomic<TailPadding> gtail(TailPadding{1,2});
  
! struct MidPadding { char c; int x; };
  MidPadding zmid{1, 2}; // zeroed-padding
  constexpr std::atomic<MidPadding> cmid(MidPadding{1,2});
  std::atomic<MidPadding> gmid(MidPadding{1,2});
--- 6,17 ----
  #include <cstring>
  #include <testsuite_hooks.h>
  
! struct TailPadding { short i; char c; };
  TailPadding ztail{1, 2}; // zeroed-padding
  constexpr std::atomic<TailPadding> ctail(TailPadding{1,2});
  std::atomic<TailPadding> gtail(TailPadding{1,2});
  
! struct MidPadding { char c; short i; };
  MidPadding zmid{1, 2}; // zeroed-padding
  constexpr std::atomic<MidPadding> cmid(MidPadding{1,2});
  std::atomic<MidPadding> gmid(MidPadding{1,2});
*************** struct Ctor
*** 25,36 ****
  {
    Ctor() = default;
  
!   constexpr Ctor(char pc, char pi)
      : c(pc), i(pi)
    {}
  
    char c;
!   int i;
  };
  
  Ctor zctor{1, 2}; // zeroed-padding
--- 25,36 ----
  {
    Ctor() = default;
  
!   constexpr Ctor(char pc, short pi)
      : c(pc), i(pi)
    {}
  
    char c;
!   short i;
  };
  
  Ctor zctor{1, 2}; // zeroed-padding
