diff -Nrcpad gcc-15-20260307/LAST_UPDATED gcc-15-20260314/LAST_UPDATED
*** gcc-15-20260307/LAST_UPDATED	Sat Mar  7 22:32:19 2026
--- gcc-15-20260314/LAST_UPDATED	Sat Mar 14 22:32:19 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision 1a43136f0d2b5cb3472b106b4fa95c2ee5653f50
--- 1 ----
! Obtained from git: releases/gcc-15 revision d562563661045e5158507d57a94fbb3781dcf8c0
diff -Nrcpad gcc-15-20260307/MD5SUMS gcc-15-20260314/MD5SUMS
*** gcc-15-20260307/MD5SUMS	Sat Mar  7 22:32:24 2026
--- gcc-15-20260314/MD5SUMS	Sat Mar 14 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260307.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-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
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 25,31 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 66a8f7bbcd79a5c6de9be1ef9afa6050  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f2e0e5bc3a96c2a5ca62a1a7c8ff4d2a  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
! 667032ca90162707f1134dc1af7751e2  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
! a05a16fadb05be3535259cceea7c43de  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
! 89eb393b97a35d517cde752b4ad52120  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
! f75a0a0497fda9d1ccef7b67bd2e2d0d  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** eea9961506181531b5f7f1a7f62fe428  gcc/ad
*** 592,598 ****
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  711afb6f8ec14edf7425445a669e85ed  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 99b92beca4d65cf0f792c0b08dc6a36c  gcc/ada/Makefile.rtl
  36ed8f92f8a084af3653ce5eaf0eda34  gcc/ada/accessibility.adb
  fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
  cc3c3e637adb577e88374e9630aa0e54  gcc/ada/ada_get_targ.adb
--- 592,598 ----
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
  711afb6f8ec14edf7425445a669e85ed  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 4d98c43078d4a0fa4f984e2b80596b5c  gcc/ada/Makefile.rtl
  36ed8f92f8a084af3653ce5eaf0eda34  gcc/ada/accessibility.adb
  fbd3226b85f1e1cc6eb250fa51de4be1  gcc/ada/accessibility.ads
  cc3c3e637adb577e88374e9630aa0e54  gcc/ada/ada_get_targ.adb
*************** cc77d76c407f099273c5d6691a91f67a  gcc/ad
*** 3076,3082 ****
  a8f3f69de7abdd693a971d4655971bf7  gcc/ada/xutil.ads
  60f1f34895b64cc9a3b2d590e6cf576f  gcc/addresses.h
  df3f6c6882fc8f715d4cc537af0f6442  gcc/adjust-alignment.cc
! 1d1b5baf1ff7de131233c8f72bb97a14  gcc/alias.cc
  0d0b7a8d67ab4391dba470baf07f7ad4  gcc/alias.h
  a13250e9011949e791f210139f4c4323  gcc/align.h
  192d075c6984da6ef1e282fd63829079  gcc/alloc-pool.cc
--- 3076,3082 ----
  a8f3f69de7abdd693a971d4655971bf7  gcc/ada/xutil.ads
  60f1f34895b64cc9a3b2d590e6cf576f  gcc/addresses.h
  df3f6c6882fc8f715d4cc537af0f6442  gcc/adjust-alignment.cc
! 079505539424529dd1f369371eaa9c2d  gcc/alias.cc
  0d0b7a8d67ab4391dba470baf07f7ad4  gcc/alias.h
  a13250e9011949e791f210139f4c4323  gcc/align.h
  192d075c6984da6ef1e282fd63829079  gcc/alloc-pool.cc
*************** f808dbcc1ad6add5a0867c4b3e03fc4d  gcc/bu
*** 3205,3216 ****
  542c803f6a28d39f6101f0d3286bd240  gcc/builtins.cc
  d86baafdac933140bc11c4cbfb28779e  gcc/builtins.def
  bd61b50b47560dc1324bf507bea5d87e  gcc/builtins.h
! cd79f811aedef32fca8535a52de35415  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  823fe168bb0f63a39de62d9f0251a1b5  gcc/c-family/c-ada-spec.cc
  4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
  5a2e850515c6ecb57ffe6c19cadc6656  gcc/c-family/c-attribs.cc
! 6d0ac63a4724fa0d0dcaf1ac270b5a13  gcc/c-family/c-common.cc
  7d631d63d02c9fdb7b800977cd8dc894  gcc/c-family/c-common.def
  c6ac8fb15a8d6272184d999f651d660d  gcc/c-family/c-common.h
  1c57db57b8673a678e1501b694ea87e0  gcc/c-family/c-cppbuiltin.cc
--- 3205,3216 ----
  542c803f6a28d39f6101f0d3286bd240  gcc/builtins.cc
  d86baafdac933140bc11c4cbfb28779e  gcc/builtins.def
  bd61b50b47560dc1324bf507bea5d87e  gcc/builtins.h
! 241bbdcb60fdbac922f3f09c98785498  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  823fe168bb0f63a39de62d9f0251a1b5  gcc/c-family/c-ada-spec.cc
  4e83011bee68d9607834ed5335191d65  gcc/c-family/c-ada-spec.h
  5a2e850515c6ecb57ffe6c19cadc6656  gcc/c-family/c-attribs.cc
! 364fe59813c3f5a2a44f15892f087f94  gcc/c-family/c-common.cc
  7d631d63d02c9fdb7b800977cd8dc894  gcc/c-family/c-common.def
  c6ac8fb15a8d6272184d999f651d660d  gcc/c-family/c-common.h
  1c57db57b8673a678e1501b694ea87e0  gcc/c-family/c-cppbuiltin.cc
*************** aaf683e3b02704cfbfab0627d82edf85  gcc/c-
*** 3248,3258 ****
  ce9d2259a1edb5d4b1f728988bd9ef6a  gcc/c-family/known-headers.h
  d1e9802a9c9cc0486941b538aaa07ff3  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! 70efe0f5447a4f2a38140ce70930ba5b  gcc/c/ChangeLog
  b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 457b8601a11c88f347ff246b03058fd9  gcc/c/c-decl.cc
  3601ac6299bb2579fedc2dcf2aba7773  gcc/c/c-errors.cc
  d9b5dea1631cefab5fe5ca3602db30f0  gcc/c/c-fold.cc
  d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
--- 3248,3258 ----
  ce9d2259a1edb5d4b1f728988bd9ef6a  gcc/c-family/known-headers.h
  d1e9802a9c9cc0486941b538aaa07ff3  gcc/c-family/name-hint.h
  d71f74b5b48d9ec5e4e6463e7330121d  gcc/c-family/stub-objc.cc
! 8c56d1c52cff7675a7f7bdea1b36c0e5  gcc/c/ChangeLog
  b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
  f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
  178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 038054ee38a5f4530f04fe21c283953c  gcc/c/c-decl.cc
  3601ac6299bb2579fedc2dcf2aba7773  gcc/c/c-errors.cc
  d9b5dea1631cefab5fe5ca3602db30f0  gcc/c/c-fold.cc
  d9c0725d061adffdf400457d91be3aed  gcc/c/c-lang.cc
*************** dce5f9aa135bb3752695f3103daa686a  gcc/cf
*** 3282,3288 ****
  0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
  39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
  0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! df158f0755ed128c7f2c3bbdb0cc7200  gcc/cfgexpand.cc
  b0df45fc1562ee51ee67ed5f30feb96e  gcc/cfgexpand.h
  748c8fca5e6dfe774ff333205ea9f9be  gcc/cfghooks.cc
  bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
--- 3282,3288 ----
  0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
  39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
  0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! 2b75c7ed31340afa9ca3a2c338c35864  gcc/cfgexpand.cc
  b0df45fc1562ee51ee67ed5f30feb96e  gcc/cfgexpand.h
  748c8fca5e6dfe774ff333205ea9f9be  gcc/cfghooks.cc
  bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
*************** bbad65845fcf9cdbc5137d96f92eacab  gcc/cf
*** 3291,3297 ****
  5ac695878401667aceb491bb5467c2b7  gcc/cfgloopanal.cc
  0a36fc8e64fdd79bb47a57fa94df4e3f  gcc/cfgloopmanip.cc
  7c2358ab451ca13a153f64b7682d772a  gcc/cfgloopmanip.h
! c97195f1544d9bfc539271f27e7a26b4  gcc/cfgrtl.cc
  28d9dedd6044321fe1df02d3575f81e9  gcc/cfgrtl.h
  3ab8af6bed1c2fb237681bbc3cb6aed0  gcc/cgraph.cc
  f875e225a02290cf7ed2e05c968f6c5d  gcc/cgraph.h
--- 3291,3297 ----
  5ac695878401667aceb491bb5467c2b7  gcc/cfgloopanal.cc
  0a36fc8e64fdd79bb47a57fa94df4e3f  gcc/cfgloopmanip.cc
  7c2358ab451ca13a153f64b7682d772a  gcc/cfgloopmanip.h
! 3123954653b267cc9e1887d756c6eec7  gcc/cfgrtl.cc
  28d9dedd6044321fe1df02d3575f81e9  gcc/cfgrtl.h
  3ab8af6bed1c2fb237681bbc3cb6aed0  gcc/cgraph.cc
  f875e225a02290cf7ed2e05c968f6c5d  gcc/cgraph.h
*************** b209201703dd766f76ff5e16b99191e5  gcc/co
*** 3426,3432 ****
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  ddbb7a934f8b8aa068e7b765c4375fbe  gcc/config/aarch64/aarch64-abi-ms.h
  9ff4e02500f5622983fef95cce7f38fd  gcc/config/aarch64/aarch64-arches.def
! ef1b2dbf83480ed0b130954482274c24  gcc/config/aarch64/aarch64-builtins.cc
  482530e7572b40bc2ad01bdec0c1b97e  gcc/config/aarch64/aarch64-builtins.h
  d1e3bcda28d89d23e45fed74c629752a  gcc/config/aarch64/aarch64-c.cc
  ba4e797220b33827e769b09447623896  gcc/config/aarch64/aarch64-cc-fusion.cc
--- 3426,3432 ----
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  ddbb7a934f8b8aa068e7b765c4375fbe  gcc/config/aarch64/aarch64-abi-ms.h
  9ff4e02500f5622983fef95cce7f38fd  gcc/config/aarch64/aarch64-arches.def
! c10223e39727945bfeb62f1ca2170e31  gcc/config/aarch64/aarch64-builtins.cc
  482530e7572b40bc2ad01bdec0c1b97e  gcc/config/aarch64/aarch64-builtins.h
  d1e3bcda28d89d23e45fed74c629752a  gcc/config/aarch64/aarch64-c.cc
  ba4e797220b33827e769b09447623896  gcc/config/aarch64/aarch64-cc-fusion.cc
*************** ba4e797220b33827e769b09447623896  gcc/co
*** 3435,3441 ****
  9bac3eb906f180e69a0abe65ec229b05  gcc/config/aarch64/aarch64-cost-tables.h
  bef2a61270424fd606c71d78d20ad675  gcc/config/aarch64/aarch64-d.cc
  36405b6300d5ec6ca8faf17212ad1bc9  gcc/config/aarch64/aarch64-d.h
! d75100bc2f054afcf41a992cdaa5f793  gcc/config/aarch64/aarch64-early-ra.cc
  a626b42ff6790e8447d6f7bf1b19e5fb  gcc/config/aarch64/aarch64-elf-raw.h
  843882d6c2a5ee474fe70407c459300d  gcc/config/aarch64/aarch64-elf.h
  6e8efccd687b154a1a7fcc3e9672274f  gcc/config/aarch64/aarch64-errata.h
--- 3435,3441 ----
  9bac3eb906f180e69a0abe65ec229b05  gcc/config/aarch64/aarch64-cost-tables.h
  bef2a61270424fd606c71d78d20ad675  gcc/config/aarch64/aarch64-d.cc
  36405b6300d5ec6ca8faf17212ad1bc9  gcc/config/aarch64/aarch64-d.h
! 6bc53d75ce71a90a000bda69ab6dbdc1  gcc/config/aarch64/aarch64-early-ra.cc
  a626b42ff6790e8447d6f7bf1b19e5fb  gcc/config/aarch64/aarch64-elf-raw.h
  843882d6c2a5ee474fe70407c459300d  gcc/config/aarch64/aarch64-elf.h
  6e8efccd687b154a1a7fcc3e9672274f  gcc/config/aarch64/aarch64-errata.h
*************** e055c97bc39ff21701576ecf45b3a7a0  gcc/co
*** 3472,3478 ****
  d90362e92083076dd19c9edc16b0600a  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
  5249e3dd61e8bd70c85a23c5711f3ca2  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
  e2d80b89552da0c6b4cb6bede3b2e573  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 19c8ef952a21e2a41069e31a34affccf  gcc/config/aarch64/aarch64-sve-builtins.cc
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  b5b754958fa1c772f3c6b9961de6bb8d  gcc/config/aarch64/aarch64-sve-builtins.h
  f8e53efb41228263faa63280df0a8217  gcc/config/aarch64/aarch64-sve.md
--- 3472,3478 ----
  d90362e92083076dd19c9edc16b0600a  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
  5249e3dd61e8bd70c85a23c5711f3ca2  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
  e2d80b89552da0c6b4cb6bede3b2e573  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 944a43d9064bb880171790032fc91ade  gcc/config/aarch64/aarch64-sve-builtins.cc
  30d08305d5bc784af521254aea449949  gcc/config/aarch64/aarch64-sve-builtins.def
  b5b754958fa1c772f3c6b9961de6bb8d  gcc/config/aarch64/aarch64-sve-builtins.h
  f8e53efb41228263faa63280df0a8217  gcc/config/aarch64/aarch64-sve.md
*************** ba79dc9cffbca47e10d361aeb3d716f3  gcc/co
*** 4202,4210 ****
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
! 1f51de377d2201760580af4caad2f020  gcc/config/i386/i386.cc
  0150b759a527c67bf0c83ed700545456  gcc/config/i386/i386.h
! 014dc3dc3322cb1807e11f873cb335e5  gcc/config/i386/i386.md
  5a3c6fa6266505bbc0789e269da6e250  gcc/config/i386/i386.opt
  56dd2039e03b3ae92142eb68be464b98  gcc/config/i386/i386.opt.urls
  f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
--- 4202,4210 ----
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
! 2620f6914aba15f0dd6c954f46919408  gcc/config/i386/i386.cc
  0150b759a527c67bf0c83ed700545456  gcc/config/i386/i386.h
! b11338b14cbd4aba1791f2007169faf0  gcc/config/i386/i386.md
  5a3c6fa6266505bbc0789e269da6e250  gcc/config/i386/i386.opt
  56dd2039e03b3ae92142eb68be464b98  gcc/config/i386/i386.opt.urls
  f22876926ff4a2cb67b105ac266c72ea  gcc/config/i386/i386elf.h
*************** de4e89bc042c6bc7eb093bda5d33a266  gcc/co
*** 4267,4273 ****
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! 9fc1938b27f850e492fe517b3575639e  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
--- 4267,4273 ----
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! 405b9ba818c9b2c814ac97e9dd2537d5  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
*************** cd13b51383c99c08d86250b61fed3805  gcc/co
*** 4901,4907 ****
  540013c309ceb3efb2b16d728b1fc726  gcc/config/pru/t-pru
  a5e691ce14017f2a89283ed510bb78fd  gcc/config/riscv/arch-canonicalize
  81827306988efad07b1063e86fed4fba  gcc/config/riscv/autovec-opt.md
! 4032274539da6915927b3fb611848f38  gcc/config/riscv/autovec.md
  1b5bf211ae4f1c676fc56b08b23e7d66  gcc/config/riscv/bitmanip.md
  41ad36f502789bcb62ddd76fa56ba00d  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
--- 4901,4907 ----
  540013c309ceb3efb2b16d728b1fc726  gcc/config/pru/t-pru
  a5e691ce14017f2a89283ed510bb78fd  gcc/config/riscv/arch-canonicalize
  81827306988efad07b1063e86fed4fba  gcc/config/riscv/autovec-opt.md
! 257ef39a997b6782e80bfe268f7765bc  gcc/config/riscv/autovec.md
  1b5bf211ae4f1c676fc56b08b23e7d66  gcc/config/riscv/bitmanip.md
  41ad36f502789bcb62ddd76fa56ba00d  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
*************** b467d35485b39b25863e918609a322d0  gcc/co
*** 4931,4937 ****
  b1bc6d82a24b7b0e658a43956a37419c  gcc/config/riscv/riscv-modes.def
  2b3bbaf831944c3ad3b4219f260ade71  gcc/config/riscv/riscv-opts.h
  028368b39011fff2cdc58337d388aaa8  gcc/config/riscv/riscv-passes.def
! cc4d538f7d66895b427db54b9660a953  gcc/config/riscv/riscv-protos.h
  446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
  4c94b064f758f7bdf05e99a02b8e15ed  gcc/config/riscv/riscv-shorten-memrefs.cc
--- 4931,4937 ----
  b1bc6d82a24b7b0e658a43956a37419c  gcc/config/riscv/riscv-modes.def
  2b3bbaf831944c3ad3b4219f260ade71  gcc/config/riscv/riscv-opts.h
  028368b39011fff2cdc58337d388aaa8  gcc/config/riscv/riscv-passes.def
! 773b37f980789be83dbd30a77dc98e11  gcc/config/riscv/riscv-protos.h
  446f0f39c6f980e246ea56f1233e9271  gcc/config/riscv/riscv-scalar-crypto.def
  8599f55379a8c8fc0b569c7401645a66  gcc/config/riscv/riscv-selftests.cc
  4c94b064f758f7bdf05e99a02b8e15ed  gcc/config/riscv/riscv-shorten-memrefs.cc
*************** cc4d538f7d66895b427db54b9660a953  gcc/co
*** 4939,4945 ****
  7f7046e3a3981d68f66d265e454c8bc6  gcc/config/riscv/riscv-string.cc
  6e4e2a0f934c6d930c9d9243d5c89f92  gcc/config/riscv/riscv-subset.h
  a583d4ec085af9e2f577c155bf259caf  gcc/config/riscv/riscv-target-attr.cc
! 3760eea6542f3cc04501d8aabace33a4  gcc/config/riscv/riscv-v.cc
  0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
  e9337d0668f1b2b3b7fea53ab1230048  gcc/config/riscv/riscv-vector-builtins-bases.cc
  689f453a4cdf7fa3e64a7f4bfba8f7dd  gcc/config/riscv/riscv-vector-builtins-bases.h
--- 4939,4945 ----
  7f7046e3a3981d68f66d265e454c8bc6  gcc/config/riscv/riscv-string.cc
  6e4e2a0f934c6d930c9d9243d5c89f92  gcc/config/riscv/riscv-subset.h
  a583d4ec085af9e2f577c155bf259caf  gcc/config/riscv/riscv-target-attr.cc
! 6af86e3aaa0e3615b0f0013d422c0083  gcc/config/riscv/riscv-v.cc
  0d419e9df116fed7ce6e0ae15131417e  gcc/config/riscv/riscv-v.h
  e9337d0668f1b2b3b7fea53ab1230048  gcc/config/riscv/riscv-vector-builtins-bases.cc
  689f453a4cdf7fa3e64a7f4bfba8f7dd  gcc/config/riscv/riscv-vector-builtins-bases.h
*************** e689fde027c44b52f074bd7c02361a6d  gcc/co
*** 4953,4959 ****
  3ab2c03f8df3835afe50fe4842b35c33  gcc/config/riscv/riscv-vector-costs.cc
  bd7a0d0d03ad4788f6cf7579df11a66e  gcc/config/riscv/riscv-vector-costs.h
  f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
! c276faa29405cc7d6faf7df713486673  gcc/config/riscv/riscv-vsetvl.cc
  16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
  1a011f293eabcb0e39ea297e45b16e66  gcc/config/riscv/riscv.cc
--- 4953,4959 ----
  3ab2c03f8df3835afe50fe4842b35c33  gcc/config/riscv/riscv-vector-costs.cc
  bd7a0d0d03ad4788f6cf7579df11a66e  gcc/config/riscv/riscv-vector-costs.h
  f51037a9e437f8e9ce7215b2da5ad4e2  gcc/config/riscv/riscv-vector-switch.def
! e67a32ac377a0e247ed24db0833b46e6  gcc/config/riscv/riscv-vsetvl.cc
  16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
  1a011f293eabcb0e39ea297e45b16e66  gcc/config/riscv/riscv.cc
*************** b626d860c343d873c5c18c343ad30f36  gcc/co
*** 5407,5413 ****
  d7cb356f9fecd713ff5194865f8d8173  gcc/config/vax/vax-protos.h
  d6ec281776489bd1ad94d64876f5af12  gcc/config/vax/vax.cc
  a51e7b0537c77e3398591603e7748765  gcc/config/vax/vax.h
! d5f8144170270a4d61b1b0c9c662ba34  gcc/config/vax/vax.md
  84f1233d12afb81233c4aff574547d07  gcc/config/vax/vax.opt
  6e18ff936a1a9e18a82aaa3e19e5c5fe  gcc/config/vax/vax.opt.urls
  c09f65693ee2b00a2b1f0031654ab7d1  gcc/config/visium/constraints.md
--- 5407,5413 ----
  d7cb356f9fecd713ff5194865f8d8173  gcc/config/vax/vax-protos.h
  d6ec281776489bd1ad94d64876f5af12  gcc/config/vax/vax.cc
  a51e7b0537c77e3398591603e7748765  gcc/config/vax/vax.h
! 04f26154aae4a0cef91b3847c5990733  gcc/config/vax/vax.md
  84f1233d12afb81233c4aff574547d07  gcc/config/vax/vax.opt
  6e18ff936a1a9e18a82aaa3e19e5c5fe  gcc/config/vax/vax.opt.urls
  c09f65693ee2b00a2b1f0031654ab7d1  gcc/config/visium/constraints.md
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5501,5507 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 6dbc8f504ab35289ddf27e1c4a02e91e  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
! e5968206f4f95095bfb434754fcb046c  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** fce8de27014c109814b3f69be6a5d4f6  gcc/cp
*** 5542,5548 ****
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  65891fa261ce5aa3474ed32683a124d3  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! c6bb20681d076f4519c1f0443e24e2c9  gcc/cp/constexpr.cc
  d132f7f4c080ce3048977e23e33b9b1c  gcc/cp/constraint.cc
  a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
--- 5542,5548 ----
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  65891fa261ce5aa3474ed32683a124d3  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! ea043095301b104b0d04f08fa408bb14  gcc/cp/constexpr.cc
  d132f7f4c080ce3048977e23e33b9b1c  gcc/cp/constraint.cc
  a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
*************** c2a7409e57253e5d9bfd8ce29fb85212  gcc/cp
*** 5581,5604 ****
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  8a43dc7eb02c2c19d4faa7344f490b26  gcc/cp/method.cc
! 91ec68362ef28437681aff266210dc11  gcc/cp/module.cc
! 4fbf6c5b0391fc30bc3aaea6d8cb1e3e  gcc/cp/name-lookup.cc
  9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! fdc1db2b699ad0d6dcd88aa60de779c2  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
! 183ca5fa4b899c7887d5717e2c603ce3  gcc/cp/semantics.cc
  b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
  67c8ace75ad63aabe8efb9f9c016b437  gcc/cp/std-name-hint.h
! e77c70620e28d7fa19ce229195327958  gcc/cp/tree.cc
  bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
  7dd1279369e348c7b0a8075f937fab35  gcc/cp/typeck.cc
! 1fea2b59dbf93b59626d7546b3c1f738  gcc/cp/typeck2.cc
  aa6906e22dc44502ca268580e5b8dfdd  gcc/cp/vtable-class-hierarchy.cc
  c74d2f6cc5dcb1bf1953c093eb903b37  gcc/cppbuiltin.cc
  05a136afb0839d5238cd1390602e748e  gcc/cppbuiltin.h
--- 5581,5604 ----
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  8a43dc7eb02c2c19d4faa7344f490b26  gcc/cp/method.cc
! 0d0f91461e7221f8b0796440093481e1  gcc/cp/module.cc
! 64b5a4c1348e34deeccb9fe56f746027  gcc/cp/name-lookup.cc
  9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  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
! 483ef0e336d3058e91d85828a7b9def8  gcc/cp/semantics.cc
  b58bf61fbfed45af179b7104e72a9486  gcc/cp/std-name-hint.gperf
  67c8ace75ad63aabe8efb9f9c016b437  gcc/cp/std-name-hint.h
! d0bfb08270cedacdd3ab45ed8f09ca82  gcc/cp/tree.cc
  bb1304379ac1bf9a568942bc7e976e8a  gcc/cp/type-utils.h
  7dd1279369e348c7b0a8075f937fab35  gcc/cp/typeck.cc
! 06e9bfe2cb4a555d8904828d99f3436e  gcc/cp/typeck2.cc
  aa6906e22dc44502ca268580e5b8dfdd  gcc/cp/vtable-class-hierarchy.cc
  c74d2f6cc5dcb1bf1953c093eb903b37  gcc/cppbuiltin.cc
  05a136afb0839d5238cd1390602e748e  gcc/cppbuiltin.h
*************** ee4c7654f733cefcb73d4fd24f3e1b82  gcc/do
*** 5951,5957 ****
  9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! f04e6a409074a2e9427b1265b1a1445e  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
  b9effbfad0b92c32c59ebb131ceb756e  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
--- 5951,5957 ----
  9512a9fe27682edff7dd2ed171bbb853  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 9e8e5a63a0a908a71f46700886e93598  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
  b9effbfad0b92c32c59ebb131ceb756e  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
*************** e7580325e4512cd9f5c2d665b528fa8f  gcc/fi
*** 6058,6064 ****
  e8c5838138a5e07e5716964a8284e9a1  gcc/flags.h
  a798cdca802a57ffa3473ab610b37c86  gcc/fold-const-call.cc
  182559f127e8416b9e9abcffb267d5fc  gcc/fold-const-call.h
! f9157b171bc9b6ab526bf13e15f37eb4  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
  2c116bc9895af2e9557be7c3adab45c3  gcc/fortran/ChangeLog
--- 6058,6064 ----
  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
*************** a4f5f15bbfd3cf3b780e3a8875ebf0df  gcc/fo
*** 6153,6162 ****
  134a72b3349d427eccb35198acc48a71  gcc/fortran/trans-common.cc
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
! ba1a270a0735e8dd213da50ccb70ea32  gcc/fortran/trans-decl.cc
  238ad5aa85447100b73b8f59bf5dcaa8  gcc/fortran/trans-expr.cc
  8ba8fa53a4179a343767efc9ef4e17be  gcc/fortran/trans-intrinsic.cc
! 162651996dde6a304a90381b3b25482c  gcc/fortran/trans-io.cc
  b1027c10f4a35d0040a0da3b22a13d59  gcc/fortran/trans-openmp.cc
  03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
  3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
--- 6153,6162 ----
  134a72b3349d427eccb35198acc48a71  gcc/fortran/trans-common.cc
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
! 6866300c032ec0247d520a77be27d9fa  gcc/fortran/trans-decl.cc
  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
*************** da09d1e31d3994eb3d6958074d7b7ce5  gcc/gi
*** 6250,6256 ****
  fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! c5d4ddea06a53f7125a589f1aee71c71  gcc/gimple-fold.cc
  8780d2011b6a9ef6c285eead522a3286  gcc/gimple-fold.h
  98652c967ce7f8dda9a1c398caa0996a  gcc/gimple-harden-conditionals.cc
  34959112cc04df5744be2b160e2f9d80  gcc/gimple-harden-control-flow.cc
--- 6250,6256 ----
  fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 83294acc987f3887717b3339df101796  gcc/gimple-fold.cc
  8780d2011b6a9ef6c285eead522a3286  gcc/gimple-fold.h
  98652c967ce7f8dda9a1c398caa0996a  gcc/gimple-harden-conditionals.cc
  34959112cc04df5744be2b160e2f9d80  gcc/gimple-harden-control-flow.cc
*************** a0c225f8a1deb41873e5984a058b0f45  gcc/gi
*** 6264,6270 ****
  9d283d6d05cc10c386454e9c6a25e22a  gcc/gimple-loop-versioning.cc
  de516dc4a59882c258bf01584c25b2de  gcc/gimple-low.cc
  a507a70e7f4b0dd99e594d15a5a9a89b  gcc/gimple-low.h
! ea367758ccafe4a35da3b363207146b4  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
! e5c8937e0ec2740feb1de016f340e32d  gcc/gimple-lower-bitint.cc
  bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gimple-lower-bitint.h
  da1cba564288415af1f675747c508315  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
*************** d3d6074e5bf4591d5ad4f10d2e4ef053  gcc/gi
*** 6284,6290 ****
  b5d47af740298e1ed81a515b363e0106  gcc/gimple-range-gori.h
  12b0f3b16b06728cdeddc2aaee126661  gcc/gimple-range-infer.cc
  d1b8fdd0fd8c738683e5995bf45cda94  gcc/gimple-range-infer.h
! 856185827a062e7bfcfe9dcc8af364f4  gcc/gimple-range-op.cc
  c33a426eeaa6da07a474caf81b43a278  gcc/gimple-range-op.h
  33d3c148e1b6f1df39688e27f3511fe1  gcc/gimple-range-path.cc
  55a80a9f04099be643d37e29c9ac7d10  gcc/gimple-range-path.h
--- 6284,6290 ----
  b5d47af740298e1ed81a515b363e0106  gcc/gimple-range-gori.h
  12b0f3b16b06728cdeddc2aaee126661  gcc/gimple-range-infer.cc
  d1b8fdd0fd8c738683e5995bf45cda94  gcc/gimple-range-infer.h
! 51462653f97d2448aad90172f9560e6b  gcc/gimple-range-op.cc
  c33a426eeaa6da07a474caf81b43a278  gcc/gimple-range-op.h
  33d3c148e1b6f1df39688e27f3511fe1  gcc/gimple-range-path.cc
  55a80a9f04099be643d37e29c9ac7d10  gcc/gimple-range-path.h
*************** c81003797329cf68441e2bed5e76c252  gcc/ho
*** 6442,6448 ****
  260dd898f6b9809f71a292b793d67324  gcc/hw-doloop.h
  4769eb51982f8ccb12764424698b464f  gcc/hwint.cc
  8826410aae6a5efbb3d335e5e3dceed4  gcc/hwint.h
! cbda0b9f91d4fe712bb30c630b42ef64  gcc/ifcvt.cc
  1d252ebba03aa858df6822a8b59e1d4e  gcc/ifcvt.h
  55413f67957a351f7ca1b0a8a2f69a7c  gcc/inchash.cc
  f380ce65b15eedb6d55a9848beb1ec3b  gcc/inchash.h
--- 6442,6448 ----
  260dd898f6b9809f71a292b793d67324  gcc/hw-doloop.h
  4769eb51982f8ccb12764424698b464f  gcc/hwint.cc
  8826410aae6a5efbb3d335e5e3dceed4  gcc/hwint.h
! 84c7eedfe3c354dd8d0463bfac91b3e1  gcc/ifcvt.cc
  1d252ebba03aa858df6822a8b59e1d4e  gcc/ifcvt.h
  55413f67957a351f7ca1b0a8a2f69a7c  gcc/inchash.cc
  f380ce65b15eedb6d55a9848beb1ec3b  gcc/inchash.h
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7640,7646 ****
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
! b3e6b438da25e621255bcd3759d554be  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
! fc0e6defd18a5b438ab2d47018db32f3  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
*************** c2186582925518f8871bcb0f066553f0  gcc/om
*** 7686,7692 ****
  286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
  5968df0d183b039d8069e93d0f9acea9  gcc/omp-general.cc
  8da93c6a9f42421b5af39e03da74c94c  gcc/omp-general.h
! dc675aeabe07cc5070bd28941d8cf84b  gcc/omp-low.cc
  73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
  bf774332919d8fc6ad76372ccefd0aa2  gcc/omp-oacc-kernels-decompose.cc
  51e7c46004876244d3f23ab786112c1a  gcc/omp-oacc-neuter-broadcast.cc
--- 7686,7692 ----
  286190bcce78c62804516df6cd0d1684  gcc/omp-expand.h
  5968df0d183b039d8069e93d0f9acea9  gcc/omp-general.cc
  8da93c6a9f42421b5af39e03da74c94c  gcc/omp-general.h
! ef741f98121f6aca524b42183f3b6576  gcc/omp-low.cc
  73fb62acbdd74e28aff8cc147ee7fa11  gcc/omp-low.h
  bf774332919d8fc6ad76372ccefd0aa2  gcc/omp-oacc-kernels-decompose.cc
  51e7c46004876244d3f23ab786112c1a  gcc/omp-oacc-neuter-broadcast.cc
*************** d30f617ac9705fc7dc5d14e744fe4ff0  gcc/pr
*** 7794,7801 ****
  2869a390ab1988f2c3c7f610e74f7025  gcc/range-op-float.cc
  5ee20dec11c42aba14ee0af712f68d8c  gcc/range-op-mixed.h
  01058387fc46315c1e48161b3df36a09  gcc/range-op-ptr.cc
! a2017eee1188026abe7d17e1db0fbbda  gcc/range-op.cc
! eee3b15a4ba011e4744a1b724a3820a5  gcc/range-op.h
  e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
  e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
  fbf6cd31aa699eaf7943473f49a25df6  gcc/read-md.cc
--- 7794,7801 ----
  2869a390ab1988f2c3c7f610e74f7025  gcc/range-op-float.cc
  5ee20dec11c42aba14ee0af712f68d8c  gcc/range-op-mixed.h
  01058387fc46315c1e48161b3df36a09  gcc/range-op-ptr.cc
! 2149fd213ecd177c818b26a1185bf222  gcc/range-op.cc
! 6dbdac1bda477c3b0050c125e3ef1dda  gcc/range-op.h
  e1edfa2841ce0f9e30db7b34a3a5a6d7  gcc/range.cc
  e1ebdb36533cc50099a4b487e7c70c49  gcc/range.h
  fbf6cd31aa699eaf7943473f49a25df6  gcc/read-md.cc
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 91676f1300c045808fb58255b734ec68  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
! 0a965cf755133e149f7eb7b787130e15  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** da5e564f6cffb4d2f63384ba5d7351b1  gcc/te
*** 12254,12259 ****
--- 12254,12261 ----
  8135260e5e210166919ed6d24752ad37  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-3.c
  7e07a117bfa1cbd4313441da514b62a7  gcc/testsuite/c-c++-common/cpp/dir-only-1.c
  94f40e67e3617fd463bd2b73d2f6d54c  gcc/testsuite/c-c++-common/cpp/dir-only-1.h
+ 3ddedbc00d4ff771f66edefc8d70881f  gcc/testsuite/c-c++-common/cpp/dir-only-10.c
+ 948247aa95702e920da7ab25ee7cf601  gcc/testsuite/c-c++-common/cpp/dir-only-11.c
  92a3350e430f3da6be21354b2cc4eb5d  gcc/testsuite/c-c++-common/cpp/dir-only-2.c
  d17c82849bf7f540adedf0e80d9b41df  gcc/testsuite/c-c++-common/cpp/dir-only-3.c
  f120018b9734950cca9c0e7ba0e9a33a  gcc/testsuite/c-c++-common/cpp/dir-only-3a.h
*************** a1e493fe52a51c424874f946c2d4dd19  gcc/te
*** 16347,16353 ****
  65ab5ab52798f9e0c1e79f85739017e5  gcc/testsuite/g++.dg/coroutines/torture/local-var-05-awaitable.C
  64cae1ecb87704f989e3edaeb243c993  gcc/testsuite/g++.dg/coroutines/torture/local-var-06-structured-binding.C
  fbfa3478c3cb149485c72122eda6811b  gcc/testsuite/g++.dg/coroutines/torture/mid-suspend-destruction-0.C
! 071a68722f4173f2f5200bdf87e9aff8  gcc/testsuite/g++.dg/coroutines/torture/pr103953.C
  d70e1067c46528fe83662185c66bef45  gcc/testsuite/g++.dg/coroutines/torture/pr105104.C
  ab314765ac0eb201bb3e11222207ee40  gcc/testsuite/g++.dg/coroutines/torture/pr109867.C
  25fa35420b604bea9857061f35656b5b  gcc/testsuite/g++.dg/coroutines/torture/pr113773.C
--- 16349,16355 ----
  65ab5ab52798f9e0c1e79f85739017e5  gcc/testsuite/g++.dg/coroutines/torture/local-var-05-awaitable.C
  64cae1ecb87704f989e3edaeb243c993  gcc/testsuite/g++.dg/coroutines/torture/local-var-06-structured-binding.C
  fbfa3478c3cb149485c72122eda6811b  gcc/testsuite/g++.dg/coroutines/torture/mid-suspend-destruction-0.C
! 6a8cfa17261ced2af232f482be80d5b0  gcc/testsuite/g++.dg/coroutines/torture/pr103953.C
  d70e1067c46528fe83662185c66bef45  gcc/testsuite/g++.dg/coroutines/torture/pr105104.C
  ab314765ac0eb201bb3e11222207ee40  gcc/testsuite/g++.dg/coroutines/torture/pr109867.C
  25fa35420b604bea9857061f35656b5b  gcc/testsuite/g++.dg/coroutines/torture/pr113773.C
*************** b8d20ab3fff2d35109e30a6a907845f1  gcc/te
*** 16417,16422 ****
--- 16419,16425 ----
  4983500878e03a3abd76e7f7b681a086  gcc/testsuite/g++.dg/cpp/embed-25.C
  1cd2ff1ccb4cd02ce8ce68e808b8bc3e  gcc/testsuite/g++.dg/cpp/embed-26.C
  54f4ee2696995576c4c5fce0f28eb708  gcc/testsuite/g++.dg/cpp/embed-27.C
+ 616061a95b206fb48748193f412fa24c  gcc/testsuite/g++.dg/cpp/embed-28.C
  518db3b2c551f0072b476c131c511910  gcc/testsuite/g++.dg/cpp/embed-3.C
  39e59b8a50db7adc52db30aeffc92f5c  gcc/testsuite/g++.dg/cpp/embed-4.C
  71d36e829a98f52caa2a8f034296db7c  gcc/testsuite/g++.dg/cpp/embed-5.C
*************** b8cd89a7510ad4bbf02ec052d02d2ee0  gcc/te
*** 16770,16775 ****
--- 16773,16779 ----
  eeac975a1b841cef4d5a4c468314ed8c  gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C
  6ef86dfa8bcd129320f2714974f8ad93  gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C
  24bbf6c5e0f31296c48440d4dae33447  gcc/testsuite/g++.dg/cpp0x/constexpr-113083.C
+ cf48bd83fff3e69e5f82d30185ef08d0  gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C
  3e4cac522763806230540d3da6cc5ee1  gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C
  d079e67f3b2be485ac7aed93b70984d2  gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C
  329a82a822423273c0c0256fd27a6d52  gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C
*************** e85d058a14211dcf2d4a869c0624ffae  gcc/te
*** 17720,17725 ****
--- 17724,17730 ----
  05a54074cd4251e2ff93c14d568fc89b  gcc/testsuite/g++.dg/cpp0x/gen-attrs-88.C
  612cbb9f8579e5b0993d513fe539de72  gcc/testsuite/g++.dg/cpp0x/gen-attrs-89.C
  5dd92815927177080853d47a890f5439  gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C
+ 3b01eb9296987e59c3e91a9998259d9b  gcc/testsuite/g++.dg/cpp0x/gen-attrs-90.C
  6555e6ec4bda3f0ea419f63e98af0a80  gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C
  72a234ce75f2f8ec7fd9f0edfc628c19  gcc/testsuite/g++.dg/cpp0x/gnu_fno-ext-numeric-literals.C
  3e88c6e173fd3bd44055c2202907f7e1  gcc/testsuite/g++.dg/cpp0x/hog1.C
*************** cd57481c3233939f35a9152176ba0610  gcc/te
*** 18566,18571 ****
--- 18571,18577 ----
  3bffe4cc168fde4f27dd432ad19e2f12  gcc/testsuite/g++.dg/cpp0x/nullptr44.C
  afdfafb40dd063d062a20c67e4309ae4  gcc/testsuite/g++.dg/cpp0x/nullptr45.C
  b34fb57802d0e40ddc608dc33eb1600e  gcc/testsuite/g++.dg/cpp0x/nullptr46.C
+ a60d34e7d9b973abeff594c297263e66  gcc/testsuite/g++.dg/cpp0x/nullptr47.C
  c0e1a381d8dd12ff190debb04e5ee084  gcc/testsuite/g++.dg/cpp0x/overflow1.C
  fb7661df85ad6b415b31574c67fa4ee0  gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C
  5ca00ae02aa7919e0b3d9730fa9f9ac5  gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C
*************** c6b0d9f964bf85f5f703f5dfa5e809e9  gcc/te
*** 18604,18609 ****
--- 18610,18616 ----
  b4c316ecfeb0a9b078a76b658ed94668  gcc/testsuite/g++.dg/cpp0x/pr119563.C
  29f9291c87488a55a2dd5fa47188ab10  gcc/testsuite/g++.dg/cpp0x/pr119580.C
  9598abf127e6826158d64ee6b05b0791  gcc/testsuite/g++.dg/cpp0x/pr122302.C
+ b2f7d7cab4ef6e12f25f82545d59869a  gcc/testsuite/g++.dg/cpp0x/pr123818.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
*************** dfd54cc6e7ae91a6a51dbda233f20174  gcc/te
*** 20567,20572 ****
--- 20574,20581 ----
  37c39f932f33f540d51f60eb06411c2f  gcc/testsuite/g++.dg/cpp1z/decomp61.C
  e0c740066bd9b5db23ad119756a191dc  gcc/testsuite/g++.dg/cpp1z/decomp62.C
  625fdfbc6a0c9cdfdfa656254c263bc2  gcc/testsuite/g++.dg/cpp1z/decomp63.C
+ 4267cc2db929f2666c1c5449e017a94a  gcc/testsuite/g++.dg/cpp1z/decomp66.C
+ d87e0f686f9f58fa2c8ea0990e82c1b3  gcc/testsuite/g++.dg/cpp1z/decomp67.C
  09468d9aa8e4fe8ac0677b17a3c509a2  gcc/testsuite/g++.dg/cpp1z/decomp7.C
  0d7ba62c8322f4f98a085026e3ac529a  gcc/testsuite/g++.dg/cpp1z/decomp8.C
  20aa008483ed89882491910be20354b8  gcc/testsuite/g++.dg/cpp1z/decomp9.C
*************** c6ad3dc1af7ae5c57b2194ad705be2a4  gcc/te
*** 20864,20869 ****
--- 20873,20879 ----
  cbc1aae360c38b8d5aba44cc0adb1d1a  gcc/testsuite/g++.dg/cpp23/auto-fncast16.C
  0d6c0765aa6e381e901ea54f31098f7d  gcc/testsuite/g++.dg/cpp23/auto-fncast17.C
  607b1507f1af352b3b8d73c0b0042af0  gcc/testsuite/g++.dg/cpp23/auto-fncast18.C
+ 7538b8341492d3e37f991c7d882723b9  gcc/testsuite/g++.dg/cpp23/auto-fncast19.C
  76d2964f5d2d58ccec6afc73c59f1b53  gcc/testsuite/g++.dg/cpp23/auto-fncast2.C
  dda23dff758a778a7ead9dd8b58268fc  gcc/testsuite/g++.dg/cpp23/auto-fncast3.C
  7f7896e62e131143c799cd8b4ac52168  gcc/testsuite/g++.dg/cpp23/auto-fncast4.C
*************** fc8ccbfe7f14dd4a41ff708c5a05b226  gcc/te
*** 22270,22275 ****
--- 22280,22286 ----
  475c14632e683c843d48238b8c5514f2  gcc/testsuite/g++.dg/cpp2a/pr114426.C
  9d5c0df7ab0b6e3e5ab03bc8eb135452  gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
  4b52a1949fed25dc03d5cfb83047e7c5  gcc/testsuite/g++.dg/cpp2a/pr117317-2.C
+ 938acbb8068f7a8fc2c3f43271324ef4  gcc/testsuite/g++.dg/cpp2a/pr123578.C
  7d1c1719a1c3e44cf69662819769f8a5  gcc/testsuite/g++.dg/cpp2a/pr88534.C
  3a4139bbe15eef2dce96cb020b2681f7  gcc/testsuite/g++.dg/cpp2a/pr88537.C
  b94ce4741edeca1190c4590e425522dc  gcc/testsuite/g++.dg/cpp2a/pr89913.C
*************** c1a2a3390492a95192a3736b25423528  gcc/te
*** 26682,26687 ****
--- 26693,26701 ----
  31c69886ec946d62cf0667dbcbdc7e4f  gcc/testsuite/g++.dg/modules/imp-member-4_a.C
  f27466c6fc70ce46e080f3b2c7fb7050  gcc/testsuite/g++.dg/modules/imp-member-4_b.C
  a191f79da591f001f65a3282e2d9da6e  gcc/testsuite/g++.dg/modules/imp-member-4_c.C
+ cc4377d64aa450d22e3845ae90b5bca9  gcc/testsuite/g++.dg/modules/imp-member-5_a.C
+ e3449d3f559db7103b7862066f6b2a5a  gcc/testsuite/g++.dg/modules/imp-member-5_b.C
+ fca6376f7a6015f262933d16975d3636  gcc/testsuite/g++.dg/modules/imp-member-5_c.C
  1f7d51f903fe6c300810c1d8d856401e  gcc/testsuite/g++.dg/modules/import-1_a.C
  cd504ebaf4fc289e921acc9934ead55f  gcc/testsuite/g++.dg/modules/import-1_b.C
  7dc13fb6d933fb23dc0f7251fa928bde  gcc/testsuite/g++.dg/modules/import-1_c.C
*************** eea88cc62cf091daa90c9da3714651e9  gcc/te
*** 27016,27021 ****
--- 27030,27039 ----
  42f128106dcccfb827c0d63b8aa87a9b  gcc/testsuite/g++.dg/modules/merge-19_b.C
  c55f90e5ef6f7ab3992f6606da04c6d7  gcc/testsuite/g++.dg/modules/merge-1_a.C
  8dfdc3716d1dda6833ec359936a84a2c  gcc/testsuite/g++.dg/modules/merge-1_b.C
+ be8c261cfa813b26cb16b8b3aebaf9ec  gcc/testsuite/g++.dg/modules/merge-21_a.C
+ 7cd3f2e8de05b1dd669c3ff993d03b3a  gcc/testsuite/g++.dg/modules/merge-21_b.C
+ c7141313017295f3b98183a39be9dfd2  gcc/testsuite/g++.dg/modules/merge-21_c.C
+ a9756c1c5ac2dc00c4b157e7951cb465  gcc/testsuite/g++.dg/modules/merge-21_d.C
  4f1ab1a658f8fe8b82d453787cd70235  gcc/testsuite/g++.dg/modules/merge-2_a.H
  8cdb66c1a7c6fd5f699a54755e0262c3  gcc/testsuite/g++.dg/modules/merge-2_b.C
  bafe05354251f1f0df54dbb55d13354f  gcc/testsuite/g++.dg/modules/merge-3_a.H
*************** e957d0bb77992ee1df76972e1b650438  gcc/te
*** 27180,27185 ****
--- 27198,27208 ----
  b526eccf4125841f7887f3c52a4ad9c3  gcc/testsuite/g++.dg/modules/p1689-target-default.exp.ddi
  a3be9aad9d10fc377af4164832c226c3  gcc/testsuite/g++.dg/modules/pack-index-1_a.C
  7b28120ef6b48516bc33d430f719231f  gcc/testsuite/g++.dg/modules/pack-index-1_b.C
+ 48a8472ca96b0f63e66d537146468c1b  gcc/testsuite/g++.dg/modules/part-11_a.C
+ 589ef0f7ed3e54007bef1bc3e4786e79  gcc/testsuite/g++.dg/modules/part-11_b.C
+ 0968ac1c13f417b9bf3cb86f09e51e4d  gcc/testsuite/g++.dg/modules/part-11_c.C
+ b214bb9855a87606d5686f0f7ac8c52b  gcc/testsuite/g++.dg/modules/part-11_d.C
+ 083aa9d1e97214e4158f7220127517ea  gcc/testsuite/g++.dg/modules/part-11_e.C
  c05001e1ed1bc8701ae61710ad3585cd  gcc/testsuite/g++.dg/modules/part-1_a.C
  8cc6c00af73d534c5bcd66d9d7757f8c  gcc/testsuite/g++.dg/modules/part-1_b.C
  103cfc3318415410b659f66bfb16f1bf  gcc/testsuite/g++.dg/modules/part-1_c.C
*************** c5147fdec1f8af57aa91c7960d61a37c  gcc/te
*** 28959,28964 ****
--- 28982,28988 ----
  8e7b288b4c83f50703e3121d871e7ca1  gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C
  cc7bbad3182c61322827fb53d2c0de46  gcc/testsuite/g++.dg/parse/comma1.C
  7a61c8e71deeb5afa8198794ebdf7d32  gcc/testsuite/g++.dg/parse/comma2.C
+ 98a1a2f21d1a9e354ec5c32d17f0b632  gcc/testsuite/g++.dg/parse/comma3.C
  4c4fb9d735c72b92a2a26f198f25d1e5  gcc/testsuite/g++.dg/parse/concat1.C
  73b5fec6848a7932aba299c38c57d8ed  gcc/testsuite/g++.dg/parse/cond1.C
  5b95db4d3d95193611271dcf7d869fe5  gcc/testsuite/g++.dg/parse/cond2.C
*************** c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/te
*** 31799,31804 ****
--- 31823,31829 ----
  6766aa21b009a63d71d22aa6baba228d  gcc/testsuite/g++.dg/torture/pr111245.C
  25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
  fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
+ 5c620542544d327d513aa9525aba2286  gcc/testsuite/g++.dg/torture/pr112400.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  c9d2586b0e3709f19a931052b6c72363  gcc/testsuite/g++.dg/torture/pr113994.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
*************** f298eddbaaad3dfdc15f6cf9683ff08a  gcc/te
*** 31830,31835 ****
--- 31855,31862 ----
  4cb804aebd63b708ddcac6b88e4a9b7f  gcc/testsuite/g++.dg/torture/pr123040.C
  fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
  045de4cec99c01bff5389660b8937e19  gcc/testsuite/g++.dg/torture/pr123729.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
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
*************** af15d8508e94dffd343c693011e63fd4  gcc/te
*** 37168,37173 ****
--- 37195,37201 ----
  9b78f2399b3493ce846b6fb03c77ee6c  gcc/testsuite/g++.target/aarch64/pr109661-4.C
  c30fa1a8e837444d0a3e1e6be628b06d  gcc/testsuite/g++.target/aarch64/pr116074.C
  c8698b784efebd06777683e03d5bbfc7  gcc/testsuite/g++.target/aarch64/pr117048.C
+ cee7440840fa58ea5280af197f3054eb  gcc/testsuite/g++.target/aarch64/pr124126-1.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
*************** e296551bbee90148974ff78d5066caf7  gcc/te
*** 37785,37790 ****
--- 37813,37819 ----
  a6a5d652323c20e5b2bbc8ea9dc8f4d7  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-1.C
  49cbe2dffc749d3ef1398685b035f4c9  gcc/testsuite/g++.target/riscv/rvv/base/pr114714-2.C
  c358c32e7ca409abcc867a3b5248f5bd  gcc/testsuite/g++.target/riscv/rvv/base/pr116883.C
+ c815e2b915616e550da03257a0782d3c  gcc/testsuite/g++.target/riscv/rvv/base/pr122448.C
  5278ec1993abdc95652f6d706ddaa862  gcc/testsuite/g++.target/riscv/rvv/base/pr123806.C
  bb74b6c9495308ab73ce64ff3cfd9543  gcc/testsuite/g++.target/riscv/rvv/base/pr123808-2.C
  1079f987e4481f60dedf174de12857cb  gcc/testsuite/g++.target/riscv/rvv/base/pr123808.C
*************** eea87d83e17b279b87e26692758e741d  gcc/te
*** 38924,38929 ****
--- 38953,38959 ----
  55a54152820578acabaf82298af82f50  gcc/testsuite/gcc.c-torture/compile/pr116009.c
  a36b5332929fccce3ba46aacdd6e1984  gcc/testsuite/gcc.c-torture/compile/pr116348.c
  49d6139389714e075cde88f08d4d1f2e  gcc/testsuite/gcc.c-torture/compile/pr116516.c
+ 4b342b76caa9e8e213c9b81ca64d1333  gcc/testsuite/gcc.c-torture/compile/pr116600.c
  0385d5805cb6d90dc8a17f2f44d3450e  gcc/testsuite/gcc.c-torture/compile/pr117358.c
  50f2676721fef746c58625b6346f5755  gcc/testsuite/gcc.c-torture/compile/pr117449.c
  7885242b11fb54f407c5b67910c8c93a  gcc/testsuite/gcc.c-torture/compile/pr118362.c
*************** ae878ea349c8f9f2a197bf59dcff9d3a  gcc/te
*** 38932,38937 ****
--- 38962,38969 ----
  4e917b913d6f56bf343a7bff79797c93  gcc/testsuite/gcc.c-torture/compile/pr119226.c
  ab667119ae39828bcd103bb5c5434cdc  gcc/testsuite/gcc.c-torture/compile/pr120250.c
  ba307c947af4df2e0ff2f70272caf68a  gcc/testsuite/gcc.c-torture/compile/pr120807.c
+ 9f275c2b6e96b2a9fdee0b1a4aee96e9  gcc/testsuite/gcc.c-torture/compile/pr123365.c
+ 8c484e5df297a43329f4182432f35fda  gcc/testsuite/gcc.c-torture/compile/pr123386.c
  ffc2d0352a16ed7c76c12152bde69753  gcc/testsuite/gcc.c-torture/compile/pr123703.c
  b8b52e8f02c4a8a36a13b5243b69bbe6  gcc/testsuite/gcc.c-torture/compile/pr124250.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
*************** fd7185346c3b94c0a7f7afba7b6bc241  gcc/te
*** 41093,41099 ****
--- 41125,41135 ----
  b7150a91a8e64c0a2f8d47a9f857fd6e  gcc/testsuite/gcc.c-torture/execute/pr119291.c
  e88a36f4cba0e85d5491d4b566b19508  gcc/testsuite/gcc.c-torture/execute/pr119428.c
  eda2af339f8dd266a02b2d61a5444a03  gcc/testsuite/gcc.c-torture/execute/pr120677.c
+ d41fd1ea09327fdf9b68f657aea5661c  gcc/testsuite/gcc.c-torture/execute/pr122000.c
  529fc2a1e92dc790d3766cd8554fc89c  gcc/testsuite/gcc.c-torture/execute/pr122943.c
+ cb4c82184137c0933c1bae60a7df15bc  gcc/testsuite/gcc.c-torture/execute/pr123864.c
+ 95b7f2d687a5a5e2df1e09fad845a195  gcc/testsuite/gcc.c-torture/execute/pr123978.c
+ 256e8d04f36f265861609fbe23468388  gcc/testsuite/gcc.c-torture/execute/pr124358.c
  80c02c70a0b6b91b06942e395c34960f  gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
  987c511633ad57d9f08d352eb9512819  gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
  f7f514cfbd791b0c828e0710493b0910  gcc/testsuite/gcc.c-torture/execute/pr15262.c
*************** d217543f954eb3f31e246355824f653a  gcc/te
*** 43662,43667 ****
--- 43698,43704 ----
  11e6d8eaf7b16f3f8aeaf1c2e626996f  gcc/testsuite/gcc.dg/bitint-124.c
  c446cf331d60d19eea3950d7f444f8b3  gcc/testsuite/gcc.dg/bitint-125.c
  240ade406c4daf5c641e5c4f0bdd5ef5  gcc/testsuite/gcc.dg/bitint-126.c
+ 3fa6e340272f61c5b425b6a54732c94f  gcc/testsuite/gcc.dg/bitint-127.c
  aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
  e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
  c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
*************** d05bdce55447fc39d09a1133e04e88b4  gcc/te
*** 44939,44944 ****
--- 44976,44982 ----
  45e735b0d33fac192a119347115d5b0c  gcc/testsuite/gcc.dg/completion-4.c
  649ce6d53eeda31c7cb4947fab7ac38f  gcc/testsuite/gcc.dg/completion-5.c
  a86556f4f0c72c0bee2f104440830505  gcc/testsuite/gcc.dg/complex-1.c
+ 79e8cd8a2d1264875feb64c5169b21d2  gcc/testsuite/gcc.dg/complex-10.c
  ec2d607c705e532267dc3c09849c554f  gcc/testsuite/gcc.dg/complex-2.c
  da2226add6799fd192e2b367404d1b0b  gcc/testsuite/gcc.dg/complex-2.h
  7cbd734da9d8330b57f4e78af353b9f2  gcc/testsuite/gcc.dg/complex-3.c
*************** a633f425b4fdde0a7b6f0aa6aa2f2754  gcc/te
*** 47190,47195 ****
--- 47228,47234 ----
  20a3ca0acce7dbf1520d374c9470fc34  gcc/testsuite/gcc.dg/gomp/pr110485.c
  7d1b62adb42c340855e993cf480a19ec  gcc/testsuite/gcc.dg/gomp/pr114075.c
  ec1d4016ba60492b723014b99d2804e6  gcc/testsuite/gcc.dg/gomp/pr121453.c
+ c80489ac8415077c5335cf251371d6e9  gcc/testsuite/gcc.dg/gomp/pr123876.c
  7a163e65fe52b23fc85f2daa18c442ee  gcc/testsuite/gcc.dg/gomp/pr25874.c
  597de3ed24e1bc1c650af918589d83c3  gcc/testsuite/gcc.dg/gomp/pr25989.c
  0bd3e8dc860de61dd8e09229c090e1f5  gcc/testsuite/gcc.dg/gomp/pr25990.c
*************** d98596956367fc29b9341da6c0f03f55  gcc/te
*** 49377,49382 ****
--- 49416,49423 ----
  2eebdeb5aef44432de1498de14cbf4e6  gcc/testsuite/gcc.dg/pr101266.c
  a7ea71615239b0d5a09bdb20e483a02f  gcc/testsuite/gcc.dg/pr101285-1.c
  cbe7e390158f186ae3fd0f808bea7563  gcc/testsuite/gcc.dg/pr101294.c
+ 280ab2738fa9f4a59440b24de22faee0  gcc/testsuite/gcc.dg/pr101312-1.c
+ 1e4a8d2edc5aa23b12908e90b5487800  gcc/testsuite/gcc.dg/pr101312-2.c
  2eebc584a5365593600a3822a1b3e97d  gcc/testsuite/gcc.dg/pr101364-1.c
  70303171ed7f5b2cba05e6b98daad2ab  gcc/testsuite/gcc.dg/pr101384.c
  566100ed369cb8ddbb77ca59ac7f4416  gcc/testsuite/gcc.dg/pr101403.c
*************** cb7b5505103ef079e746dd619a21ee86  gcc/te
*** 49909,49914 ****
--- 49950,49956 ----
  9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
  4a9d9632d82cf6c4f4f4acbad8ab018d  gcc/testsuite/gcc.dg/pr120638.c
  c57884e34f257e33d206372fc675b716  gcc/testsuite/gcc.dg/pr121035.c
+ f67888cb77a175aca5793c68c576187f  gcc/testsuite/gcc.dg/pr121104.c
  d602fec0c129037ce49acd7cccfd6266  gcc/testsuite/gcc.dg/pr121202.c
  7032b52dc2dd1e6cab514293c2d0b276  gcc/testsuite/gcc.dg/pr121322.c
  a0985c9ac5a161a568f68afc0223c2c1  gcc/testsuite/gcc.dg/pr121506.c
*************** a0985c9ac5a161a568f68afc0223c2c1  gcc/te
*** 49916,49925 ****
--- 49958,49971 ----
  b975ebfa27ac446e553bacbb75421590  gcc/testsuite/gcc.dg/pr122126_vset.c
  9f4094b7196b5eab8c79608995a96efc  gcc/testsuite/gcc.dg/pr122991.c
  9fcb8913b9a18055b2a811284d59780e  gcc/testsuite/gcc.dg/pr123018.c
+ 3190514d319cec9f570a97df97be613b  gcc/testsuite/gcc.dg/pr123294-1.c
  5fbcf85870a8e9883872a384e3cf5e12  gcc/testsuite/gcc.dg/pr123300.c
  3e218010f127737b8ec6efbf8cb00273  gcc/testsuite/gcc.dg/pr123431.c
  b2e314205231dfc3005d83207407379b  gcc/testsuite/gcc.dg/pr123447.c
  2e58c4d553f61913c629f0f4e16cef6c  gcc/testsuite/gcc.dg/pr123537.c
+ 1d51dc92bcea9d1f45d53070aed9c180  gcc/testsuite/gcc.dg/pr123672.c
+ 5cd501fa005281d9c622810307478c79  gcc/testsuite/gcc.dg/pr123882.c
+ f402be89e4891c76c691c8144fe168f7  gcc/testsuite/gcc.dg/pr124138.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** e6e17b2280f19928b738f46328c5dcf7  gcc/te
*** 53653,53664 ****
--- 53699,53714 ----
  d9a43196d2efe2fcc49c98e125a9d6b3  gcc/testsuite/gcc.dg/torture/pr120736.c
  a789d5fa70ddcb7ea1760ee8688e331c  gcc/testsuite/gcc.dg/torture/pr120813.c
  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
  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
  10b3b873efcbbc683b1b7bc118deaf44  gcc/testsuite/gcc.dg/torture/pr123107.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
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
*************** d2e1860fa8199fa9cae01ffe45caa0c0  gcc/te
*** 54771,54777 ****
  d870c565ecc3624fb4fbcb1510c36484  gcc/testsuite/gcc.dg/torture/tree-loop-1.c
  95f12088e6a4e2a5036a44816c58215b  gcc/testsuite/gcc.dg/torture/type-generic-1.c
  bd588e9316f28797985023db337c730b  gcc/testsuite/gcc.dg/torture/va-arg-25.c
! 5c82e599e9517c158609d3871bb6ab3f  gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
  70a7b1e7d786a67e8b07f4d2d0baba21  gcc/testsuite/gcc.dg/torture/vect-bool-1.c
  b8ce84a799f856b87c466889006803da  gcc/testsuite/gcc.dg/torture/vector-1.c
  8f292f1e4488a6043de93ca455705faf  gcc/testsuite/gcc.dg/torture/vector-2.c
--- 54821,54827 ----
  d870c565ecc3624fb4fbcb1510c36484  gcc/testsuite/gcc.dg/torture/tree-loop-1.c
  95f12088e6a4e2a5036a44816c58215b  gcc/testsuite/gcc.dg/torture/type-generic-1.c
  bd588e9316f28797985023db337c730b  gcc/testsuite/gcc.dg/torture/va-arg-25.c
! a2fa4a55ce8fbbb549f006c693524abb  gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
  70a7b1e7d786a67e8b07f4d2d0baba21  gcc/testsuite/gcc.dg/torture/vect-bool-1.c
  b8ce84a799f856b87c466889006803da  gcc/testsuite/gcc.dg/torture/vector-1.c
  8f292f1e4488a6043de93ca455705faf  gcc/testsuite/gcc.dg/torture/vector-2.c
*************** e721f980e1e7a9648d77300c2f6ea0e5  gcc/te
*** 61867,61872 ****
--- 61917,61947 ----
  d28ce23985b773a211ff26743e9e661d  gcc/testsuite/gcc.target/aarch64/options_set_8.c
  55ae452185bb0bb101f614fc4fa21cd9  gcc/testsuite/gcc.target/aarch64/options_set_9.c
  2ba9e0951fadcf5ce5f2eab080c09a68  gcc/testsuite/gcc.target/aarch64/orr_imm_1.c
+ 5e0097785f095780e3c0a7ce682ddc69  gcc/testsuite/gcc.target/aarch64/pch/aarch64-pch.exp
+ a6744e260d36942daafb6b2fcf3e4e19  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.c
+ 7b90a6e9d561b2c19e6c612960e8ef70  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.hs
+ 5a5b4234700c182421280262006aff02  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.c
+ 7b90a6e9d561b2c19e6c612960e8ef70  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.hs
+ 4478fcdd1aefee96e33faf1c4b60215d  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.c
+ 97e98018fd0a42839432bb5716c601bb  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.hs
+ 4775f635f85fab86b3e43edddb4d3731  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.c
+ 97e98018fd0a42839432bb5716c601bb  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs
+ c1cc84ca237825286acc5b291c488ad3  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.c
+ eea843b45fced370cf40e4fd8434b286  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.hs
+ 66efb2495a5e78783e0592acaf913f90  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.c
+ eea843b45fced370cf40e4fd8434b286  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.hs
+ 0b52c4a1f6b3f91ec85ce6e2ce5d7f99  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c
+ c0b11c30b275c5fd2113fe2a4ecac4af  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs
+ 48d3f71076eb2c9a167ad14ae32a23de  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c
+ c0b11c30b275c5fd2113fe2a4ecac4af  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs
+ b2bd58eb682ff2375e24885036453e0e  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.c
+ 408bbbd938ffecc7c0bf0e2b87b2864b  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.hs
+ 6b00da17b87978f4062502ae983d70b2  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.c
+ 408bbbd938ffecc7c0bf0e2b87b2864b  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.hs
+ 957c9a141aeddbfd748594553077d14e  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.c
+ 58d8436df4c6af25396ff8f2e09b91c2  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.hs
+ 8e6da171896c5c3446074fa59d4c2cd4  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.c
+ 58d8436df4c6af25396ff8f2e09b91c2  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.hs
  2affd5586d9d9534731788d83a2a3904  gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
  b0a892934f70ddbece003356d1462148  gcc/testsuite/gcc.target/aarch64/pcs_attribute-3.c
  9fe8a7ffd0c54ed06b5690a31efb7b70  gcc/testsuite/gcc.target/aarch64/pcs_attribute.c
*************** cc8dc43c5d18de4984503248c86934e4  gcc/te
*** 61990,61995 ****
--- 62065,62072 ----
  c34d772e393da040a9ab73442d231d49  gcc/testsuite/gcc.target/aarch64/pr121853_1.c
  bf526d120c538bd714985ac66c46f7bb  gcc/testsuite/gcc.target/aarch64/pr121853_2.c
  98a4eb67a4078cb117ea1c80d44fee14  gcc/testsuite/gcc.target/aarch64/pr123206.c
+ 95306727ea8db0e2fdb8e199f754c587  gcc/testsuite/gcc.target/aarch64/pr123285-1.c
+ 3525a5777032197cdd1e39b2aad94c29  gcc/testsuite/gcc.target/aarch64/pr123294-1.c
  085f7e2087fb0cf8d5d9a44259bb616c  gcc/testsuite/gcc.target/aarch64/pr123548.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
*************** e1de65e21c6c26d2fdf84a8e600776a2  gcc/te
*** 75070,75075 ****
--- 75147,75156 ----
  4af5f36c571f416f48647ffb75a45045  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-fma-1.c
  060256f3db21d28f61a90f026c37c557  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-operations-1.c
  fa1d703c5c27e1abbf55a158e4d6ee34  gcc/testsuite/gcc.target/i386/avx10_2-partial-bf16-vector-smaxmin-1.c
+ b4a1927c931b8d7d2db97fa832391d68  gcc/testsuite/gcc.target/i386/avx10_2-pr124294.c
+ 7f70c3fddea0473820a89abc96523295  gcc/testsuite/gcc.target/i386/avx10_2-pr124341.c
+ 2069fc0ccb52a5d108ccb3dc947847f0  gcc/testsuite/gcc.target/i386/avx10_2-pr124349-2.c
+ 08b72689ae08221da32807545d916afe  gcc/testsuite/gcc.target/i386/avx10_2-pr124349.c
  d3b2e3b222506f251ae193405f6e6f11  gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
  250f1760735592622b647d89908ad24b  gcc/testsuite/gcc.target/i386/avx10_2-vaddbf16-2.c
  4bd1c7ec61e15679b46b7762ad78309b  gcc/testsuite/gcc.target/i386/avx10_2-vcmpbf16-2.c
*************** fa2c17673f6ee0e3a3910298a93d723d  gcc/te
*** 76358,76363 ****
--- 76439,76447 ----
  9a6936f1815277f15801196159007f44  gcc/testsuite/gcc.target/i386/avx512f-pr114566.c
  9d6b0fb1e1a52903717dc76f97738172  gcc/testsuite/gcc.target/i386/avx512f-pr116738-1.c
  678b1780c696a211b19a271bd7501f61  gcc/testsuite/gcc.target/i386/avx512f-pr116738-2.c
+ f20f5c3dc20ef0309b2a3dc9fdde483e  gcc/testsuite/gcc.target/i386/avx512f-pr124138-1.c
+ efe0a21951178063e3b3f10cf90f0adb  gcc/testsuite/gcc.target/i386/avx512f-pr124138-2.c
+ 1f47d4671c0dd3d13b733838385048ed  gcc/testsuite/gcc.target/i386/avx512f-pr124315.c
  88877c518076ecdec1dba128743ad627  gcc/testsuite/gcc.target/i386/avx512f-pr57233.c
  0272e0fc54cb34ee03db4b0027dbec3d  gcc/testsuite/gcc.target/i386/avx512f-pr63594-1.c
  381f53de01f1e9893e6903d9fac40b87  gcc/testsuite/gcc.target/i386/avx512f-pr63594-2.c
*************** cd26c5b9b2d79ae190b4c24e39a2ac2e  gcc/te
*** 77237,77242 ****
--- 77321,77327 ----
  a0059c72ee5f8a3b553da9a85e2e8686  gcc/testsuite/gcc.target/i386/avx512fp16-pr101846.c
  2e18bcbca55b5eaa82a1fe477d2bf780  gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-1.c
  a89ea8a687198b0e470fb31d938c2a3f  gcc/testsuite/gcc.target/i386/avx512fp16-pr103750-2.c
+ c0aba89383e573771d0b9ccacbca61eb  gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c
  b5d5082a6d865b8b24dbefc908fafb2d  gcc/testsuite/gcc.target/i386/avx512fp16-pr94680.c
  0be682c7ab6c675fa46f84d592d76785  gcc/testsuite/gcc.target/i386/avx512fp16-recip-1.c
  38a807ac8fade227ea34604df002fb5f  gcc/testsuite/gcc.target/i386/avx512fp16-recip-2.c
*************** c1fc8c403bea321e9edbec8f46fe2fd8  gcc/te
*** 77659,77664 ****
--- 77744,77750 ----
  1156c3947fee64640053c33ec3a1d627  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-1.c
  de717f1cf1bd87731a52727c854e17f3  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-2.c
  ff7d4b178317336c918bd3d476aa77a8  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-3.c
+ f66d7d39f6629aaa01b835c3db736017  gcc/testsuite/gcc.target/i386/avx512vl-pr124367.c
  1ce70da2226efd6f3d5d92c101fb79d9  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
  e3cc31b3308cdb56423451f2cd8c2a00  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c
  7cff0350d919ed5edc42e841b11e38f2  gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c
*************** dfd6d048c4cc790cbf85d5080d1b5a6e  gcc/te
*** 78606,78611 ****
--- 78692,78698 ----
  e420c76b5d51167be532aea06e242b7d  gcc/testsuite/gcc.target/i386/cet-notrack-icf-2.c
  ecf5960debbf0be72bff47ede8c8800e  gcc/testsuite/gcc.target/i386/cet-notrack-icf-3.c
  8f1538b43a15c0827f66b6f4352ef5fb  gcc/testsuite/gcc.target/i386/cet-notrack-icf-4.c
+ c62171467fd6ad70fac732b022943ed4  gcc/testsuite/gcc.target/i386/cet-pr124366.c
  b8e1eda2f252f129a90e54617fa39500  gcc/testsuite/gcc.target/i386/cet-property-1.c
  f03688bba56369ec92f324db56599b3d  gcc/testsuite/gcc.target/i386/cet-property-2.c
  a4dff4664eff59fc1d1d6ac49e52a6b6  gcc/testsuite/gcc.target/i386/cet-rdssp-1.c
*************** ceabed34440a4d5e7379a87fe03c334e  gcc/te
*** 79303,79308 ****
--- 79390,79396 ----
  d4c716e20ab6e64d6bb29cc63dd65677  gcc/testsuite/gcc.target/i386/movq-2.c
  d7e128da4dee8caf6cd8d400af12d230  gcc/testsuite/gcc.target/i386/movq.c
  cb58a62e42c29816d18ea3d55ab4997d  gcc/testsuite/gcc.target/i386/movrs-1.c
+ e1f5575d42c42c2ad22430f9a18c058e  gcc/testsuite/gcc.target/i386/movrs-pr124461.c
  347dca8d249a46ac2f5892d9ffdc0337  gcc/testsuite/gcc.target/i386/movsd.c
  bb0703a0cfe126aeba12e7589d46db56  gcc/testsuite/gcc.target/i386/movsi-sm-1.c
  a563480a1082f387ca849ebdfa1078d1  gcc/testsuite/gcc.target/i386/movti-2.c
*************** f99f88a6e994ad6e55e065e41bc58f8f  gcc/te
*** 80293,80298 ****
--- 80381,80387 ----
  fd0c95fcad577a49c3553f21604c3b61  gcc/testsuite/gcc.target/i386/pr123484.c
  5263cb01b17b6df3496a998c2a8e70d8  gcc/testsuite/gcc.target/i386/pr123489.c
  0c572aee98b871b5098fcc5a78b5d069  gcc/testsuite/gcc.target/i386/pr123523.c
+ fbfd31ba28ddc5c31ac2fd9d714443bb  gcc/testsuite/gcc.target/i386/pr124056.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
*************** af1bc36c42c7044e45de0c750db8acd5  gcc/te
*** 92650,92655 ****
--- 92739,92745 ----
  610e6f25965c50df94620396565cbba5  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr118601.c
  e8e71b223dd9d7fee839474c55a75e59  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr123969.c
  4881cdf86600eb0940a8c82416f44a09  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr123971.c
+ b804f461139f6ef0af6f4985aac87bbe  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr124147.c
  3b6f5cabe79dc861ffb53d3e1f5799fb  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/prefix.c
  2ab24ca52f156368073be4fd3c43c875  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlb-vsb.c
  d65b03ba20bf54651672609d9c9923cc  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/vlbu-vsb.c
*************** e79a5fff5c4841ba8e2da41f54be1c1c  gcc/te
*** 105880,105886 ****
--- 105970,105978 ----
  05457962d41eef6a41a3de889144d78a  gcc/testsuite/gfortran.dg/pr120191_3.f90
  b1cb2c9a52574c2df5df49bd13ee7e5d  gcc/testsuite/gfortran.dg/pr120196.f90
  9a63937be6d5e03574fd9c46968454c5  gcc/testsuite/gfortran.dg/pr121234.f90
+ cf5eb5dbc3807278a7f8e6a11e5b41bf  gcc/testsuite/gfortran.dg/pr121743.f90
  b9c77c8cd78fcd9e57fbfafe732a8c95  gcc/testsuite/gfortran.dg/pr122936.f90
+ 5bfaeea8d13a5035cf46aaab485c2803  gcc/testsuite/gfortran.dg/pr124450.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
*************** e046a9c4874579f81515c4b3d9106b63  gcc/tr
*** 118072,118078 ****
  7e063b1edd28723f3f432596c39cfbee  gcc/tree-hasher.h
  e14744b5f500a4c01221207e438177b8  gcc/tree-if-conv.cc
  002c9568898504ca2025dcacf5151fd6  gcc/tree-if-conv.h
! dbe6b6114696eccb16929a6a255e4cd8  gcc/tree-inline.cc
  326f91431bfd3c15d8ddd74699d666e6  gcc/tree-inline.h
  90ca59c0844cd326f35f9cae17ec174b  gcc/tree-into-ssa.cc
  ef1cb0fba517532ecda9f4e0dd5218f7  gcc/tree-into-ssa.h
--- 118164,118170 ----
  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
*************** be605b5b6cac7c418bd348b54f9d47cf  gcc/tr
*** 118116,118124 ****
  4b3c2e3456bae55a01edd98396b099a1  gcc/tree-ssa-dce.h
  adfc498b0c97a8123c02d418757df496  gcc/tree-ssa-dom.cc
  0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
! 970603eba5771386ebe1627241c4dae7  gcc/tree-ssa-dse.cc
  a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! c2bfee2b31ff0129fc730cb3ac7a0137  gcc/tree-ssa-forwprop.cc
  417b731d1c8923a0eb41474c924dd760  gcc/tree-ssa-ifcombine.cc
  488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
--- 118208,118216 ----
  4b3c2e3456bae55a01edd98396b099a1  gcc/tree-ssa-dce.h
  adfc498b0c97a8123c02d418757df496  gcc/tree-ssa-dom.cc
  0046e212ff1b9f3f4d27d055aa299c47  gcc/tree-ssa-dom.h
! 248536a657daf57312bb221df42aa9c0  gcc/tree-ssa-dse.cc
  a6d83be241a72da1740cf6c5b2ce7d52  gcc/tree-ssa-dse.h
! 3cd977c6c05b7607c353e399fcca0393  gcc/tree-ssa-forwprop.cc
  417b731d1c8923a0eb41474c924dd760  gcc/tree-ssa-ifcombine.cc
  488acc5feebebd58899e9146d82d4af4  gcc/tree-ssa-live.cc
  cf4bde43ab3b843eff45bac243d4116d  gcc/tree-ssa-live.h
*************** fbcc93539b376489c1256eb8cf2d4800  gcc/tr
*** 118136,118146 ****
  ada2da4e4f03dd37043a0cc6daa67681  gcc/tree-ssa-loop-unswitch.cc
  2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
  538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
! 22e261197ed7af23879499c4ee8126a5  gcc/tree-ssa-math-opts.cc
  c0b0549adb2c1140cf285901abb5a78c  gcc/tree-ssa-math-opts.h
  0ed882dedcd92c361bc556587aaa4b74  gcc/tree-ssa-operands.cc
  da72a60de8a6f51a635ead26120d3cc7  gcc/tree-ssa-operands.h
! c5c94f731fa48c6557765e712c67aaf5  gcc/tree-ssa-phiopt.cc
  0864f59d85045caee0a643f82fa6d20c  gcc/tree-ssa-phiprop.cc
  56669b2d0405dccdeb2acb778d058e82  gcc/tree-ssa-pre.cc
  bc94d7017980d97ff957feb308ae771c  gcc/tree-ssa-propagate.cc
--- 118228,118238 ----
  ada2da4e4f03dd37043a0cc6daa67681  gcc/tree-ssa-loop-unswitch.cc
  2f97e7f187f4f4cce48b71489ef542a0  gcc/tree-ssa-loop.cc
  538146c17730f67ffcc58afdfcc93712  gcc/tree-ssa-loop.h
! 192d7865777f9df5a5b638a53a52cc82  gcc/tree-ssa-math-opts.cc
  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
*************** c8efeee600d612c4bae8dda4bd45ee54  gcc/tr
*** 118192,118198 ****
  f5c90b57853064f13fc6868527a2ea7e  gcc/tree-vectorizer.h
  983065c230493e568be0a1933889b583  gcc/tree-vrp.cc
  a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
! 10d1340bca86a82896861042eed1876a  gcc/tree.cc
  db4e97cc6f33c2fe3aafe8676fb649a0  gcc/tree.def
  6a9ff2eecdb45074d05c5f46862dca43  gcc/tree.h
  b642c83968cda285afc700da2fb276d5  gcc/treestruct.def
--- 118284,118290 ----
  f5c90b57853064f13fc6868527a2ea7e  gcc/tree-vectorizer.h
  983065c230493e568be0a1933889b583  gcc/tree-vrp.cc
  a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
! e46786780046842137f0df52270989f8  gcc/tree.cc
  db4e97cc6f33c2fe3aafe8676fb649a0  gcc/tree.def
  6a9ff2eecdb45074d05c5f46862dca43  gcc/tree.h
  b642c83968cda285afc700da2fb276d5  gcc/treestruct.def
*************** cffdeae41b78da05839b193e90188f55  libcod
*** 118522,118528 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! c1e502d249fb930c1fa7a67a220449d7  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  e80a909ca87015a009bee9588bb84a64  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
--- 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
*************** b07c7863f0e7ad4e6a0915d66fc9e582  libcpp
*** 118534,118540 ****
  ea784e8b4e934b5966c1fa9ff3767729  libcpp/directives.cc
  02aef9903cbb33fe0e3146b5a9af1332  libcpp/errors.cc
  edcd9f141150c148f5c5c9584a446394  libcpp/expr.cc
! fb29c78e67c6e7533d6c02ec00a1961e  libcpp/files.cc
  97faf9e969cb255f2a2a91e0e7ac3c32  libcpp/generated_cpp_wcwidth.h
  c496c50691c37464e0aacc985cc3ab1e  libcpp/identifiers.cc
  c6d289f358b723bb4db062b5dbb25cb9  libcpp/include/cpplib.h
--- 118626,118632 ----
  ea784e8b4e934b5966c1fa9ff3767729  libcpp/directives.cc
  02aef9903cbb33fe0e3146b5a9af1332  libcpp/errors.cc
  edcd9f141150c148f5c5c9584a446394  libcpp/expr.cc
! f768c7265561a73fb4219db736d385ea  libcpp/files.cc
  97faf9e969cb255f2a2a91e0e7ac3c32  libcpp/generated_cpp_wcwidth.h
  c496c50691c37464e0aacc985cc3ab1e  libcpp/identifiers.cc
  c6d289f358b723bb4db062b5dbb25cb9  libcpp/include/cpplib.h
*************** ac88522f7fec46badcd2623d11a4b61e  libcpp
*** 118545,118557 ****
  d516a30568fd33a5e69be4374f27812f  libcpp/include/symtab.h
  3f05e522dd9325c9807fc4f662533f7b  libcpp/init.cc
  a0d37c297f3d462529b502a4e1bd2378  libcpp/internal.h
! 02b3ef58149f98b4ee65cc5ea226ae24  libcpp/lex.cc
  afb53d91467e0952508a757742351dd6  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
  9ca45c4c9e1829d625f4cc03b82debd1  libcpp/macro.cc
  b4c085899eca6fc0e5ddc81d15fc2e67  libcpp/makeucnid.cc
  f6299826ad91c3ae3e8be64e87bb7d20  libcpp/makeuname2c.cc
! 15ffbe55bf3e5cc75e66cfb1125773a8  libcpp/mkdeps.cc
  893a85ab3fc4806dc0c614afce9b7110  libcpp/pch.cc
  08b0aa50b1e05d6454c78aff3ea91d82  libcpp/po/ChangeLog
  5a131bbc2e718f87b148455d3b557800  libcpp/po/be.po
--- 118637,118649 ----
  d516a30568fd33a5e69be4374f27812f  libcpp/include/symtab.h
  3f05e522dd9325c9807fc4f662533f7b  libcpp/init.cc
  a0d37c297f3d462529b502a4e1bd2378  libcpp/internal.h
! bb09fd4a3abcc96005d39b7733c1c1c9  libcpp/lex.cc
  afb53d91467e0952508a757742351dd6  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
  9ca45c4c9e1829d625f4cc03b82debd1  libcpp/macro.cc
  b4c085899eca6fc0e5ddc81d15fc2e67  libcpp/makeucnid.cc
  f6299826ad91c3ae3e8be64e87bb7d20  libcpp/makeuname2c.cc
! 7c1ec683f5224835368091f555f4ef75  libcpp/mkdeps.cc
  893a85ab3fc4806dc0c614afce9b7110  libcpp/pch.cc
  08b0aa50b1e05d6454c78aff3ea91d82  libcpp/po/ChangeLog
  5a131bbc2e718f87b148455d3b557800  libcpp/po/be.po
*************** d310c3612a920f243d62620f007dec94  libgru
*** 130233,130239 ****
  4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 52338dddd1262aa912d85964fff55388  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  9b063cff28e2237e897ffbd7475e05ac  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
--- 130325,130331 ----
  4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 228754670d00ce08e4efc0c6ca6f4f0a  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  9b063cff28e2237e897ffbd7475e05ac  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
*************** e973bc72e9b2d610a4b9575612e4eb7e  libibe
*** 130346,130352 ****
  ff1d42d1bf1c07e5ea2e937d699ca374  libiberty/simple-object-elf.c
  a14629c770304471edee893f66642041  libiberty/simple-object-mach-o.c
  fa900905f05a445431f7a9aacedbc87a  libiberty/simple-object-xcoff.c
! 216392f132c9fc61c2d3f0a5a73271a2  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
  70cf700eee398fc6bf00ee58c616aba0  libiberty/snprintf.c
  ff47008e837114be5ffe97f256924c14  libiberty/sort.c
--- 130438,130444 ----
  ff1d42d1bf1c07e5ea2e937d699ca374  libiberty/simple-object-elf.c
  a14629c770304471edee893f66642041  libiberty/simple-object-mach-o.c
  fa900905f05a445431f7a9aacedbc87a  libiberty/simple-object-xcoff.c
! fe28e2d8825289c5934e92c8e120ed0c  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
  70cf700eee398fc6bf00ee58c616aba0  libiberty/snprintf.c
  ff47008e837114be5ffe97f256924c14  libiberty/sort.c
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132228,132234 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 78df51605fd4304c77bc4a7956f4db18  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 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
*************** ddeb43e42ef0615042e595a570f7deaf  libstd
*** 132985,132999 ****
  13ab6526ab5b8cd5e9a7b12e6bf761f6  libstdc++-v3/include/bits/ranges_util.h
  222a1067e3c63fb19ed0996234a84884  libstdc++-v3/include/bits/refwrap.h
  5b95e35539d0071176396cd82a6072b7  libstdc++-v3/include/bits/regex.h
! b5ae25c0469c7fb23c0914fcebced654  libstdc++-v3/include/bits/regex.tcc
  8574b29ef7f78afa13942ca1525502d5  libstdc++-v3/include/bits/regex_automaton.h
! 1a5c4b076e644644ecb038a6c2e76ca3  libstdc++-v3/include/bits/regex_automaton.tcc
! fafbb831bf729a319ae2fdce7a89fa09  libstdc++-v3/include/bits/regex_compiler.h
! 46fa213f3ad5327440d62134c29dbb18  libstdc++-v3/include/bits/regex_compiler.tcc
  fce0df5e6bf950f27228a12451fbd226  libstdc++-v3/include/bits/regex_constants.h
  6ca3bfbf5aafc309148a9ff8a58b7b80  libstdc++-v3/include/bits/regex_error.h
  d36de2845480e2dc51861df7b179eadc  libstdc++-v3/include/bits/regex_executor.h
! df3ef438d91412b71148268cb103fd3b  libstdc++-v3/include/bits/regex_executor.tcc
  15dd5944c7cd223ab035591c92c65fc5  libstdc++-v3/include/bits/regex_scanner.h
  27e294ed24336b703f9fb025b6d69f51  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
--- 133077,133091 ----
  13ab6526ab5b8cd5e9a7b12e6bf761f6  libstdc++-v3/include/bits/ranges_util.h
  222a1067e3c63fb19ed0996234a84884  libstdc++-v3/include/bits/refwrap.h
  5b95e35539d0071176396cd82a6072b7  libstdc++-v3/include/bits/regex.h
! e0c67a0c1d1048900a9de5bbfafd0409  libstdc++-v3/include/bits/regex.tcc
  8574b29ef7f78afa13942ca1525502d5  libstdc++-v3/include/bits/regex_automaton.h
! db6c4ceeaebe1bbdea30ce7e55390464  libstdc++-v3/include/bits/regex_automaton.tcc
! 880962cfcb3932b3a277cfa83a2cd955  libstdc++-v3/include/bits/regex_compiler.h
! 54dfcbf3783267b6229ab8b029ef5505  libstdc++-v3/include/bits/regex_compiler.tcc
  fce0df5e6bf950f27228a12451fbd226  libstdc++-v3/include/bits/regex_constants.h
  6ca3bfbf5aafc309148a9ff8a58b7b80  libstdc++-v3/include/bits/regex_error.h
  d36de2845480e2dc51861df7b179eadc  libstdc++-v3/include/bits/regex_executor.h
! cffd73f057e9c37be8d8f13e0e97c5c0  libstdc++-v3/include/bits/regex_executor.tcc
  15dd5944c7cd223ab035591c92c65fc5  libstdc++-v3/include/bits/regex_scanner.h
  27e294ed24336b703f9fb025b6d69f51  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
*************** e03c583ee7c5891df1c7b190275435c9  libstd
*** 133652,133658 ****
  01746ff9db8573f15b943b0c36cce6a8  libstdc++-v3/include/std/random
  e5f5a518f9ac990695882278e1955777  libstdc++-v3/include/std/ranges
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
! 400d95a1fd416911b5c47562d7a586cf  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
  d0ccdc68b53e4f9522c73c04bfb81928  libstdc++-v3/include/std/semaphore
  9b8d5c4868a64371c6591ccd2d8ae5f0  libstdc++-v3/include/std/set
--- 133744,133750 ----
  01746ff9db8573f15b943b0c36cce6a8  libstdc++-v3/include/std/random
  e5f5a518f9ac990695882278e1955777  libstdc++-v3/include/std/ranges
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
! 7d864de507d428ace2b6886ab9bb2610  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
  d0ccdc68b53e4f9522c73c04bfb81928  libstdc++-v3/include/std/semaphore
  9b8d5c4868a64371c6591ccd2d8ae5f0  libstdc++-v3/include/std/set
*************** ce747bb13a47b4ef33f5a3d2d11c472f  libstd
*** 133673,133679 ****
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  96f0baf96cfb63439fb481bbfb6b17da  libstdc++-v3/include/std/thread
! af3d3134c33d40c51e1d3493f1fb7cc4  libstdc++-v3/include/std/tuple
  4c9882efcebded2d01ce0997d67240ae  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
--- 133765,133771 ----
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  96f0baf96cfb63439fb481bbfb6b17da  libstdc++-v3/include/std/thread
! 4f791b866ab3bea65acaafbe47c37a04  libstdc++-v3/include/std/tuple
  4c9882efcebded2d01ce0997d67240ae  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
*************** ad7d8ce6072a5a6ebe5a27824b57cb45  libstd
*** 134046,134052 ****
  00b94d6669fba75f62da99691b48412e  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
  8ddbdc7435772874d921480508b7d635  libstdc++-v3/src/shared/hashtable-aux.cc
! 9f5552f4018925c716ba0a0498c09af9  libstdc++-v3/testsuite/17_intro/badnames.cc
  ecc5ca146d152b00b47e21b42b75654e  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
  345d73b159ab977cac2e2661993ce03a  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
--- 134138,134144 ----
  00b94d6669fba75f62da99691b48412e  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
  8ddbdc7435772874d921480508b7d635  libstdc++-v3/src/shared/hashtable-aux.cc
! c24f6a8a57a59ec8366bcb51e6aa6865  libstdc++-v3/testsuite/17_intro/badnames.cc
  ecc5ca146d152b00b47e21b42b75654e  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
  345d73b159ab977cac2e2661993ce03a  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
*************** d100df3b99954e5e2a1e25ac7967528c  libstd
*** 134072,134078 ****
  fa6dd9de47fc1161957dd77bcc925b13  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
  e4a354a67235724c5f38b1fc51630071  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
  1b083d4d975f6db8c98c387c2bf43571  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! 052973417959d5ac0ff9e2d890cfc8f0  libstdc++-v3/testsuite/17_intro/names.cc
  d4446489cc9fd961dbc2f15b2b21fca7  libstdc++-v3/testsuite/17_intro/names_fortify.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
  441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
--- 134164,134170 ----
  fa6dd9de47fc1161957dd77bcc925b13  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
  e4a354a67235724c5f38b1fc51630071  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
  1b083d4d975f6db8c98c387c2bf43571  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! 7326a37eb7e5ab2825d52ca1c772eabd  libstdc++-v3/testsuite/17_intro/names.cc
  d4446489cc9fd961dbc2f15b2b21fca7  libstdc++-v3/testsuite/17_intro/names_fortify.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
  441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
*************** b476188dcd60a78a354f813360a6615e  libstd
*** 135618,135623 ****
--- 135710,135716 ----
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
  187ef5eb9d79f3cb6e7970796ffabd33  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
  9a6dc1f9548e126de2581231c632a19f  libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc
+ acc813dd1edb9480437149d28cd4faf0  libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
  9fa494077b0931d8ef4ec90162b9567f  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
  24632668d622491f2552c805cb356772  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
  bd39d5b823bb9848e5a616ed07d127a6  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
*************** a6b63f76b9699e67684f422ed69846ea  libstd
*** 141364,141370 ****
  7ea53405296926a9dc506025eecceaa0  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
  1c2ad6f1c4280d73dac215f3581c07df  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
  dfbd1a31b7ec7e45e870d37fd51310d6  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! b6c9cf762295b0d7d88d4b954a0b445b  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
  1fcd1886ad09dcdaeb561247a69c7fe8  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
  c6faa575752439d2eed0745f81bb4e92  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
  fe6d2f1b3deda1d666cee906ed0a4dbf  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
--- 141457,141463 ----
  7ea53405296926a9dc506025eecceaa0  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
  1c2ad6f1c4280d73dac215f3581c07df  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
  dfbd1a31b7ec7e45e870d37fd51310d6  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! 1430640f4659c1e2b701ab23d92b8a3f  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
  1fcd1886ad09dcdaeb561247a69c7fe8  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
  c6faa575752439d2eed0745f81bb4e92  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
  fe6d2f1b3deda1d666cee906ed0a4dbf  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
*************** fe6d2f1b3deda1d666cee906ed0a4dbf  libstd
*** 141375,141381 ****
  5ac30c0a4dec6bc04be8a868164cf4c6  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
  aa9686b0c3bcd59574521b890fd352fa  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
  425887f80f14050dd767888a2c0dc3aa  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! eda39c39a10010a17f161490dce86444  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
  ca05d7f5bb0250803906816453df3b79  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
  820a5295b162a1df93b43517d5c33a75  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
  a12544c2b7c481a4e5018a8105a97909  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
--- 141468,141474 ----
  5ac30c0a4dec6bc04be8a868164cf4c6  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
  aa9686b0c3bcd59574521b890fd352fa  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
  425887f80f14050dd767888a2c0dc3aa  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! 03e0038484ccef853ec5c154873897e0  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
  ca05d7f5bb0250803906816453df3b79  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
  820a5295b162a1df93b43517d5c33a75  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
  a12544c2b7c481a4e5018a8105a97909  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
diff -Nrcpad gcc-15-20260307/gcc/ChangeLog gcc-15-20260314/gcc/ChangeLog
*** gcc-15-20260307/gcc/ChangeLog	Sat Mar  7 22:32:04 2026
--- gcc-15-20260314/gcc/ChangeLog	Sat Mar 14 22:32:05 2026
***************
*** 1,3 ****
--- 1,337 ----
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/124409
+ 	* doc/install.texi: Increment the required binutils for
+ 	riscv to 2.40.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/119568
+ 	* tree-ssa-math-opts.cc (convert_plusminus_to_widen): Reject different
+ 	mode classes.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-20  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121103
+ 	* gimple-fold.cc (gimple_fold_call): Don't simplify
+ 	noreturn functions.
+ 	* tree-ssa-dse.cc (dse_optimize_stmt): Don't handle
+ 	calls to noreturn functions.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/122170
+ 	* ifcvt.cc (noce_can_force_operand): Don't only check if
+ 	there is an optab for the code check the entry for the
+ 	mode is non-null. Handle non integral div by checking
+ 	optab like force_operand does.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/123294
+ 	* ifcvt.cc (noce_emit_store_flag): Reject modes
+ 	greater than MAX_FIXED_MODE_SIZE.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-01-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/123645
+ 	* tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Rewrite
+ 	the canonicalization of the args code based on e1/e2 being edges into
+ 	the join block.
+ 
+ 2026-03-10  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-24  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR target/124147
+ 	* config/riscv/autovec.md: Work around fractional-LMUL modes for
+ 	TARGET_XTHEADVECTOR.
+ 	* config/riscv/riscv-protos.h (get_m1_mode): Export.
+ 	* config/riscv/riscv-v.cc (get_m1_mode): Allow to get a VLS m1
+ 	vector.
+ 
+ 2026-03-10  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-26  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR target/122448
+ 	* config/riscv/riscv-vsetvl.cc (compute_reaching_defintion):
+ 	Rename...
+ 	(compute_reaching_definition): ...To this.
+ 	(pre_vsetvl::compute_vsetvl_def_data):  Compute reaching
+ 	definitions for vsetvl VL -> vsetvl AVL.
+ 	(pre_vsetvl::compute_transparent): Include VL uses.
+ 	(pre_vsetvl::fuse_local_vsetvl_info): Initialize m_reg_use_loc.
+ 	(pre_vsetvl::earliest_fuse_vsetvl_info): Don't hoist if any
+ 	successor would use VL.
+ 
+ 2026-03-09  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	PR target/112400
+ 	* config/vax/vax.md (casesi1): Wrap naked operand 1 with a USE
+ 	where used with the insn split to.
+ 	(*casesi1): Likewise naked incoming operand 1.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124135
+ 	* tree-inline.cc (expand_call_inline): If both gimple_call_lhs (stmt)
+ 	and use_retvar aren't gimple regs but have gimple reg type, use
+ 	separate load of use_retva into SSA_NAME and then store of it
+ 	into gimple_call_lhs (stmt).
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124358
+ 	* match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): Simplify
+ 	into (ptr) x p+ (y + z) instead.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124349
+ 	* config/i386/sse.md (iptrssebvec_2): New define_mode_attr.
+ 	(cvthf82ph<mode><mask_name>): Use it for -masm=intel input
+ 	operand.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124367
+ 	* config/i386/sse.md (*andnot<mode>3): Use 0x44 rather than $0x44
+ 	for -masm=intel.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124366
+ 	* config/i386/i386.md (@wrss<mode>, @wruss<mode>): Swap operand
+ 	order for -masm=intel.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124341
+ 	* config/i386/sse.md (vcvt<convertfp8_pack><mode><mask_name>): Use
+ 	<mask_operand3> rather than <mask_operand2> for -masm=intel.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124349
+ 	* config/i386/sse.md (avx10_2_comisbf16_v8bf): Use %w1 instead of %1
+ 	for -masm=intel.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124315
+ 	* config/i386/sse.md (avx512f_vmfmadd_<mode>_mask3<round_name>,
+ 	avx512f_vmfmsub_<mode>_mask3<round_name>,
+ 	avx512f_vmfnmadd_<mode>_mask3<round_name>,
+ 	avx512f_vmfnmsub_<mode>_mask3<round_name>): Use %<iptr>1 instead of
+ 	%<iptr>3 in -masm=intel syntax.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124335
+ 	* config/i386/sse.md (*avx512f_load<mode>_mask): Use %{%3%} instead of
+ 	%{3%} for -masm=intel syntax.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124294
+ 	* config/i386/sse.md (avx512fp16_mov<mode>): Fix ordering of operands
+ 	for -masm=intel for the avx10_2 alternative.  Fix up indentation in
+ 	the insn condition.
+ 	(vec_set<mode>_0): Fix comment typo, higer -> higher.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124138
+ 	* config/i386/i386.cc (avx_vpermilp_parallel): Verify
+ 	ipar[2] and ipar[3] aren't larger than 3.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/124056
+ 	* cfgexpand.cc (expand_asm_stmt): If after_md_seq is non-NULL, emit
+ 	it at the start of after_rtl_seq instead of after fallthru_label.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/116600
+ 	PR middle-end/123386
+ 	* cfgrtl.cc (force_nonfallthru_and_redirect): Don't do any
+ 	asm goto adjustments early, only note in asm_goto_edge if
+ 	any labels point originally to e->dest head.  After jumpblock
+ 	creation don't add an extra edge for asm_goto_edge, instead
+ 	adjust those labels pointing to former e->dest head to point
+ 	to jumpblock instead.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/123672
+ 	* tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq): Use std::swap
+ 	instead of fetching gimple_assign_rhs{1,2} again.  Change type of lanes
+ 	vector from auto_vec<unsigned int> to auto_vec<bool> and store true
+ 	instead of 1 into it.  Fix comment typo and formatting fix.
+ 	(can_blend_vec_perm_simplify_seqs_p): Put end of comment on the same
+ 	line as the last sentence in it.
+ 	(calc_perm_vec_perm_simplify_seqs): Change lane_assignment type from
+ 	auto_vec<int> to auto_vec<unsigned> and store 2 + l_orig into it
+ 	instead of true.  Fix comment typo and formatting fix.  Set use_seq1
+ 	to line_assignment[i] < 2 instead of line_assignment[i] != 2.  Replace
+ 	bogus computation of index for !use_seq with using
+ 	line_assignment[i] - 2.  Set l1 to l1 % nelts and similarly for l2.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/101312
+ 	* alias.cc (get_alias_set): Allow TYPE_CANONICAL (mv) to be
+ 	not its own TYPE_MAIN_VARIANT, as long as its TYPE_MAIN_VARIANT
+ 	has TYPE_CANONICAL equal to itself.
+ 	* tree.cc (verify_type): Likewise.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/123978
+ 	* range-op.h (OP_WIDEN_MULT_SIGNED_UNSIGNED): Define.
+ 	(OP_WIDEN_PLUS_SIGNED, OP_WIDEN_PLUS_UNSIGNED,
+ 	RANGE_OP_TABLE_SIZE): Renumber.
+ 	* gimple-range-op.cc (imple_range_op_handler::maybe_non_standard):
+ 	Use 3 different classes instead of 2 for WIDEN_MULT_EXPR, one
+ 	for both operands signed, one for both operands unsigned and
+ 	one for operands with different signedness.  In the last case
+ 	canonicalize to first operand signed second unsigned.
+ 	* range-op.cc (operator_widen_mult_signed::wi_fold): Use
+ 	TYPE_PRECISION (type) rather than wi::get_precision (whatever) * 2,
+ 	use SIGNED for all wide_int::from calls.
+ 	(operator_widen_mult_unsigned::wi_fold): Similarly but use UNSIGNED
+ 	for all wide_int::from calls.
+ 	(class operator_widen_mult_signed_unsigned): New type.
+ 	(operator_widen_mult_signed_unsigned::wi_fold): Define.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123818
+ 	* tree.cc (simple_cst_equal) <case CONSTRUCTOR>: Return -1 if some
+ 	recursive call returns -1.  Also compare indexes.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/122689
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): For the PHI handling
+ 	if min_prec == prec, break after emitting assignment from c.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121104
+ 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Punt if
+ 	lhs of ovf1 or ovf2 doesn't have element type compatible with type.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/123864
+ 	* match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
+ 	x > stype_max / cst || x < stype_min / cst): Only check
+ 	integer_minus_onep for signed types.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123790
+ 	* fold-const.cc (fold_convert_const): Handle conversion of
+ 	integer_zerop to NULLPTR_TYPE.
+ 	(fold_convert_loc): Likewise.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/123876
+ 	* omp-low.cc (diagnose_sb_2): Handle GIMPLE_ASM.
+ 
  2026-03-05  Xi Ruoyao  <xry111@xry111.site>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/gcc/DATESTAMP gcc-15-20260314/gcc/DATESTAMP
*** gcc-15-20260307/gcc/DATESTAMP	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/DATESTAMP	Sat Mar 14 22:32:06 2026
***************
*** 1 ****
! 20260307
--- 1 ----
! 20260314
diff -Nrcpad gcc-15-20260307/gcc/ada/Makefile.rtl gcc-15-20260314/gcc/ada/Makefile.rtl
*** gcc-15-20260307/gcc/ada/Makefile.rtl	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/ada/Makefile.rtl	Sat Mar 14 22:32:06 2026
*************** ifeq ($(strip $(filter-out s390% linux%,
*** 2030,2035 ****
--- 2030,2036 ----
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
+   MISCLIB = -ldl
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
*************** ifeq ($(strip $(filter-out arm% linux-gn
*** 2524,2529 ****
--- 2525,2531 ----
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-arm
    THREADSLIB = -lpthread
+   MISCLIB = -ldl
    GNATLIB_SHARED = gnatlib-shared-dual
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
*************** ifeq ($(strip $(filter-out %x32 linux%,$
*** 2965,2970 ****
--- 2967,2973 ----
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
    EH_MECHANISM=-gcc
    THREADSLIB=-lpthread -lrt
+   MISCLIB = -ldl
    GNATLIB_SHARED=gnatlib-shared-dual
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
diff -Nrcpad gcc-15-20260307/gcc/alias.cc gcc-15-20260314/gcc/alias.cc
*** gcc-15-20260307/gcc/alias.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/alias.cc	Sat Mar 14 22:32:06 2026
*************** get_alias_set (tree t)
*** 948,954 ****
    else
      {
        t = TYPE_CANONICAL (t);
!       gcc_checking_assert (!TYPE_STRUCTURAL_EQUALITY_P (t));
      }
  
    /* If this is a type with a known alias set, return it.  */
--- 948,959 ----
    else
      {
        t = TYPE_CANONICAL (t);
!       gcc_checking_assert (TYPE_CANONICAL (t) == t);
!       if (t != TYPE_MAIN_VARIANT (t))
! 	{
! 	  t = TYPE_MAIN_VARIANT (t);
! 	  gcc_checking_assert (TYPE_CANONICAL (t) == t);
! 	}
      }
  
    /* If this is a type with a known alias set, return it.  */
diff -Nrcpad gcc-15-20260307/gcc/c/ChangeLog gcc-15-20260314/gcc/c/ChangeLog
*** gcc-15-20260307/gcc/c/ChangeLog	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/c/ChangeLog	Sat Mar 14 22:32:06 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/123365
+ 	* c-decl.cc (build_compound_literal): Call relayout_decl
+ 	after completing the type.
+ 
  2025-12-11  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/gcc/c/c-decl.cc gcc-15-20260314/gcc/c/c-decl.cc
*** gcc-15-20260307/gcc/c/c-decl.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/c/c-decl.cc	Sat Mar 14 22:32:06 2026
*************** build_compound_literal (location_t loc,
*** 6539,6544 ****
--- 6539,6545 ----
  
        type = TREE_TYPE (decl);
        TREE_TYPE (DECL_INITIAL (decl)) = type;
+       relayout_decl (decl);
      }
  
    if (type == error_mark_node || !COMPLETE_TYPE_P (type))
diff -Nrcpad gcc-15-20260307/gcc/c-family/ChangeLog gcc-15-20260314/gcc/c-family/ChangeLog
*** gcc-15-20260307/gcc/c-family/ChangeLog	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/c-family/ChangeLog	Sat Mar 14 22:32:06 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR c/105555
+ 	* c-common.cc (fold_offsetof): Handle REALPART_EXPR
+ 	and IMAGPART_EXPR.
+ 
  2026-01-09  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/gcc/c-family/c-common.cc gcc-15-20260314/gcc/c-family/c-common.cc
*** gcc-15-20260307/gcc/c-family/c-common.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/c-family/c-common.cc	Sat Mar 14 22:32:06 2026
*************** fold_offsetof (tree expr, tree type, enu
*** 7138,7143 ****
--- 7138,7153 ----
      case ERROR_MARK:
        return expr;
  
+     case REALPART_EXPR:
+      return fold_offsetof (TREE_OPERAND (expr, 0), type, code);
+ 
+     case IMAGPART_EXPR:
+      base = fold_offsetof (TREE_OPERAND (expr, 0), type, code);
+      if (base == error_mark_node)
+ 	return base;
+      off = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (TREE_OPERAND (expr, 0))));
+      break;
+ 
      case VAR_DECL:
        error ("cannot apply %<offsetof%> to static data member %qD", expr);
        return error_mark_node;
diff -Nrcpad gcc-15-20260307/gcc/cfgexpand.cc gcc-15-20260314/gcc/cfgexpand.cc
*** gcc-15-20260307/gcc/cfgexpand.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/cfgexpand.cc	Sat Mar 14 22:32:06 2026
*************** expand_asm_stmt (gasm *stmt)
*** 3767,3779 ****
       Case in point is when the i386 backend moved from cc0 to a hard reg --
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
-   rtx_insn *after_md_seq = NULL;
    auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
!     after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
  				 constraints, use_rvec, clobber_rvec,
  				 clobbered_regs, locus);
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
--- 3767,3788 ----
       Case in point is when the i386 backend moved from cc0 to a hard reg --
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
    auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
!     {
!       rtx_insn *after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
  				 constraints, use_rvec, clobber_rvec,
  				 clobbered_regs, locus);
+       if (after_md_seq)
+ 	{
+ 	  push_to_sequence (after_md_seq);
+ 	  emit_insn (after_rtl_seq);
+ 	  after_rtl_seq = get_insns ();
+ 	  after_rtl_end = get_last_insn ();
+ 	  end_sequence ();
+ 	}
+     }
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
*************** expand_asm_stmt (gasm *stmt)
*** 3948,3955 ****
    if (fallthru_label)
      emit_label (fallthru_label);
  
-   if (after_md_seq)
-     emit_insn (after_md_seq);
    if (after_rtl_seq)
      {
        if (nlabels == 0)
--- 3957,3962 ----
diff -Nrcpad gcc-15-20260307/gcc/cfgrtl.cc gcc-15-20260314/gcc/cfgrtl.cc
*** gcc-15-20260307/gcc/cfgrtl.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/cfgrtl.cc	Sat Mar 14 22:32:06 2026
*************** force_nonfallthru_and_redirect (edge e,
*** 1594,1647 ****
      }
  
    /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
!      don't point to the target or fallthru label.  */
    if (JUMP_P (BB_END (e->src))
        && target != EXIT_BLOCK_PTR_FOR_FN (cfun)
        && (e->flags & EDGE_FALLTHRU)
        && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
      {
!       int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
!       bool adjust_jump_target = false;
  
!       for (i = 0; i < n; ++i)
! 	{
! 	  if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	    {
! 	      LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))--;
! 	      XEXP (ASM_OPERANDS_LABEL (note, i), 0) = block_label (target);
! 	      LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))++;
! 	      adjust_jump_target = true;
! 	    }
! 	  if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
  	    asm_goto_edge = true;
! 	}
!       if (adjust_jump_target)
! 	{
! 	  rtx_insn *insn = BB_END (e->src);
! 	  rtx note;
! 	  rtx_insn *old_label = BB_HEAD (e->dest);
! 	  rtx_insn *new_label = BB_HEAD (target);
! 
! 	  if (JUMP_LABEL (insn) == old_label)
! 	    {
! 	      JUMP_LABEL (insn) = new_label;
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	    }
! 	  else
! 	    {
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, old_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	      if (JUMP_LABEL (insn) != new_label
! 		  && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
! 		add_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	    }
! 	  while ((note = find_reg_note (insn, REG_LABEL_OPERAND, old_label))
! 		 != NULL_RTX)
! 	    XEXP (note, 0) = new_label;
! 	}
      }
  
    if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
--- 1594,1613 ----
      }
  
    /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
!      don't point to the fallthru label.  */
    if (JUMP_P (BB_END (e->src))
        && target != EXIT_BLOCK_PTR_FOR_FN (cfun)
        && (e->flags & EDGE_FALLTHRU)
        && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
      {
!       int n = ASM_OPERANDS_LABEL_LENGTH (note);
  
!       for (int i = 0; i < n; ++i)
! 	if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	  {
  	    asm_goto_edge = true;
! 	    break;
! 	  }
      }
  
    if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
*************** force_nonfallthru_and_redirect (edge e,
*** 1680,1694 ****
           and the reg crossing note should be removed.  */
        fixup_partition_crossing (new_edge);
  
!       /* If asm goto has any label refs to target's label,
! 	 add also edge from asm goto bb to target.  */
        if (asm_goto_edge)
  	{
! 	  new_edge->probability /= 2;
! 	  jump_block->count /= 2;
! 	  edge new_edge2 = make_edge (new_edge->src, target,
! 				      e->flags & ~EDGE_FALLTHRU);
! 	  new_edge2->probability = probability - new_edge->probability;
  	}
  
        new_bb = jump_block;
--- 1646,1690 ----
           and the reg crossing note should be removed.  */
        fixup_partition_crossing (new_edge);
  
!       /* If asm goto has any label refs to e->dest, change them to point
! 	 to jump_block instead.  */
        if (asm_goto_edge)
  	{
! 	  int n = ASM_OPERANDS_LABEL_LENGTH (note);
! 
! 	  for (int i = 0; i < n; ++i)
! 	    if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	      {
! 		LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))--;
! 		XEXP (ASM_OPERANDS_LABEL (note, i), 0)
! 		  = block_label (jump_block);
! 		LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))++;
! 	      }
! 
! 	  rtx_insn *insn = BB_END (new_edge->src);
! 	  rtx note;
! 	  rtx_insn *old_label = BB_HEAD (e->dest);
! 	  rtx_insn *new_label = BB_HEAD (jump_block);
! 
! 	  if (JUMP_LABEL (insn) == old_label)
! 	    {
! 	      JUMP_LABEL (insn) = new_label;
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	    }
! 	  else
! 	    {
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, old_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	      if (JUMP_LABEL (insn) != new_label
! 		  && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
! 		add_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	    }
! 	  while ((note = find_reg_note (insn, REG_LABEL_OPERAND, old_label))
! 		 != NULL_RTX)
! 	    XEXP (note, 0) = new_label;
  	}
  
        new_bb = jump_block;
diff -Nrcpad gcc-15-20260307/gcc/config/aarch64/aarch64-builtins.cc gcc-15-20260314/gcc/config/aarch64/aarch64-builtins.cc
*** gcc-15-20260307/gcc/config/aarch64/aarch64-builtins.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/config/aarch64/aarch64-builtins.cc	Sat Mar 14 22:32:06 2026
*************** aarch64_init_ls64_builtins_types (void)
*** 2294,2299 ****
--- 2294,2300 ----
    const char *tuple_type_name = "__arm_data512_t";
    tree node_type = get_typenode_from_name (UINT64_TYPE);
    tree array_type = build_array_type_nelts (node_type, 8);
+   array_type = build_distinct_type_copy (array_type);
    SET_TYPE_MODE (array_type, V8DImode);
  
    gcc_assert (TYPE_MODE_RAW (array_type) == TYPE_MODE (array_type));
diff -Nrcpad gcc-15-20260307/gcc/config/aarch64/aarch64-early-ra.cc gcc-15-20260314/gcc/config/aarch64/aarch64-early-ra.cc
*** gcc-15-20260307/gcc/config/aarch64/aarch64-early-ra.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/config/aarch64/aarch64-early-ra.cc	Sat Mar 14 22:32:06 2026
*************** early_ra::form_chains ()
*** 2733,2755 ****
    if (dump_file && (dump_flags & TDF_DETAILS))
      fprintf (dump_file, "\nChaining allocnos:\n");
  
!   // Perform (modified) interval graph coloring.  First sort by
!   // increasing start point.
!   m_sorted_allocnos.reserve (m_allocnos.length ());
!   m_sorted_allocnos.splice (m_allocnos);
!   m_sorted_allocnos.qsort (cmp_increasing<&allocno_info::start_point>);
! 
!   // During this phase, color representatives are only correct for
!   // unprocessed allocno groups (where the color representative is
!   // the group itself) and for groups that contain a current chain head.
!   unsigned int ti = 0;
!   auto_vec<chain_candidate_info> candidates;
!   for (unsigned int hi = 0; hi < m_sorted_allocnos.length (); ++hi)
      {
-       auto *allocno1 = m_sorted_allocnos[hi];
-       if (allocno1->chain_next != INVALID_ALLOCNO)
- 	continue;
- 
        // Record conflicts with direct uses for FPR hard registers.
        auto *group1 = allocno1->group ();
        for (unsigned int fpr = allocno1->offset; fpr < 32; ++fpr)
--- 2733,2742 ----
    if (dump_file && (dump_flags & TDF_DETAILS))
      fprintf (dump_file, "\nChaining allocnos:\n");
  
!   // Record conflicts of hard register and ABI conflicts before the
!   // forming of chains so chains have the updated candidates
!   for (auto *allocno1 : m_allocnos)
      {
        // Record conflicts with direct uses for FPR hard registers.
        auto *group1 = allocno1->group ();
        for (unsigned int fpr = allocno1->offset; fpr < 32; ++fpr)
*************** early_ra::form_chains ()
*** 2765,2770 ****
--- 2752,2780 ----
  	    auto fprs = partial_fpr_clobbers (abi_id, group1->fpr_size);
  	    group1->fpr_candidates &= ~fprs >> allocno1->offset;
  	  }
+       if (allocno1->is_shared ())
+ 	{
+ 	  auto *allocno2 = m_allocnos[allocno1->related_allocno];
+ 	  merge_fpr_info (allocno2->group (), group1, allocno2->offset);
+ 	}
+     }
+ 
+   // Perform (modified) interval graph coloring.  First sort by
+   // increasing start point.
+   m_sorted_allocnos.reserve (m_allocnos.length ());
+   m_sorted_allocnos.splice (m_allocnos);
+   m_sorted_allocnos.qsort (cmp_increasing<&allocno_info::start_point>);
+ 
+   // During this phase, color representatives are only correct for
+   // unprocessed allocno groups (where the color representative is
+   // the group itself) and for groups that contain a current chain head.
+   unsigned int ti = 0;
+   auto_vec<chain_candidate_info> candidates;
+   for (unsigned int hi = 0; hi < m_sorted_allocnos.length (); ++hi)
+     {
+       auto *allocno1 = m_sorted_allocnos[hi];
+       if (allocno1->chain_next != INVALID_ALLOCNO)
+ 	continue;
  
        if (allocno1->is_shared ())
  	{
*************** early_ra::form_chains ()
*** 2772,2779 ****
  	    fprintf (dump_file, "  Allocno %d shares the same hard register"
  		     " as allocno %d\n", allocno1->id,
  		     allocno1->related_allocno);
- 	  auto *allocno2 = m_allocnos[allocno1->related_allocno];
- 	  merge_fpr_info (allocno2->group (), group1, allocno2->offset);
  	  m_shared_allocnos.safe_push (allocno1);
  	  continue;
  	}
--- 2782,2787 ----
diff -Nrcpad gcc-15-20260307/gcc/config/aarch64/aarch64-sve-builtins.cc gcc-15-20260314/gcc/config/aarch64/aarch64-sve-builtins.cc
*** gcc-15-20260307/gcc/config/aarch64/aarch64-sve-builtins.cc	Sat Mar  7 22:32:05 2026
--- gcc-15-20260314/gcc/config/aarch64/aarch64-sve-builtins.cc	Sat Mar 14 22:32:06 2026
*************** public:
*** 92,98 ****
  };
  
  /* Hash traits for registered_function.  */
! struct registered_function_hasher : nofree_ptr_hash <registered_function>
  {
    typedef function_instance compare_type;
  
--- 92,98 ----
  };
  
  /* Hash traits for registered_function.  */
! struct registered_function_hasher : ggc_ptr_hash <registered_function>
  {
    typedef function_instance compare_type;
  
*************** tree acle_svprfop;
*** 1022,1033 ****
  static GTY(()) vec<registered_function *, va_gc> *registered_functions;
  
  /* Stores the starting function index for each pragma handler.  */
! static unsigned int initial_indexes[NUM_PRAGMA_HANDLERS];
  
  /* All registered function decls, hashed on the function_instance
     that they implement.  This is used for looking up implementations of
     overloaded functions.  */
! static hash_table<registered_function_hasher> *function_table;
  
  /* Index 0 maps all overloaded function names that we've registered so far to
     their associated function_instances.  Index 1 does the same for functions
--- 1022,1033 ----
  static GTY(()) vec<registered_function *, va_gc> *registered_functions;
  
  /* Stores the starting function index for each pragma handler.  */
! static  GTY(()) unsigned int initial_indexes[NUM_PRAGMA_HANDLERS];
  
  /* All registered function decls, hashed on the function_instance
     that they implement.  This is used for looking up implementations of
     overloaded functions.  */
! static GTY(()) hash_table<registered_function_hasher> *function_table;
  
  /* Index 0 maps all overloaded function names that we've registered so far to
     their associated function_instances.  Index 1 does the same for functions
*************** handle_arm_sve_h (bool function_nulls_p)
*** 4854,4860 ****
    register_svprfop ();
  
    /* Define the functions.  */
!   function_table = new hash_table<registered_function_hasher> (1023);
    function_builder builder (arm_sve_handle, function_nulls_p);
    for (unsigned int i = 0; i < ARRAY_SIZE (function_groups); ++i)
      builder.register_function_group (function_groups[i]);
--- 4854,4860 ----
    register_svprfop ();
  
    /* Define the functions.  */
!   function_table = hash_table<registered_function_hasher>::create_ggc (1023);
    function_builder builder (arm_sve_handle, function_nulls_p);
    for (unsigned int i = 0; i < ARRAY_SIZE (function_groups); ++i)
      builder.register_function_group (function_groups[i]);
diff -Nrcpad gcc-15-20260307/gcc/config/i386/i386.cc gcc-15-20260314/gcc/config/i386/i386.cc
*** gcc-15-20260307/gcc/config/i386/i386.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/i386/i386.cc	Sat Mar 14 22:32:06 2026
*************** avx_vpermilp_parallel (rtx par, machine_
*** 20246,20252 ****
  	}
        for (i = 2; i < 4; ++i)
  	{
! 	  if (ipar[i] < 2)
  	    return 0;
  	  mask |= (ipar[i] - 2) << i;
  	}
--- 20246,20252 ----
  	}
        for (i = 2; i < 4; ++i)
  	{
! 	  if (ipar[i] < 2 || ipar[i] >= 4)
  	    return 0;
  	  mask |= (ipar[i] - 2) << i;
  	}
diff -Nrcpad gcc-15-20260307/gcc/config/i386/i386.md gcc-15-20260314/gcc/config/i386/i386.md
*** gcc-15-20260307/gcc/config/i386/i386.md	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/i386/i386.md	Sat Mar 14 22:32:06 2026
***************
*** 29590,29596 ****
  		     (match_operand:SWI48 1 "memory_operand" "m")]
  		    UNSPECV_WRSS)]
    "TARGET_SHSTK"
!   "wrss<mskmodesuffix>\t%0, %1"
    [(set_attr "length" "3")
     (set_attr "type" "other")])
  
--- 29590,29596 ----
  		     (match_operand:SWI48 1 "memory_operand" "m")]
  		    UNSPECV_WRSS)]
    "TARGET_SHSTK"
!   "wrss<mskmodesuffix>\t{%0, %1|%1, %0}"
    [(set_attr "length" "3")
     (set_attr "type" "other")])
  
***************
*** 29599,29605 ****
  		     (match_operand:SWI48 1 "memory_operand" "m")]
  		    UNSPECV_WRUSS)]
    "TARGET_SHSTK"
!   "wruss<mskmodesuffix>\t%0, %1"
    [(set_attr "length" "4")
     (set_attr "type" "other")])
  
--- 29599,29605 ----
  		     (match_operand:SWI48 1 "memory_operand" "m")]
  		    UNSPECV_WRUSS)]
    "TARGET_SHSTK"
!   "wruss<mskmodesuffix>\t{%0, %1|%1, %0}"
    [(set_attr "length" "4")
     (set_attr "type" "other")])
  
***************
*** 30119,30125 ****
        [(match_operand:SWI1248x 1 "memory_operand" "m")]
        UNSPECV_MOVRS))]
    "TARGET_MOVRS && TARGET_64BIT"
!   "movrs<imodesuffix>\t{%1, %0|%0, %1}"
    [(set_attr "prefix" "orig")
     (set_attr "type" "other")
     (set_attr "mode" "<MODE>")])
--- 30119,30125 ----
        [(match_operand:SWI1248x 1 "memory_operand" "m")]
        UNSPECV_MOVRS))]
    "TARGET_MOVRS && TARGET_64BIT"
!   "movrs{<imodesuffix>}\t{%1, %0|%0, %1}"
    [(set_attr "prefix" "orig")
     (set_attr "type" "other")
     (set_attr "mode" "<MODE>")])
diff -Nrcpad gcc-15-20260307/gcc/config/i386/sse.md gcc-15-20260314/gcc/config/i386/sse.md
*** gcc-15-20260307/gcc/config/i386/sse.md	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/i386/sse.md	Sat Mar 14 22:32:06 2026
***************
*** 1722,1728 ****
  	  (match_operand:<ssevecmode> 4 "const0_operand")
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vmov<ssescalarmodesuffix>\t{%1, %0%{%3%}%N2|%0%{3%}%N2, %1}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "memory" "load")
--- 1722,1728 ----
  	  (match_operand:<ssevecmode> 4 "const0_operand")
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vmov<ssescalarmodesuffix>\t{%1, %0%{%3%}%N2|%0%{%3%}%N2, %1}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "memory" "load")
***************
*** 4890,4896 ****
  	    (match_operand:V8BF 1 "nonimmediate_operand" "vm")
  	    (parallel [(const_int 0)]))))]
    "TARGET_AVX10_2"
!   "vcomisbf16\t{%1, %0|%0, %1}"
    [(set_attr "prefix" "evex")
     (set_attr "type" "ssecomi")])
  
--- 4890,4896 ----
  	    (match_operand:V8BF 1 "nonimmediate_operand" "vm")
  	    (parallel [(const_int 0)]))))]
    "TARGET_AVX10_2"
!   "vcomisbf16\t{%1, %0|%0, %w1}"
    [(set_attr "prefix" "evex")
     (set_attr "type" "ssecomi")])
  
***************
*** 6693,6699 ****
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfmadd231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>3, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
--- 6693,6699 ----
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfmadd231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>1, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
***************
*** 6767,6773 ****
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfmsub231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>3, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
--- 6767,6773 ----
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfmsub231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>1, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
***************
*** 6828,6834 ****
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfnmadd231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>3, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
--- 6828,6834 ----
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfnmadd231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>1, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
***************
*** 6905,6911 ****
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfnmsub231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>3, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
--- 6905,6911 ----
  	  (match_dup 3)
  	  (const_int 1)))]
    "TARGET_AVX512F"
!   "vfnmsub231<ssescalarmodesuffix>\t{<round_op5>%2, %1, %0%{%4%}|%0%{%4%}, %<iptr>1, %<iptr>2<round_op5>}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
***************
*** 12034,12040 ****
    operands[2] = gen_lowpart (<ssescalarmode>mode, operands[2]);
  })
  
! ;; vmovw clears also the higer bits
  (define_insn "vec_set<mode>_0"
    [(set (match_operand:VI2F_256_512 0 "register_operand" "=v,v,v")
  	(vec_merge:VI2F_256_512
--- 12034,12040 ----
    operands[2] = gen_lowpart (<ssescalarmode>mode, operands[2]);
  })
  
! ;; vmovw clears also the higher bits
  (define_insn "vec_set<mode>_0"
    [(set (match_operand:VI2F_256_512 0 "register_operand" "=v,v,v")
  	(vec_merge:VI2F_256_512
***************
*** 12099,12108 ****
  	  (match_operand:V8_128 1 "reg_or_0_operand" "v,C")
  	  (const_int 1)))]
    "TARGET_AVX512FP16
!   || (TARGET_AVX10_2 && const0_operand (operands[1], <MODE>mode))"
    "@
      vmovsh\t{%2, %1, %0|%0, %1, %2}
!     vmovw\t{%2, %0|%2, %0}"
    [(set_attr "isa" "*,avx10_2")
     (set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
--- 12099,12108 ----
  	  (match_operand:V8_128 1 "reg_or_0_operand" "v,C")
  	  (const_int 1)))]
    "TARGET_AVX512FP16
!    || (TARGET_AVX10_2 && const0_operand (operands[1], <MODE>mode))"
    "@
      vmovsh\t{%2, %1, %0|%0, %1, %2}
!     vmovw\t{%2, %0|%0, %2}"
    [(set_attr "isa" "*,avx10_2")
     (set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
***************
*** 18544,18552 ****
        tmp = "pternlog";
        ssesuffix = "<ternlogsuffix>";
        if (which_alternative != 4 || TARGET_AVX512VL)
! 	ops = "v%s%s\t{$0x44, %%1, %%2, %%0|%%0, %%2, %%1, $0x44}";
        else
! 	ops = "v%s%s\t{$0x44, %%g1, %%g2, %%g0|%%g0, %%g2, %%g1, $0x44}";
        break;
      default:
        gcc_unreachable ();
--- 18544,18552 ----
        tmp = "pternlog";
        ssesuffix = "<ternlogsuffix>";
        if (which_alternative != 4 || TARGET_AVX512VL)
! 	ops = "v%s%s\t{$0x44, %%1, %%2, %%0|%%0, %%2, %%1, 0x44}";
        else
! 	ops = "v%s%s\t{$0x44, %%g1, %%g2, %%g0|%%g0, %%g2, %%g1, 0x44}";
        break;
      default:
        gcc_unreachable ();
***************
*** 31986,31997 ****
  	   (match_operand:VHF_AVX10_2 2 "nonimmediate_operand" "vm")]
  	  UNSPEC_CONVERTFP8_PACK))]
    "TARGET_AVX10_2"
!   "vcvt<convertfp8_pack>\t{%2, %1, %0<mask_operand3>|%0<mask_operand2>, %1, %2}"
    [(set_attr "prefix" "evex")])
  
  (define_mode_attr ssebvecmode_2
    [(V8HF "V16QI") (V16HF "V16QI") (V32HF "V32QI")])
  
  (define_int_iterator UNSPEC_VCVTBIASPH2FP8_PACK
     [UNSPEC_VCVTBIASPH2BF8 UNSPEC_VCVTBIASPH2BF8S
      UNSPEC_VCVTBIASPH2HF8 UNSPEC_VCVTBIASPH2HF8S])
--- 31986,32000 ----
  	   (match_operand:VHF_AVX10_2 2 "nonimmediate_operand" "vm")]
  	  UNSPEC_CONVERTFP8_PACK))]
    "TARGET_AVX10_2"
!   "vcvt<convertfp8_pack>\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
    [(set_attr "prefix" "evex")])
  
  (define_mode_attr ssebvecmode_2
    [(V8HF "V16QI") (V16HF "V16QI") (V32HF "V32QI")])
  
+ (define_mode_attr iptrssebvec_2
+   [(V8HF "q") (V16HF "") (V32HF "")])
+ 
  (define_int_iterator UNSPEC_VCVTBIASPH2FP8_PACK
     [UNSPEC_VCVTBIASPH2BF8 UNSPEC_VCVTBIASPH2BF8S
      UNSPEC_VCVTBIASPH2HF8 UNSPEC_VCVTBIASPH2HF8S])
***************
*** 32168,32174 ****
  	  [(match_operand:<ssebvecmode_2> 1 "nonimmediate_operand" "vm")]
  	  UNSPEC_VCVTHF82PH))]
    "TARGET_AVX10_2"
!   "vcvthf82ph\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
    [(set_attr "prefix" "evex")])
  
  (define_int_iterator VPDPWPROD
--- 32171,32177 ----
  	  [(match_operand:<ssebvecmode_2> 1 "nonimmediate_operand" "vm")]
  	  UNSPEC_VCVTHF82PH))]
    "TARGET_AVX10_2"
!   "vcvthf82ph\t{%1, %0<mask_operand2>|%0<mask_operand2>, %<iptrssebvec_2>1}"
    [(set_attr "prefix" "evex")])
  
  (define_int_iterator VPDPWPROD
diff -Nrcpad gcc-15-20260307/gcc/config/riscv/autovec.md gcc-15-20260314/gcc/config/riscv/autovec.md
*** gcc-15-20260307/gcc/config/riscv/autovec.md	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/riscv/autovec.md	Sat Mar 14 22:32:07 2026
***************
*** 420,428 ****
     (match_operand 1 "")]
    "TARGET_VECTOR"
    {
!     /* Expand into a QImode vector.  */
!     machine_mode qimode = riscv_vector::get_vector_mode
  	(QImode, GET_MODE_NUNITS (<MODE>mode)).require ();
      rtx tmp = gen_reg_rtx (qimode);
      riscv_vector::expand_vec_init (tmp, operands[1]);
  
--- 420,437 ----
     (match_operand 1 "")]
    "TARGET_VECTOR"
    {
!     /* Expand into a QImode vector.
!        For XTheadVector which does not have fractional-LMUL modes, we use
!        a full-size vector instead.  */
!     bool fractional_p = known_lt (GET_MODE_NUNITS (<MODE>mode),
! 				  BYTES_PER_RISCV_VECTOR);
!     machine_mode qimode;
!     if (!TARGET_XTHEADVECTOR || !fractional_p)
!       qimode = riscv_vector::get_vector_mode
  	(QImode, GET_MODE_NUNITS (<MODE>mode)).require ();
+     else
+       qimode = riscv_vector::get_m1_mode
+ 	(QImode, GET_MODE_NUNITS (<MODE>mode).is_constant ()).require ();
      rtx tmp = gen_reg_rtx (qimode);
      riscv_vector::expand_vec_init (tmp, operands[1]);
  
***************
*** 434,440 ****
      riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, ops);
  
      /* Compare against zero.  */
!     riscv_vector::expand_vec_cmp (operands[0], NE, tmp2, CONST0_RTX (qimode));
      DONE;
    }
  )
--- 443,454 ----
      riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, ops);
  
      /* Compare against zero.  */
!     rtx op0;
!     if (!TARGET_XTHEADVECTOR || !fractional_p)
!       op0 = operands[0];
!     else
!       op0 = gen_lowpart (riscv_vector::get_mask_mode (qimode), operands[0]);
!     riscv_vector::expand_vec_cmp (op0, NE, tmp2, CONST0_RTX (qimode));
      DONE;
    }
  )
***************
*** 1452,1466 ****
  	 [(match_operand	  2 "nonmemory_operand")])))]
    "TARGET_VECTOR"
  {
!   /* Create an empty byte vector and set it to one under mask.  */
!   machine_mode qimode = riscv_vector::get_vector_mode
!       (QImode, GET_MODE_NUNITS (<MODE>mode)).require ();
  
    rtx tmp1 = gen_reg_rtx (qimode);
    emit_move_insn (tmp1, gen_const_vec_duplicate (qimode, GEN_INT (0)));
    rtx ones = gen_const_vec_duplicate (qimode, GEN_INT (1));
  
!   rtx ops1[] = {tmp1, tmp1, ones, operands[1]};
    riscv_vector::emit_vlmax_insn (code_for_pred_merge (qimode),
  				 riscv_vector::MERGE_OP, ops1);
  
--- 1466,1495 ----
  	 [(match_operand	  2 "nonmemory_operand")])))]
    "TARGET_VECTOR"
  {
!   /* Create an empty byte vector and set it to one under mask.
!      For XTheadVector which does not have fractional-LMUL modes, we use
!      a full-size vector instead.  */
!   bool fractional_p = known_lt (GET_MODE_NUNITS (<MODE>mode),
! 				BYTES_PER_RISCV_VECTOR);
!   machine_mode qimode;
!   if (!TARGET_XTHEADVECTOR || !fractional_p)
!     qimode = riscv_vector::get_vector_mode
! 	(QImode, GET_MODE_NUNITS (<MODE>mode)).require ();
!   else
!     qimode = riscv_vector::get_m1_mode
! 	(QImode, GET_MODE_NUNITS (<MODE>mode).is_constant ()).require ();
  
    rtx tmp1 = gen_reg_rtx (qimode);
    emit_move_insn (tmp1, gen_const_vec_duplicate (qimode, GEN_INT (0)));
    rtx ones = gen_const_vec_duplicate (qimode, GEN_INT (1));
  
!   rtx op1;
!   if (!TARGET_XTHEADVECTOR || !fractional_p)
!     op1 = operands[1];
!   else
!     op1 = gen_lowpart (riscv_vector::get_mask_mode (qimode), operands[1]);
! 
!   rtx ops1[] = {tmp1, tmp1, ones, op1};
    riscv_vector::emit_vlmax_insn (code_for_pred_merge (qimode),
  				 riscv_vector::MERGE_OP, ops1);
  
diff -Nrcpad gcc-15-20260307/gcc/config/riscv/riscv-protos.h gcc-15-20260314/gcc/config/riscv/riscv-protos.h
*** gcc-15-20260307/gcc/config/riscv/riscv-protos.h	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/riscv/riscv-protos.h	Sat Mar 14 22:32:07 2026
*************** enum tail_policy get_prefer_tail_policy
*** 630,635 ****
--- 630,636 ----
  enum mask_policy get_prefer_mask_policy ();
  rtx get_avl_type_rtx (enum avl_type);
  opt_machine_mode get_lmul_mode (scalar_mode, int);
+ opt_machine_mode get_m1_mode (machine_mode, bool = false);
  opt_machine_mode get_vector_mode (scalar_mode, poly_uint64);
  opt_machine_mode get_tuple_mode (machine_mode, unsigned int);
  bool simm5_p (rtx);
diff -Nrcpad gcc-15-20260307/gcc/config/riscv/riscv-v.cc gcc-15-20260314/gcc/config/riscv/riscv-v.cc
*** gcc-15-20260307/gcc/config/riscv/riscv-v.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/riscv/riscv-v.cc	Sat Mar 14 22:32:07 2026
*************** get_lmul_mode (scalar_mode mode, int lmu
*** 1966,1979 ****
    return E_VOIDmode;
  }
  
! /* Return the appropriate M1 mode for MODE.  */
  
! static opt_machine_mode
! get_m1_mode (machine_mode mode)
  {
    scalar_mode smode = GET_MODE_INNER (mode);
    unsigned int bytes = GET_MODE_SIZE (smode);
!   poly_uint64 m1_nunits = exact_div (BYTES_PER_RISCV_VECTOR, bytes);
    return get_vector_mode (smode, m1_nunits);
  }
  
--- 1966,1984 ----
    return E_VOIDmode;
  }
  
! /* Return the appropriate LMUL1 mode for MODE.
!    If VLS_P is specified, get a VLS mode that represents a full
!    vector.  */
  
! opt_machine_mode
! get_m1_mode (machine_mode mode, bool vls_p)
  {
    scalar_mode smode = GET_MODE_INNER (mode);
    unsigned int bytes = GET_MODE_SIZE (smode);
!   poly_uint64 bytes_vector = BYTES_PER_RISCV_VECTOR;
!   if (vls_p)
!     bytes_vector = constant_lower_bound (bytes_vector);
!   poly_uint64 m1_nunits = exact_div (bytes_vector, bytes);
    return get_vector_mode (smode, m1_nunits);
  }
  
diff -Nrcpad gcc-15-20260307/gcc/config/riscv/riscv-vsetvl.cc gcc-15-20260314/gcc/config/riscv/riscv-vsetvl.cc
*** gcc-15-20260307/gcc/config/riscv/riscv-vsetvl.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/riscv/riscv-vsetvl.cc	Sat Mar 14 22:32:07 2026
*************** bitmap_union_of_preds_with_entry (sbitma
*** 131,137 ****
     information's in each Base Blocks.
     This function references the compute_available implementation in lcm.cc  */
  static void
! compute_reaching_defintion (sbitmap *gen, sbitmap *kill, sbitmap *in,
  			    sbitmap *out)
  {
    edge e;
--- 131,137 ----
     information's in each Base Blocks.
     This function references the compute_available implementation in lcm.cc  */
  static void
! compute_reaching_definition (sbitmap *gen, sbitmap *kill, sbitmap *in,
  			    sbitmap *out)
  {
    edge e;
*************** private:
*** 2263,2274 ****
--- 2263,2282 ----
    /* data for avl reaching definition.  */
    sbitmap *m_reg_def_loc;
  
+   /* Holds register uses per basic block.  Restricted to those registers that
+      are used as vsetvl destinations.  */
+   sbitmap *m_reg_use_loc;
+ 
    /* data for vsetvl info reaching definition.  */
    vsetvl_info m_unknown_info;
    auto_vec<vsetvl_info *> m_vsetvl_def_exprs;
    sbitmap *m_vsetvl_def_in;
    sbitmap *m_vsetvl_def_out;
  
+   /* Reaching data for vsetvl AVL operands.  */
+   sbitmap *m_vsetvl_avl_reach_in;
+   sbitmap *m_vsetvl_avl_reach_out;
+ 
    /* data for lcm */
    auto_vec<vsetvl_info *> m_exprs;
    sbitmap *m_avloc;
*************** private:
*** 2506,2512 ****
  
  public:
    pre_vsetvl ()
!     : m_vsetvl_def_in (nullptr), m_vsetvl_def_out (nullptr), m_avloc (nullptr),
        m_avin (nullptr), m_avout (nullptr), m_kill (nullptr), m_antloc (nullptr),
        m_transp (nullptr), m_insert (nullptr), m_del (nullptr), m_edges (nullptr)
    {
--- 2514,2523 ----
  
  public:
    pre_vsetvl ()
!     : m_reg_def_loc (nullptr), m_reg_use_loc (nullptr),
!       m_vsetvl_def_in (nullptr), m_vsetvl_def_out (nullptr),
!       m_vsetvl_avl_reach_in (nullptr), m_vsetvl_avl_reach_out (nullptr),
!       m_avloc (nullptr),
        m_avin (nullptr), m_avout (nullptr), m_kill (nullptr), m_antloc (nullptr),
        m_transp (nullptr), m_insert (nullptr), m_del (nullptr), m_edges (nullptr)
    {
*************** public:
*** 2522,2533 ****
--- 2533,2551 ----
  
      if (m_reg_def_loc)
        sbitmap_vector_free (m_reg_def_loc);
+     if (m_reg_use_loc)
+       sbitmap_vector_free (m_reg_use_loc);
  
      if (m_vsetvl_def_in)
        sbitmap_vector_free (m_vsetvl_def_in);
      if (m_vsetvl_def_out)
        sbitmap_vector_free (m_vsetvl_def_out);
  
+     if (m_vsetvl_avl_reach_in)
+       sbitmap_vector_free (m_vsetvl_avl_reach_in);
+     if (m_vsetvl_avl_reach_out)
+       sbitmap_vector_free (m_vsetvl_avl_reach_out);
+ 
      if (m_avloc)
        sbitmap_vector_free (m_avloc);
      if (m_kill)
*************** pre_vsetvl::compute_vsetvl_def_data ()
*** 2608,2613 ****
--- 2626,2635 ----
      sbitmap_vector_free (m_vsetvl_def_in);
    if (m_vsetvl_def_out)
      sbitmap_vector_free (m_vsetvl_def_out);
+   if (m_vsetvl_avl_reach_in)
+     sbitmap_vector_free (m_vsetvl_avl_reach_in);
+   if (m_vsetvl_avl_reach_out)
+     sbitmap_vector_free (m_vsetvl_avl_reach_out);
  
    sbitmap *def_loc = sbitmap_vector_alloc (last_basic_block_for_fn (cfun),
  					   m_vsetvl_def_exprs.length ());
*************** pre_vsetvl::compute_vsetvl_def_data ()
*** 2619,2624 ****
--- 2641,2651 ----
    m_vsetvl_def_out = sbitmap_vector_alloc (last_basic_block_for_fn (cfun),
  					   m_vsetvl_def_exprs.length ());
  
+   m_vsetvl_avl_reach_in
+     = sbitmap_vector_alloc (last_basic_block_for_fn (cfun), GP_REG_LAST + 1);
+   m_vsetvl_avl_reach_out
+     = sbitmap_vector_alloc (last_basic_block_for_fn (cfun), GP_REG_LAST + 1);
+ 
    bitmap_vector_clear (def_loc, last_basic_block_for_fn (cfun));
    bitmap_vector_clear (m_kill, last_basic_block_for_fn (cfun));
    bitmap_vector_clear (m_vsetvl_def_out, last_basic_block_for_fn (cfun));
*************** pre_vsetvl::compute_vsetvl_def_data ()
*** 2655,2662 ****
    bitmap_set_bit (m_vsetvl_def_out[entry->index],
  		  get_expr_index (m_vsetvl_def_exprs, m_unknown_info));
  
!   compute_reaching_defintion (def_loc, m_kill, m_vsetvl_def_in,
! 			      m_vsetvl_def_out);
  
    if (dump_file && (dump_flags & TDF_DETAILS))
      {
--- 2682,2689 ----
    bitmap_set_bit (m_vsetvl_def_out[entry->index],
  		  get_expr_index (m_vsetvl_def_exprs, m_unknown_info));
  
!   compute_reaching_definition (def_loc, m_kill, m_vsetvl_def_in,
! 			       m_vsetvl_def_out);
  
    if (dump_file && (dump_flags & TDF_DETAILS))
      {
*************** pre_vsetvl::compute_vsetvl_def_data ()
*** 2688,2693 ****
--- 2715,2741 ----
  
    sbitmap_vector_free (def_loc);
    sbitmap_vector_free (m_kill);
+ 
+   /* Now compute the reaching definitions for AVL operands.
+      We can reuse def_loc but index it by regnos now.  */
+   def_loc = sbitmap_vector_alloc (last_basic_block_for_fn (cfun),
+ 				  GP_REG_LAST + 1);
+ 
+   bitmap_vector_clear (def_loc, last_basic_block_for_fn (cfun));
+   bitmap_vector_clear (m_vsetvl_avl_reach_out, last_basic_block_for_fn (cfun));
+ 
+   for (const bb_info *bb : crtl->ssa->bbs ())
+     {
+       vsetvl_block_info &block_info = get_block_info (bb);
+       if (block_info.empty_p ())
+ 	continue;
+       vsetvl_info &info = block_info.get_exit_info ();
+       if (info.has_vl ())
+ 	bitmap_set_bit (def_loc[bb->index ()], REGNO (info.get_vl ()));
+     }
+ 
+   compute_reaching_definition (def_loc, m_reg_def_loc, m_vsetvl_avl_reach_in,
+ 			       m_vsetvl_avl_reach_out);
  }
  
  /* Subroutine of compute_lcm_local_properties which Compute local transparent
*************** pre_vsetvl::compute_transparent (const b
*** 2713,2722 ****
        if (info->has_nonvlmax_reg_avl ()
  	  && bitmap_bit_p (m_reg_def_loc[bb_index], REGNO (info->get_avl ())))
  	bitmap_clear_bit (m_transp[bb_index], i);
!       else if (info->has_vl ()
! 	       && bitmap_bit_p (m_reg_def_loc[bb_index],
! 				REGNO (info->get_vl ())))
! 	bitmap_clear_bit (m_transp[bb_index], i);
      }
  }
  
--- 2761,2779 ----
        if (info->has_nonvlmax_reg_avl ()
  	  && bitmap_bit_p (m_reg_def_loc[bb_index], REGNO (info->get_avl ())))
  	bitmap_clear_bit (m_transp[bb_index], i);
!       else if (info->has_vl ())
! 	{
! 	  /* If the VL reg is redefined, we cannot move a vsetvl past it.  */
! 	  if (bitmap_bit_p (m_reg_def_loc[bb_index],
! 			    REGNO (info->get_vl ())))
! 	    bitmap_clear_bit (m_transp[bb_index], i);
! 	  /* Same if there is a VL reg use that didn't come from a vsetvl.  */
! 	  else if (bitmap_bit_p (m_reg_use_loc[bb_index],
! 				 REGNO (info->get_vl ()))
! 		   && !bitmap_bit_p (m_vsetvl_avl_reach_in[bb_index],
! 				     REGNO (info->get_vl ())))
! 	    bitmap_clear_bit (m_transp[bb_index], i);
! 	}
      }
  }
  
*************** pre_vsetvl::fuse_local_vsetvl_info ()
*** 2852,2857 ****
--- 2909,2929 ----
    bitmap_vector_clear (m_reg_def_loc, last_basic_block_for_fn (cfun));
    bitmap_ones (m_reg_def_loc[ENTRY_BLOCK_PTR_FOR_FN (cfun)->index]);
  
+   m_reg_use_loc
+     = sbitmap_vector_alloc (last_basic_block_for_fn (cfun), GP_REG_LAST + 1);
+   bitmap_vector_clear (m_reg_use_loc, last_basic_block_for_fn (cfun));
+ 
+   /* No need to track all GPRs, just use those that are VL destinations.
+      Store them in a bitmap for filtering the uses later on.  */
+   auto_bitmap vsetvl_dest_regs;
+   for (bb_info *bb : crtl->ssa->bbs ())
+     for (insn_info *insn : bb->real_nondebug_insns ())
+       {
+ 	vsetvl_info info = vsetvl_info (insn);
+ 	if (info.valid_p () && info.has_vl ())
+ 	  bitmap_set_bit (vsetvl_dest_regs, REGNO (info.get_vl ()));
+       }
+ 
    for (bb_info *bb : crtl->ssa->bbs ())
      {
        auto &block_info = get_block_info (bb);
*************** pre_vsetvl::fuse_local_vsetvl_info ()
*** 2867,2877 ****
  	  if (curr_info.valid_p () || curr_info.unknown_p ())
  	    infos.safe_push (curr_info);
  
- 	  /* Collecting GP registers modified by the current bb.  */
  	  if (insn->is_real ())
! 	    for (def_info *def : insn->defs ())
! 	      if (def->is_reg () && GP_REG_P (def->regno ()))
! 		bitmap_set_bit (m_reg_def_loc[bb->index ()], def->regno ());
  	}
  
        vsetvl_info prev_info = vsetvl_info ();
--- 2939,2960 ----
  	  if (curr_info.valid_p () || curr_info.unknown_p ())
  	    infos.safe_push (curr_info);
  
  	  if (insn->is_real ())
! 	    {
! 	      /* Collect GPRs modified by the current bb.  */
! 	      for (def_info *def : insn->defs ())
! 		if (def->is_reg () && GP_REG_P (def->regno ()))
! 		  bitmap_set_bit (m_reg_def_loc[bb->index ()], def->regno ());
! 	      /* Collect non-vsetvl uses of GPRs.  */
! 	      if (!curr_info.valid_p ())
! 		{
! 		  for (use_info *use : insn->uses ())
! 		    if (use->is_reg () && GP_REG_P (use->regno ())
! 			&& bitmap_bit_p (vsetvl_dest_regs, use->regno ()))
! 		      bitmap_set_bit (m_reg_use_loc[bb->index ()],
! 				      use->regno ());
! 		}
! 	    }
  	}
  
        vsetvl_info prev_info = vsetvl_info ();
*************** pre_vsetvl::earliest_fuse_vsetvl_info (i
*** 3116,3125 ****
  	      if (!bitmap_bit_p (m_transp[eg->src->index], expr_index))
  		continue;
  
  	      if (dump_file && (dump_flags & TDF_DETAILS))
  		{
  		  fprintf (dump_file,
! 			   "      Set empty bb %u to info:", eg->src->index);
  		  curr_info.dump (dump_file, "        ");
  		}
  	      src_block_info.set_info (curr_info);
--- 3199,3241 ----
  	      if (!bitmap_bit_p (m_transp[eg->src->index], expr_index))
  		continue;
  
+ 	      /* Transparency tells us if we can move upwards without looking
+ 		 down.  It is still possible to clobber non-vsetvl uses
+ 		 that happen to share the vsetvl destination register of the
+ 		 vsetvl we are about to hoist.
+ 		 As we have computed the vsetvl VL dest -> vsetvl AVL reach
+ 		 before, we can check if our VL register is live-in for each
+ 		 successor and not reached by a vsetvl.  If so, we cannot
+ 		 hoist, as that would clobber the use.  */
+ 	      if (curr_info.has_vl ())
+ 		{
+ 		  edge succ;
+ 		  edge_iterator it;
+ 		  bool clobber = false;
+ 		  FOR_EACH_EDGE (succ, it, eg->src->succs)
+ 		    {
+ 		      if (succ->dest == eg->dest)
+ 			continue;
+ 		      if (bitmap_bit_p (df_get_live_in (succ->dest),
+ 					REGNO (curr_info.get_vl ()))
+ 			  && !bitmap_bit_p
+ 			  (m_vsetvl_avl_reach_in[succ->dest->index],
+ 			   REGNO (curr_info.get_vl ())))
+ 			{
+ 			  clobber = true;
+ 			  break;
+ 			}
+ 		    }
+ 		  if (clobber)
+ 		    continue;
+ 		}
+ 
+ 
  	      if (dump_file && (dump_flags & TDF_DETAILS))
  		{
  		  fprintf (dump_file,
! 			   "      Hoisting vsetvl info from bb %u to "
! 			   "bb %u: ", eg->dest->index, eg->src->index);
  		  curr_info.dump (dump_file, "        ");
  		}
  	      src_block_info.set_info (curr_info);
diff -Nrcpad gcc-15-20260307/gcc/config/vax/vax.md gcc-15-20260314/gcc/config/vax/vax.md
*** gcc-15-20260307/gcc/config/vax/vax.md	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/config/vax/vax.md	Sat Mar 14 22:32:07 2026
***************
*** 2909,2915 ****
    "#"
    "reload_completed"
    [(parallel
!      [(match_dup 1)
        (set (pc)
  	   (plus:SI (sign_extend:SI
  		      (mem:HI (plus:SI
--- 2909,2915 ----
    "#"
    "reload_completed"
    [(parallel
!      [(use (match_dup 1))
        (set (pc)
  	   (plus:SI (sign_extend:SI
  		      (mem:HI (plus:SI
***************
*** 2922,2928 ****
    "")
  
  (define_insn "*casesi1"
!   [(match_operand:SI 1 "const_int_operand" "n")
     (set (pc)
  	(plus:SI (sign_extend:SI
  		   (mem:HI (plus:SI
--- 2922,2928 ----
    "")
  
  (define_insn "*casesi1"
!   [(use (match_operand:SI 1 "const_int_operand" "n"))
     (set (pc)
  	(plus:SI (sign_extend:SI
  		   (mem:HI (plus:SI
diff -Nrcpad gcc-15-20260307/gcc/cp/ChangeLog gcc-15-20260314/gcc/cp/ChangeLog
*** gcc-15-20260307/gcc/cp/ChangeLog	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/ChangeLog	Sat Mar 14 22:32:07 2026
***************
*** 1,3 ****
--- 1,95 ----
+ 2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124309
+ 	* module.cc (enum module_directness): Fix inconsistent
+ 	capitalisation.
+ 	(module_state::read_imports): Reparent module locations newly
+ 	seen as direct via partition.
+ 
+ 2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124311
+ 	* module.cc (trees_in::key_mergeable): Check DECL_DEFAULTED_FN
+ 	instead of DECL_ARTIFICIAL.
+ 
+ 2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124431
+ 	* module.cc (trees_in::key_mergeable): Allow merging members of
+ 	template specialisations.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120685
+ 	* typeck2.cc (build_functional_cast_1): For C++23 auto(x)
+ 	without tf_warning or tf_error return error_mark_node instead of
+ 	emitting pedwarn and handling it.
+ 	* semantics.cc (finish_compound_literal): Similarly for C++26
+ 	auto{x}.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123889
+ 	* constexpr.cc (explain_invalid_constexpr_fn): Diagnose
+ 	NULL or error_mark_node massaged on non-constructor.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123578
+ 	* tree.cc (cxx_printable_name_internal): Call lang_decl_name before
+ 	finding the slot to cache it in and repeat search in the cache
+ 	after the call.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123737
+ 	* parser.cc (cp_parser_expression): Don't handle CPP_EMBED just
+ 	as the last byte in it if expression has or might have overloaded
+ 	type.  In that case call build_x_compound_expr for each byte
+ 	in CPP_EMBED separately.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123667
+ 	* semantics.cc (finish_decltype_type): Allow a structured binding
+ 	for ptds.saved to have DECL_HAS_VALUE_EXPR_P cleared, if it is
+ 	not within current_function_decl, but in that case assert that
+ 	lookup_decomp_type succeeded.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123684
+ 	* name-lookup.cc (handle_namespace_attrs): Only handle visibility and
+ 	abi_tag attributes in the gnu namespace and deprecated attribute in
+ 	the standard or gnu namespaces.
+ 
  2026-03-03  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/gcc/cp/constexpr.cc gcc-15-20260314/gcc/cp/constexpr.cc
*** gcc-15-20260307/gcc/cp/constexpr.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/constexpr.cc	Sat Mar 14 22:32:07 2026
*************** explain_invalid_constexpr_fn (tree fun)
*** 1114,1119 ****
--- 1114,1122 ----
  		  require_potential_rvalue_constant_expression (body);
  		}
  	    }
+ 	  else if (body == NULL_TREE || body == error_mark_node)
+ 	    error ("body of %<constexpr%> function %qD not a return-statement",
+ 		   fun);
  	}
      }
  }
diff -Nrcpad gcc-15-20260307/gcc/cp/module.cc gcc-15-20260314/gcc/cp/module.cc
*** gcc-15-20260307/gcc/cp/module.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/module.cc	Sat Mar 14 22:32:07 2026
*************** enum module_directness {
*** 3666,3672 ****
    MD_NONE,  		/* Not direct.  */
    MD_PARTITION_DIRECT,	/* Direct import of a partition.  */
    MD_DIRECT,		/* Direct import.  */
!   MD_PURVIEW_DIRECT,	/* direct import in purview.  */
  };
  
  /* State of a particular module. */
--- 3666,3672 ----
    MD_NONE,  		/* Not direct.  */
    MD_PARTITION_DIRECT,	/* Direct import of a partition.  */
    MD_DIRECT,		/* Direct import.  */
!   MD_PURVIEW_DIRECT,	/* Direct import in purview.  */
  };
  
  /* State of a particular module. */
*************** trees_in::key_mergeable (int tag, merge_
*** 11972,11983 ****
  
  	  case TYPE_DECL:
  	    gcc_checking_assert (!is_imported_temploid_friend);
  	    if (is_attached && !(state->is_module () || state->is_partition ())
! 		/* Implicit member functions can come from
! 		   anywhere.  */
! 		&& !(DECL_ARTIFICIAL (decl)
! 		     && TREE_CODE (decl) == FUNCTION_DECL
! 		     && !DECL_THUNK_P (decl)))
  	      kind = "unique";
  	    else
  	      {
--- 11972,11988 ----
  
  	  case TYPE_DECL:
  	    gcc_checking_assert (!is_imported_temploid_friend);
+ 	    int use_tmpl = 0;
  	    if (is_attached && !(state->is_module () || state->is_partition ())
! 		/* Implicit or in-class defaulted member functions
! 		   can come from anywhere.  */
! 		&& !(TREE_CODE (decl) == FUNCTION_DECL
! 		     && !DECL_THUNK_P (decl)
! 		     && DECL_DEFAULTED_FN (decl)
! 		     && !DECL_DEFAULTED_OUTSIDE_CLASS_P (decl))
! 		/* As can members of template specialisations.  */
! 		&& !(node_template_info (container, use_tmpl)
! 		     && use_tmpl != 0))
  	      kind = "unique";
  	    else
  	      {
*************** module_state::read_imports (bytes_in &se
*** 16149,16156 ****
  
  	  if (is_partition ())
  	    {
! 	      if (!imp->is_direct ())
! 		imp->directness = MD_PARTITION_DIRECT;
  	      if (exportedness > 0)
  		imp->exported_p = true;
  	    }
--- 16154,16164 ----
  
  	  if (is_partition ())
  	    {
! 	      if (!imp->is_direct () && !imp->is_partition_direct ())
! 		{
! 		  imp->directness = MD_PARTITION_DIRECT;
! 		  linemap_module_reparent (line_table, imp->loc, floc);
! 		}
  	      if (exportedness > 0)
  		imp->exported_p = true;
  	    }
diff -Nrcpad gcc-15-20260307/gcc/cp/name-lookup.cc gcc-15-20260314/gcc/cp/name-lookup.cc
*** gcc-15-20260307/gcc/cp/name-lookup.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/name-lookup.cc	Sat Mar 14 22:32:07 2026
*************** handle_namespace_attrs (tree ns, tree at
*** 6514,6520 ****
        tree name = get_attribute_name (d);
        tree args = TREE_VALUE (d);
  
!       if (is_attribute_p ("visibility", name))
  	{
  	  /* attribute visibility is a property of the syntactic block
  	     rather than the namespace as a whole, so we don't touch the
--- 6514,6521 ----
        tree name = get_attribute_name (d);
        tree args = TREE_VALUE (d);
  
!       if (is_attribute_p ("visibility", name)
! 	  && args != error_mark_node)
  	{
  	  /* attribute visibility is a property of the syntactic block
  	     rather than the namespace as a whole, so we don't touch the
*************** handle_namespace_attrs (tree ns, tree at
*** 6536,6542 ****
  	  push_visibility (TREE_STRING_POINTER (x), 1);
  	  saw_vis = true;
  	}
!       else if (is_attribute_p ("abi_tag", name))
  	{
  	  if (!DECL_NAME (ns))
  	    {
--- 6537,6544 ----
  	  push_visibility (TREE_STRING_POINTER (x), 1);
  	  saw_vis = true;
  	}
!       else if (is_attribute_p ("abi_tag", name)
! 	       && args != error_mark_node)
  	{
  	  if (!DECL_NAME (ns))
  	    {
*************** handle_namespace_attrs (tree ns, tree at
*** 6563,6569 ****
  	    DECL_ATTRIBUTES (ns) = tree_cons (name, args,
  					      DECL_ATTRIBUTES (ns));
  	}
!       else if (is_attribute_p ("deprecated", name))
  	{
  	  if (!DECL_NAME (ns))
  	    {
--- 6565,6572 ----
  	    DECL_ATTRIBUTES (ns) = tree_cons (name, args,
  					      DECL_ATTRIBUTES (ns));
  	}
!       else if (is_attribute_p ("deprecated", name)
! 	       && args != error_mark_node)
  	{
  	  if (!DECL_NAME (ns))
  	    {
diff -Nrcpad gcc-15-20260307/gcc/cp/parser.cc gcc-15-20260314/gcc/cp/parser.cc
*** gcc-15-20260307/gcc/cp/parser.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/parser.cc	Sat Mar 14 22:32:07 2026
*************** cp_parser_expression (cp_parser* parser,
*** 11268,11277 ****
  	     and one CPP_NUMBER plus CPP_COMMA before it and one
  	     CPP_COMMA plus CPP_NUMBER after it is guaranteed by
  	     the preprocessor.  Thus, parse the whole CPP_EMBED just
! 	     as a single INTEGER_CST, the last byte in it.  */
  	  tree raw_data = cp_lexer_peek_token (parser->lexer)->u.value;
  	  location_t loc = cp_lexer_peek_token (parser->lexer)->location;
  	  cp_lexer_consume_token (parser->lexer);
  	  assignment_expression
  	    = *raw_data_iterator (raw_data, RAW_DATA_LENGTH (raw_data) - 1);
  	  assignment_expression.set_location (loc);
--- 11268,11291 ----
  	     and one CPP_NUMBER plus CPP_COMMA before it and one
  	     CPP_COMMA plus CPP_NUMBER after it is guaranteed by
  	     the preprocessor.  Thus, parse the whole CPP_EMBED just
! 	     as a single INTEGER_CST, the last byte in it.  Though,
! 	     don't use that shortcut if the comma operator could be
! 	     overloaded.  */
  	  tree raw_data = cp_lexer_peek_token (parser->lexer)->u.value;
  	  location_t loc = cp_lexer_peek_token (parser->lexer)->location;
  	  cp_lexer_consume_token (parser->lexer);
+ 	  if (OVERLOAD_TYPE_P (TREE_TYPE (expression))
+ 	      || type_dependent_expression_p (expression))
+ 	    for (unsigned i = 0; i < RAW_DATA_LENGTH (raw_data) - 1U; ++i)
+ 	      {
+ 		assignment_expression
+ 		  = *raw_data_iterator (raw_data, i);
+ 		assignment_expression.set_location (loc);
+ 		expression
+ 		  = build_x_compound_expr (loc, expression,
+ 					   assignment_expression, NULL_TREE,
+ 					   complain_flags (decltype_p));
+ 	      }
  	  assignment_expression
  	    = *raw_data_iterator (raw_data, RAW_DATA_LENGTH (raw_data) - 1);
  	  assignment_expression.set_location (loc);
*************** cp_parser_omp_taskwait (cp_parser *parse
*** 48025,48031 ****
    if (clauses)
      {
        tree stmt = make_node (OMP_TASK);
!       TREE_TYPE (stmt) = void_node;
        OMP_TASK_CLAUSES (stmt) = clauses;
        OMP_TASK_BODY (stmt) = NULL_TREE;
        SET_EXPR_LOCATION (stmt, pragma_tok->location);
--- 48039,48045 ----
    if (clauses)
      {
        tree stmt = make_node (OMP_TASK);
!       TREE_TYPE (stmt) = void_type_node;
        OMP_TASK_CLAUSES (stmt) = clauses;
        OMP_TASK_BODY (stmt) = NULL_TREE;
        SET_EXPR_LOCATION (stmt, pragma_tok->location);
*************** cp_parser_omp_dispatch (cp_parser *parse
*** 50330,50336 ****
    if (depend_clauses != NULL_TREE)
      {
        tree stmt = make_node (OMP_TASK);
!       TREE_TYPE (stmt) = void_node;
        OMP_TASK_CLAUSES (stmt) = depend_clauses;
        OMP_TASK_BODY (stmt) = NULL_TREE;
        SET_EXPR_LOCATION (stmt, loc);
--- 50344,50350 ----
    if (depend_clauses != NULL_TREE)
      {
        tree stmt = make_node (OMP_TASK);
!       TREE_TYPE (stmt) = void_type_node;
        OMP_TASK_CLAUSES (stmt) = depend_clauses;
        OMP_TASK_BODY (stmt) = NULL_TREE;
        SET_EXPR_LOCATION (stmt, loc);
diff -Nrcpad gcc-15-20260307/gcc/cp/semantics.cc gcc-15-20260314/gcc/cp/semantics.cc
*** gcc-15-20260307/gcc/cp/semantics.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/semantics.cc	Sat Mar 14 22:32:07 2026
*************** finish_compound_literal (tree type, tree
*** 3834,3842 ****
  	  return error_mark_node;
  	}
        else if (cxx_dialect < cxx23)
! 	pedwarn (input_location, OPT_Wc__23_extensions,
! 		 "%<auto{x}%> only available with "
! 		 "%<-std=c++23%> or %<-std=gnu++23%>");
        type = do_auto_deduction (type, compound_literal, type, complain,
  				adc_variable_type);
        if (type == error_mark_node)
--- 3834,3845 ----
  	  return error_mark_node;
  	}
        else if (cxx_dialect < cxx23)
! 	{
! 	  if ((complain & tf_warning_or_error) != 0)
! 	    pedwarn (input_location, OPT_Wc__23_extensions,
! 		     "%<auto{x}%> only available with "
! 		     "%<-std=c++23%> or %<-std=gnu++23%>");
! 	}
        type = do_auto_deduction (type, compound_literal, type, complain,
  				adc_variable_type);
        if (type == error_mark_node)
*************** finish_decltype_type (tree expr, bool id
*** 12598,12609 ****
  	{
  	  if (ptds.saved)
  	    {
! 	      gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr));
  	      /* DECL_HAS_VALUE_EXPR_P is always set if
! 		 processing_template_decl.  If lookup_decomp_type
  		 returns non-NULL, it is the tuple case.  */
  	      if (tree ret = lookup_decomp_type (expr))
  		return ret;
  	    }
  	  if (DECL_HAS_VALUE_EXPR_P (expr))
  	    /* Expr is an array or struct subobject proxy, handle
--- 12601,12616 ----
  	{
  	  if (ptds.saved)
  	    {
! 	      gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr)
! 				   || (DECL_CONTEXT (expr)
! 				       != current_function_decl));
  	      /* DECL_HAS_VALUE_EXPR_P is always set if
! 		 processing_template_decl at least for structured bindings
! 		 within the template.  If lookup_decomp_type
  		 returns non-NULL, it is the tuple case.  */
  	      if (tree ret = lookup_decomp_type (expr))
  		return ret;
+ 	      gcc_checking_assert (DECL_HAS_VALUE_EXPR_P (expr));
  	    }
  	  if (DECL_HAS_VALUE_EXPR_P (expr))
  	    /* Expr is an array or struct subobject proxy, handle
diff -Nrcpad gcc-15-20260307/gcc/cp/tree.cc gcc-15-20260314/gcc/cp/tree.cc
*** gcc-15-20260307/gcc/cp/tree.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/tree.cc	Sat Mar 14 22:32:07 2026
*************** cxx_printable_name_internal (tree decl,
*** 2831,2836 ****
--- 2831,2845 ----
        /* yes, so return it.  */
        return print_ring[i];
  
+   const char *ret = lang_decl_name (decl, v, translate);
+ 
+   /* The lang_decl_name call could have called this function recursively,
+      so check again.  */
+   for (i = 0; i < PRINT_RING_SIZE; i++)
+     if (uid_ring[i] == DECL_UID (decl) && translate == trans_ring[i])
+       /* yes, so return it.  */
+       return print_ring[i];
+ 
    if (++ring_counter == PRINT_RING_SIZE)
      ring_counter = 0;
  
*************** cxx_printable_name_internal (tree decl,
*** 2850,2856 ****
  
    free (print_ring[ring_counter]);
  
!   print_ring[ring_counter] = xstrdup (lang_decl_name (decl, v, translate));
    uid_ring[ring_counter] = DECL_UID (decl);
    trans_ring[ring_counter] = translate;
    return print_ring[ring_counter];
--- 2859,2865 ----
  
    free (print_ring[ring_counter]);
  
!   print_ring[ring_counter] = xstrdup (ret);
    uid_ring[ring_counter] = DECL_UID (decl);
    trans_ring[ring_counter] = translate;
    return print_ring[ring_counter];
diff -Nrcpad gcc-15-20260307/gcc/cp/typeck2.cc gcc-15-20260314/gcc/cp/typeck2.cc
*** gcc-15-20260307/gcc/cp/typeck2.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/cp/typeck2.cc	Sat Mar 14 22:32:07 2026
*************** build_functional_cast_1 (location_t loc,
*** 2509,2517 ****
  	      return error_mark_node;
  	    }
  	  else if (cxx_dialect < cxx23)
! 	    pedwarn (loc, OPT_Wc__23_extensions,
! 		     "%<auto(x)%> only available with "
! 		     "%<-std=c++23%> or %<-std=gnu++23%>");
  	}
        else
  	{
--- 2509,2520 ----
  	      return error_mark_node;
  	    }
  	  else if (cxx_dialect < cxx23)
! 	    {
! 	      if ((complain & tf_warning_or_error) != 0)
! 		pedwarn (loc, OPT_Wc__23_extensions,
! 			 "%<auto(x)%> only available with "
! 			 "%<-std=c++23%> or %<-std=gnu++23%>");
! 	    }
  	}
        else
  	{
diff -Nrcpad gcc-15-20260307/gcc/doc/install.texi gcc-15-20260314/gcc/doc/install.texi
*** gcc-15-20260307/gcc/doc/install.texi	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/doc/install.texi	Sat Mar 14 22:32:07 2026
*************** This configuration is intended for embed
*** 4821,4827 ****
  @heading riscv32-*-elf
  The RISC-V RV32 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  
  @html
  <hr />
--- 4821,4827 ----
  @heading riscv32-*-elf
  The RISC-V RV32 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  
  @html
  <hr />
*************** This (and all other RISC-V) targets requ
*** 4829,4835 ****
  @anchor{riscv32-x-linux}
  @heading riscv32-*-linux
  The RISC-V RV32 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  
  @html
  <hr />
--- 4829,4835 ----
  @anchor{riscv32-x-linux}
  @heading riscv32-*-linux
  The RISC-V RV32 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  
  @html
  <hr />
*************** This (and all other RISC-V) targets requ
*** 4838,4844 ****
  @heading riscv64-*-elf
  The RISC-V RV64 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  
  @html
  <hr />
--- 4838,4844 ----
  @heading riscv64-*-elf
  The RISC-V RV64 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  
  @html
  <hr />
*************** This (and all other RISC-V) targets requ
*** 4846,4852 ****
  @anchor{riscv64-x-linux}
  @heading riscv64-*-linux
  The RISC-V RV64 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  
  @html
  <hr />
--- 4846,4852 ----
  @anchor{riscv64-x-linux}
  @heading riscv64-*-linux
  The RISC-V RV64 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  
  @html
  <hr />
diff -Nrcpad gcc-15-20260307/gcc/fold-const.cc gcc-15-20260314/gcc/fold-const.cc
*** gcc-15-20260307/gcc/fold-const.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/fold-const.cc	Sat Mar 14 22:32:07 2026
*************** fold_convert_const (enum tree_code code,
*** 2559,2564 ****
--- 2559,2566 ----
  	  return v.build ();
  	}
      }
+   else if (TREE_CODE (type) == NULLPTR_TYPE && integer_zerop (arg1))
+     return build_zero_cst (type);
    return NULL_TREE;
  }
  
*************** fold_convert_loc (location_t loc, tree t
*** 2781,2786 ****
--- 2783,2792 ----
        tem = fold_ignored_result (arg);
        return fold_build1_loc (loc, NOP_EXPR, type, tem);
  
+     case NULLPTR_TYPE:
+       if (integer_zerop (arg))
+ 	return build_zero_cst (type);
+       /* FALLTHRU */
      default:
        if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (orig))
  	return fold_build1_loc (loc, NOP_EXPR, type, arg);
diff -Nrcpad gcc-15-20260307/gcc/fortran/trans-decl.cc gcc-15-20260314/gcc/fortran/trans-decl.cc
*** gcc-15-20260307/gcc/fortran/trans-decl.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/fortran/trans-decl.cc	Sat Mar 14 22:32:07 2026
*************** build_function_decl (gfc_symbol * sym, b
*** 2519,2524 ****
--- 2519,2526 ----
    gcc_assert (current_function_decl == NULL_TREE
  	      || DECL_FILE_SCOPE_P (current_function_decl)
  	      || (TREE_CODE (DECL_CONTEXT (current_function_decl))
+ 		  == FUNCTION_DECL)
+ 	      || (TREE_CODE (DECL_CONTEXT (current_function_decl))
  		  == NAMESPACE_DECL));
  
    type = gfc_get_function_type (sym);
diff -Nrcpad gcc-15-20260307/gcc/fortran/trans-io.cc gcc-15-20260314/gcc/fortran/trans-io.cc
*** gcc-15-20260307/gcc/fortran/trans-io.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/fortran/trans-io.cc	Sat Mar 14 22:32:07 2026
*************** transfer_expr (gfc_se * se, gfc_typespec
*** 2511,2517 ****
  
  		  if (c->attr.dimension)
  		    {
! 		      tmp = transfer_array_component (tmp, c, & code->loc);
  		      gfc_add_expr_to_block (&se->pre, tmp);
  		    }
  		  else
--- 2511,2519 ----
  
  		  if (c->attr.dimension)
  		    {
! 		      tmp = transfer_array_component (tmp, c,
! 						      code ? &code->loc
! 						      : NULL);
  		      gfc_add_expr_to_block (&se->pre, tmp);
  		    }
  		  else
diff -Nrcpad gcc-15-20260307/gcc/gimple-fold.cc gcc-15-20260314/gcc/gimple-fold.cc
*** gcc-15-20260307/gcc/gimple-fold.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/gimple-fold.cc	Sat Mar 14 22:32:07 2026
*************** gimple_fold_call (gimple_stmt_iterator *
*** 5913,5918 ****
--- 5913,5922 ----
    if (inplace)
      return changed;
  
+   /* Don't constant fold functions which can change the control. */
+   if (gimple_call_ctrl_altering_p (stmt))
+     return changed;
+ 
    /* Check for builtins that CCP can handle using information not
       available in the generic fold routines.  */
    if (gimple_call_builtin_p (stmt, BUILT_IN_NORMAL))
diff -Nrcpad gcc-15-20260307/gcc/gimple-lower-bitint.cc gcc-15-20260314/gcc/gimple-lower-bitint.cc
*** gcc-15-20260307/gcc/gimple-lower-bitint.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/gimple-lower-bitint.cc	Sat Mar 14 22:32:07 2026
*************** gimple_lower_bitint (void)
*** 7139,7144 ****
--- 7139,7149 ----
  							   vtype, c));
  			}
  		      gsi_insert_on_edge (e, g);
+ 		      if (min_prec == prec)
+ 			{
+ 			  edge_insertions = true;
+ 			  break;
+ 			}
  		    }
  		  if (ext == 0)
  		    {
diff -Nrcpad gcc-15-20260307/gcc/gimple-range-op.cc gcc-15-20260314/gcc/gimple-range-op.cc
*** gcc-15-20260307/gcc/gimple-range-op.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/gimple-range-op.cc	Sat Mar 14 22:32:07 2026
*************** gimple_range_op_handler::maybe_non_stand
*** 1347,1383 ****
    gcc_checking_assert (signed_op);
    range_op_handler unsigned_op (OP_WIDEN_MULT_UNSIGNED);
    gcc_checking_assert (unsigned_op);
  
    if (gimple_code (m_stmt) == GIMPLE_ASSIGN)
      switch (gimple_assign_rhs_code (m_stmt))
        {
  	case WIDEN_MULT_EXPR:
- 	{
  	  m_op1 = gimple_assign_rhs1 (m_stmt);
  	  m_op2 = gimple_assign_rhs2 (m_stmt);
! 	  tree ret = gimple_assign_lhs (m_stmt);
! 	  bool signed1 = TYPE_SIGN (TREE_TYPE (m_op1)) == SIGNED;
! 	  bool signed2 = TYPE_SIGN (TREE_TYPE (m_op2)) == SIGNED;
! 	  bool signed_ret = TYPE_SIGN (TREE_TYPE (ret)) == SIGNED;
! 
! 	  /* Normally these operands should all have the same sign, but
! 	     some passes and violate this by taking mismatched sign args.  At
! 	     the moment the only one that's possible is mismatch inputs and
! 	     unsigned output.  Once ranger supports signs for the operands we
! 	     can properly fix it,  for now only accept the case we can do
! 	     correctly.  */
! 	  if ((signed1 ^ signed2) && signed_ret)
! 	    return;
! 
! 	  if (signed2 && !signed1)
! 	    std::swap (m_op1, m_op2);
  
! 	  if (signed1 || signed2)
  	    m_operator = signed_op.range_op ();
  	  else
  	    m_operator = unsigned_op.range_op ();
  	  break;
! 	}
  	default:
  	  break;
        }
--- 1347,1377 ----
    gcc_checking_assert (signed_op);
    range_op_handler unsigned_op (OP_WIDEN_MULT_UNSIGNED);
    gcc_checking_assert (unsigned_op);
+   range_op_handler signed_unsigned_op (OP_WIDEN_MULT_SIGNED_UNSIGNED);
+   gcc_checking_assert (signed_unsigned_op);
+   bool signed1, signed2;
  
    if (gimple_code (m_stmt) == GIMPLE_ASSIGN)
      switch (gimple_assign_rhs_code (m_stmt))
        {
  	case WIDEN_MULT_EXPR:
  	  m_op1 = gimple_assign_rhs1 (m_stmt);
  	  m_op2 = gimple_assign_rhs2 (m_stmt);
! 	  signed1 = TYPE_SIGN (TREE_TYPE (m_op1)) == SIGNED;
! 	  signed2 = TYPE_SIGN (TREE_TYPE (m_op2)) == SIGNED;
  
! 	  if (signed1 != signed2)
! 	    {
! 	      if (signed2 && !signed1)
! 		std::swap (m_op1, m_op2);
! 	      m_operator = signed_unsigned_op.range_op ();
! 	    }
! 	  else if (signed1)
  	    m_operator = signed_op.range_op ();
  	  else
  	    m_operator = unsigned_op.range_op ();
  	  break;
! 
  	default:
  	  break;
        }
diff -Nrcpad gcc-15-20260307/gcc/ifcvt.cc gcc-15-20260314/gcc/ifcvt.cc
*** gcc-15-20260307/gcc/ifcvt.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/ifcvt.cc	Sat Mar 14 22:32:07 2026
*************** noce_emit_store_flag (struct noce_if_inf
*** 893,898 ****
--- 893,902 ----
    if (cond_complex || !SCALAR_INT_MODE_P (GET_MODE (x)))
      return NULL_RTX;
  
+   /* Don't try if mode of X is more than the max fixed mode size.  */
+   if (known_le (MAX_FIXED_MODE_SIZE, GET_MODE_BITSIZE (GET_MODE (x))))
+     return NULL_RTX;
+ 
    return emit_store_flag (x, code, XEXP (cond, 0),
  			  XEXP (cond, 1), VOIDmode,
  			  (code == LTU || code == LEU
*************** noce_can_force_operand (rtx x)
*** 921,933 ****
        switch (GET_CODE (x))
  	{
  	case MULT:
- 	case DIV:
  	case MOD:
  	case UDIV:
  	case UMOD:
  	  return true;
  	default:
! 	  return code_to_optab (GET_CODE (x));
  	}
      }
    if (UNARY_P (x))
--- 925,943 ----
        switch (GET_CODE (x))
  	{
  	case MULT:
  	case MOD:
  	case UDIV:
  	case UMOD:
  	  return true;
+ 	case DIV:
+ 	  if (INTEGRAL_MODE_P (GET_MODE (x)))
+ 	    return true;
+ 	  /* FALLTHRU */
  	default:
! 	  auto optab = code_to_optab (GET_CODE (x));
! 	  if (!optab)
! 	    return false;
! 	  return optab_handler (optab, GET_MODE (x));
  	}
      }
    if (UNARY_P (x))
*************** noce_can_force_operand (rtx x)
*** 947,953 ****
  	case UNSIGNED_FLOAT:
  	  return true;
  	default:
! 	  return code_to_optab (GET_CODE (x));
  	}
      }
    return false;
--- 957,966 ----
  	case UNSIGNED_FLOAT:
  	  return true;
  	default:
! 	  auto optab = code_to_optab (GET_CODE (x));
! 	  if (!optab)
! 	    return false;
! 	  return optab_handler (optab, GET_MODE (x));
  	}
      }
    return false;
diff -Nrcpad gcc-15-20260307/gcc/match.pd gcc-15-20260314/gcc/match.pd
*** gcc-15-20260307/gcc/match.pd	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/match.pd	Sat Mar 14 22:32:07 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 3006,3012 ****
  #if GENERIC
  (simplify
    (pointer_plus (convert:s (pointer_plus:s @0 @1)) @3)
!   (convert:type (pointer_plus @0 (plus @1 @3))))
  #endif
  
  /* Pattern match
--- 3006,3012 ----
  #if GENERIC
  (simplify
    (pointer_plus (convert:s (pointer_plus:s @0 @1)) @3)
!   (pointer_plus (convert:type @0) (plus @1 @3)))
  #endif
  
  /* Pattern match
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 8269,8275 ****
     (if (TYPE_UNSIGNED (TREE_TYPE (@0)))
      (convert (gt @0 (trunc_div! { TYPE_MAX_VALUE (TREE_TYPE (@0)); } @1)))
      (if (TYPE_MIN_VALUE (TREE_TYPE (@0)))
!      (if (integer_minus_onep (@1))
        (convert (eq @0 { TYPE_MIN_VALUE (TREE_TYPE (@0)); }))
        (with
         {
--- 8269,8275 ----
     (if (TYPE_UNSIGNED (TREE_TYPE (@0)))
      (convert (gt @0 (trunc_div! { TYPE_MAX_VALUE (TREE_TYPE (@0)); } @1)))
      (if (TYPE_MIN_VALUE (TREE_TYPE (@0)))
!      (if (!TYPE_UNSIGNED (TREE_TYPE (@1)) && integer_minus_onep (@1))
        (convert (eq @0 { TYPE_MIN_VALUE (TREE_TYPE (@0)); }))
        (with
         {
diff -Nrcpad gcc-15-20260307/gcc/omp-low.cc gcc-15-20260314/gcc/omp-low.cc
*** gcc-15-20260307/gcc/omp-low.cc	Sat Mar  7 22:32:06 2026
--- gcc-15-20260314/gcc/omp-low.cc	Sat Mar 14 22:32:07 2026
*************** diagnose_sb_2 (gimple_stmt_iterator *gsi
*** 15384,15389 ****
--- 15384,15402 ----
        }
        break;
  
+     case GIMPLE_ASM:
+       {
+ 	gasm *asm_stmt = as_a <gasm *> (stmt);
+ 	for (unsigned i = 0; i < gimple_asm_nlabels (asm_stmt); ++i)
+ 	  {
+ 	    tree lab = TREE_VALUE (gimple_asm_label_op (asm_stmt, i));
+ 	    n = splay_tree_lookup (all_labels, (splay_tree_key) lab);
+ 	    if (n && diagnose_sb_0 (gsi_p, context, (gimple *) n->value))
+ 	      break;
+ 	  }
+       }
+       break;
+ 
      case GIMPLE_RETURN:
        diagnose_sb_0 (gsi_p, context, NULL);
        break;
diff -Nrcpad gcc-15-20260307/gcc/range-op.cc gcc-15-20260314/gcc/range-op.cc
*** gcc-15-20260307/gcc/range-op.cc	Sat Mar  7 22:32:07 2026
--- gcc-15-20260314/gcc/range-op.cc	Sat Mar 14 22:32:08 2026
*************** operator_widen_mult_signed::wi_fold (ira
*** 2367,2378 ****
  				     const wide_int &rh_lb,
  				     const wide_int &rh_ub) const
  {
!   signop s = TYPE_SIGN (type);
! 
!   wide_int lh_wlb = wide_int::from (lh_lb, wi::get_precision (lh_lb) * 2, SIGNED);
!   wide_int lh_wub = wide_int::from (lh_ub, wi::get_precision (lh_ub) * 2, SIGNED);
!   wide_int rh_wlb = wide_int::from (rh_lb, wi::get_precision (rh_lb) * 2, s);
!   wide_int rh_wub = wide_int::from (rh_ub, wi::get_precision (rh_ub) * 2, s);
  
    /* We don't expect a widening multiplication to be able to overflow but range
       calculations for multiplications are complicated.  After widening the
--- 2367,2376 ----
  				     const wide_int &rh_lb,
  				     const wide_int &rh_ub) const
  {
!   wide_int lh_wlb = wide_int::from (lh_lb, TYPE_PRECISION (type), SIGNED);
!   wide_int lh_wub = wide_int::from (lh_ub, TYPE_PRECISION (type), SIGNED);
!   wide_int rh_wlb = wide_int::from (rh_lb, TYPE_PRECISION (type), SIGNED);
!   wide_int rh_wub = wide_int::from (rh_ub, TYPE_PRECISION (type), SIGNED);
  
    /* We don't expect a widening multiplication to be able to overflow but range
       calculations for multiplications are complicated.  After widening the
*************** operator_widen_mult_signed::wi_fold (ira
*** 2380,2386 ****
    return op_mult.wi_fold (r, type, lh_wlb, lh_wub, rh_wlb, rh_wub);
  }
  
- 
  class operator_widen_mult_unsigned : public range_operator
  {
  public:
--- 2378,2383 ----
*************** operator_widen_mult_unsigned::wi_fold (i
*** 2399,2410 ****
  				       const wide_int &rh_lb,
  				       const wide_int &rh_ub) const
  {
!   signop s = TYPE_SIGN (type);
  
!   wide_int lh_wlb = wide_int::from (lh_lb, wi::get_precision (lh_lb) * 2, UNSIGNED);
!   wide_int lh_wub = wide_int::from (lh_ub, wi::get_precision (lh_ub) * 2, UNSIGNED);
!   wide_int rh_wlb = wide_int::from (rh_lb, wi::get_precision (rh_lb) * 2, s);
!   wide_int rh_wub = wide_int::from (rh_ub, wi::get_precision (rh_ub) * 2, s);
  
    /* We don't expect a widening multiplication to be able to overflow but range
       calculations for multiplications are complicated.  After widening the
--- 2396,2434 ----
  				       const wide_int &rh_lb,
  				       const wide_int &rh_ub) const
  {
!   wide_int lh_wlb = wide_int::from (lh_lb, TYPE_PRECISION (type), UNSIGNED);
!   wide_int lh_wub = wide_int::from (lh_ub, TYPE_PRECISION (type), UNSIGNED);
!   wide_int rh_wlb = wide_int::from (rh_lb, TYPE_PRECISION (type), UNSIGNED);
!   wide_int rh_wub = wide_int::from (rh_ub, TYPE_PRECISION (type), UNSIGNED);
  
!   /* We don't expect a widening multiplication to be able to overflow but range
!      calculations for multiplications are complicated.  After widening the
!      operands lets call the base class.  */
!   return op_mult.wi_fold (r, type, lh_wlb, lh_wub, rh_wlb, rh_wub);
! }
! 
! class operator_widen_mult_signed_unsigned : public range_operator
! {
! public:
!   virtual void wi_fold (irange &r, tree type,
! 			const wide_int &lh_lb,
! 			const wide_int &lh_ub,
! 			const wide_int &rh_lb,
! 			const wide_int &rh_ub)
!     const;
! } op_widen_mult_signed_unsigned;
! 
! void
! operator_widen_mult_signed_unsigned::wi_fold (irange &r, tree type,
! 					      const wide_int &lh_lb,
! 					      const wide_int &lh_ub,
! 					      const wide_int &rh_lb,
! 					      const wide_int &rh_ub) const
! {
!   wide_int lh_wlb = wide_int::from (lh_lb, TYPE_PRECISION (type), SIGNED);
!   wide_int lh_wub = wide_int::from (lh_ub, TYPE_PRECISION (type), SIGNED);
!   wide_int rh_wlb = wide_int::from (rh_lb, TYPE_PRECISION (type), UNSIGNED);
!   wide_int rh_wub = wide_int::from (rh_ub, TYPE_PRECISION (type), UNSIGNED);
  
    /* We don't expect a widening multiplication to be able to overflow but range
       calculations for multiplications are complicated.  After widening the
*************** range_op_table::initialize_integral_ops
*** 4545,4550 ****
--- 4569,4575 ----
    set (ABSU_EXPR, op_absu);
    set (OP_WIDEN_MULT_SIGNED, op_widen_mult_signed);
    set (OP_WIDEN_MULT_UNSIGNED, op_widen_mult_unsigned);
+   set (OP_WIDEN_MULT_SIGNED_UNSIGNED, op_widen_mult_signed_unsigned);
    set (OP_WIDEN_PLUS_SIGNED, op_widen_plus_signed);
    set (OP_WIDEN_PLUS_UNSIGNED, op_widen_plus_unsigned);
  
diff -Nrcpad gcc-15-20260307/gcc/range-op.h gcc-15-20260314/gcc/range-op.h
*** gcc-15-20260307/gcc/range-op.h	Sat Mar  7 22:32:07 2026
--- gcc-15-20260314/gcc/range-op.h	Sat Mar 14 22:32:08 2026
*************** extern void wi_set_zero_nonzero_bits (tr
*** 380,390 ****
  // Add them to the end of the tree-code vector, and provide a name for
  // each allowing for easy access when required.
  
! #define OP_WIDEN_MULT_SIGNED	((unsigned) MAX_TREE_CODES)
! #define OP_WIDEN_MULT_UNSIGNED	((unsigned) MAX_TREE_CODES + 1)
! #define OP_WIDEN_PLUS_SIGNED	((unsigned) MAX_TREE_CODES + 2)
! #define OP_WIDEN_PLUS_UNSIGNED	((unsigned) MAX_TREE_CODES + 3)
! #define RANGE_OP_TABLE_SIZE	((unsigned) MAX_TREE_CODES + 4)
  
  // This implements the range operator tables as local objects.
  
--- 380,391 ----
  // Add them to the end of the tree-code vector, and provide a name for
  // each allowing for easy access when required.
  
! #define OP_WIDEN_MULT_SIGNED		((unsigned) MAX_TREE_CODES)
! #define OP_WIDEN_MULT_UNSIGNED		((unsigned) MAX_TREE_CODES + 1)
! #define OP_WIDEN_MULT_SIGNED_UNSIGNED	((unsigned) MAX_TREE_CODES + 2)
! #define OP_WIDEN_PLUS_SIGNED		((unsigned) MAX_TREE_CODES + 3)
! #define OP_WIDEN_PLUS_UNSIGNED		((unsigned) MAX_TREE_CODES + 4)
! #define RANGE_OP_TABLE_SIZE		((unsigned) MAX_TREE_CODES + 5)
  
  // This implements the range operator tables as local objects.
  
diff -Nrcpad gcc-15-20260307/gcc/testsuite/ChangeLog gcc-15-20260314/gcc/testsuite/ChangeLog
*** gcc-15-20260307/gcc/testsuite/ChangeLog	Sat Mar  7 22:32:07 2026
--- gcc-15-20260314/gcc/testsuite/ChangeLog	Sat Mar 14 22:32:08 2026
***************
*** 1,3 ****
--- 1,388 ----
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR testsuite/119930
+ 	* g++.dg/coroutines/torture/pr103953.C: Store the second
+ 	lambda into its own object to extend its lifeime.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-20  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121103
+ 	* gcc.dg/torture/pr121103-1.c: New test.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR c/105555
+ 	* gcc.dg/complex-10.c: New test.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/123294
+ 	* gcc.dg/pr123294-1.c: New test.
+ 	* gcc.target/aarch64/pr123294-1.c: New test.
+ 
+ 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-01-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/123645
+ 	* gcc.dg/torture/pr123645-1.c: New test.
+ 	* gcc.dg/torture/pr123645-2.c: New test.
+ 
+ 2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124309
+ 	* g++.dg/modules/part-11_a.C: New test.
+ 	* g++.dg/modules/part-11_b.C: New test.
+ 	* g++.dg/modules/part-11_c.C: New test.
+ 	* g++.dg/modules/part-11_d.C: New test.
+ 	* g++.dg/modules/part-11_e.C: New test.
+ 
+ 2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124311
+ 	* g++.dg/modules/imp-member-5_a.C: New test.
+ 	* g++.dg/modules/imp-member-5_b.C: New test.
+ 	* g++.dg/modules/imp-member-5_c.C: New test.
+ 
+ 2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-03-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124431
+ 	* g++.dg/modules/merge-21_a.C: New test.
+ 	* g++.dg/modules/merge-21_b.C: New test.
+ 	* g++.dg/modules/merge-21_c.C: New test.
+ 	* g++.dg/modules/merge-21_d.C: New test.
+ 
+ 2026-03-10  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-24  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR target/124147
+ 	* gcc.target/riscv/rvv/xtheadvector/pr124147.c: New test.
+ 
+ 2026-03-10  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-26  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR target/122448
+ 	* g++.target/riscv/rvv/base/pr122448.C: New test.
+ 
+ 2026-03-09  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	PR target/112400
+ 	* g++.dg/torture/pr112400.C: New file.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/122000
+ 	* gcc.c-torture/execute/pr122000.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124135
+ 	* g++.dg/torture/pr124135-1.C: New test.
+ 	* g++.dg/torture/pr124135-2.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124358
+ 	* gcc.c-torture/execute/pr124358.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124349
+ 	* gcc.target/i386/avx10_2-pr124349-2.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124367
+ 	* gcc.target/i386/avx512vl-pr124367.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124366
+ 	* gcc.target/i386/cet-pr124366.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124341
+ 	* gcc.target/i386/avx10_2-pr124341.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124349
+ 	* gcc.target/i386/avx10_2-pr124349.c: New test.
+ 
+ 2026-03-08  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/124335
+ 	* gcc.target/i386/avx512fp16-pr124335.c: Require target
+ 	avx512fp16 instead of avx512bw.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124315
+ 	* gcc.target/i386/avx512f-pr124315.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124335
+ 	* gcc.target/i386/avx512fp16-pr124335.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/124288
+ 	* gcc.dg/torture/vec-cvt-1.c (FLTTEST): Use comma expression
+ 	to store into {flt,dbl}m{in,ax} and read from it again for
+ 	comparison.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124294
+ 	* gcc.target/i386/avx10_2-pr124294.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/123365
+ 	* gcc.c-torture/compile/pr123365.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124138
+ 	* gcc.dg/pr124138.c: New test.
+ 	* gcc.target/i386/avx512f-pr124138-1.c: New test.
+ 	* gcc.target/i386/avx512f-pr124138-2.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120685
+ 	* g++.dg/cpp23/auto-fncast19.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/124056
+ 	* gcc.target/i386/pr124056.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/116600
+ 	PR middle-end/123386
+ 	* gcc.c-torture/compile/pr116600.c: New test.
+ 	* gcc.c-torture/compile/pr123386.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123889
+ 	* g++.dg/cpp0x/constexpr-123889.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/123672
+ 	* gcc.dg/pr123672.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/101312
+ 	* gcc.dg/pr101312-1.c: New test.
+ 	* gcc.dg/pr101312-2.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/123882
+ 	* gcc.dg/pr123882.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/123978
+ 	* gcc.c-torture/execute/pr123978.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123818
+ 	* g++.dg/cpp0x/pr123818.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/122689
+ 	* gcc.dg/bitint-127.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121104
+ 	* gcc.dg/pr121104.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/123864
+ 	* gcc.c-torture/execute/pr123864.c: New test.
+ 	* gcc.dg/torture/pr123864.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123790
+ 	* g++.dg/cpp0x/nullptr47.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/123876
+ 	* gcc.dg/gomp/pr123876.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/123273
+ 	* c-c++-common/cpp/dir-only-10.c: New test.
+ 	* c-c++-common/cpp/dir-only-11.c: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123578
+ 	* g++.dg/cpp2a/pr123578.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123737
+ 	* g++.dg/cpp/embed-28.C: New test.
+ 	* g++.dg/parse/comma3.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123667
+ 	* g++.dg/cpp1z/decomp66.C: New test.
+ 	* g++.dg/cpp1z/decomp67.C: New test.
+ 
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123684
+ 	* g++.dg/cpp0x/gen-attrs-90.C: New test.
+ 
  2026-03-04  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/gcc/testsuite/c-c++-common/cpp/dir-only-10.c gcc-15-20260314/gcc/testsuite/c-c++-common/cpp/dir-only-10.c
*** gcc-15-20260307/gcc/testsuite/c-c++-common/cpp/dir-only-10.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/c-c++-common/cpp/dir-only-10.c	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,5 ----
+ /* PR preprocessor/123273 */
+ /* { dg-do preprocess } */
+ /* { dg-options -fdirectives-only } */
+ 
+ /* *\/""" */
diff -Nrcpad gcc-15-20260307/gcc/testsuite/c-c++-common/cpp/dir-only-11.c gcc-15-20260314/gcc/testsuite/c-c++-common/cpp/dir-only-11.c
*** gcc-15-20260307/gcc/testsuite/c-c++-common/cpp/dir-only-11.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/c-c++-common/cpp/dir-only-11.c	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,6 ----
+ /* PR preprocessor/123273 */
+ /* { dg-do preprocess } */
+ /* { dg-options -fdirectives-only } */
+ 
+ /* *\\
+ /""" */
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/coroutines/torture/pr103953.C gcc-15-20260314/gcc/testsuite/g++.dg/coroutines/torture/pr103953.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/coroutines/torture/pr103953.C	Sat Mar  7 22:32:07 2026
--- gcc-15-20260314/gcc/testsuite/g++.dg/coroutines/torture/pr103953.C	Sat Mar 14 22:32:08 2026
*************** int main() {
*** 63,71 ****
  	    co_return;
  	}();
  
! 	task coroutine_B = [&coroutine_A]() ->task {
  	    co_await coroutine_A;
! 	}();
  
  	coroutine_B.handle.resume();
      }
--- 63,73 ----
  	    co_return;
  	}();
  
! 	auto t = [&coroutine_A]() ->task {
  	    co_await coroutine_A;
! 	};
! 
! 	task coroutine_B = t();
  
  	coroutine_B.handle.resume();
      }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp/embed-28.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp/embed-28.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp/embed-28.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp/embed-28.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/123737
+ // { dg-do run }
+ // { dg-options "--embed-dir=${srcdir}/c-c++-common/cpp/embed-dir" }
+ 
+ struct A {
+   A (int x) : a (0), e (x) {}
+   unsigned long a, e;
+   A &operator, (int) { ++a; return *this; }
+   ~A () { if (a != e) __builtin_abort (); }
+ };
+ 
+ int
+ main ()
+ {
+   A a = 231;
+   a,
+ #embed <magna-carta.txt> limit (231)
+     ;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/123889
+ // { dg-do compile { target c++11 } }
+ 
+ template <class T>
+ constexpr int func (T) {
+ // { dg-message "'constexpr int func\\\(T\\\) \\\[with T = int\\\]' is not usable as a 'constexpr' function because:" "" { target c++11_only } .-1 }
+ // { dg-error "body of 'constexpr' function 'constexpr int func\\\(T\\\) \\\[with T = int\\\]' not a return-statement" "" { target c++11_only } .-2 }
+   return 1;
+   return 2;
+ }
+ 
+ static_assert (func (1) == 1, "");
+ // { dg-error "non-constant condition for static assertion" "" { target c++11_only } .-1 }
+ // { dg-error "'constexpr int func\\\(T\\\) \\\[with T = int\\\]' called in a constant expression" "" { target c++11_only } .-2 }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/gen-attrs-90.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/gen-attrs-90.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/gen-attrs-90.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/gen-attrs-90.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/123684
+ // { dg-do compile { target c++11 } }
+ 
+ inline namespace [[foo::abi_tag (1, 2, 3)]] A {}	// { dg-warning "'abi_tag' attribute directive ignored" }
+ inline namespace [[foo::visibility (1, 2, 3)]] B {}	// { dg-warning "'visibility' attribute directive ignored" }
+ inline namespace [[foo::deprecated (1, 2, 3)]] C {}	// { dg-warning "'deprecated' attribute directive ignored" }
+ inline namespace [[abi_tag (1, 2, 3)]] D {}		// { dg-warning "'abi_tag' attribute directive ignored" }
+ inline namespace [[visibility (1, 2, 3)]] E {}		// { dg-warning "'visibility' attribute directive ignored" }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/nullptr47.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/nullptr47.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/nullptr47.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/nullptr47.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/123790
+ // { dg-do compile { target c++11 } }
+ 
+ int
+ main ()
+ {
+   using nullptr_t = decltype (nullptr);
+   constexpr nullptr_t zero = nullptr;
+   constexpr nullptr_t other_zero = zero;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/pr123818.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/pr123818.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/pr123818.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp0x/pr123818.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/123818
+ // { dg-do run { target c++11 } }
+ 
+ struct A { A (int x) : a (x) {} int a; };
+ struct B { A b; };
+ 
+ int
+ foo (B x = B { 42 })
+ {
+     return x.b.a;
+ }
+ 
+ int
+ bar (B x = B { 43 })
+ {
+     return x.b.a;
+ }
+ 
+ int
+ main ()
+ {
+   if (foo () != bar () - 1)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp1z/decomp66.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp1z/decomp66.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp1z/decomp66.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp1z/decomp66.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/123667
+ // { dg-do compile { target c++14 } }
+ // { dg-options "" }
+ 
+ namespace std {
+   template <typename T> struct tuple_size;
+   template <int, typename> struct tuple_element;
+ }
+ 
+ struct A {
+   int i;
+   template <int I> int &get () { return i; }
+ };
+ 
+ template <> struct std::tuple_size <A> { static const int value = 2; };
+ template <int I> struct std::tuple_element <I,A> { using type = int; };
+ 
+ int
+ main ()
+ {
+   auto [ x, y ] = A { 0 };	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+   [] (auto t) { using z = decltype (x); } (1);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp1z/decomp67.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp1z/decomp67.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp1z/decomp67.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp1z/decomp67.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,33 ----
+ // PR c++/123667
+ // { dg-do compile { target c++11 } }
+ // { dg-options "" }
+ 
+ namespace std {
+   template <typename T> struct tuple_size;
+   template <int, typename> struct tuple_element;
+ }
+ 
+ struct A {
+   int i;
+   template <int I> int &get () { return i; }
+ };
+ 
+ template <> struct std::tuple_size <A> { static const int value = 2; };
+ template <int I> struct std::tuple_element <I,A> { using type = int; };
+ 
+ auto [ x, y ] = A { 0 };	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+ 
+ template <int N>
+ void
+ foo ()
+ {
+   using a = decltype (x);
+   auto [ x, y ] = A { 0 };	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+   using b = decltype (x);
+ }
+ 
+ void
+ bar ()
+ {
+   foo <42> ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp23/auto-fncast19.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp23/auto-fncast19.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp23/auto-fncast19.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp23/auto-fncast19.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/120685
+ // { dg-do compile { target c++11 } }
+ // { dg-options "" }
+ 
+ template <typename T>
+ void foo (decltype (auto (T ())) x) {}	// { dg-warning "'auto\\\(x\\\)' only available with" "" { target c++20_down } }
+ 
+ int
+ main ()
+ {
+   foo <int> (1);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/pr123578.C gcc-15-20260314/gcc/testsuite/g++.dg/cpp2a/pr123578.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/pr123578.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/cpp2a/pr123578.C	Sat Mar 14 22:32:08 2026
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/123578
+ // { dg-do compile { target c++20 } }
+ // { dg-options "-fdump-tree-all" }
+ 
+ namespace {
+   template <typename>
+   struct A { A (decltype ([] { return 0; } ())) {} };
+   A <int> b = 0;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/imp-member-5_a.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/imp-member-5_a.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/imp-member-5_a.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/imp-member-5_a.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/124311
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi A }
+ 
+ export module A;
+ export struct S {
+   int x = 0;
+   S() = default;
+ };
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/imp-member-5_b.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/imp-member-5_b.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/imp-member-5_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/imp-member-5_b.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/124311
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi B }
+ 
+ export module B;
+ export import A;
+ export struct M { S h; };
+ M m;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/imp-member-5_c.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/imp-member-5_c.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/imp-member-5_c.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/imp-member-5_c.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/124311
+ // { dg-additional-options "-fmodules" }
+ 
+ import B;
+ M m2;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_a.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_a.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_a.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_a.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/124431
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi A }
+ 
+ export module A;
+ 
+ export template <int N> struct mat {
+   int data[1] = { 123 };
+   constexpr const int& operator[](int x) const { return data[x]; };
+ };
+ 
+ export template <int N> struct S {
+   int field;
+   enum e { a };
+   enum class ce { ca };
+ };
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_b.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_b.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_b.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/124431
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi B }
+ 
+ export module B;
+ export import A;
+ struct X {
+   mat<4> viewmatrix;
+ };
+ 
+ template struct S<0>;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_c.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_c.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_c.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_c.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/124431
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi C }
+ 
+ export module C;
+ export import A;
+ mat<4> from_triangle_frame;
+ 
+ template struct S<0>;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_d.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_d.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/merge-21_d.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/merge-21_d.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/124431
+ // { dg-additional-options "-fmodules -fdump-lang-module-alias" }
+ 
+ import C;
+ import B;
+ 
+ void test() {
+   constexpr auto r = mat<4>()[0];
+   // { dg-final { scan-lang-dump {Read:-[0-9]*'s named merge key \(matched\) field_decl:'::mat@.:.<0x4>::data'} module } }
+ 
+   S<0> s;
+   s.field;
+   // { dg-final { scan-lang-dump {Read:-[0-9]*'s named merge key \(matched\) field_decl:'::S@.:.<0x0>::field'} module } }
+ 
+   S<0>::e se = S<0>::a;
+   // { dg-final { scan-lang-dump {Read:-[0-9]*'s named merge key \(matched\) const_decl:'::S@.:.<0x0>::e@.:.<0x0>::a'} module } }
+ 
+   S<0>::ce sce = S<0>::ce::ca;
+   // { dg-final { scan-lang-dump {Read:-[0-9]*'s named merge key \(matched\) const_decl:'::S@.:.<0x0>::ce@.:.<0x0>::ca'} module } }
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_a.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_a.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_a.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_a.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124309
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi X }
+ 
+ export module X;
+ 
+ export void frob(int*);
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_b.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_b.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_b.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/124309
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi Y }
+ 
+ export module Y;
+ export import X;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_c.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_c.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_c.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_c.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/124309
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi Z:part }
+ 
+ export module Z:part;
+ export import X;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_d.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_d.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_d.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_d.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124309
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi Z }
+ 
+ export module Z;
+ export import Y;
+ export import :part;
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_e.C gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_e.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/modules/part-11_e.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/modules/part-11_e.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/124309
+ // { dg-additional-options "-fmodules" }
+ 
+ import Z;
+ 
+ int main() {
+   frob(2);  // { dg-error "invalid conversion" }
+ }
+ 
+ // { dg-regexp "In module X, imported at \[^\n]*part-11_c.C:6,\n\\\s*included from \[^\n]*part-11_d.C:7,\nof module Z, imported at \[^\n]*part-11_e.C:4:\n\[^\n]*part-11_a.C:7:18: note:.*" }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/parse/comma3.C gcc-15-20260314/gcc/testsuite/g++.dg/parse/comma3.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/parse/comma3.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/parse/comma3.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/123737
+ // { dg-do run }
+ 
+ struct A {
+   A (int x) : a (0), e (x) {}
+   unsigned long a, e;
+   A &operator, (int) { ++a; return *this; }
+   ~A () { if (a != e) __builtin_abort (); }
+ };
+ 
+ int
+ main ()
+ {
+   A a = 131;
+   a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/torture/pr112400.C gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr112400.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/torture/pr112400.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr112400.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,114 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-return-type" } */
+ 
+ typedef struct a *b;
+ template <typename c, typename d> c e(d);
+ enum f { g, h, i };
+ enum j { k, l, m, aa };
+ struct a {
+   f ab;
+ };
+ struct af {
+ } n;
+ struct ah;
+ class al;
+ b q;
+ void r(a *);
+ struct o : af {};
+ struct p : o {};
+ struct ag : p {};
+ j s(af *);
+ b t();
+ f fn4();
+ unsigned fn5(ag *);
+ b u(ag *, unsigned);
+ af *v(b(b), b);
+ static bool w(al *, af *, b(b), b aw, b *ax, j) {
+   r(ax[2]);
+   if (aw)
+     return false;
+ }
+ ag *ay;
+ void x(al *at, b as(b), b bb, b bc) {
+   switch (bb->ab)
+   case i:
+     if (af *bd = v(as, bb))
+       if (e<ah *>(bd))
+ 	switch (fn4())
+ 	case h: {
+ 	  b be;
+ 	  switch (be->ab)
+ 	  case i:
+ 	    if (af *bf = v(as, be))
+ 	      if (e<ah *>(bf))
+ 		if (ag *bg = e<ag *>(bf))
+ 		  switch (s(bg)) {
+ 		  case k:
+ 		    if (fn5(bg) == 1) {
+ 		      b bh = u(bg, 0);
+ 		      bh = t();
+ 		      switch (bc->ab)
+ 		      case g: {
+ 			b ax[]{be, bh, bc};
+ 			w(at, &n, as, q, ax, k);
+ 		      }
+ 		    }
+ 		    break;
+ 		  case l:
+ 		    if (fn5(bg) == 1) {
+ 		      b bh = u(bg, 0);
+ 		      bh = t();
+ 		      switch (bc->ab)
+ 		      case g: {
+ 			b ax[]{be, bh, bc};
+ 			w(at, &n, as, q, ax, l);
+ 		      }
+ 		    }
+ 		  }
+ 	}
+ 	  else switch (s(ay)) {
+ 	  case k:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, k);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case l:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, l);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case m:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, m);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case aa:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, aa);
+ 	      }
+ 	    }
+ 	  }
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/torture/pr124135-1.C gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr124135-1.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/torture/pr124135-1.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr124135-1.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,20 ----
+ // PR tree-optimization/124135
+ // { dg-do compile }
+ 
+ void foo (char, long double *, int);
+ int qux (int);
+ 
+ long double
+ bar (int x)
+ {
+   long double a;
+   if (x)
+     foo (0, &a, qux (42));
+   return a;
+ }
+ 
+ void
+ baz (int x)
+ {
+   bar (x);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.dg/torture/pr124135-2.C gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr124135-2.C
*** gcc-15-20260307/gcc/testsuite/g++.dg/torture/pr124135-2.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.dg/torture/pr124135-2.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,27 ----
+ // PR tree-optimization/124135
+ // { dg-do compile }
+ 
+ #ifdef __SIZEOF_FLOAT128__
+ void foo (char, __float128 *, int);
+ int qux (int);
+ 
+ __float128
+ bar (int x)
+ {
+   __float128 a;
+   if (x)
+     foo (0, &a, qux (42));
+   return a;
+ }
+ 
+ void
+ baz (int x)
+ {
+   bar (x);
+ }
+ #else
+ void
+ baz ()
+ {
+ }
+ #endif
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.target/aarch64/pr124126-1.C gcc-15-20260314/gcc/testsuite/g++.target/aarch64/pr124126-1.C
*** gcc-15-20260307/gcc/testsuite/g++.target/aarch64/pr124126-1.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.target/aarch64/pr124126-1.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-g" } */
+ /* PR target/124126 */
+ /* Make sure an array of uint64_t[8] works when
+    used before the inlcude of arm_acle.h.  */
+ 
+ typedef unsigned long uint64_t;
+ void executeSuperscalar(uint64_t (*r)[8]);
+ 
+ #include "arm_acle.h"
+ 
+ void initDatasetItem() {
+   uint64_t rl[8];
+   executeSuperscalar(&rl);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/g++.target/riscv/rvv/base/pr122448.C gcc-15-20260314/gcc/testsuite/g++.target/riscv/rvv/base/pr122448.C
*** gcc-15-20260307/gcc/testsuite/g++.target/riscv/rvv/base/pr122448.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/g++.target/riscv/rvv/base/pr122448.C	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,44 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target riscv_v_ok } */
+ /* { dg-additional-options "-O3 -march=rv64gcv -mabi=lp64d -fdump-rtl-vsetvl-details" } */
+ 
+ #include <riscv_vector.h>
+ int a;
+ long b = -2260814313524985651LL;
+ short c; char d;
+ short e[576];
+ unsigned long long f;
+ void g(unsigned long long *i, unsigned long long ad) { *i = ad; }
+ int8_t j[4];
+ int16_t k[4], l[4];
+ void m() {
+   for (short n = 1; n < 023; n += 4)
+     for (short o = 0; o < static_cast<short>(1033314678U); o += 4)
+       for (int p = (int)((long long)(b - 859406540) & 0xFFFFFFFF); p < 9; p += 3) {
+         c ^= static_cast<short>(1033314678 % 0x10000);
+         d &= static_cast<char>(a ? 0 : e[p * 24]);
+       }
+   for (bool q = 0; q < (bool)8; q = 1) {
+     size_t r = 4;
+     for (size_t v; r; r -= v) {
+       v = __riscv_vsetvl_e16m1(r);
+       vint8mf2_t w = __riscv_vle8_v_i8mf2(&j[0], v);
+       vbool16_t ac = __riscv_vmseq_vx_i8mf2_b16(w, 1, v);
+       vint16m1_t x = __riscv_vmv_v_x_i16m1(0, __riscv_vsetvlmax_e16m1());
+       vuint16m1_t y = __riscv_vsll_vx_u16m1(__riscv_vid_v_u16m1(v), 1, v);
+       vint16m1_t z = __riscv_vluxei16_v_i16m1_tu(x, &k[0], y, v);
+       vint16m1_t aa = __riscv_vmax_vv_i16m1(z, z, v);
+       vuint8mf2_t ab = __riscv_vsll_vx_u8mf2(__riscv_vid_v_u8mf2(v), 1, v);
+       __riscv_vsoxei8_v_i16m1_m(ac, &l[0], ab, aa, v);
+     }
+   }
+ }
+ 
+ int main() {
+   m();
+   g(&f, d);
+   if (f != 0)
+     __builtin_abort ();
+ }
+ 
+ /* { dg-final { scan-rtl-dump-not "Hoisting vsetvl" "vsetvl" } } */
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr116600.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/compile/pr116600.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr116600.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/compile/pr116600.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ /* PR rtl-optimization/116600 */
+ 
+ int a, b;
+ int foo ();
+ 
+ int
+ bar ()
+ {
+   int c = ({ int d = 0, e = foo ();
+ 	     b = __builtin_expect (e, 1); if (b) ; else d = 4; d; });
+   if (c)
+     return c;
+   foo ();
+   if (a)
+     __asm__ goto ("" : : : : l);
+ l:
+   return 0;
+ }
+ 
+ void
+ baz ()
+ {
+   bar ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr123365.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/compile/pr123365.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr123365.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/compile/pr123365.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,7 ----
+ /* PR c/123365 */
+ 
+ void
+ foo ()
+ {
+   __asm__ volatile ("" : "+r" ((long long[]) { 0 }));
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr123386.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/compile/pr123386.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr123386.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/compile/pr123386.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,25 ----
+ /* PR middle-end/123386 */
+ 
+ char *a;
+ int b;
+ 
+ void
+ foo (char *)
+ {
+   if (b)
+     __builtin_abort ();
+ }
+ 
+ void
+ bar (char *c)
+ {
+   __asm__ goto ("" : : : : d);
+   foo (a);
+   __asm__ goto ("" : : : : d);
+   if (c)
+     bar (a);
+   __asm__ goto ("" : : : : d);
+ d:
+   if (b)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr122000.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr122000.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr122000.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr122000.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/122000 */
+ 
+ char c = 1;
+ __attribute__((aligned (sizeof (unsigned long long)))) unsigned long long ll;
+ 
+ int
+ main ()
+ {
+ #if defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) && __SIZEOF_LONG_LONG__ == 8 && __CHAR_BIT__ == 8
+   unsigned long long x = __sync_add_and_fetch (&ll, c + 0xfedcba9876543210ULL);
+   if (x != 0xfedcba9876543211ULL)
+     __builtin_abort ();
+ #endif
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr123864.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr123864.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr123864.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr123864.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ /* PR tree-optimization/123864 */
+ 
+ [[gnu::noipa]] static int
+ foo (long long x)
+ {
+   return __builtin_mul_overflow_p (x, ~0U, x);
+ }
+ 
+ int
+ main ()
+ {
+   if (foo (0))
+     __builtin_abort ();
+ #if __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 && __CHAR_BIT__ == 8
+   if (foo (__INT_MAX__ + 1LL))
+     __builtin_abort ();
+   if (!foo (__INT_MAX__ + 2LL))
+     __builtin_abort ();
+   if (foo (-__INT_MAX__ - 1LL))
+     __builtin_abort ();
+   if (!foo (-__INT_MAX__ - 2LL))
+     __builtin_abort ();
+ #endif
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr123978.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr123978.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr123978.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr123978.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,25 ----
+ /* PR middle-end/123978 */
+ 
+ struct A { unsigned b, c, *d; };
+ 
+ [[gnu::noipa]] int
+ foo (struct A *a)
+ {
+   __builtin_memset (a->d, 0, ((long long) sizeof (unsigned)) * a->b * a->c);
+   return 0;
+ }
+ 
+ int
+ main ()
+ {
+   struct A a;
+   unsigned b[256];
+   __builtin_memset (b, 0x55, sizeof (b));
+   a.b = 15;
+   a.c = 15;
+   a.d = b;
+   foo (&a);
+   for (int i = 0; i < 225; ++i)
+     if (b[i] != 0)
+       __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr124358.c gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr124358.c
*** gcc-15-20260307/gcc/testsuite/gcc.c-torture/execute/pr124358.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.c-torture/execute/pr124358.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,19 ----
+ /* PR tree-optimization/124358 */
+ 
+ [[gnu::noipa]] void
+ foo (int d)
+ {
+   static int u = 11;
+   if (d != u++)
+     __builtin_abort ();
+ }
+ 
+ int
+ main ()
+ {
+   int a[1][4] = { 11, 12, 13, 14 };
+   int (*p)[4] = a;
+   for (int i = 0; i < 1; i++)
+     for (int j = 0; j < 4; j++)
+       foo (*(*(p + i) + j));
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/bitint-127.c gcc-15-20260314/gcc/testsuite/gcc.dg/bitint-127.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/bitint-127.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/bitint-127.c	Sat Mar 14 22:32:09 2026
***************
*** 0 ****
--- 1,28 ----
+ /* PR middle-end/122689 */
+ /* { dg-do run { target { bitint } } } */
+ /* { dg-options "-O" } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 12419
+ const _BitInt(12419) n =  ;
+ 
+ unsigned g;
+ 
+ _BitInt(6)
+ foo (unsigned a, unsigned b, unsigned c, unsigned _BitInt(256) z,
+      unsigned _BitInt(12419) y)
+ {
+   y /= b;
+   unsigned _BitInt(12419) ay = a * y;
+   g -= (n >= ay ? n : ay) % c;
+   return z;
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 12419
+   if (foo (0, 5, 5, 2, 0) != 2)
+     __builtin_abort ();
+ #endif
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/complex-10.c gcc-15-20260314/gcc/testsuite/gcc.dg/complex-10.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/complex-10.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/complex-10.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ /* PR c/105555 */
+ 
+ struct C {
+   __complex int i;
+ };
+ struct C p[10];
+ int *foo1(void) {
+   return &__real(p->i);
+ }
+ 
+ int *foo2(void) {
+   return &__imag(p->i);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/gomp/pr123876.c gcc-15-20260314/gcc/testsuite/gcc.dg/gomp/pr123876.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/gomp/pr123876.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/gomp/pr123876.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,69 ----
+ /* PR middle-end/123876 */
+ 
+ void
+ foo ()
+ {
+ lab:
+ #pragma omp simd
+   for (int i = 0; i < 4; i++)
+     asm goto ("" : : : : lab);			/* { dg-error "invalid branch to/from OpenMP structured block" } */
+ #pragma omp for
+   for (int i = 0; i < 4; i++)
+    asm goto ("" : : : : lab);			/* { dg-error "invalid branch to/from OpenMP structured block" } */
+ #pragma omp parallel
+   asm goto ("" : : : : lab);			/* { dg-error "invalid branch to/from OpenMP structured block" } */
+ }
+ 
+ void
+ bar ()
+ {
+ lab3:
+ #pragma omp simd
+   for (int i = 0; i < 4; i++)
+     {
+     lab1:
+     lab2:
+       asm goto ("" : : : : lab1, lab2, lab3);	/* { dg-error "invalid branch to/from OpenMP structured block" } */
+     }
+ #pragma omp for
+   for (int i = 0; i < 4; i++)
+     {
+     lab4:
+     lab5:
+       asm goto ("" : : : : lab4, lab5, lab3);	/* { dg-error "invalid branch to/from OpenMP structured block" } */
+     }
+ #pragma omp parallel
+   {
+   lab6:
+   lab7:
+     asm goto ("" : : : : lab6, lab7, lab3);	/* { dg-error "invalid branch to/from OpenMP structured block" } */
+   }
+ }
+ 
+ void
+ baz ()
+ {
+ #pragma omp simd
+   for (int i = 0; i < 4; i++)
+     {
+     lab1:
+     lab2:
+       asm goto ("" : : : : lab1, lab2, lab3);
+     lab3:;
+     }
+ #pragma omp for
+   for (int i = 0; i < 4; i++)
+     {
+     lab4:
+     lab5:
+       asm goto ("" : : : : lab4, lab5, lab6);
+     lab6:;
+     }
+ #pragma omp parallel
+   {
+   lab7:
+   lab8:
+     asm goto ("" : : : : lab7, lab8, lab9);
+   lab9:;
+   }
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr101312-1.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr101312-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr101312-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr101312-1.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,4 ----
+ /* PR c/101312 */
+ /* { dg-do compile } */
+ 
+ volatile int a[1] __attribute__((may_alias));
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr101312-2.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr101312-2.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr101312-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr101312-2.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,5 ----
+ /* PR c/101312 */
+ /* { dg-do compile } */
+ /* { dg-options "-g" } */
+ 
+ volatile int a[1] __attribute__((may_alias));
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr121104.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr121104.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr121104.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr121104.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/121104 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ static unsigned long
+ foo (unsigned long x, unsigned long y,
+      unsigned long z, unsigned long *w)
+ {
+   int r;
+   unsigned long a = __builtin_sub_overflow (x, y, &r);
+   unsigned long b = __builtin_sub_overflow (r, z, &r);
+   *w = a + b;
+   return r;
+ }
+ 
+ unsigned long
+ bar (unsigned long *p, unsigned long *q)
+ {
+   unsigned long c;
+   p[0] = foo (p[0], q[0], 0, &c);
+   p[1] = foo (p[1], q[1], c, &c);
+   return c;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr123294-1.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr123294-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr123294-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr123294-1.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fno-tree-dse -fno-tree-dce" } */
+ /* PR rtl-optimization/123294 */
+ 
+ typedef unsigned a;
+ int b;
+ void g(__attribute__((__vector_size__(4 * sizeof(a)))) a *);
+ a d() {
+   __attribute__((__vector_size__(4 * sizeof(a)))) a e[5];
+   if (0 > b) {
+     __attribute__((__vector_size__(8 * sizeof(a)))) a f = {b, b};
+     e[0] = __builtin_shufflevector(f, f, 0, 1, 2, 3);
+   }
+   return 1;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr123672.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr123672.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr123672.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr123672.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,33 ----
+ /* PR tree-optimization/123672 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fdump-tree-forwprop1-details" } */
+ /* { dg-additional-options "-msse2" { target i?86-*-* x86_64-*-* } } */
+ /* { dg-final { scan-tree-dump "Vec perm simplify sequences have been blended" "forwprop1" { target { aarch64*-*-* i?86-*-* x86_64-*-* } } } } */
+ 
+ typedef int V __attribute__((vector_size (4 * sizeof (int))));
+ 
+ [[gnu::noipa]] void
+ foo (V *x, V *y)
+ {
+   V a = *x;
+   V b = *y;
+   V c = __builtin_shufflevector (a, a, 0, 2, 0, 2);
+   V d = __builtin_shufflevector (a, a, 1, 3, 1, 3);
+   V e = __builtin_shufflevector (b, b, 0, 2, 0, 2);
+   V f = __builtin_shufflevector (b, b, 1, 3, 1, 3);
+   V g = __builtin_shufflevector (c + d, c - d, 0, 4, 1, 5);
+   V h = __builtin_shufflevector (e + f, e - f, 0, 4, 1, 5);
+   *x = g;
+   *y = h;
+ }
+ 
+ int
+ main ()
+ {
+   V a = { 1, 21, 2, 32 };
+   V b = { 3, 43, 4, 54 };
+   foo (&a, &b);
+   if (a[0] != 22 || a[1] != -20 || a[2] != 34 || a[3] != -30
+       || b[0] != 46 || b[1] != -40 || b[2] != 58 || b[3] != -50)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr123882.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr123882.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr123882.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr123882.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ /* PR c/123882 */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23" } */
+ 
+ typedef int T;
+ void foo (unsigned long, T[]);
+ void foo (unsigned long x, T[restrict x]);
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/pr124138.c gcc-15-20260314/gcc/testsuite/gcc.dg/pr124138.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/pr124138.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/pr124138.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,20 ----
+ /* PR target/124138 */
+ /* { dg-do run } */
+ /* { dg-options "-Wno-psabi" } */
+ 
+ typedef __attribute__((__vector_size__ (8 * sizeof (unsigned long long)))) unsigned long long V;
+ 
+ [[gnu::noipa]] V
+ foo (V x)
+ {
+   return __builtin_shuffle (x, (V) { 0, 1, 2, 5, 4, 5, 6, 7 });
+ }
+ 
+ int
+ main ()
+ {
+   V x = foo ((V) { 1, 2, 3, 4, 5, 6, 7, 8 });
+   if (x[0] != 1 || x[1] != 2 || x[2] != 3 || x[3] != 6
+       || x[4] != 5 || x[5] != 6 || x[6] != 7 || x[7] != 8)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr121103-1.c gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr121103-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr121103-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr121103-1.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do compile } */
+ /* PR tree-optimization/121103 */
+ 
+ extern void *memmove(void *, const void *, __SIZE_TYPE__) __attribute__((noreturn));
+ 
+ struct A {
+   const char *s;
+   int n;
+ };
+ 
+ void f(void *);
+ 
+ struct B {
+   char d[5];
+   int n;
+ };
+ 
+ __attribute__((always_inline)) inline void g(struct B *p, struct A a) {
+   int i = a.n;
+   if (i <= 5)
+     p->n = i;
+   else {
+     p->n = -1;
+     f(p);
+   }
+ 
+   if (p->n >= 0)
+     memmove(p->d, a.s, a.n); /* { dg-bogus "\\\[-Warray-bounds" } */
+ }
+ 
+ void h(void) {
+   char c[8] = "";
+ 
+   struct A a;
+   a.s = c;
+   a.n = 8;
+ 
+   struct B b;
+   g(&b, a);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr123645-1.c gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123645-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr123645-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123645-1.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ 
+ /* PR tree-optimization/123645 */
+ /* Phi-opt was transforming f into __builtin_popcount which was incorrect. */
+ 
+ __attribute__((noinline))
+ int f(unsigned a)
+ {
+   return a < 1 ? __builtin_popcount(a) : 0;
+ }
+ 
+ int main()
+ {
+   if (f(1) != 0)
+     __builtin_abort();
+   if (f(0) != 0)
+     __builtin_abort();
+   if (f(2) != 0)
+     __builtin_abort();
+   if (f(3) != 0)
+     __builtin_abort();
+   if (f(-1) != 0)
+     __builtin_abort();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr123645-2.c gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123645-2.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr123645-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123645-2.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ 
+ /* PR tree-optimization/123645 */
+ /* Phi-opt was transforming f into __builtin_bswap which was incorrect. */
+ 
+ __attribute__((noinline))
+ int f(unsigned a)
+ {
+   return a < 1 ? __builtin_bswap32(a) : 0;
+ }
+ 
+ int main()
+ {
+   if (f(1) != 0)
+     __builtin_abort();
+   if (f(0) != 0)
+     __builtin_abort();
+   if (f(2) != 0)
+     __builtin_abort();
+   if (f(3) != 0)
+     __builtin_abort();
+   if (f(-1) != 0)
+     __builtin_abort();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr123864.c gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123864.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/torture/pr123864.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.dg/torture/pr123864.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,28 ----
+ /* PR tree-optimization/123864 */
+ /* { dg-do run { target int128 } } */
+ 
+ int u, v, x;
+ 
+ [[gnu::noipa]] static void
+ foo ()
+ {
+   __int128 c = (__int128) 0xa5ee4bc88ULL << 64;
+   long long b = 0x207b8a7f7LL;
+   int a = 4;
+   long long y;
+   __builtin_add_overflow (a, v, &y);
+   c *= y;
+   
+   unsigned z;
+   if (__builtin_add_overflow (b, u, &z))
+     z = 0xffffffffU;
+   x = __builtin_mul_overflow_p (z, c, c);
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+   if (!x)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c gcc-15-20260314/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c	Sat Mar  7 22:32:10 2026
--- gcc-15-20260314/gcc/testsuite/gcc.dg/torture/vec-cvt-1.c	Sat Mar 14 22:32:10 2026
*************** flttointtest##intt (void)						\
*** 55,76 ****
    else									\
      {									\
        vf2 = fltmin = min - 1.0f;					\
!       for (vf = 1.0f; (fltmin = vf2 + vf) == vf2; vf = vf * 2.0f)	\
  	;								\
      }									\
    vf2 = fltmax = max + 1.0f;						\
!   for (vf = 1.0f; (fltmax = vf2 - vf) == vf2; vf = vf * 2.0f)		\
      ;									\
    if (min == 0)								\
      dblmin = 0.0;							\
    else									\
      {									\
        vd2 = dblmin = min - 1.0;						\
!       for (vd = 1.0; (dblmin = vd2 + vd) == vd2; vd = vd * 2.0)		\
  	;								\
      }									\
    vd2 = dblmax = max + 1.0;						\
!   for (vd = 1.0; (dblmax = vd2 - vd) == vd2; vd = vd * 2.0)		\
      ;									\
    for (i = 0; i < N; i++)						\
      {									\
--- 55,76 ----
    else									\
      {									\
        vf2 = fltmin = min - 1.0f;					\
!       for (vf = 1.0f; fltmin = vf2 + vf, fltmin == vf2; vf = vf * 2.0f)	\
  	;								\
      }									\
    vf2 = fltmax = max + 1.0f;						\
!   for (vf = 1.0f; fltmax = vf2 - vf, fltmax == vf2; vf = vf * 2.0f)	\
      ;									\
    if (min == 0)								\
      dblmin = 0.0;							\
    else									\
      {									\
        vd2 = dblmin = min - 1.0;						\
!       for (vd = 1.0; dblmin = vd2 + vd, dblmin == vd2; vd = vd * 2.0)	\
  	;								\
      }									\
    vd2 = dblmax = max + 1.0;						\
!   for (vd = 1.0; dblmax = vd2 - vd, dblmax == vd2; vd = vd * 2.0)	\
      ;									\
    for (i = 0; i < N; i++)						\
      {									\
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/aarch64-pch.exp gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/aarch64-pch.exp
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/aarch64-pch.exp	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/aarch64-pch.exp	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,52 ----
+ #  Regression driver checking precompiled header compatibility of acle headers.
+ #  Copyright (C) 2025 Free Software Foundation, Inc.
+ #  Contributed by ARM Ltd.
+ #
+ #  This file is part of GCC.
+ #
+ #  GCC is free software; you can redistribute it and/or modify it
+ #  under the terms of the GNU General Public License as published by
+ #  the Free Software Foundation; either version 3, or (at your option)
+ #  any later version.
+ #
+ #  GCC is distributed in the hope that it will be useful, but
+ #  WITHOUT ANY WARRANTY; without even the implied warranty of
+ #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ #  General Public License for more details.
+ #
+ #  You should have received a copy of the GNU General Public License
+ #  along with GCC; see the file COPYING3.  If not see
+ #  <http://www.gnu.org/licenses/>.  */
+ 
+ # GCC testsuite checking acle headers can be included in precompiled headers
+ # that uses the `dg.exp' driver.
+ 
+ # Exit immediately if this isn't an AArch64 target.
+ if {![istarget aarch64*-*-*] } then {
+   return
+ }
+ 
+ # Load support procs.
+ load_lib gcc-dg.exp
+ load_lib dg-pch.exp
+ load_lib torture-options.exp
+ 
+ # Initialize `dg'.
+ dg-init
+ torture-init
+ set-torture-options $DG_TORTURE_OPTIONS
+ pch-init
+ 
+ set arch_flags "-march=armv8.5-a+sve2+sme"
+ set old_dg_do_what_default "${dg-do-what-default}"
+ # Main loop.
+ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
+   global torture_without_loops
+   dg-flags-pch $subdir $test $arch_flags \
+   	[concat [list {-O0 -g}] $torture_without_loops] ".h"
+ }
+ 
+ # All done.
+ pch-finish
+ torture-finish
+ dg-finish
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #include "pch_arm_acle.h"
+ 
+ uint32_t ror(uint32_t a, uint32_t b)
+ {
+   return __ror(a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_acle.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ #include "pch_arm_acle_include_post.h"
+ #include <arm_acle.h>
+ 
+ uint32_t ror(uint32_t a, uint32_t b)
+ {
+   return __ror(a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_acle.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #include "pch_arm_multiple.h"
+ 
+ svint32_t add_vectors(svint32_t a, svint32_t b)
+ {
+   return svadd_s32_z(svptrue_b32(), a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #pragma once
+ #include <arm_sme.h>
+ #include <arm_sve.h>
+ #include <arm_neon_sve_bridge.h>
+ #include <arm_neon.h>
+ #include <arm_acle.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ #include "pch_arm_multiple_include_post.h"
+ #include <arm_sme.h>
+ #include <arm_sve.h>
+ #include <arm_neon_sve_bridge.h>
+ #include <arm_neon.h>
+ #include <arm_acle.h>
+ 
+ svint32_t add_vectors(svint32_t a, svint32_t b)
+ {
+   return svadd_s32_z(svptrue_b32(), a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #pragma once
+ #include <arm_sme.h>
+ #include <arm_sve.h>
+ #include <arm_neon_sve_bridge.h>
+ #include <arm_neon.h>
+ #include <arm_acle.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #include "pch_arm_neon.h"
+ 
+ uint32x4_t add_vectors(uint32x4_t a, uint32x4_t b)
+ {
+   return vaddq_u32(a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_neon.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ #include "pch_arm_neon_include_post.h"
+ #include "arm_neon.h"
+ 
+ uint32x4_t add_vectors(uint32x4_t a, uint32x4_t b)
+ {
+   return vaddq_u32(a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_neon.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #include "pch_arm_neon_sve_bridge.h"
+ 
+ svint8_t set(svint8_t a, int8x16_t b)
+ {
+   return svset_neonq(a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_neon_sve_bridge.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ #include "pch_arm_neon_sve_bridge_include_post.h"
+ #include <arm_neon_sve_bridge.h>
+ 
+ svint8_t set(svint8_t a, int8x16_t b)
+ {
+   return svset_neonq(a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_neon_sve_bridge.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #include "pch_arm_sme.h"
+ 
+ void st(svbool_t pg, void *ptr, uint32_t slice_base) 
+   __arm_streaming __arm_inout("za"){
+   svst1_hor_za8(0, slice_base, pg, ptr);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_sme.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ #include "pch_arm_sme_include_post.h"
+ #include <arm_sme.h>
+ 
+ void st(svbool_t pg, void *ptr, uint32_t slice_base) 
+   __arm_streaming __arm_inout("za"){
+   svst1_hor_za8(0, slice_base, pg, ptr);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_sme.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ #include "pch_arm_sve.h"
+ 
+ svint32_t add_vectors(svint32_t a, svint32_t b)
+ {
+   return svadd_s32_z(svptrue_b32(), a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_sve.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ #include "pch_arm_sve_include_post.h"
+ #include "arm_sve.h"
+ 
+ svint32_t add_vectors(svint32_t a, svint32_t b)
+ {
+   return svadd_s32_z(svptrue_b32(), a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.hs gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.hs
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.hs	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.hs	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,2 ----
+ #pragma once
+ #include <arm_sve.h>
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pr123285-1.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pr123285-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pr123285-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pr123285-1.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3" } */
+ /* PR target/123285 */
+ 
+ #define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type))))
+ 
+ /* f used to allocate v30 to either a or b and the inline-asm
+    would clobber the v30. */
+ [[gnu::noipa]]
+ BS_VEC(int, 8) f(BS_VEC(int, 8) a, BS_VEC(int, 8) b)
+ {
+   a+=b;
+   asm("movi v30.16b, 0":::"v30");
+   a+=b;
+   return a;
+ }
+ [[gnu::noipa]]
+ BS_VEC(int, 8) f1(BS_VEC(int, 8) a, BS_VEC(int, 8) b)
+ {
+   a+=b;
+   a+=b;
+   return a;
+ }
+ 
+ int main()
+ {
+   BS_VEC(int, 8) a = {0,1,2,3,4,5,6,7};
+   BS_VEC(int, 8) b = {8,9,10,11,12,13,14};
+   BS_VEC(int, 8) c0 = f(a,b);
+   BS_VEC(int, 8) c1 = f1(a,b);
+   for(int i=0;i<8;i++)
+   if ( c0[i] != c1[i] )
+     __builtin_abort ();
+ }
+ 
+ 
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pr123294-1.c gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pr123294-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/aarch64/pr123294-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/aarch64/pr123294-1.c	Sat Mar 14 22:32:10 2026
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ /* PR rtl-optimization/123294 */
+ 
+ #include <arm_neon.h>
+ 
+ typedef unsigned a;
+ int b;
+ a d() {
+   __attribute__((__vector_size__(4 * sizeof(a)))) a e[5];
+   if (0 > b) {
+     __attribute__((__vector_size__(8 * sizeof(a)))) a f = {b, b};
+     e[0] = __builtin_shufflevector(f, f, 0, 1, 2, 3);
+   }
+   while (vqadd_u64((uint64x1_t){3}, (uint64x1_t){0})[0])
+     ;
+   return e[0][3];
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124294.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124294.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124294.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124294.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/124294 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mavx10.2 -masm=intel" } */
+ /* { dg-require-effective-target masm_intel } */
+ /* { dg-final { scan-assembler "\tvmovw\txmm0, xmm1" } } */
+ 
+ typedef unsigned char V __attribute__((vector_size (16)));
+ 
+ V
+ foo (V x, V y)
+ {
+   (void) x;
+   return __builtin_shuffle (y, (V) {}, (V) { 0, 1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 });
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124341.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124341.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124341.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124341.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,77 ----
+ /* PR target/124341 */
+ /* { dg-do assemble { target { avx10_2 && masm_intel } } } */
+ /* { dg-options "-O2 -mavx10.2 -masm=intel" } */
+ 
+ #include <x86intrin.h>
+ 
+ __m128i
+ mm_mask_cvt2ph_bf8 (__m128i w, __mmask16 u, __m128h a, __m128h b)
+ {
+   return _mm_mask_cvt2ph_bf8 (w, u, a, b);
+ }
+ 
+ __m256i
+ mm256_mask_cvt2ph_bf8 (__m256i w, __mmask32 u, __m256h a, __m256h b)
+ {
+   return _mm256_mask_cvt2ph_bf8 (w, u, a, b);
+ }
+ 
+ __m512i
+ mm512_mask_cvt2ph_bf8 (__m512i w, __mmask64 u, __m512h a, __m512h b)
+ {
+   return _mm512_mask_cvt2ph_bf8 (w, u, a, b);
+ }
+ 
+ __m128i
+ mm_mask_cvts_2ph_bf8 (__m128i w, __mmask16 u, __m128h a, __m128h b)
+ {
+   return _mm_mask_cvts_2ph_bf8 (w, u, a, b);
+ }
+ 
+ __m256i
+ mm256_mask_cvts_2ph_bf8 (__m256i w, __mmask32 u, __m256h a, __m256h b)
+ {
+   return _mm256_mask_cvts_2ph_bf8 (w, u, a, b);
+ }
+ 
+ __m512i
+ mm512_mask_cvts_2ph_bf8 (__m512i w, __mmask64 u, __m512h a, __m512h b)
+ {
+   return _mm512_mask_cvts_2ph_bf8 (w, u, a, b);
+ }
+ 
+ __m128i
+ mm_mask_cvt2ph_hf8 (__m128i w, __mmask16 u, __m128h a, __m128h b)
+ {
+   return _mm_mask_cvt2ph_hf8 (w, u, a, b);
+ }
+ 
+ __m256i
+ mm256_mask_cvt2ph_hf8 (__m256i w, __mmask32 u, __m256h a, __m256h b)
+ {
+   return _mm256_mask_cvt2ph_hf8 (w, u, a, b);
+ }
+ 
+ __m512i
+ mm512_mask_cvt2ph_hf8 (__m512i w, __mmask64 u, __m512h a, __m512h b)
+ {
+   return _mm512_mask_cvt2ph_hf8 (w, u, a, b);
+ }
+ 
+ __m128i
+ mm_mask_cvts_2ph_hf8 (__m128i w, __mmask16 u, __m128h a, __m128h b)
+ {
+   return _mm_mask_cvts_2ph_hf8 (w, u, a, b);
+ }
+ 
+ __m256i
+ mm256_mask_cvts_2ph_hf8 (__m256i w, __mmask32 u, __m256h a, __m256h b)
+ {
+   return _mm256_mask_cvts_2ph_hf8 (w, u, a, b);
+ }
+ 
+ __m512i
+ mm512_mask_cvts_2ph_hf8 (__m512i w, __mmask64 u, __m512h a, __m512h b)
+ {
+   return _mm512_mask_cvts_2ph_hf8 (w, u, a, b);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124349-2.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124349-2.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124349-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124349-2.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,41 ----
+ /* PR target/124349 */
+ /* { dg-do assemble { target { avx10_2 && masm_intel } } } */
+ /* { dg-options "-O2 -mavx10.2 -masm=intel" } */
+ 
+ #include <x86intrin.h>
+ 
+ __m128h
+ foo (__m128i *p)
+ {
+   return _mm_cvthf8_ph (*p);
+ }
+ 
+ __m128h
+ bar (__m128i *p, __m128h w, __mmask8 u)
+ {
+   return _mm_mask_cvthf8_ph (w, u, *p);
+ }
+ 
+ __m256h
+ baz (__m128i *p)
+ {
+   return _mm256_cvthf8_ph (*p);
+ }
+ 
+ __m256h
+ qux (__m128i *p, __m256h w, __mmask16 u)
+ {
+   return _mm256_mask_cvthf8_ph (w, u, *p);
+ }
+ 
+ __m512h
+ fred (__m256i *p)
+ {
+   return _mm512_cvthf8_ph (*p);
+ }
+ 
+ __m512h
+ corge (__m256i *p, __m512h w, __mmask32 u)
+ {
+   return _mm512_mask_cvthf8_ph (w, u, *p);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124349.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124349.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx10_2-pr124349.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx10_2-pr124349.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,17 ----
+ /* PR target/124349 */
+ /* { dg-do assemble { target { avx10_2 && masm_intel } } } */
+ /* { dg-options "-O2 -mavx10.2 -masm=intel" } */
+ 
+ #include <x86intrin.h>
+ 
+ int
+ foo (__m128bh v, __m128bh *p)
+ {
+   return _mm_comilt_sbh (*p, v);
+ }
+ 
+ int
+ bar (__m128bh v, __m128bh w)
+ {
+   return _mm_comilt_sbh (w, v);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512f-pr124138-1.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512f-pr124138-1.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512f-pr124138-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512f-pr124138-1.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,24 ----
+ /* PR target/124138 */
+ /* { dg-do run } */
+ /* { dg-options "-mavx512f" } */
+ /* { dg-require-effective-target avx512f } */
+ 
+ #define AVX512F
+ #include "avx512f-helper.h"
+ 
+ typedef __attribute__((__vector_size__ (64))) unsigned long long V;
+ 
+ [[gnu::noipa]] V
+ foo (V x)
+ {
+   return __builtin_shuffle (x, (V) { 0, 1, 2, 5, 4, 5, 6, 7 });
+ }
+ 
+ void
+ TEST ()
+ {
+   V x = foo ((V) { 1, 2, 3, 4, 5, 6, 7, 8 });
+   if (x[0] != 1 || x[1] != 2 || x[2] != 3 || x[3] != 6
+       || x[4] != 5 || x[5] != 6 || x[6] != 7 || x[7] != 8)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512f-pr124138-2.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512f-pr124138-2.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512f-pr124138-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512f-pr124138-2.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,25 ----
+ /* PR target/124138 */
+ /* { dg-do run } */
+ /* { dg-options "-mavx512f" } */
+ /* { dg-require-effective-target avx512f } */
+ 
+ #define AVX512F
+ #include "avx512f-helper.h"
+ 
+ typedef __attribute__((__vector_size__ (64))) unsigned long long V;
+ typedef __attribute__((__vector_size__ (64))) double W;
+ 
+ [[gnu::noipa]] W
+ foo (W x)
+ {
+   return __builtin_shuffle (x, (V) { 0, 1, 2, 5, 4, 5, 6, 7 });
+ }
+ 
+ void
+ TEST ()
+ {
+   W x = foo ((W) { 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5 });
+   if (x[0] != 1.5 || x[1] != 2.5 || x[2] != 3.5 || x[3] != 6.5
+       || x[4] != 5.5 || x[5] != 6.5 || x[6] != 7.5 || x[7] != 8.5)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512f-pr124315.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512f-pr124315.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512f-pr124315.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512f-pr124315.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,33 ----
+ /* PR target/124315 */
+ /* { dg-do compile { target masm_intel } } */
+ /* { dg-options "-O2 -mavx512f -masm=intel" } */
+ /* { dg-final { scan-assembler "\tvfmadd231sd\txmm0{k\[0-7]}, xmm1, xmm2, {ru-sae}" } } */
+ /* { dg-final { scan-assembler "\tvfmsub231sd\txmm0{k\[0-7]}, xmm1, xmm2, {ru-sae}" } } */
+ /* { dg-final { scan-assembler "\tvfnmadd231sd\txmm0{k\[0-7]}, xmm1, xmm2, {ru-sae}" } } */
+ /* { dg-final { scan-assembler "\tvfnmsub231sd\txmm0{k\[0-7]}, xmm1, xmm2, {ru-sae}" } } */
+ 
+ #include <x86intrin.h>
+ 
+ __m128d
+ foo (__m128d b, __m128d w, __m128d a,  __mmask8 u)
+ {
+   return _mm_mask3_fmadd_round_sd (w, a, b, u, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+ }
+ 
+ __m128d
+ bar (__m128d b, __m128d w, __m128d a, __mmask8 u)
+ {
+   return _mm_mask3_fmsub_round_sd (w, a, b, u, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+ }
+ 
+ __m128d
+ baz (__m128d b, __m128d w, __m128d a,  __mmask8 u)
+ {
+   return _mm_mask3_fnmadd_round_sd (w, a, b, u, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+ }
+ 
+ __m128d
+ qux (__m128d b, __m128d w, __m128d a,  __mmask8 u)
+ {
+   return _mm_mask3_fnmsub_round_sd (w, a, b, u, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,13 ----
+ /* PR target/124335 */
+ /* { dg-do assemble } */
+ /* { dg-require-effective-target masm_intel } */
+ /* { dg-options "-mavx512fp16 -masm=intel" } */
+ /* { dg-require-effective-target avx512fp16 } */
+ 
+ #include <x86intrin.h>
+ 
+ __m128h
+ foo (_Float16 const *x, __mmask8 y)
+ {
+   return _mm_maskz_load_sh (y, x);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512vl-pr124367.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512vl-pr124367.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/avx512vl-pr124367.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/avx512vl-pr124367.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/124367 */
+ /* { dg-do assemble { target { { int128 && avx512vl } && masm_intel } } } */
+ /* { dg-options "-O -mavx512vl -masm=intel" } */
+ 
+ union {
+   __int128 a;
+   __attribute__((__vector_size__(sizeof (__int128)))) long long b;
+ } u;
+ 
+ void
+ foo ()
+ {
+   u.b ^= 0 > u.a | u.b;
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/cet-pr124366.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/cet-pr124366.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/cet-pr124366.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/cet-pr124366.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ /* PR target/124366 */
+ /* { dg-do assemble { target { cet && masm_intel } } } */
+ /* { dg-options "-O2 -mshstk -masm=intel" } */
+ 
+ #include <x86intrin.h>
+ 
+ void
+ wrssd (unsigned int x, void *y)
+ {
+   _wrssd (x, y);
+ }
+ 
+ void
+ wrussd (unsigned int x, void *y)
+ {
+   _wrussd (x, y);
+ }
+ 
+ #ifdef __x86_64__
+ void
+ wrssq (unsigned long long x, void *y)
+ {
+   _wrssq (x, y);
+ }
+ 
+ void
+ wrussq (unsigned long long x, void *y)
+ {
+   _wrussq (x, y);
+ }
+ #endif
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/movrs-pr124461.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/movrs-pr124461.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/movrs-pr124461.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/movrs-pr124461.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/124461 */
+ /* { dg-do compile { target { masm_intel && { ! ia32 } } } } */
+ /* { dg-options "-O2 -mmovrs -masm=intel" } */
+ /* { dg-final { scan-assembler "\tmovrs\teax, DWORD PTR \\\[\[er]di\\\]" } } */
+ /* { dg-final { scan-assembler "\tmovrs\trax, QWORD PTR \\\[\[er]di\\\]" } } */
+ 
+ #include <x86intrin.h>
+ 
+ int
+ foo (const void *p)
+ {
+   return _movrs_i32 (p);
+ }
+ 
+ long long
+ bar (const void *p)
+ {
+   return _movrs_i64 (p);
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/i386/pr124056.c gcc-15-20260314/gcc/testsuite/gcc.target/i386/pr124056.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/i386/pr124056.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/i386/pr124056.c	Sat Mar 14 22:32:11 2026
***************
*** 0 ****
--- 1,61 ----
+ /* PR middle-end/124056 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -masm=att" } */
+ 
+ int v;
+ 
+ [[gnu::noipa]] void
+ foo (void)
+ {
+   v = 42;
+ }
+ 
+ [[gnu::noipa]] void
+ bar (void)
+ {
+   v = 43;
+ }
+ 
+ [[gnu::noipa]] int
+ baz (void)
+ {
+   bool err;
+   __asm goto ("movl %1, %%ecx\n\t"
+ 	       "test %%ecx, %%ecx\n\t"
+ 	       "js 1f\n\t"
+ 	       "jmp %l[lab]\n\t"
+ 	    "1: cmpl $-1, %%ecx"
+ 	       : "=@ccz" (err) : "m" (v) : "ecx" : lab);
+   if (err)
+     {
+       bar ();
+       return -1;
+     }
+   return 0;
+ 
+  lab:
+   if (err)
+     {
+       foo ();
+       return -2;
+     }
+ 
+   return 1;
+ }
+ 
+ int
+ main ()
+ {
+   v = 0;
+   if (baz () != -2 || v != 42)
+     __builtin_abort ();
+   v = 1;
+   if (baz () != 1 || v != 1)
+     __builtin_abort ();
+   v = -1;
+   if (baz () != -1 || v != 43)
+     __builtin_abort ();
+   v = -2;
+   if (baz () != 0 || v != -2)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr124147.c gcc-15-20260314/gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr124147.c
*** gcc-15-20260307/gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr124147.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr124147.c	Sat Mar 14 22:32:12 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mcpu=xt-c920 -mrvv-vector-bits=zvl" } */
+ 
+ typedef __attribute__((__vector_size__(2 * sizeof(int)))) int V;
+ 
+ V
+ foo(V v)
+ {
+   return v > 0;
+ }
+ 
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gfortran.dg/pr121743.f90 gcc-15-20260314/gcc/testsuite/gfortran.dg/pr121743.f90
*** gcc-15-20260307/gcc/testsuite/gfortran.dg/pr121743.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gfortran.dg/pr121743.f90	Sat Mar 14 22:32:13 2026
***************
*** 0 ****
--- 1,11 ----
+ ! PR fortran/121743
+ ! { dg-do compile }
+ ! { dg-options "-fcoarray=lib" }
+ 
+ program pr121743
+ end program pr121743
+ subroutine foo ()
+   integer, allocatable, dimension(:), codimension[:] :: s
+   integer :: i
+   i = s(1)[1]
+ end
diff -Nrcpad gcc-15-20260307/gcc/testsuite/gfortran.dg/pr124450.f90 gcc-15-20260314/gcc/testsuite/gfortran.dg/pr124450.f90
*** gcc-15-20260307/gcc/testsuite/gfortran.dg/pr124450.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/gcc/testsuite/gfortran.dg/pr124450.f90	Sat Mar 14 22:32:13 2026
***************
*** 0 ****
--- 1,14 ----
+ ! PR fortran/124450
+ ! { dg-do compile }
+ 
+   type ta
+     integer(kind=4) :: a(1)
+     integer(kind=4) :: b(1)
+   end type ta
+   type tb
+     type(ta) :: c(1) = ta(1, 2)
+   end type tb
+   type(tb) :: e = tb(ta(3, 4))
+ 
+   print *, e
+ end
diff -Nrcpad gcc-15-20260307/gcc/tree-inline.cc gcc-15-20260314/gcc/tree-inline.cc
*** gcc-15-20260307/gcc/tree-inline.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/gcc/tree-inline.cc	Sat Mar 14 22:32:13 2026
*************** expand_call_inline (basic_block bb, gimp
*** 5303,5309 ****
    if (use_retvar && gimple_call_lhs (stmt))
      {
        gimple *old_stmt = stmt;
!       stmt = gimple_build_assign (gimple_call_lhs (stmt), use_retvar);
        gimple_set_location (stmt, gimple_location (old_stmt));
        gsi_replace (&stmt_gsi, stmt, false);
        maybe_clean_or_replace_eh_stmt (old_stmt, stmt);
--- 5303,5322 ----
    if (use_retvar && gimple_call_lhs (stmt))
      {
        gimple *old_stmt = stmt;
!       tree lhs = gimple_call_lhs (stmt);
!       if (!is_gimple_reg (lhs)
! 	  && !is_gimple_reg (use_retvar)
! 	  && is_gimple_reg_type (TREE_TYPE (lhs)))
! 	{
! 	  /* If both lhs and use_retvar aren't gimple regs, yet have
! 	     gimple reg type, copy through a temporary SSA_NAME.  */
! 	  gimple *g = gimple_build_assign (make_ssa_name (TREE_TYPE (lhs)),
! 					   use_retvar);
! 	  gimple_set_location (g, gimple_location (old_stmt));
! 	  gsi_insert_before (&stmt_gsi, g, GSI_SAME_STMT);
! 	  use_retvar = gimple_assign_lhs (g);
! 	}
!       stmt = gimple_build_assign (lhs, use_retvar);
        gimple_set_location (stmt, gimple_location (old_stmt));
        gsi_replace (&stmt_gsi, stmt, false);
        maybe_clean_or_replace_eh_stmt (old_stmt, stmt);
diff -Nrcpad gcc-15-20260307/gcc/tree-ssa-dse.cc gcc-15-20260314/gcc/tree-ssa-dse.cc
*** gcc-15-20260307/gcc/tree-ssa-dse.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/gcc/tree-ssa-dse.cc	Sat Mar 14 22:32:13 2026
*************** dse_optimize_stmt (function *fun, gimple
*** 1493,1499 ****
  
    /* We know we have virtual definitions.  We can handle assignments and
       some builtin calls.  */
!   if (gimple_call_builtin_p (stmt, BUILT_IN_NORMAL))
      {
        tree fndecl = gimple_call_fndecl (stmt);
        switch (DECL_FUNCTION_CODE (fndecl))
--- 1493,1500 ----
  
    /* We know we have virtual definitions.  We can handle assignments and
       some builtin calls.  */
!   if (gimple_call_builtin_p (stmt, BUILT_IN_NORMAL)
!       && !gimple_call_ctrl_altering_p (stmt))
      {
        tree fndecl = gimple_call_fndecl (stmt);
        switch (DECL_FUNCTION_CODE (fndecl))
diff -Nrcpad gcc-15-20260307/gcc/tree-ssa-forwprop.cc gcc-15-20260314/gcc/tree-ssa-forwprop.cc
*** gcc-15-20260307/gcc/tree-ssa-forwprop.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/gcc/tree-ssa-forwprop.cc	Sat Mar 14 22:32:13 2026
*************** recognise_vec_perm_simplify_seq (gassign
*** 3484,3491 ****
        if (commutative_tree_code (gimple_assign_rhs_code (v_x_stmt)))
  	{
  	  /* Keep v_x_1 the first operand for non-commutative operators.  */
! 	  v_x_1 = gimple_assign_rhs2 (v_x_stmt);
! 	  v_x_2 = gimple_assign_rhs1 (v_x_stmt);
  	  if (v_x_1 != v_y_1 || v_x_2 != v_y_2)
  	    return false;
  	}
--- 3484,3490 ----
        if (commutative_tree_code (gimple_assign_rhs_code (v_x_stmt)))
  	{
  	  /* Keep v_x_1 the first operand for non-commutative operators.  */
! 	  std::swap (v_x_1, v_x_2);
  	  if (v_x_1 != v_y_1 || v_x_2 != v_y_2)
  	    return false;
  	}
*************** recognise_vec_perm_simplify_seq (gassign
*** 3528,3534 ****
  
    /* Create the new selector.  */
    vec_perm_builder new_sel_perm (nelts, nelts, 1);
!   auto_vec<unsigned int> lanes (nelts);
    lanes.quick_grow_cleared (nelts);
    for (unsigned int i = 0; i < nelts; i++)
      {
--- 3527,3533 ----
  
    /* Create the new selector.  */
    vec_perm_builder new_sel_perm (nelts, nelts, 1);
!   auto_vec<bool> lanes (nelts);
    lanes.quick_grow_cleared (nelts);
    for (unsigned int i = 0; i < nelts; i++)
      {
*************** recognise_vec_perm_simplify_seq (gassign
*** 3554,3560 ****
        new_sel_perm.quick_push (l + offs * nelts);
  
        /* Mark lane as used.  */
!       lanes[l] = 1;
      }
  
    /* Count how many lanes are need.  */
--- 3553,3559 ----
        new_sel_perm.quick_push (l + offs * nelts);
  
        /* Mark lane as used.  */
!       lanes[l] = true;
      }
  
    /* Count how many lanes are need.  */
*************** recognise_vec_perm_simplify_seq (gassign
*** 3566,3577 ****
    if (cnt > nelts / 2)
      return false;
  
!   /* Check if the resulting permuation is cheap.  */
    vec_perm_indices new_indices (new_sel_perm, 2, nelts);
    tree vectype = TREE_TYPE (gimple_assign_lhs (stmt));
    machine_mode vmode = TYPE_MODE (vectype);
    if (!can_vec_perm_const_p (vmode, vmode, new_indices, false))
!       return false;
  
    *seq = XNEW (struct _vec_perm_simplify_seq);
    (*seq)->stmt = stmt;
--- 3565,3576 ----
    if (cnt > nelts / 2)
      return false;
  
!   /* Check if the resulting permutation is cheap.  */
    vec_perm_indices new_indices (new_sel_perm, 2, nelts);
    tree vectype = TREE_TYPE (gimple_assign_lhs (stmt));
    machine_mode vmode = TYPE_MODE (vectype);
    if (!can_vec_perm_const_p (vmode, vmode, new_indices, false))
!     return false;
  
    *seq = XNEW (struct _vec_perm_simplify_seq);
    (*seq)->stmt = stmt;
*************** can_blend_vec_perm_simplify_seqs_p (vec_
*** 3661,3668 ****
       seq1->v_x_stmt and seq1->v_y_stmt are before it.
  
       Note, that we don't need to check the BBs here, because all
!      statements of both sequences have to be in the same BB.
!      */
  
    tree seq2_v_in = gimple_assign_rhs1 (seq2->v_1_stmt);
    if (TREE_CODE (seq2_v_in) != SSA_NAME)
--- 3660,3666 ----
       seq1->v_x_stmt and seq1->v_y_stmt are before it.
  
       Note, that we don't need to check the BBs here, because all
!      statements of both sequences have to be in the same BB.  */
  
    tree seq2_v_in = gimple_assign_rhs1 (seq2->v_1_stmt);
    if (TREE_CODE (seq2_v_in) != SSA_NAME)
*************** calc_perm_vec_perm_simplify_seqs (vec_pe
*** 3710,3716 ****
  {
    unsigned int i;
    unsigned int nelts = seq1->nelts;
!   auto_vec<int> lane_assignment;
    lane_assignment.create (nelts);
  
    /* Mark all lanes as free.  */
--- 3708,3714 ----
  {
    unsigned int i;
    unsigned int nelts = seq1->nelts;
!   auto_vec<unsigned int> lane_assignment;
    lane_assignment.create (nelts);
  
    /* Mark all lanes as free.  */
*************** calc_perm_vec_perm_simplify_seqs (vec_pe
*** 3722,3728 ****
        unsigned int l = TREE_INT_CST_LOW (VECTOR_CST_ELT (seq1->new_sel, i));
        l %= nelts;
        lane_assignment[l] = 1;
! }
  
    /* Allocate lanes for seq2 and calculate selector for seq2->stmt.  */
    vec_perm_builder seq2_stmt_sel_perm (nelts, nelts, 1);
--- 3720,3726 ----
        unsigned int l = TREE_INT_CST_LOW (VECTOR_CST_ELT (seq1->new_sel, i));
        l %= nelts;
        lane_assignment[l] = 1;
!     }
  
    /* Allocate lanes for seq2 and calculate selector for seq2->stmt.  */
    vec_perm_builder seq2_stmt_sel_perm (nelts, nelts, 1);
*************** calc_perm_vec_perm_simplify_seqs (vec_pe
*** 3763,3776 ****
  	    }
  
  	  /* Allocate lane.  */
! 	  lane_assignment[lane] = 2;
  	  new_sel = lane + offs * nelts;
  	}
  
        seq2_stmt_sel_perm.quick_push (new_sel);
      }
  
!   /* Check if the resulting permuation is cheap.  */
    seq2_stmt_indices->new_vector (seq2_stmt_sel_perm, 2, nelts);
    tree vectype = TREE_TYPE (gimple_assign_lhs (seq2->stmt));
    machine_mode vmode = TYPE_MODE (vectype);
--- 3761,3774 ----
  	    }
  
  	  /* Allocate lane.  */
! 	  lane_assignment[lane] = 2 + l_orig;
  	  new_sel = lane + offs * nelts;
  	}
  
        seq2_stmt_sel_perm.quick_push (new_sel);
      }
  
!   /* Check if the resulting permutation is cheap.  */
    seq2_stmt_indices->new_vector (seq2_stmt_sel_perm, 2, nelts);
    tree vectype = TREE_TYPE (gimple_assign_lhs (seq2->stmt));
    machine_mode vmode = TYPE_MODE (vectype);
*************** calc_perm_vec_perm_simplify_seqs (vec_pe
*** 3782,3788 ****
    vec_perm_builder seq1_v_2_stmt_sel_perm (nelts, nelts, 1);
    for (i = 0; i < nelts; i++)
      {
!       bool use_seq1 = lane_assignment[i] != 2;
        unsigned int l1, l2;
  
        if (use_seq1)
--- 3780,3786 ----
    vec_perm_builder seq1_v_2_stmt_sel_perm (nelts, nelts, 1);
    for (i = 0; i < nelts; i++)
      {
!       bool use_seq1 = lane_assignment[i] < 2;
        unsigned int l1, l2;
  
        if (use_seq1)
*************** calc_perm_vec_perm_simplify_seqs (vec_pe
*** 3798,3822 ****
  	  /* We moved the lanes for seq2, so we need to adjust for that.  */
  	  tree s1 = gimple_assign_rhs3 (seq2->v_1_stmt);
  	  tree s2 = gimple_assign_rhs3 (seq2->v_2_stmt);
! 
! 	  unsigned int j = 0;
! 	  for (; j < i; j++)
! 	    {
! 	      unsigned int sel_new;
! 	      sel_new = seq2_stmt_sel_perm[j].to_constant ();
! 	      sel_new %= nelts;
! 	      if (sel_new == i)
! 		break;
! 	    }
! 
! 	  /* This should not happen.  Test anyway to guarantee correctness.  */
! 	  if (j == i)
! 	    return false;
! 
! 	  l1 = TREE_INT_CST_LOW (VECTOR_CST_ELT (s1, j));
! 	  l2 = TREE_INT_CST_LOW (VECTOR_CST_ELT (s2, j));
  	}
  
        seq1_v_1_stmt_sel_perm.quick_push (l1 + (use_seq1 ? 0 : nelts));
        seq1_v_2_stmt_sel_perm.quick_push (l2 + (use_seq1 ? 0 : nelts));
      }
--- 3796,3807 ----
  	  /* We moved the lanes for seq2, so we need to adjust for that.  */
  	  tree s1 = gimple_assign_rhs3 (seq2->v_1_stmt);
  	  tree s2 = gimple_assign_rhs3 (seq2->v_2_stmt);
! 	  l1 = TREE_INT_CST_LOW (VECTOR_CST_ELT (s1, lane_assignment[i] - 2));
! 	  l2 = TREE_INT_CST_LOW (VECTOR_CST_ELT (s2, lane_assignment[i] - 2));
  	}
  
+       l1 %= nelts;
+       l2 %= nelts;
        seq1_v_1_stmt_sel_perm.quick_push (l1 + (use_seq1 ? 0 : nelts));
        seq1_v_2_stmt_sel_perm.quick_push (l2 + (use_seq1 ? 0 : nelts));
      }
diff -Nrcpad gcc-15-20260307/gcc/tree-ssa-math-opts.cc gcc-15-20260314/gcc/tree-ssa-math-opts.cc
*** gcc-15-20260307/gcc/tree-ssa-math-opts.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/gcc/tree-ssa-math-opts.cc	Sat Mar 14 22:32:13 2026
*************** convert_plusminus_to_widen (gimple_stmt_
*** 2972,2977 ****
--- 2972,2982 ----
    if (to_mode == from_mode)
      return false;
  
+   /* For fixed point types, the mode classes could be different
+      so reject that case. */
+   if (GET_MODE_CLASS (from_mode) != GET_MODE_CLASS (to_mode))
+     return false;
+ 
    from_unsigned1 = TYPE_UNSIGNED (type1);
    from_unsigned2 = TYPE_UNSIGNED (type2);
    optype = type1;
*************** match_uaddc_usubc (gimple_stmt_iterator
*** 5290,5296 ****
  			TYPE_MODE (type)) == CODE_FOR_nothing
        || (rhs[2]
  	  && optab_handler (code == PLUS_EXPR ? uaddc5_optab : usubc5_optab,
! 			    TYPE_MODE (type)) == CODE_FOR_nothing))
      return false;
    tree arg1, arg2, arg3 = NULL_TREE;
    gimple *re1 = NULL, *re2 = NULL;
--- 5295,5305 ----
  			TYPE_MODE (type)) == CODE_FOR_nothing
        || (rhs[2]
  	  && optab_handler (code == PLUS_EXPR ? uaddc5_optab : usubc5_optab,
! 			    TYPE_MODE (type)) == CODE_FOR_nothing)
!       || !types_compatible_p (type,
! 			      TREE_TYPE (TREE_TYPE (gimple_call_lhs (ovf1))))
!       || !types_compatible_p (type,
! 			      TREE_TYPE (TREE_TYPE (gimple_call_lhs (ovf2)))))
      return false;
    tree arg1, arg2, arg3 = NULL_TREE;
    gimple *re1 = NULL, *re2 = NULL;
diff -Nrcpad gcc-15-20260307/gcc/tree-ssa-phiopt.cc gcc-15-20260314/gcc/tree-ssa-phiopt.cc
*** gcc-15-20260307/gcc/tree-ssa-phiopt.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/gcc/tree-ssa-phiopt.cc	Sat Mar 14 22:32:13 2026
*************** cond_removal_in_builtin_zero_pattern (ba
*** 3222,3237 ****
        || arg != gimple_cond_lhs (cond))
      return false;
  
!   /* Canonicalize.  */
!   if ((e2->flags & EDGE_TRUE_VALUE
!        && gimple_cond_code (cond) == NE_EXPR)
!       || (e1->flags & EDGE_TRUE_VALUE
! 	  && gimple_cond_code (cond) == EQ_EXPR))
      {
        std::swap (arg0, arg1);
-       std::swap (e1, e2);
      }
  
    /* Check PHI arguments.  */
    if (lhs != arg0
        || TREE_CODE (arg1) != INTEGER_CST)
--- 3222,3257 ----
        || arg != gimple_cond_lhs (cond))
      return false;
  
!   edge true_edge, false_edge;
!   /* We need to know which is the true edge and which is the false
!      edge so that we know when to invert the condition below.  */
!   extract_true_false_edges_from_block (cond_bb, &true_edge, &false_edge);
! 
!   /* Forward the edges over the middle basic block.  */
!   if (true_edge->dest == middle_bb)
!     true_edge = EDGE_SUCC (true_edge->dest, 0);
!   if (false_edge->dest == middle_bb)
!     false_edge = EDGE_SUCC (false_edge->dest, 0);
! 
!   /* Canonicalize the args with respect to the edges,
!      arg0 is from the true edge and arg1 is from the
!      false edge.
!      That is `cond ? arg0 : arg1`.*/
!   if (true_edge == e1)
!     gcc_assert (false_edge == e2);
!   else
      {
+       gcc_assert (false_edge == e1);
+       gcc_assert (true_edge == e2);
        std::swap (arg0, arg1);
      }
  
+   /* Canonicalize the args such that we get:
+      `arg != 0 ? arg0 : arg1`. So swap arg0/arg1
+      around if cond was an equals.  */
+   if (gimple_cond_code (cond) == EQ_EXPR)
+     std::swap (arg0, arg1);
+ 
    /* Check PHI arguments.  */
    if (lhs != arg0
        || TREE_CODE (arg1) != INTEGER_CST)
diff -Nrcpad gcc-15-20260307/gcc/tree.cc gcc-15-20260314/gcc/tree.cc
*** gcc-15-20260307/gcc/tree.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/gcc/tree.cc	Sat Mar 14 22:32:14 2026
*************** simple_cst_equal (const_tree t1, const_t
*** 6721,6733 ****
  	vec<constructor_elt, va_gc> *v2 = CONSTRUCTOR_ELTS (t2);
  
  	if (vec_safe_length (v1) != vec_safe_length (v2))
! 	  return false;
  
          for (idx = 0; idx < vec_safe_length (v1); ++idx)
! 	  /* ??? Should we handle also fields here? */
! 	  if (!simple_cst_equal ((*v1)[idx].value, (*v2)[idx].value))
! 	    return false;
! 	return true;
        }
  
      case SAVE_EXPR:
--- 6721,6747 ----
  	vec<constructor_elt, va_gc> *v2 = CONSTRUCTOR_ELTS (t2);
  
  	if (vec_safe_length (v1) != vec_safe_length (v2))
! 	  return 0;
  
          for (idx = 0; idx < vec_safe_length (v1); ++idx)
! 	  {
! 	    if ((*v1)[idx].index
! 		&& TREE_CODE ((*v1)[idx].index) == FIELD_DECL)
! 	      {
! 		if ((*v1)[idx].index != (*v2)[idx].index)
! 		  return 0;
! 	      }
! 	    else
! 	      {
! 		cmp = simple_cst_equal ((*v1)[idx].index, (*v2)[idx].index);
! 		if (cmp <= 0)
! 		  return cmp;
! 	      }
! 	    cmp = simple_cst_equal ((*v1)[idx].value, (*v2)[idx].value);
! 	    if (cmp <= 0)
! 	      return cmp;
! 	  }
! 	return 1;
        }
  
      case SAVE_EXPR:
*************** verify_type (const_tree t)
*** 14335,14344 ****
      }
    if (TYPE_MAIN_VARIANT (t) == t && ct && TYPE_MAIN_VARIANT (ct) != ct)
     {
!       error ("%<TYPE_CANONICAL%> of main variant is not main variant");
!       debug_tree (ct);
!       debug_tree (TYPE_MAIN_VARIANT (ct));
!       error_found = true;
     }
  
  
--- 14349,14373 ----
      }
    if (TYPE_MAIN_VARIANT (t) == t && ct && TYPE_MAIN_VARIANT (ct) != ct)
     {
!      /* This can happen when build_type_attribute_variant is called on
! 	C/C++ arrays of qualified types.  volatile int[2] is unqualified
! 	ARRAY_TYPE with volatile int element type.
! 	TYPE_CANONICAL (volatile int) is itself and so is
! 	TYPE_CANONICAL (volatile int[2]).  build_type_attribute_qual_variant
! 	creates a distinct type copy (so TYPE_MAIN_VARIANT is itself) and sets
! 	its TYPE_CANONICAL to the unqualified ARRAY_TYPE (so volatile int[2]).
! 	But this is not the TYPE_MAIN_VARIANT, which is int[2].  So, just
! 	verify that TYPE_MAIN_VARIANT (ct) is already the final type we
! 	need.  */
!       tree mvc = TYPE_MAIN_VARIANT (ct);
!       if (TYPE_CANONICAL (mvc) != mvc)
! 	{
! 	  error ("main variant of %<TYPE_CANONICAL%> of main variant is not"
! 		 " its own %<TYPE_CANONICAL%>");
! 	  debug_tree (ct);
! 	  debug_tree (TYPE_MAIN_VARIANT (ct));
! 	  error_found = true;
! 	}
     }
  
  
diff -Nrcpad gcc-15-20260307/libcpp/ChangeLog gcc-15-20260314/libcpp/ChangeLog
*** gcc-15-20260307/libcpp/ChangeLog	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/libcpp/ChangeLog	Sat Mar 14 22:32:14 2026
***************
*** 1,3 ****
--- 1,14 ----
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/123273
+ 	* lex.cc (cpp_directive_only_process): Only go to done_comment
+ 	for '/' if star is true and esc is false.  When seeing '\\' with
+ 	esc set to true, clear esc as well as star instead of keeping esc
+ 	set.
+ 
  2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/libcpp/files.cc gcc-15-20260314/libcpp/files.cc
*** gcc-15-20260307/libcpp/files.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/libcpp/files.cc	Sat Mar 14 22:32:14 2026
*************** _cpp_stack_file (cpp_reader *pfile, _cpp
*** 1013,1019 ****
        /* Add the file to the dependencies on its first inclusion.  */
        if (CPP_OPTION (pfile, deps.style) > (sysp != 0)
  	  && !file->stack_count
- 	  && file->path[0]
  	  && !(pfile->main_file == file
  	       && CPP_OPTION (pfile, deps.ignore_main_file)))
  	deps_add_dep (pfile->deps, file->path);
--- 1013,1018 ----
diff -Nrcpad gcc-15-20260307/libcpp/lex.cc gcc-15-20260314/libcpp/lex.cc
*** gcc-15-20260307/libcpp/lex.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/libcpp/lex.cc	Sat Mar 14 22:32:14 2026
*************** cpp_directive_only_process (cpp_reader *
*** 5465,5471 ****
  		    switch (c)
  		      {
  		      case '\\':
! 			esc = true;
  			break;
  
  		      case '\r':
--- 5465,5477 ----
  		    switch (c)
  		      {
  		      case '\\':
! 			if (esc)
! 			  {
! 			    star = false;
! 			    esc = false;
! 			  }
! 			else
! 			  esc = true;
  			break;
  
  		      case '\r':
*************** cpp_directive_only_process (cpp_reader *
*** 5496,5502 ****
  			break;
  
  		      case '/':
! 			if (star)
  			  goto done_comment;
  			/* FALLTHROUGH  */
  
--- 5502,5508 ----
  			break;
  
  		      case '/':
! 			if (star && !esc)
  			  goto done_comment;
  			/* FALLTHROUGH  */
  
diff -Nrcpad gcc-15-20260307/libcpp/mkdeps.cc gcc-15-20260314/libcpp/mkdeps.cc
*** gcc-15-20260307/libcpp/mkdeps.cc	Sat Mar  7 22:32:13 2026
--- gcc-15-20260314/libcpp/mkdeps.cc	Sat Mar 14 22:32:14 2026
*************** public:
*** 81,88 ****
    };
  
    mkdeps ()
!     : primary_output (NULL), module_name (NULL), cmi_name (NULL)
!     , is_header_unit (false), is_exported (false), quote_lwm (0)
    {
    }
    ~mkdeps ()
--- 81,89 ----
    };
  
    mkdeps ()
!     : primary_output (NULL), module_name (NULL), cmi_name (NULL),
!       is_header_unit (false), is_exported (false), quote_lwm (0),
!       first_phony_dep (1)
    {
    }
    ~mkdeps ()
*************** public:
*** 118,123 ****
--- 119,125 ----
    bool is_header_unit;
    bool is_exported;
    unsigned short quote_lwm;
+   unsigned int first_phony_dep;
  };
  
  /* Apply Make quoting to STR, TRAIL.  Note that it's not possible to
*************** fdeps_add_target (struct mkdeps *d, cons
*** 318,328 ****
  void
  deps_add_dep (class mkdeps *d, const char *t)
  {
!   gcc_assert (*t);
! 
!   t = apply_vpath (d, t);
  
!   d->deps.push (xstrdup (t));
  }
  
  void
--- 320,336 ----
  void
  deps_add_dep (class mkdeps *d, const char *t)
  {
!   if (*t)
!     {
!       t = apply_vpath (d, t);
  
!       d->deps.push (xstrdup (t));
!     }
!   /* When called first with "", remember we should
!      emit for -MP all dependencies rather than just
!      second and following dependency.  See PR105412.  */
!   else if (d->deps.size () == 0)
!     d->first_phony_dep = 0;
  }
  
  void
*************** make_write (const cpp_reader *pfile, FIL
*** 438,444 ****
        make_write_vec (d->deps, fp, column, colmax);
        fputs ("\n", fp);
        if (CPP_OPTION (pfile, deps.phony_targets))
! 	for (unsigned i = 1; i < d->deps.size (); i++)
  	  fprintf (fp, "%s:\n", munge (d->deps[i]));
      }
  
--- 446,452 ----
        make_write_vec (d->deps, fp, column, colmax);
        fputs ("\n", fp);
        if (CPP_OPTION (pfile, deps.phony_targets))
! 	for (unsigned i = d->first_phony_dep; i < d->deps.size (); i++)
  	  fprintf (fp, "%s:\n", munge (d->deps[i]));
      }
  
diff -Nrcpad gcc-15-20260307/libiberty/ChangeLog gcc-15-20260314/libiberty/ChangeLog
*** gcc-15-20260307/libiberty/ChangeLog	Sat Mar  7 22:32:14 2026
--- gcc-15-20260314/libiberty/ChangeLog	Sat Mar 14 22:32:15 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124365
+ 	* simple-object.c (handle_lto_debug_sections): Also copy over
+ 	.ARM.attributes section.
+ 
  2025-08-08  Release Manager
  
  	* GCC 15.2.0 released.
diff -Nrcpad gcc-15-20260307/libiberty/simple-object.c gcc-15-20260314/libiberty/simple-object.c
*** gcc-15-20260307/libiberty/simple-object.c	Sat Mar  7 22:32:14 2026
--- gcc-15-20260314/libiberty/simple-object.c	Sat Mar 14 22:32:15 2026
*************** handle_lto_debug_sections (const char *n
*** 310,315 ****
--- 310,319 ----
    /* Copy over .BTF section under the same name if present.  */
    else if (strcmp (name, ".BTF") == 0)
      return strcpy (newname, name);
+   /* Copy over .ARM.attributes section under the same name if present.  AArch64
+      aeabi attributes are present in this section.  */
+   else if (strcmp (name, ".ARM.attributes") == 0)
+     return strcpy (newname, name);
    free (newname);
    return NULL;
  }
diff -Nrcpad gcc-15-20260307/libstdc++-v3/ChangeLog gcc-15-20260314/libstdc++-v3/ChangeLog
*** gcc-15-20260307/libstdc++-v3/ChangeLog	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/ChangeLog	Sat Mar 14 22:32:15 2026
***************
*** 1,3 ****
--- 1,99 ----
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124015
+ 	* include/bits/regex.tcc (regex_traits::lookup_classname): Fix
+ 	handling of icase parameter.
+ 
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124015
+ 	* testsuite/28_regex/traits/char/lookup_classname.cc: Check for
+ 	correct result for unrecognized classname. Check that lookup is
+ 	case insensitive. Check that all required classnames are
+ 	recognized. Check that icase flag only affects "lower" and
+ 	"upper".
+ 	* testsuite/28_regex/traits/wchar_t/lookup_classname.cc:
+ 	Likewise.
+ 
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/121771
+ 	* include/std/tuple (tuple::tuple(const Elements&...)): Use
+ 	type_identity_t to prevent constructor being used for CTAD.
+ 	(tuple::tuple(allocator_arg_t, const A&, const Elements&...)):
+ 	Likewise.
+ 	* testsuite/20_util/tuple/cons/121771.cc: New test.
+ 
+ 2026-03-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-02-12  Xi Ruoyao  <xry111@xry111.site>
+ 		    Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/17_intro/badnames.cc (__unused): Do not define.
+ 	* testsuite/17_intro/names.cc [glibc == 2.43] (__unused): Undef.
+ 
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-10-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.tcc (regex_traits::value): Use __c instead
+ 	of __ch.
+ 
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex_automaton.tcc [_GLIBCXX_DEBUG]: Include
+ 	<ostream> so that _State_base::_M_print etc. can use it.
+ 
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-10-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.tcc (regex_traits::value): Implement
+ 	without using istringstream.
+ 	* include/std/regex: Do not include <sstream>.
+ 
+ 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex_compiler.h: Replace _GLIBCXX17_CONSTEXPR
+ 	with constexpr and disable diagnostics with pragmas.
+ 	(_AnyMatcher::operator()): Use constexpr-if instead of tag
+ 	dispatching. Postpone calls to _M_translate until after checking
+ 	result of earlier calls.
+ 	(_AnyMatcher::_M_apply): Remove both overloads.
+ 	(_BracketMatcher::operator(), _BracketMatcher::_M_ready):
+ 	Replace tag dispatching with 'if constexpr'.
+ 	(_BracketMatcher::_M_apply(_CharT, true_type)): Remove.
+ 	(_BracketMatcher::_M_apply(_CharT, false_type)): Remove second
+ 	parameter.
+ 	(_BracketMatcher::_M_make_cache): Remove both overloads.
+ 	* include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply):
+ 	Remove second parameter.
+ 	* include/bits/regex_executor.tcc: Replace _GLIBCXX17_CONSTEXPR
+ 	with constexpr and disable diagnostics with pragmas.
+ 	(_Executor::_M_handle_backref): Replace __glibcxx_assert with
+ 	static_assert.
+ 	(_Executor::_M_handle_accept): Mark _S_opcode_backref case as
+ 	unreachable for non-DFS mode and do not instantiate
+ 	_M_handle_backref for that case.
+ 
  2026-03-04  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/bits/regex.tcc gcc-15-20260314/libstdc++-v3/include/bits/regex.tcc
*** gcc-15-20260307/libstdc++-v3/include/bits/regex.tcc	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/bits/regex.tcc	Sat Mar 14 22:32:15 2026
*************** namespace __detail
*** 309,316 ****
  	if (__s == __it.first)
  	  {
  	    if (__icase
! 		&& ((__it.second
! 		     & (ctype_base::lower | ctype_base::upper)) != 0))
  	      return ctype_base::alpha;
  	    return __it.second;
  	  }
--- 309,316 ----
  	if (__s == __it.first)
  	  {
  	    if (__icase
! 		&& (__it.second._M_base == ctype_base::lower
! 		      || __it.second._M_base == ctype_base::upper))
  	      return ctype_base::alpha;
  	    return __it.second;
  	  }
*************** namespace __detail
*** 331,350 ****
  	    && __c == __fctyp.widen('_'));
      }
  
    template<typename _Ch_type>
      int
      regex_traits<_Ch_type>::
      value(_Ch_type __ch, int __radix) const
      {
!       std::basic_istringstream<char_type> __is(string_type(1, __ch));
!       long __v;
!       if (__radix == 8)
! 	__is >> std::oct;
!       else if (__radix == 16)
! 	__is >> std::hex;
!       __is >> __v;
!       return __is.fail() ? -1 : __v;
      }
  
    template<typename _Bi_iter, typename _Alloc>
    template<typename _Out_iter>
--- 331,383 ----
  	    && __c == __fctyp.widen('_'));
      }
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
    template<typename _Ch_type>
      int
      regex_traits<_Ch_type>::
      value(_Ch_type __ch, int __radix) const
      {
!       if constexpr (sizeof(_Ch_type) > 1)
! 	{
! 	  const auto& __ctyp = std::use_facet<ctype<_Ch_type>>(_M_locale);
! 	  const char __c = __ctyp.narrow(__ch, '\0');
! 	  return regex_traits<char>{}.value(__c, __radix);
! 	}
!       else
! 	{
! 	  const char __c = static_cast<char>(__ch);
! 	  const char __max_digit = __radix == 8 ? '7' : '9';
! 	  if ('0' <= __c && __c <= __max_digit)
! 	    return __c - '0';
! 	  if (__radix < 16)
! 	    return -1;
! 	  switch (__c)
! 	  {
! 	    case 'a':
! 	    case 'A':
! 	      return 10;
! 	    case 'b':
! 	    case 'B':
! 	      return 11;
! 	    case 'c':
! 	    case 'C':
! 	      return 12;
! 	    case 'd':
! 	    case 'D':
! 	      return 13;
! 	    case 'e':
! 	    case 'E':
! 	      return 14;
! 	    case 'f':
! 	    case 'F':
! 	      return 15;
! 	    default:
! 	      return -1;
! 	    }
! 	}
      }
+ #pragma GCC diagnostic pop
  
    template<typename _Bi_iter, typename _Alloc>
    template<typename _Out_iter>
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/bits/regex_automaton.tcc gcc-15-20260314/libstdc++-v3/include/bits/regex_automaton.tcc
*** gcc-15-20260307/libstdc++-v3/include/bits/regex_automaton.tcc	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/bits/regex_automaton.tcc	Sat Mar 14 22:32:15 2026
***************
*** 28,33 ****
--- 28,37 ----
   *  Do not attempt to use it directly. @headername{regex}
   */
  
+ #ifdef _GLIBCXX_DEBUG
+ # include <ostream>
+ #endif
+ 
  namespace std _GLIBCXX_VISIBILITY(default)
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/bits/regex_compiler.h gcc-15-20260314/libstdc++-v3/include/bits/regex_compiler.h
*** gcc-15-20260307/libstdc++-v3/include/bits/regex_compiler.h	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/bits/regex_compiler.h	Sat Mar 14 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 38,43 ****
--- 38,45 ----
  
  _GLIBCXX_END_NAMESPACE_CXX11
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
  namespace __detail
  {
    /**
*************** namespace __detail
*** 221,229 ****
        _CharT
        _M_translate(_CharT __ch) const
        {
! 	if _GLIBCXX17_CONSTEXPR (__icase)
  	  return _M_traits.translate_nocase(__ch);
! 	else if _GLIBCXX17_CONSTEXPR (__collate)
  	  return _M_traits.translate(__ch);
  	else
  	  return __ch;
--- 223,231 ----
        _CharT
        _M_translate(_CharT __ch) const
        {
! 	if constexpr (__icase)
  	  return _M_traits.translate_nocase(__ch);
! 	else if constexpr (__collate)
  	  return _M_traits.translate(__ch);
  	else
  	  return __ch;
*************** namespace __detail
*** 285,291 ****
        bool
        _M_match_range(_CharT __first, _CharT __last, _CharT __ch) const
        {
! 	if _GLIBCXX17_CONSTEXPR (!__icase)
  	  return __first <= __ch && __ch <= __last;
  	else
  	  return this->_M_in_range_icase(__first, __last, __ch);
--- 287,293 ----
        bool
        _M_match_range(_CharT __first, _CharT __last, _CharT __ch) const
        {
! 	if constexpr (!__icase)
  	  return __first <= __ch && __ch <= __last;
  	else
  	  return this->_M_in_range_icase(__first, __last, __ch);
*************** namespace __detail
*** 376,401 ****
  
        bool
        operator()(_CharT __ch) const
-       { return _M_apply(__ch, typename is_same<_CharT, char>::type()); }
- 
-       bool
-       _M_apply(_CharT __ch, true_type) const
-       {
- 	auto __c = _M_translator._M_translate(__ch);
- 	auto __n = _M_translator._M_translate('\n');
- 	auto __r = _M_translator._M_translate('\r');
- 	return __c != __n && __c != __r;
-       }
- 
-       bool
-       _M_apply(_CharT __ch, false_type) const
        {
! 	auto __c = _M_translator._M_translate(__ch);
! 	auto __n = _M_translator._M_translate('\n');
! 	auto __r = _M_translator._M_translate('\r');
! 	auto __u2028 = _M_translator._M_translate(u'\u2028');
! 	auto __u2029 = _M_translator._M_translate(u'\u2029');
! 	return __c != __n && __c != __r && __c != __u2028 && __c != __u2029;
        }
  
        _TransT _M_translator;
--- 378,397 ----
  
        bool
        operator()(_CharT __ch) const
        {
! 	const auto __c = _M_translator._M_translate(__ch);
! 	if (__c == _M_translator._M_translate('\n'))
! 	  return false;
! 	if (__c == _M_translator._M_translate('\r'))
! 	  return false;
! 	if constexpr (!is_same<_CharT, char>::value)
! 	  {
! 	    if (__c == _M_translator._M_translate(u'\u2028')) // line sep
! 	      return false;
! 	    if (__c == _M_translator._M_translate(u'\u2029')) // para sep
! 	      return false;
! 	  }
! 	return true;
        }
  
        _TransT _M_translator;
*************** namespace __detail
*** 441,447 ****
        operator()(_CharT __ch) const
        {
  	_GLIBCXX_DEBUG_ASSERT(_M_is_ready);
! 	return _M_apply(__ch, _UseCache());
        }
  
        void
--- 437,446 ----
        operator()(_CharT __ch) const
        {
  	_GLIBCXX_DEBUG_ASSERT(_M_is_ready);
! 	if constexpr (_UseCache::value)
! 	  if (!(__ch & 0x80)) [[__likely__]]
! 	    return _M_cache[static_cast<_UnsignedCharT>(__ch)];
! 	return _M_apply(__ch);
        }
  
        void
*************** namespace __detail
*** 512,518 ****
  	std::sort(_M_char_set.begin(), _M_char_set.end());
  	auto __end = std::unique(_M_char_set.begin(), _M_char_set.end());
  	_M_char_set.erase(__end, _M_char_set.end());
! 	_M_make_cache(_UseCache());
  	_GLIBCXX_DEBUG_ONLY(_M_is_ready = true);
        }
  
--- 511,519 ----
  	std::sort(_M_char_set.begin(), _M_char_set.end());
  	auto __end = std::unique(_M_char_set.begin(), _M_char_set.end());
  	_M_char_set.erase(__end, _M_char_set.end());
! 	if constexpr (_UseCache::value)
! 	  for (unsigned __i = 0; __i < 128; __i++) // Only cache 7-bit chars
! 	    _M_cache[__i] = _M_apply(static_cast<_CharT>(__i));
  	_GLIBCXX_DEBUG_ONLY(_M_is_ready = true);
        }
  
*************** namespace __detail
*** 531,552 ****
        using _UnsignedCharT = typename std::make_unsigned<_CharT>::type;
  
        bool
!       _M_apply(_CharT __ch, false_type) const;
! 
!       bool
!       _M_apply(_CharT __ch, true_type) const
!       { return _M_cache[static_cast<_UnsignedCharT>(__ch)]; }
! 
!       void
!       _M_make_cache(true_type)
!       {
! 	for (unsigned __i = 0; __i < _M_cache.size(); __i++)
! 	  _M_cache[__i] = _M_apply(static_cast<_CharT>(__i), false_type());
!       }
! 
!       void
!       _M_make_cache(false_type)
!       { }
  
      private:
        _GLIBCXX_STD_C::vector<_CharT>            _M_char_set;
--- 532,538 ----
        using _UnsignedCharT = typename std::make_unsigned<_CharT>::type;
  
        bool
!       _M_apply(_CharT __ch) const;
  
      private:
        _GLIBCXX_STD_C::vector<_CharT>            _M_char_set;
*************** namespace __detail
*** 565,570 ****
--- 551,557 ----
  
   ///@} regex-detail
  } // namespace __detail
+ #pragma GCC diagnostic pop
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
  
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/bits/regex_compiler.tcc gcc-15-20260314/libstdc++-v3/include/bits/regex_compiler.tcc
*** gcc-15-20260307/libstdc++-v3/include/bits/regex_compiler.tcc	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/bits/regex_compiler.tcc	Sat Mar 14 22:32:15 2026
*************** namespace __detail
*** 598,604 ****
    template<typename _TraitsT, bool __icase, bool __collate>
      bool
      _BracketMatcher<_TraitsT, __icase, __collate>::
!     _M_apply(_CharT __ch, false_type) const
      {
        return [this, __ch]
        {
--- 598,604 ----
    template<typename _TraitsT, bool __icase, bool __collate>
      bool
      _BracketMatcher<_TraitsT, __icase, __collate>::
!     _M_apply(_CharT __ch) const
      {
        return [this, __ch]
        {
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/bits/regex_executor.tcc gcc-15-20260314/libstdc++-v3/include/bits/regex_executor.tcc
*** gcc-15-20260307/libstdc++-v3/include/bits/regex_executor.tcc	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/bits/regex_executor.tcc	Sat Mar 14 22:32:15 2026
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 32,37 ****
--- 32,39 ----
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
  namespace __detail
  {
    template<typename _BiIter, typename _Alloc, typename _TraitsT,
*************** namespace __detail
*** 217,223 ****
  	}
        else // Non-greedy mode
  	{
! 	  if (__dfs_mode)
  	    {
  	      // vice-versa.
  	      _M_dfs(__match_mode, __state._M_next);
--- 219,225 ----
  	}
        else // Non-greedy mode
  	{
! 	  if constexpr (__dfs_mode)
  	    {
  	      // vice-versa.
  	      _M_dfs(__match_mode, __state._M_next);
*************** namespace __detail
*** 322,328 ****
  
        if (_M_current == _M_end)
  	return;
!       if (__dfs_mode)
  	{
  	  if (__state._M_matches(*_M_current))
  	    {
--- 324,330 ----
  
        if (_M_current == _M_end)
  	return;
!       if constexpr (__dfs_mode)
  	{
  	  if (__state._M_matches(*_M_current))
  	    {
*************** namespace __detail
*** 393,399 ****
      void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_handle_backref(_Match_mode __match_mode, _StateIdT __i)
      {
!       __glibcxx_assert(__dfs_mode);
  
        const auto& __state = _M_nfa[__i];
        auto& __submatch = _M_cur_results[__state._M_backref_index];
--- 395,401 ----
      void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_handle_backref(_Match_mode __match_mode, _StateIdT __i)
      {
!       static_assert(__dfs_mode, "this should never be instantiated");
  
        const auto& __state = _M_nfa[__i];
        auto& __submatch = _M_cur_results[__state._M_backref_index];
*************** namespace __detail
*** 426,432 ****
      void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_handle_accept(_Match_mode __match_mode, _StateIdT)
      {
!       if _GLIBCXX17_CONSTEXPR (__dfs_mode)
  	{
  	  __glibcxx_assert(!_M_has_sol);
  	  if (__match_mode == _Match_mode::_Exact)
--- 428,434 ----
      void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_handle_accept(_Match_mode __match_mode, _StateIdT)
      {
!       if constexpr (__dfs_mode)
  	{
  	  __glibcxx_assert(!_M_has_sol);
  	  if (__match_mode == _Match_mode::_Exact)
*************** namespace __detail
*** 529,535 ****
  	case _S_opcode_match:
  	  _M_handle_match(__match_mode, __i); break;
  	case _S_opcode_backref:
! 	  _M_handle_backref(__match_mode, __i); break;
  	case _S_opcode_accept:
  	  _M_handle_accept(__match_mode, __i); break;
  	case _S_opcode_alternative:
--- 531,541 ----
  	case _S_opcode_match:
  	  _M_handle_match(__match_mode, __i); break;
  	case _S_opcode_backref:
! 	  if constexpr (__dfs_mode)
! 	    _M_handle_backref(__match_mode, __i);
! 	  else
! 	    __builtin_unreachable();
! 	  break;
  	case _S_opcode_accept:
  	  _M_handle_accept(__match_mode, __i); break;
  	case _S_opcode_alternative:
*************** namespace __detail
*** 564,569 ****
--- 570,576 ----
        return __left_is_word != __right_is_word;
      }
  } // namespace __detail
+ #pragma GCC diagnostic pop
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/std/regex gcc-15-20260314/libstdc++-v3/include/std/regex
*** gcc-15-20260307/libstdc++-v3/include/std/regex	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/std/regex	Sat Mar 14 22:32:15 2026
***************
*** 41,47 ****
  
  #include <bitset>
  #include <locale>
- #include <sstream>
  #include <stack>
  #include <stdexcept>
  #include <string>
--- 41,46 ----
diff -Nrcpad gcc-15-20260307/libstdc++-v3/include/std/tuple gcc-15-20260314/libstdc++-v3/include/std/tuple
*** gcc-15-20260307/libstdc++-v3/include/std/tuple	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/include/std/tuple	Sat Mar 14 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 969,975 ****
        // Defined as a template to work around PR libstdc++/116440.
        template<typename = void>
  	constexpr explicit(!__convertible<const _Elements&...>())
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__elements...)
--- 969,975 ----
        // Defined as a template to work around PR libstdc++/116440.
        template<typename = void>
  	constexpr explicit(!__convertible<const _Elements&...>())
! 	tuple(const type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__elements...)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1161,1167 ****
        template<typename _Alloc>
  	constexpr explicit(!__convertible<const _Elements&...>())
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__tag, __a, __elements...)
  	{ }
--- 1161,1167 ----
        template<typename _Alloc>
  	constexpr explicit(!__convertible<const _Elements&...>())
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const type_identity_t<_Elements>&... __elements)
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__tag, __a, __elements...)
  	{ }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1470,1483 ****
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	constexpr
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ExplicitCtor<_NotEmpty, const _Elements&...> = false>
  	explicit constexpr
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
--- 1470,1483 ----
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	constexpr
! 	tuple(const __type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ExplicitCtor<_NotEmpty, const _Elements&...> = false>
  	explicit constexpr
! 	tuple(const __type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1562,1568 ****
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1),
--- 1562,1568 ----
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const __type_identity_t<_Elements>&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1570,1576 ****
  	_GLIBCXX20_CONSTEXPR
  	explicit
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, typename... _UElements,
--- 1570,1576 ----
  	_GLIBCXX20_CONSTEXPR
  	explicit
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const __type_identity_t<_Elements>&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, typename... _UElements,
diff -Nrcpad gcc-15-20260307/libstdc++-v3/testsuite/17_intro/badnames.cc gcc-15-20260314/libstdc++-v3/testsuite/17_intro/badnames.cc
*** gcc-15-20260307/libstdc++-v3/testsuite/17_intro/badnames.cc	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/testsuite/17_intro/badnames.cc	Sat Mar 14 22:32:15 2026
***************
*** 67,73 ****
  
  // BSD adds:
  #define __used		__used is a BADNAME
! #define __unused	__unused is a BADNAME
          // __inline	(glibc uses this so can't test here)
          // _Complex	(glibc uses this so can't test here)
  #define __istype	__istype is a BADNAME
--- 67,73 ----
  
  // BSD adds:
  #define __used		__used is a BADNAME
!         // __unused	(glibc uses this so can't test here)
          // __inline	(glibc uses this so can't test here)
          // _Complex	(glibc uses this so can't test here)
  #define __istype	__istype is a BADNAME
diff -Nrcpad gcc-15-20260307/libstdc++-v3/testsuite/17_intro/names.cc gcc-15-20260314/libstdc++-v3/testsuite/17_intro/names.cc
*** gcc-15-20260307/libstdc++-v3/testsuite/17_intro/names.cc	Sat Mar  7 22:32:15 2026
--- gcc-15-20260314/libstdc++-v3/testsuite/17_intro/names.cc	Sat Mar 14 22:32:15 2026
***************
*** 299,305 ****
  #if defined (__linux__) || defined (__gnu_hurd__)
  #if __has_include(<features.h>)
  #include <features.h>
! #if __GLIBC__ == 2 && __GLIBC_MINOR__ < 19
  // Glibc defines this prior to 2.19
  #undef __unused
  #endif
--- 299,305 ----
  #if defined (__linux__) || defined (__gnu_hurd__)
  #if __has_include(<features.h>)
  #include <features.h>
! #if __GLIBC__ == 2 && (__GLIBC_MINOR__ < 19 || __GLIBC_MINOR__ == 43)
  // Glibc defines this prior to 2.19
  #undef __unused
  #endif
diff -Nrcpad gcc-15-20260307/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc gcc-15-20260314/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
*** gcc-15-20260307/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc	Thu Jan  1 00:00:00 1970
--- gcc-15-20260314/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc	Sat Mar 14 22:32:16 2026
***************
*** 0 ****
--- 1,45 ----
+ // { dg-do compile { target c++17 } }
+ 
+ // Bug 121771 - std::tuple CTAD fails for lvalue reference to function type
+ 
+ #include <tuple>
+ #include <memory>
+ 
+ void func();
+ 
+ std::tuple t(func);
+ std::tuple<void (*)()>& r = t;
+ 
+ struct Explicit {
+     Explicit();
+     explicit Explicit(const Explicit&);
+ } ex;
+ 
+ std::tuple t2(func, 1);
+ std::tuple<void (*)(), int>& r2 = t2;
+ 
+ std::tuple t2x(ex, func);
+ std::tuple<Explicit, void (*)()>& r2x = t2x;
+ 
+ std::tuple t3(1, func, 3);
+ std::tuple<int, void (*)(), int>& r3 = t3;
+ 
+ std::tuple t3x(ex, 2, func);
+ std::tuple<Explicit, int, void (*)()>& r3x = t3x;
+ 
+ std::allocator<int> alloc;
+ 
+ std::tuple ta(std::allocator_arg, alloc, func);
+ std::tuple<void (*)()>& ra = ta;
+ 
+ std::tuple ta2(std::allocator_arg, alloc, func, 1);
+ std::tuple<void (*)(), int>& ra2 = ta2;
+ 
+ std::tuple ta2x(std::allocator_arg, alloc, ex, func);
+ std::tuple<Explicit, void (*)()>& ra2x = ta2x;
+ 
+ std::tuple ta3(std::allocator_arg, alloc, 1, func, 3);
+ std::tuple<int, void (*)(), int>& ra3 = ta3;
+ 
+ std::tuple ta3x(std::allocator_arg, alloc, ex, 2, func);
+ std::tuple<Explicit, int, void (*)()>& ra3x = ta3x;
diff -Nrcpad gcc-15-20260307/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc gcc-15-20260314/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
*** gcc-15-20260307/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc	Sat Mar  7 22:32:16 2026
--- gcc-15-20260314/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc	Sat Mar 14 22:32:16 2026
***************
*** 28,33 ****
--- 28,34 ----
  #include <regex>
  #include <forward_list>
  #include <string.h>
+ #include <ctype.h>
  #include <testsuite_hooks.h>
  
  void
*************** test03()
*** 67,76 ****
--- 68,142 ----
    VERIFY(traits.isctype('C', traits.lookup_classname(s.begin(), s.end(), true)));
  }
  
+ void
+ test04()
+ {
+   // Transform "string" into "StRiNg"
+   auto mix_case = [](std::string s) {
+     int i = 0;
+     for (auto& ch : s)
+       if (++i % 2)
+ 	ch = toupper(ch);
+     return s;
+   };
+ 
+   typedef char CharT;
+   typedef std::regex_traits<CharT> traits;
+   traits t;
+ 
+   auto lookup = [&t](const std::string& s, bool icase) {
+     return t.lookup_classname(s.begin(), s.end(), icase);
+   };
+ 
+   VERIFY( lookup("", false) == 0 );
+   VERIFY( lookup(":::not a valid classname:::", false) == 0 );
+   VERIFY( lookup(":::not a valid classname:::", true) == 0 );
+   VERIFY( lookup("alnu", false) == 0 );
+   VERIFY( lookup("alnumb", false) == 0 );
+   VERIFY( lookup("x", false) == 0 );
+   VERIFY( lookup("di", false) == 0 );
+   VERIFY( lookup("digi", false) == 0 );
+   VERIFY( lookup("digix", false) == 0 );
+   VERIFY( lookup(std::string{"d\0i", 3}, false) == 0 );
+   VERIFY( lookup(std::string{"digit\0", 6}, false) == 0 );
+   VERIFY( lookup(std::string{"digit\0bad", 9}, false) == 0 );
+ 
+   for (std::string cls : { "alnum", "alpha", "blank", "cntrl", "digit",
+ 			   "graph", "lower", "print", "punct", "space",
+ 			   "upper", "xdigit", "d", "s", "w" })
+     {
+       traits::char_class_type val = lookup(cls, false);
+       // val should be non-zero:
+       VERIFY( val != 0 );
+       // val is independent of the case of the name,
+       // i.e. "alpha" and "ALPHA" and "AlPhA" give same result:
+       VERIFY( lookup(mix_case(cls), false) == val );
+ 
+       // Repeat same checks for icase=true.
+       traits::char_class_type ival = lookup(cls, true);
+       VERIFY( ival != 0 );
+       VERIFY( lookup(mix_case(cls), true) == ival );
+ 
+       if (cls == "lower" || cls == "upper") // icase=true should affect value
+ 	{
+ 	  VERIFY( ival != val );
+ 	  VERIFY( ival == lookup("alpha", false) );
+ 	}
+       else
+ 	VERIFY( ival == val );
+ 
+       if (cls == "d")
+ 	VERIFY( val == lookup("digit", false) );
+       else if (cls == "s")
+ 	VERIFY( val == lookup("space", false) );
+     }
+ }
+ 
  int main()
  {
  	test01();
  	test02();
  	test03();
+ 	test04();
  	return 0;
  }
diff -Nrcpad gcc-15-20260307/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc gcc-15-20260314/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
*** gcc-15-20260307/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc	Sat Mar  7 22:32:16 2026
--- gcc-15-20260314/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc	Sat Mar 14 22:32:16 2026
*************** test01()
*** 45,52 ****
--- 45,117 ----
  #undef range
  }
  
+ void
+ test04()
+ {
+   // Transform "string" into "StRiNg"
+   auto mix_case = [](std::wstring s) {
+     int i = 0;
+     for (auto& ch : s)
+       if (++i % 2)
+ 	ch = toupper(ch);
+     return s;
+   };
+ 
+   typedef wchar_t CharT;
+   typedef std::regex_traits<CharT> traits;
+   traits t;
+ 
+   auto lookup = [&t](const std::wstring& s, bool icase) {
+     return t.lookup_classname(s.begin(), s.end(), icase);
+   };
+ 
+   VERIFY( lookup(L"", false) == 0 );
+   VERIFY( lookup(L":::not a valid classname:::", false) == 0 );
+   VERIFY( lookup(L":::not a valid classname:::", true) == 0 );
+   VERIFY( lookup(L"alnu", false) == 0 );
+   VERIFY( lookup(L"alnumb", false) == 0 );
+   VERIFY( lookup(L"x", false) == 0 );
+   VERIFY( lookup(L"di", false) == 0 );
+   VERIFY( lookup(L"digi", false) == 0 );
+   VERIFY( lookup(L"digix", false) == 0 );
+   VERIFY( lookup(std::wstring{L"d\0i", 3}, false) == 0 );
+   VERIFY( lookup(std::wstring{L"digit\0", 6}, false) == 0 );
+   VERIFY( lookup(std::wstring{L"digit\0bad", 9}, false) == 0 );
+ 
+   for (std::wstring cls : { L"alnum", L"alpha", L"blank", L"cntrl", L"digit",
+ 			    L"graph", L"lower", L"print", L"punct", L"space",
+ 			    L"upper", L"xdigit", L"d", L"s", L"w" })
+     {
+       traits::char_class_type val = lookup(cls, false);
+       // val should be non-zero:
+       VERIFY( val != 0 );
+       // val is independent of the case of the name,
+       // i.e. "alpha" and "ALPHA" and "AlPhA" give same result:
+       VERIFY( lookup(mix_case(cls), false) == val );
+ 
+       // Repeat same checks for icase=true.
+       traits::char_class_type ival = lookup(cls, true);
+       VERIFY( ival != 0 );
+       VERIFY( lookup(mix_case(cls), true) == ival );
+ 
+       if (cls == L"lower" || cls == L"upper") // icase=true should affect value
+ 	{
+ 	  VERIFY( ival != val );
+ 	  VERIFY( ival == lookup(L"alpha", false) );
+ 	}
+       else
+ 	VERIFY( ival == val );
+ 
+       if (cls == L"d")
+ 	VERIFY( val == lookup(L"digit", false) );
+       else if (cls == L"s")
+ 	VERIFY( val == lookup(L"space", false) );
+     }
+ }
+ 
  int main()
  {
    test01();
+   test04();
    return 0;
  }
