diff -Nrcpad gcc-16-20260711/LAST_UPDATED gcc-16-20260718/LAST_UPDATED
*** gcc-16-20260711/LAST_UPDATED	Sat Jul 11 22:32:24 2026
--- gcc-16-20260718/LAST_UPDATED	Sat Jul 18 22:32:24 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-16 revision aff1672005353f1be41e6cc2423bf0647e2222bc
--- 1 ----
! Obtained from git: releases/gcc-16 revision dff16819605b9b728ecc71a21135efe0d77289aa
diff -Nrcpad gcc-16-20260711/MD5SUMS gcc-16-20260718/MD5SUMS
*** gcc-16-20260711/MD5SUMS	Sat Jul 11 22:32:29 2026
--- gcc-16-20260718/MD5SUMS	Sat Jul 18 22:32:29 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260711.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-16-20260718.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
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 3c944240803a42c5bedb65d9bfb2e4c5  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! fe93393832af819a5126105a3e1eb208  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 530,536 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 8756b831a1080f67f05a83073e8aabe2  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 530,536 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! e8f25595c8b4c37bd6a67090d9b41389  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 568,574 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 367f3e52650f5110e9183c841e87ecd1  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 568,574 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 6da4298630ea82c8b508450ca7813cc0  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/RE
*** 580,586 ****
  fb2b1a055860b8822b54eb8a42801c44  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! b853c140673514c28a3ea13e26beb340  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 580,586 ----
  fb2b1a055860b8822b54eb8a42801c44  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 5643a4ef6c8d42e6a33a2f79c88ee51c  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** b97a33153fe52398767059622469c244  gcc/ad
*** 2907,2913 ****
  89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
  4829571ce4047ba742e576ced875e69e  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! c71b42cbd6935db122d304274bdb8834  gcc/ada/sem_attr.adb
  f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
  416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
--- 2907,2913 ----
  89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
  4829571ce4047ba742e576ced875e69e  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! 0409e8a2c708a11481ad6e6af69e06ac  gcc/ada/sem_attr.adb
  f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
  416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
*************** d22c314f3748309f812d78f5217dda61  gcc/ad
*** 3071,3083 ****
  06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
  faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
  ebe64421041bf4ef9153e26a6dc60532  gcc/adjust-alignment.cc
! 14f432f6cb935c472a2999c9a5541d8d  gcc/algol68/ChangeLog
  66ab60a51bd61854d9b2898856651b15  gcc/algol68/Make-lang.in
  3d3f2f95b917d0f77d57d977f3eb93d8  gcc/algol68/README
  43ae40e82c1a7a144e905d40b101214e  gcc/algol68/a68-diagnostics.cc
  27119d3e1e8fce1677a27ca87cc9de1e  gcc/algol68/a68-exports.cc
  1728385ce5089a9ad9f2eed20fd65927  gcc/algol68/a68-imports-archive.cc
! 561de2b43ba921e2b9573777fade7021  gcc/algol68/a68-imports.cc
  0904dc65c8116eaecb8d99576391c5dc  gcc/algol68/a68-lang.cc
  6430e67f3d47b364ff04181a73b26fea  gcc/algol68/a68-low-bits.cc
  284cf6c8827f78791575949cc1f634ef  gcc/algol68/a68-low-bools.cc
--- 3071,3083 ----
  06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
  faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
  ebe64421041bf4ef9153e26a6dc60532  gcc/adjust-alignment.cc
! 42d887a211c936d7f2fe06117a78e44f  gcc/algol68/ChangeLog
  66ab60a51bd61854d9b2898856651b15  gcc/algol68/Make-lang.in
  3d3f2f95b917d0f77d57d977f3eb93d8  gcc/algol68/README
  43ae40e82c1a7a144e905d40b101214e  gcc/algol68/a68-diagnostics.cc
  27119d3e1e8fce1677a27ca87cc9de1e  gcc/algol68/a68-exports.cc
  1728385ce5089a9ad9f2eed20fd65927  gcc/algol68/a68-imports-archive.cc
! 672e7160961e70e86f6b27ec1f7f49c5  gcc/algol68/a68-imports.cc
  0904dc65c8116eaecb8d99576391c5dc  gcc/algol68/a68-lang.cc
  6430e67f3d47b364ff04181a73b26fea  gcc/algol68/a68-low-bits.cc
  284cf6c8827f78791575949cc1f634ef  gcc/algol68/a68-low-bools.cc
*************** f9d4a813f2e42ce32c3296184cdf91a8  gcc/an
*** 3258,3264 ****
  2db92f753772ba267b417de342cfe0d7  gcc/analyzer/varargs.cc
  3c33a162314863866dc49ceb3d8abd11  gcc/analyzer/varargs.dot
  5af94414f167d3b307a0e33995e4a7fb  gcc/array-traits.h
! 4dc843bbb8bbadc9097e85ccdc9ad468  gcc/asan.cc
  756461437b2a9b9c23a4dd8bbb792b16  gcc/asan.h
  e003b9fc1b8aa5b9b0eef314c0c4f56a  gcc/asm-toplevel.cc
  ea987115b0f67bce5cc4745e6d5bc4d1  gcc/attr-callback.cc
--- 3258,3264 ----
  2db92f753772ba267b417de342cfe0d7  gcc/analyzer/varargs.cc
  3c33a162314863866dc49ceb3d8abd11  gcc/analyzer/varargs.dot
  5af94414f167d3b307a0e33995e4a7fb  gcc/array-traits.h
! a8a846104bdb438e8b859f0c73df8111  gcc/asan.cc
  756461437b2a9b9c23a4dd8bbb792b16  gcc/asan.h
  e003b9fc1b8aa5b9b0eef314c0c4f56a  gcc/asm-toplevel.cc
  ea987115b0f67bce5cc4745e6d5bc4d1  gcc/attr-callback.cc
*************** ebb1ceb69d6cf8ac2cdc227ae45f0eca  gcc/bi
*** 3286,3297 ****
  cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
  4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
  99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! 417e6a998c073cdf6e79368bf21be8df  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
  f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
  070946aa1b55a55d613bad8af07ad174  gcc/c-family/c-attribs.cc
! 9c4e2d12e48f052bafabdf6281744002  gcc/c-family/c-common.cc
  6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
  81cb275a3cf181ff08d23b453a35d711  gcc/c-family/c-common.h
  e3a0d862a25764bc4242ad90ba85db86  gcc/c-family/c-cppbuiltin.cc
--- 3286,3297 ----
  cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
  4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
  99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! 0612667ac867cbde6ebe9a472403c841  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
  f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
  070946aa1b55a55d613bad8af07ad174  gcc/c-family/c-attribs.cc
! 8c2850b956aa24edfecaaec54f639d0d  gcc/c-family/c-common.cc
  6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
  81cb275a3cf181ff08d23b453a35d711  gcc/c-family/c-common.h
  e3a0d862a25764bc4242ad90ba85db86  gcc/c-family/c-cppbuiltin.cc
*************** fd7ca62b3bee7fd668a9fa652c835a7d  gcc/c-
*** 3329,3339 ****
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 53e51c16be716589d8a54da80502bcf5  gcc/c/ChangeLog
  cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
! f9d2384dbe06730350c97a75a1804aba  gcc/c/c-decl.cc
  92707173973fa48fbb8dda88f5af625a  gcc/c/c-errors.cc
  a59a5f126151616976b68fde0c703dd4  gcc/c/c-fold.cc
  817e08cf2d2f4169cb1e5cc26bad1174  gcc/c/c-lang.cc
--- 3329,3339 ----
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! d13b8ad3c3290f632acfe616ff36d1a7  gcc/c/ChangeLog
  cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
! b730f418d68ead294d6ffc136bd55c6b  gcc/c/c-decl.cc
  92707173973fa48fbb8dda88f5af625a  gcc/c/c-errors.cc
  a59a5f126151616976b68fde0c703dd4  gcc/c/c-fold.cc
  817e08cf2d2f4169cb1e5cc26bad1174  gcc/c/c-lang.cc
*************** efcac12e876ea7fc2018badafb6fddb5  gcc/cf
*** 3363,3369 ****
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! 556de63a8bf0199e275b877b6a7f1152  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
  7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
--- 3363,3369 ----
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! 86760135b1fb1be3a2468615b86f43d4  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
  7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
*************** f18b9392122c866e0f6862690656ebd5  gcc/cf
*** 3374,3380 ****
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
  a0a1ef6bbf0b2b6031733a02c5f5537e  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! 23b9aa75531c001cb377f7909d709c80  gcc/cgraph.cc
  d61fe81ae621d346985061a794ecfd03  gcc/cgraph.h
  0e01d226aed9a7a844ec0cec027e8bd4  gcc/cgraphbuild.cc
  1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
--- 3374,3380 ----
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
  a0a1ef6bbf0b2b6031733a02c5f5537e  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! 9e0cab51b58aa7a3972ce17b95573b4c  gcc/cgraph.cc
  d61fe81ae621d346985061a794ecfd03  gcc/cgraph.h
  0e01d226aed9a7a844ec0cec027e8bd4  gcc/cgraphbuild.cc
  1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
*************** c8a924cfcb693679febdcde3a0cc0809  gcc/co
*** 3517,3523 ****
  a1a7d26ecab3d6681a1d3f5c2cb77275  gcc/config/aarch64/aarch64-builtins.h
  3330c8b7c6a60c9f7691d80f8b33026b  gcc/config/aarch64/aarch64-c.cc
  3effce0415a0994753b7865834e56638  gcc/config/aarch64/aarch64-coff.h
! 1e3f3e85ee00a43b3932b2c53c40df08  gcc/config/aarch64/aarch64-cores.def
  cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
  5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
  3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
--- 3517,3523 ----
  a1a7d26ecab3d6681a1d3f5c2cb77275  gcc/config/aarch64/aarch64-builtins.h
  3330c8b7c6a60c9f7691d80f8b33026b  gcc/config/aarch64/aarch64-c.cc
  3effce0415a0994753b7865834e56638  gcc/config/aarch64/aarch64-coff.h
! 4baeb72f3ae109bb1a468fffbfb8744a  gcc/config/aarch64/aarch64-cores.def
  cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
  5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
  3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
*************** e3b84b8c70b76f20a6d8123da2876317  gcc/co
*** 3577,3583 ****
  f8f181c4df2353358a3f66071820430a  gcc/config/aarch64/aarch64-sve.md
  78d4791112b168ff5157e8e4c95a40a5  gcc/config/aarch64/aarch64-sve2.md
  9482a051d967c399dfed0923c294de3f  gcc/config/aarch64/aarch64-sys-regs.def
! e101bed95b5d0264c364d8bcf1a7705f  gcc/config/aarch64/aarch64-tune.md
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  45c6b1a7ca031f6a0af001317cc5e476  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
--- 3577,3583 ----
  f8f181c4df2353358a3f66071820430a  gcc/config/aarch64/aarch64-sve.md
  78d4791112b168ff5157e8e4c95a40a5  gcc/config/aarch64/aarch64-sve2.md
  9482a051d967c399dfed0923c294de3f  gcc/config/aarch64/aarch64-sys-regs.def
! 4d85753c314f127c5c701c3fc4c29ae5  gcc/config/aarch64/aarch64-tune.md
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  45c6b1a7ca031f6a0af001317cc5e476  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
*************** d70f08b893e019d12b16dc9a70754ef9  gcc/co
*** 5177,5183 ****
  efc4d9cc6fcf24af7ea6e89c0c82127f  gcc/config/rs6000/aix72.h
  1d313bdc511e984bdf559d61807bde14  gcc/config/rs6000/aix73.h
  ae4bd752599ffdd2833c6e78d03d39f0  gcc/config/rs6000/altivec.h
! 419efb9e6b152f546f921bc6bd175c11  gcc/config/rs6000/altivec.md
  505a3f0e71f54fbea2fbd87b1c032185  gcc/config/rs6000/amo.h
  2b409a82a1747675112a04705e01d157  gcc/config/rs6000/biarch64.h
  f83fd3bf0d9fbc30c9401eec549fdc2c  gcc/config/rs6000/bmi2intrin.h
--- 5177,5183 ----
  efc4d9cc6fcf24af7ea6e89c0c82127f  gcc/config/rs6000/aix72.h
  1d313bdc511e984bdf559d61807bde14  gcc/config/rs6000/aix73.h
  ae4bd752599ffdd2833c6e78d03d39f0  gcc/config/rs6000/altivec.h
! 8d7851c19d5176d1f96873218732d892  gcc/config/rs6000/altivec.md
  505a3f0e71f54fbea2fbd87b1c032185  gcc/config/rs6000/amo.h
  2b409a82a1747675112a04705e01d157  gcc/config/rs6000/biarch64.h
  f83fd3bf0d9fbc30c9401eec549fdc2c  gcc/config/rs6000/bmi2intrin.h
*************** b534d6922b2ac8fcdec1c19d8a7bdb13  gcc/co
*** 5241,5251 ****
  c79696c3d7958935d4122048b9bb5f92  gcc/config/rs6000/ppc-asm.h
  e97302b0144b183500470a0f7f84ad57  gcc/config/rs6000/ppc-auxv.h
  db237fc1717a4075e7b9480205a32fd5  gcc/config/rs6000/ppu_intrinsics.h
! 25ea383c1f398321c28d21896c9d79db  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
  5a8a620d69be5ade28e15be87ec36b9a  gcc/config/rs6000/rs6000-builtin.cc
! 7c79c4da4bc1e2778ae41c1ac02bb00e  gcc/config/rs6000/rs6000-builtins.def
  bb710aa9f6e98d46357a2a10104dda23  gcc/config/rs6000/rs6000-c.cc
  c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
  4579aba833c122ad0e6a91b573653e2c  gcc/config/rs6000/rs6000-cpus.def
--- 5241,5251 ----
  c79696c3d7958935d4122048b9bb5f92  gcc/config/rs6000/ppc-asm.h
  e97302b0144b183500470a0f7f84ad57  gcc/config/rs6000/ppc-auxv.h
  db237fc1717a4075e7b9480205a32fd5  gcc/config/rs6000/ppu_intrinsics.h
! 848a5a527b1584089ecf12aae20b7ca6  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
  5a8a620d69be5ade28e15be87ec36b9a  gcc/config/rs6000/rs6000-builtin.cc
! 54b2f5abbb368e1596fd95a26bf043da  gcc/config/rs6000/rs6000-builtins.def
  bb710aa9f6e98d46357a2a10104dda23  gcc/config/rs6000/rs6000-c.cc
  c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
  4579aba833c122ad0e6a91b573653e2c  gcc/config/rs6000/rs6000-cpus.def
*************** c165dfc83b2c9e75d3906f429e76a3fa  gcc/co
*** 5257,5263 ****
  4768cacdca0b901f6cb649726cca5eeb  gcc/config/rs6000/rs6000-logue.cc
  108998dcf0201ccd3e147d71251ca9f6  gcc/config/rs6000/rs6000-modes.def
  e6f2820356a7ee18c353376ab3490fb6  gcc/config/rs6000/rs6000-opts.h
! 4024b6c90a02376724000e7a2b720da7  gcc/config/rs6000/rs6000-overload.def
  dc46fa102175551da2f4ce2ee5c6435c  gcc/config/rs6000/rs6000-p8swap.cc
  da37007432adac35e44d7592e307e64a  gcc/config/rs6000/rs6000-passes.def
  384645a6c72587ac7501915a0c737e64  gcc/config/rs6000/rs6000-pcrel-opt.cc
--- 5257,5263 ----
  4768cacdca0b901f6cb649726cca5eeb  gcc/config/rs6000/rs6000-logue.cc
  108998dcf0201ccd3e147d71251ca9f6  gcc/config/rs6000/rs6000-modes.def
  e6f2820356a7ee18c353376ab3490fb6  gcc/config/rs6000/rs6000-opts.h
! 2af0749f721161472c3953c307190333  gcc/config/rs6000/rs6000-overload.def
  dc46fa102175551da2f4ce2ee5c6435c  gcc/config/rs6000/rs6000-p8swap.cc
  da37007432adac35e44d7592e307e64a  gcc/config/rs6000/rs6000-passes.def
  384645a6c72587ac7501915a0c737e64  gcc/config/rs6000/rs6000-pcrel-opt.cc
*************** f11925c88524d2fd457bf77944da1302  gcc/co
*** 5307,5313 ****
  da79297ad0c4c71553a67c1c8659d7f0  gcc/config/rs6000/tmmintrin.h
  88417b4d808d053378108ca755b5e5ce  gcc/config/rs6000/vec_types.h
  d25d99ecfc5b7d30303b228b0b6b2b9d  gcc/config/rs6000/vector.md
! d20b0a90930c8dfaa9317e5cc5fd4962  gcc/config/rs6000/vsx.md
  e01b246a8cdac36ad716112dbba238f9  gcc/config/rs6000/vxworks.h
  879b35d5e026800c40c13e663df8c5f9  gcc/config/rs6000/vxworksae.h
  aa45c89828fac6551d8d57309cf26ec0  gcc/config/rs6000/vxworksmils.h
--- 5307,5313 ----
  da79297ad0c4c71553a67c1c8659d7f0  gcc/config/rs6000/tmmintrin.h
  88417b4d808d053378108ca755b5e5ce  gcc/config/rs6000/vec_types.h
  d25d99ecfc5b7d30303b228b0b6b2b9d  gcc/config/rs6000/vector.md
! ece432c07c3bfc0874829e08e4c1746b  gcc/config/rs6000/vsx.md
  e01b246a8cdac36ad716112dbba238f9  gcc/config/rs6000/vxworks.h
  879b35d5e026800c40c13e663df8c5f9  gcc/config/rs6000/vxworksae.h
  aa45c89828fac6551d8d57309cf26ec0  gcc/config/rs6000/vxworksmils.h
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5646,5652 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! e9ca7ac644b3488ba4be075b44b913e3  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5646,5652 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 82ed423da74954813eac8e3d4d157c89  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** f53ddf06036f74142c61f4a8ef1b994d  gcc/cp
*** 5707,5713 ****
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 6343aa15a5988bdbd5ec687d4fc22e88  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  480696ad09d3c6330dccc983d9ddb7e2  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
--- 5707,5713 ----
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! ce741357c18c76814d4334dfa80b021e  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  480696ad09d3c6330dccc983d9ddb7e2  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
*************** b98d31c57aa038618db60991b17e0d35  gcc/cp
*** 5736,5750 ****
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
  a623e932155ebd343ebda5f7f54e7eb4  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! 4410c287a91ef7a1513038254d1918d4  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! c413badcb6b21c22659185869938f46f  gcc/cp/reflect.cc
  6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
  4180146cbda2606eeb09a1b7ecb7eb34  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 170e68fe35a2d8e6f4e3685a5fbba9cb  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  df4ddf4dc6c7bba71dd087265ece4ff7  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
--- 5736,5750 ----
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
  a623e932155ebd343ebda5f7f54e7eb4  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! 9815e0174e5bf16d9764adca6ab1f238  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! f5ce9059917a2b121933db91fc134298  gcc/cp/reflect.cc
  6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
  4180146cbda2606eeb09a1b7ecb7eb34  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! baf68d7d41385eb343012f597c7cae76  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  df4ddf4dc6c7bba71dd087265ece4ff7  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
*************** ee65c9e3e7c3fb1fd0128c23f4130e51  gcc/do
*** 6131,6137 ****
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 78678e1f2621f8e3d9e3cbb60799f03e  gcc/doc/extend.texi
  483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
--- 6131,6137 ----
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! ab0f63868303f63032551c706c018b3c  gcc/doc/extend.texi
  483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
*************** cb2462af7cefb9323958455da8bb29f8  gcc/do
*** 6156,6162 ****
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  e7629f6355c3902826e219f4c9bfae3a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 85b62d086a49cb705a2a319b440cf9a5  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6156,6162 ----
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  e7629f6355c3902826e219f4c9bfae3a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! f4b7e7189e935419dc40c87b7b9c1624  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** e54937e427a2584ac4045286c725fab1  gcc/do
*** 6208,6214 ****
  f9e8c3f3f521ccb531572ed4189b13b6  gcc/doc/riscv-mtune.texi
  ee1dc9bba1241ba6755d90ce32847e63  gcc/doc/rtl.texi
  b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
! 608710da1e1e5372df976d0ec68d8035  gcc/doc/sourcebuild.texi
  9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
  d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
  c62ac968e3288a53eebcf150e3d453a9  gcc/doc/tm.texi
--- 6208,6214 ----
  f9e8c3f3f521ccb531572ed4189b13b6  gcc/doc/riscv-mtune.texi
  ee1dc9bba1241ba6755d90ce32847e63  gcc/doc/rtl.texi
  b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
! dfaa8b715ef0b96e4ae8e97df0a61087  gcc/doc/sourcebuild.texi
  9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
  d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
  c62ac968e3288a53eebcf150e3d453a9  gcc/doc/tm.texi
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6271,6277 ****
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! bc12edafdec50e13bcb20c63b57051e7  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6271,6277 ----
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! f85079c885d2ee6e5bd4615234777690  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** f7735c64af748cdef5caffae58a94749  gcc/fo
*** 6345,6357 ****
  bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! 0a805c97950868c187d1ddc53b9c54b4  gcc/fortran/module.cc
  f2d1ba26cdd272c08e7647dfefdddb86  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  b7e44a78995adf94a6b590f79d401976  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  652dece8c45124ac6ad49d39f2b67df1  gcc/fortran/primary.cc
! 0ede0460e923ef8dbfd48f942a57fc8f  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
--- 6345,6357 ----
  bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! 128d91b306db6abd1abc9ad195a3d6d3  gcc/fortran/module.cc
  f2d1ba26cdd272c08e7647dfefdddb86  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  b7e44a78995adf94a6b590f79d401976  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  652dece8c45124ac6ad49d39f2b67df1  gcc/fortran/primary.cc
! 025f9b4be39154db1c3d36be5cc4f521  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
*************** f1824ea9d0d35fb768daabd8649d44b3  gcc/gi
*** 6477,6483 ****
  b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
  3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 0b01f51ad0331d5a2dbc2e7b39d4fce5  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
--- 6477,6483 ----
  b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
  3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 6d81b82a1b707438c47aeff268a6893a  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
*************** cdb2ce2b488734517babc7160c5009ae  gcc/gi
*** 6506,6517 ****
  a4932ff9aca9b1faf77d94e18d1a98dd  gcc/gimple-range-tests.cc
  6aea6dbdcfdbb9cc7eaba0885ef8339c  gcc/gimple-range-trace.cc
  e45cb6aa50c3ff1d1592d7f2758cb778  gcc/gimple-range-trace.h
! 02777a8ae49f72253e52431084e1cf91  gcc/gimple-range.cc
  d7845f849ad3dd11fdee8ef672936b7e  gcc/gimple-range.h
  8a9bf24197a610cfba7953c1233dd5ef  gcc/gimple-ssa-backprop.cc
  e1a7065df5a3fda33b25bbeef59fcf3c  gcc/gimple-ssa-isolate-paths.cc
  841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
! a773a19ee9b5880dae21824c39a73876  gcc/gimple-ssa-pta-constraints.cc
  1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
  d29ad5283ef50f50d10619397e423ecf  gcc/gimple-ssa-sccopy.cc
  7be48fef79411a4592494e787939e0b4  gcc/gimple-ssa-split-paths.cc
--- 6506,6517 ----
  a4932ff9aca9b1faf77d94e18d1a98dd  gcc/gimple-range-tests.cc
  6aea6dbdcfdbb9cc7eaba0885ef8339c  gcc/gimple-range-trace.cc
  e45cb6aa50c3ff1d1592d7f2758cb778  gcc/gimple-range-trace.h
! f1eebaf6a56e95694009e7b07a6819c7  gcc/gimple-range.cc
  d7845f849ad3dd11fdee8ef672936b7e  gcc/gimple-range.h
  8a9bf24197a610cfba7953c1233dd5ef  gcc/gimple-ssa-backprop.cc
  e1a7065df5a3fda33b25bbeef59fcf3c  gcc/gimple-ssa-isolate-paths.cc
  841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
! f9490433626e97fe5ec7c6b274e9967b  gcc/gimple-ssa-pta-constraints.cc
  1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
  d29ad5283ef50f50d10619397e423ecf  gcc/gimple-ssa-sccopy.cc
  7be48fef79411a4592494e787939e0b4  gcc/gimple-ssa-split-paths.cc
*************** cdf80ca29c90f97b4cca06b029f8353b  gcc/ip
*** 6705,6711 ****
  80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
  a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
  7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! d75925ce72349be5dcaa17dbeff538ed  gcc/ipa-prop.cc
  ab51096414a0554c4c1069e327ad7801  gcc/ipa-prop.h
  14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
  f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
--- 6705,6711 ----
  80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
  a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
  7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! 06d88f5eb31cfd58e726fe1e7bc74d47  gcc/ipa-prop.cc
  ab51096414a0554c4c1069e327ad7801  gcc/ipa-prop.h
  14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
  f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
*************** a7e9e00378501c6078d977c5ea3fabb3  gcc/lt
*** 6883,6889 ****
  6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
  2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
  edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! e411e31068f58cf58f14af8d8a822048  gcc/lto/ChangeLog
  134de5a17ec798ec16df035aee2f01cf  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
--- 6883,6889 ----
  6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
  2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
  edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! c27cdba035f53f1a9a28214ee47729ae  gcc/lto/ChangeLog
  134de5a17ec798ec16df035aee2f01cf  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
*************** bd162a24ac9bded9022e1bd104c1c013  gcc/lt
*** 6896,6902 ****
  29453d6e3c86dfa353e934a16aa96ce5  gcc/lto/lto-dump.cc
  a2c3d2b4ff2f28dc5c23ba7c85d4b17d  gcc/lto/lto-lang.cc
  d79b622fd1c2cc1ce24cbaec591de26a  gcc/lto/lto-object.cc
! 6b42550b459b3497cf9ec99c9f2c4094  gcc/lto/lto-partition.cc
  33ccaf341a69e9dc93b04e32a3cd9fff  gcc/lto/lto-partition.h
  75d42e9af6f85a1550a2f5a279bf3c69  gcc/lto/lto-symtab.cc
  a7092ba7593f4c0f94ce57ebba32641e  gcc/lto/lto-symtab.h
--- 6896,6902 ----
  29453d6e3c86dfa353e934a16aa96ce5  gcc/lto/lto-dump.cc
  a2c3d2b4ff2f28dc5c23ba7c85d4b17d  gcc/lto/lto-lang.cc
  d79b622fd1c2cc1ce24cbaec591de26a  gcc/lto/lto-object.cc
! 42f83d2f12ab35d22314b365e4703939  gcc/lto/lto-partition.cc
  33ccaf341a69e9dc93b04e32a3cd9fff  gcc/lto/lto-partition.h
  75d42e9af6f85a1550a2f5a279bf3c69  gcc/lto/lto-symtab.cc
  a7092ba7593f4c0f94ce57ebba32641e  gcc/lto/lto-symtab.h
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7882,7888 ****
  2a18164ee5f162ac117e6fedb58158a2  gcc/machmode.def
  0c9209452a934f189aa0860038b3a65c  gcc/machmode.h
  197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
! c7ea174676bff93b910a49f269188e4f  gcc/match.pd
  b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
  897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
  4f86eeea7af520ce0b773c1f2e34b5b4  gcc/mem-stats.h
--- 7882,7888 ----
  2a18164ee5f162ac117e6fedb58158a2  gcc/machmode.def
  0c9209452a934f189aa0860038b3a65c  gcc/machmode.h
  197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
! 1951e39960da733ed8f656d97d4fd096  gcc/match.pd
  b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
  897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
  4f86eeea7af520ce0b773c1f2e34b5b4  gcc/mem-stats.h
*************** a497ad43b29c18aa6006c31050e37f1c  gcc/op
*** 7947,7953 ****
  83e2949ab4f0a281b29d45764ee87557  gcc/opt-suggestions.h
  eba7a25f3a38ce52b4cf970cc93f66ea  gcc/optabs-libfuncs.cc
  22f466f2c62ac3f6d1a71c7d7911d694  gcc/optabs-libfuncs.h
! df4d718a9c9934a10272384f58351e0f  gcc/optabs-query.cc
  e45c50053d2064312ea73720cdb8e5d9  gcc/optabs-query.h
  0135b6d221cd61d59fecebf7206e304e  gcc/optabs-tree.cc
  201b2569727bf062f908121f208a860f  gcc/optabs-tree.h
--- 7947,7953 ----
  83e2949ab4f0a281b29d45764ee87557  gcc/opt-suggestions.h
  eba7a25f3a38ce52b4cf970cc93f66ea  gcc/optabs-libfuncs.cc
  22f466f2c62ac3f6d1a71c7d7911d694  gcc/optabs-libfuncs.h
! d5835d491f5e53f12e238e9f518bb186  gcc/optabs-query.cc
  e45c50053d2064312ea73720cdb8e5d9  gcc/optabs-query.h
  0135b6d221cd61d59fecebf7206e304e  gcc/optabs-tree.cc
  201b2569727bf062f908121f208a860f  gcc/optabs-tree.h
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8726,8732 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! ab566d443e2a79cb4a7d295e8fd6006a  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8726,8732 ----
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 133293d8531510e8e983903c3e070b61  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** c315375dde6dfd35915ac372415190a8  gcc/te
*** 19875,19880 ****
--- 19875,19881 ----
  5a0fc856eddf5869c1607a51a511b91b  gcc/testsuite/c-c++-common/gomp/pr121452-1.c
  25357ab83549c772c7f308537e5445cf  gcc/testsuite/c-c++-common/gomp/pr121452-2.c
  e237cffddf611dba2776c6e54f0719b6  gcc/testsuite/c-c++-common/gomp/pr122866.c
+ 3a4afa5892923aa1935223bda7abf97a  gcc/testsuite/c-c++-common/gomp/pr125121.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
*************** b03be3a03970717959df65ccdcbebe88  gcc/te
*** 22488,22493 ****
--- 22489,22495 ----
  7998896b5b941ead8835759e67d0fff5  gcc/testsuite/g++.dg/asan/pr117845-2.C
  bcebd751b296d1287bb9fa7c080ccecb  gcc/testsuite/g++.dg/asan/pr117845.C
  350e8cfd78cd243b5ca66f3b0149e4b7  gcc/testsuite/g++.dg/asan/pr118763.C
+ 97d271ad3822668b82fdab6ac348be35  gcc/testsuite/g++.dg/asan/pr120201-1.C
  5b2d3a20968e0f4254721c157eb7c67c  gcc/testsuite/g++.dg/asan/pr120608-3.C
  8cb6a9a2f920a7486ac33480f9cab891  gcc/testsuite/g++.dg/asan/pr120608-4.C
  a012f82a08211153b4c4517641e43c3d  gcc/testsuite/g++.dg/asan/pr120608.C
*************** ea31517e527d7eb88edeeab341ec1a8b  gcc/te
*** 29119,29124 ****
--- 29121,29127 ----
  a36a7ca1d0eff1f81629dd71a462961f  gcc/testsuite/g++.dg/cpp2a/decomp1-aux.cc
  97d028d9e7af8226aa281ebcad5bf29f  gcc/testsuite/g++.dg/cpp2a/decomp1.C
  3f0f0087d8090182027f49fb3162aad7  gcc/testsuite/g++.dg/cpp2a/decomp10.C
+ b2e2cf90e50587433366cc7e1e2d8610  gcc/testsuite/g++.dg/cpp2a/decomp11.C
  b43ef64f974b1072708b231b049e3ed4  gcc/testsuite/g++.dg/cpp2a/decomp2.C
  8f3b9a6346c7c909ec6ae92d8da636ac  gcc/testsuite/g++.dg/cpp2a/decomp3.C
  c45bd99bf81821c6c33a6bec2da4fce3  gcc/testsuite/g++.dg/cpp2a/decomp4.C
*************** aa081a16610eaae6eaa83ad85ce8aa33  gcc/te
*** 31091,31096 ****
--- 31094,31100 ----
  3702c5ca025df0d43d103161203f0ddf  gcc/testsuite/g++.dg/ext/is_function.C
  421f56d6828967eabadae2f63452e22d  gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C
  17ec903e307ff61c01e84ba3f010b82c  gcc/testsuite/g++.dg/ext/is_implicit_lifetime2.C
+ 42b15f70e9796dd7c6f85c9836d01d7c  gcc/testsuite/g++.dg/ext/is_implicit_lifetime3.C
  04356e7583c2b33f9d0c90103c46653f  gcc/testsuite/g++.dg/ext/is_invocable1.C
  0da83314cec6d313a123af04a33e386b  gcc/testsuite/g++.dg/ext/is_invocable2.C
  a880bbf4a2491686f32ef99587f1d5d7  gcc/testsuite/g++.dg/ext/is_invocable3.C
*************** d15d49ffd84e37cdcbb1e23564c8c44e  gcc/te
*** 33403,33408 ****
--- 33407,33416 ----
  da4bb7bd422fbc928dca8b82012b7265  gcc/testsuite/g++.dg/lto/pr122905_0.C
  7be91aa845a7810b3947d606a1ffa169  gcc/testsuite/g++.dg/lto/pr122905_1.C
  c1520ffb1e8996e77b2da492ecc42175  gcc/testsuite/g++.dg/lto/pr123376_0.C
+ aa63ed16efc23c3cd90945cae6feaca6  gcc/testsuite/g++.dg/lto/pr126194.h
+ b321c964a71193311ce1f572263f323f  gcc/testsuite/g++.dg/lto/pr126194_0.C
+ b0221442ff7a2932e8574b51f9806156  gcc/testsuite/g++.dg/lto/pr126194_1.C
+ 2ff30c8dcd415ce0d2a171da46c415cd  gcc/testsuite/g++.dg/lto/pr126194_2.C
  ba9b686c163762488051ec4094a838b2  gcc/testsuite/g++.dg/lto/pr40818_0.C
  08a786b250f802e56e458c7d60a358fc  gcc/testsuite/g++.dg/lto/pr42987_0.C
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/lto/pr42987_1.C
*************** d2e46c2469499fd1b1cb32a384d6bc81  gcc/te
*** 35443,35448 ****
--- 35451,35457 ----
  020cc92178f45d27f797218781bfe02c  gcc/testsuite/g++.dg/no-stack-protector-attr.C
  8782d87c3ab6e3b20b317d9f1492e146  gcc/testsuite/g++.dg/opt/20050511-1.C
  5e1f1ec360f2ae54c78ee347de5c583f  gcc/testsuite/g++.dg/opt/20181025-1.C
+ 169bea5dd58c1746026b7e4924bbd199  gcc/testsuite/g++.dg/opt/20260703-1.C
  960bd912d3dccb44df0ecdebdfd45b44  gcc/testsuite/g++.dg/opt/alias1.C
  15bcb0db43b0a7c6f0b1a4ff014da35d  gcc/testsuite/g++.dg/opt/alias2.C
  91fe29b9b1f08a3ca87595896db03497  gcc/testsuite/g++.dg/opt/alias3.C
*************** e736fe25d4b99f710b70de0825fffdc1  gcc/te
*** 37239,37244 ****
--- 37248,37254 ----
  e6de60b5642934aef50f416afd0dfef5  gcc/testsuite/g++.dg/pr122348.C
  0ad246e348b6ea4bf54b74b0d8e3dce0  gcc/testsuite/g++.dg/pr123383.C
  9b72294c06cceb517f37832e017f79c1  gcc/testsuite/g++.dg/pr123575.C
+ 1e9b44fcafec24dfe9c3653aa87cf81c  gcc/testsuite/g++.dg/pr126150.C
  2ac64817a39fe1a5c2dc328f4233cda1  gcc/testsuite/g++.dg/pr37742.C
  32b2fbda29ffd2ac2181c43c971f3a7d  gcc/testsuite/g++.dg/pr44328.C
  e43b4ea2d038b181b57782d5d56d22ba  gcc/testsuite/g++.dg/pr44486.C
*************** d1618ed5affc804f7f8cda302ecd3b2e  gcc/te
*** 37948,37953 ****
--- 37958,37964 ----
  121fa58431980b8ab5bd16473ccf8c21  gcc/testsuite/g++.dg/reflect/pr124792.C
  46ef5d1fe4f16ccc7109ecfe84f64b11  gcc/testsuite/g++.dg/reflect/pr125007.C
  c35e7ee674a0e569c67e5b1b3a3dc568  gcc/testsuite/g++.dg/reflect/pr125412.C
+ b5ad51bdbd04ae99b7c4d59988ca4ec5  gcc/testsuite/g++.dg/reflect/pr126036.C
  e6404856d4cc9cc02aa5ebec3e5ecb82  gcc/testsuite/g++.dg/reflect/qrn1.C
  4ef5fc49aed920d8bfc3bc57a9ddef71  gcc/testsuite/g++.dg/reflect/qrn2.C
  8a49e7b1ad0cad9ac48fdcf37ad900cf  gcc/testsuite/g++.dg/reflect/range_args.C
*************** b8d7ae2a709e06f2d49e19cfb00e77d3  gcc/te
*** 38325,38330 ****
--- 38336,38343 ----
  fc503a6c4d63b92622d495b917629877  gcc/testsuite/g++.dg/template/bitfield2.C
  8a0fec8b2c65fed33977466ab46bb239  gcc/testsuite/g++.dg/template/bitfield3.C
  3beaec71f8c3eee7f77d4f01acdfd9c8  gcc/testsuite/g++.dg/template/bitfield4.C
+ 0943a2ed1de251cec2159b8a51827115  gcc/testsuite/g++.dg/template/bitfield5.C
+ d3445364009e0426fd4a308fcd2abf5c  gcc/testsuite/g++.dg/template/bitfield6.C
  dfa641076fcfa6f7c53b7912218f4c62  gcc/testsuite/g++.dg/template/builtin-atomic-overloads.def
  3271fe47f6cc8b603c5a72148c24c04c  gcc/testsuite/g++.dg/template/builtin-atomic-overloads1.C
  f86dd5e826edf7434db390f559e0c24b  gcc/testsuite/g++.dg/template/builtin-atomic-overloads2.C
*************** dbe58e15424b476b932c58cb5bc16046  gcc/te
*** 40484,40490 ****
  38d5ed9578a5910b56d57c30c896f01f  gcc/testsuite/g++.dg/torture/pr90313.C
  8f37bcbeb67682110bfb7b989631551a  gcc/testsuite/g++.dg/torture/pr90982.C
  bd0e252d81e8fe6df182d804fa7e51d1  gcc/testsuite/g++.dg/torture/pr90994.C
! c09ff981d388790529f959a054685551  gcc/testsuite/g++.dg/torture/pr91155.C
  25acdead98815c5c152ccee9449f6ab0  gcc/testsuite/g++.dg/torture/pr91270.C
  8512e0d79849c3153a1290024a552a14  gcc/testsuite/g++.dg/torture/pr91280.C
  4e2ef88024e234fead951a74d4ba3756  gcc/testsuite/g++.dg/torture/pr91334.C
--- 40497,40503 ----
  38d5ed9578a5910b56d57c30c896f01f  gcc/testsuite/g++.dg/torture/pr90313.C
  8f37bcbeb67682110bfb7b989631551a  gcc/testsuite/g++.dg/torture/pr90982.C
  bd0e252d81e8fe6df182d804fa7e51d1  gcc/testsuite/g++.dg/torture/pr90994.C
! 454ae6639159fbbd57f42185e3c39461  gcc/testsuite/g++.dg/torture/pr91155.C
  25acdead98815c5c152ccee9449f6ab0  gcc/testsuite/g++.dg/torture/pr91270.C
  8512e0d79849c3153a1290024a552a14  gcc/testsuite/g++.dg/torture/pr91280.C
  4e2ef88024e234fead951a74d4ba3756  gcc/testsuite/g++.dg/torture/pr91334.C
*************** fcd274aa9e98ef2eed6f4ff3d3a74b4c  gcc/te
*** 50575,50581 ****
  c78bbb71f763798ca7a0fb499b6de460  gcc/testsuite/gcc.dg/Warray-bounds-62.c
  ce896a75014d06ce0ca041baba249515  gcc/testsuite/gcc.dg/Warray-bounds-63.c
  9ea4759a96c75558f69e6cce54c34eb3  gcc/testsuite/gcc.dg/Warray-bounds-64.c
! 1df7f806db7a39bd9829ad74b9781b37  gcc/testsuite/gcc.dg/Warray-bounds-65.c
  f3fd7533759b1b91a93ea6b7dd8116ad  gcc/testsuite/gcc.dg/Warray-bounds-66.c
  f09603b4439bb0f94fdb3f82c122bb94  gcc/testsuite/gcc.dg/Warray-bounds-67.c
  51359502b5a5964989bb9a3452967e27  gcc/testsuite/gcc.dg/Warray-bounds-68.c
--- 50588,50594 ----
  c78bbb71f763798ca7a0fb499b6de460  gcc/testsuite/gcc.dg/Warray-bounds-62.c
  ce896a75014d06ce0ca041baba249515  gcc/testsuite/gcc.dg/Warray-bounds-63.c
  9ea4759a96c75558f69e6cce54c34eb3  gcc/testsuite/gcc.dg/Warray-bounds-64.c
! 17ae889889fffa3c7a4085d3bf13d67b  gcc/testsuite/gcc.dg/Warray-bounds-65.c
  f3fd7533759b1b91a93ea6b7dd8116ad  gcc/testsuite/gcc.dg/Warray-bounds-66.c
  f09603b4439bb0f94fdb3f82c122bb94  gcc/testsuite/gcc.dg/Warray-bounds-67.c
  51359502b5a5964989bb9a3452967e27  gcc/testsuite/gcc.dg/Warray-bounds-68.c
*************** b87b7ebc31064d6e57b0af0b3017afeb  gcc/te
*** 50635,50641 ****
  ab57b7d0ddff618e824f3e137b94be88  gcc/testsuite/gcc.dg/Wattributes-6.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/gcc.dg/Wattributes-7.c
  e6837d08b51cbdb5725ec33c460d55bb  gcc/testsuite/gcc.dg/Wattributes-8.c
! 3657d8392090a291a46e662e66ab20ac  gcc/testsuite/gcc.dg/Wbad-function-cast-1.c
  dec2067dc6cb85456e910b911face133  gcc/testsuite/gcc.dg/Wbool-operation-1.c
  fa34af530f0819d48745f85d1a99fb6d  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-10.c
  1d4e59d5d533ad0cefc0a93ca198f44e  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-11.c
--- 50648,50654 ----
  ab57b7d0ddff618e824f3e137b94be88  gcc/testsuite/gcc.dg/Wattributes-6.c
  fe25f03fdb469ad245f6cae14480ddad  gcc/testsuite/gcc.dg/Wattributes-7.c
  e6837d08b51cbdb5725ec33c460d55bb  gcc/testsuite/gcc.dg/Wattributes-8.c
! 00ec321f5cde994cf2213ead325e787c  gcc/testsuite/gcc.dg/Wbad-function-cast-1.c
  dec2067dc6cb85456e910b911face133  gcc/testsuite/gcc.dg/Wbool-operation-1.c
  fa34af530f0819d48745f85d1a99fb6d  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-10.c
  1d4e59d5d533ad0cefc0a93ca198f44e  gcc/testsuite/gcc.dg/Wbuiltin-declaration-mismatch-11.c
*************** f5a2800fc5f21185bd9bdbd69e270c10  gcc/te
*** 51672,51677 ****
--- 51685,51692 ----
  01c412c33251aced84f6f15e9bb2a7e5  gcc/testsuite/gcc.dg/array-quals-2.c
  e8f9574f1002387b520427c731d628de  gcc/testsuite/gcc.dg/aru-2.c
  4515ba2b6d94ef19f8681e85c5f721a7  gcc/testsuite/gcc.dg/asan/asan.exp
+ 72859d45a74bca392d69fe3d6a7b3d0b  gcc/testsuite/gcc.dg/asan/bitint-1.c
+ 7b23978f6137088537a436d8e4b439cb  gcc/testsuite/gcc.dg/asan/bitint-2.c
  eecad27701ac211149a09a067279d393  gcc/testsuite/gcc.dg/asan/has-feature-asan.c
  b8a049317908d7e0078316ad82437346  gcc/testsuite/gcc.dg/asan/nested-1.c
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
*************** cf111ef8df94d8890401a187eda44ecf  gcc/te
*** 54436,54442 ****
  f564c6bf6e627218a15d1dca68379b72  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c
  723beb2229407183028f21d19a7bc698  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c
  c5df10e225f51993952e25c8ef14a412  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c
! 6fbff40622fdbf03fa2c40f284cbeaf8  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
  471a71b5cad90554ce1db3c0bf02fd0c  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c
  21583e135f77113c75ff68854820f8ec  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-5.c
  8257cbdf2381e1ddbfcc341305c187d9  gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c
--- 54451,54457 ----
  f564c6bf6e627218a15d1dca68379b72  gcc/testsuite/gcc.dg/debug/ctf/ctf-attr-used-1.c
  723beb2229407183028f21d19a7bc698  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-1.c
  c5df10e225f51993952e25c8ef14a412  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-2.c
! 88e5110b51a24a31386412644e179281  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
  471a71b5cad90554ce1db3c0bf02fd0c  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-4.c
  21583e135f77113c75ff68854820f8ec  gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-5.c
  8257cbdf2381e1ddbfcc341305c187d9  gcc/testsuite/gcc.dg/debug/ctf/ctf-complex-1.c
*************** cbcc356a35e8a8665137c7ae64ec5914  gcc/te
*** 54588,54593 ****
--- 54603,54611 ----
  54b366032eed667161eee7783123c310  gcc/testsuite/gcc.dg/debug/dwarf2/pr103874.c
  88466c37a4317f483dad470b7d9a7949  gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c
  57e3c1af8d86b03c1a81a092be62ec96  gcc/testsuite/gcc.dg/debug/dwarf2/pr114015.c
+ fdc49b9086e5cc10a9a154840a749afd  gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-1.c
+ 2a508ce4d2d595024560192b6dc90fe2  gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-2.c
+ abf2680cbd1431fb13cc37cb0b5bc33b  gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-3.c
  250736f38c859fc89fb993ad3155eb20  gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c
  8f522ee214d1db3d04f240eb20eb4474  gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c
  43696edd12f5c0c32058d1ad1012e1e8  gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c
*************** ce39b21091008775415dbe099db0aaf5  gcc/te
*** 57262,57267 ****
--- 57280,57286 ----
  6028a2dec4dfcb2bf14d8b228fb95959  gcc/testsuite/gcc.dg/lto/pr122515_8.c
  ba260514a6f9ba02270018e5ccb3fc9c  gcc/testsuite/gcc.dg/lto/pr122515_9.c
  dd18439fd9c81ba8af7f920a1dd80a20  gcc/testsuite/gcc.dg/lto/pr122603_0.c
+ 528a862edf0afabc7a36e58c76853ac6  gcc/testsuite/gcc.dg/lto/pr125257_0.c
  5192817b2492ca93ffadce3b4a5e4794  gcc/testsuite/gcc.dg/lto/pr27898_0.c
  c5f48897247dfaec60df4e32beffcd8e  gcc/testsuite/gcc.dg/lto/pr27898_1.c
  2ad724786bc4b555a7f31e8b3bf164b6  gcc/testsuite/gcc.dg/lto/pr28706_0.c
*************** f85e3805a900aeb94e96e6ea1712a125  gcc/te
*** 58799,58807 ****
--- 58818,58828 ----
  3c7423a9897969335d65075272d17e19  gcc/testsuite/gcc.dg/pr125072.c
  192df6769f6f110bb8f33708a1ceeea9  gcc/testsuite/gcc.dg/pr125117.c
  1aeae21fcabe269ed5b59c08143b85d4  gcc/testsuite/gcc.dg/pr125173-1.c
+ 39e77ec3d93c3445ad8a73fa3d9fab87  gcc/testsuite/gcc.dg/pr125206.c
  7b30511bd41fb50fefd587c42e5d984c  gcc/testsuite/gcc.dg/pr125252.c
  b9e821b448b2a7ca97d76e3b0edfe9cf  gcc/testsuite/gcc.dg/pr125375.c
  ab60b475998ea1ed92a9002d6336bfd6  gcc/testsuite/gcc.dg/pr125501.c
+ 2145690aae63a443e6b20c904de8a496  gcc/testsuite/gcc.dg/pr125668.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** d95cc663b80362e038948f52fb3d74be  gcc/te
*** 61795,61800 ****
--- 61816,61824 ----
  b17b4527a47b2b6306755793803b481f  gcc/testsuite/gcc.dg/torture/bfloat16-complex.c
  9271e7a27977295d012588d87c307184  gcc/testsuite/gcc.dg/torture/bitint-1.c
  8e57ed5237e8f0f6918760eea643be09  gcc/testsuite/gcc.dg/torture/bitint-10.c
+ 8cfffe5a41a2c17d05155efffa603ce3  gcc/testsuite/gcc.dg/torture/bitint-100.c
+ 91e3ecf6956920cfc43a0be09d9adff4  gcc/testsuite/gcc.dg/torture/bitint-101.c
+ d21799d1355d134c49fbb279e9061c5d  gcc/testsuite/gcc.dg/torture/bitint-102.c
  6e0edfd615730c144c767fcf9cebc844  gcc/testsuite/gcc.dg/torture/bitint-11.c
  70badd65fbc9d51f24c59244ff200b8c  gcc/testsuite/gcc.dg/torture/bitint-12.c
  d43d461c9733529f16abae58889c550b  gcc/testsuite/gcc.dg/torture/bitint-13.c
*************** b569af91dd7275609d58f4469ba9e826  gcc/te
*** 62672,62677 ****
--- 62696,62702 ----
  16b777622562135656ac0ab96375cfb5  gcc/testsuite/gcc.dg/torture/pr124868.c
  c2d3ac4b0fce6da2e8aaeaf741803572  gcc/testsuite/gcc.dg/torture/pr124891.c
  fbe779467ae6f7cb7ee578922f1e8686  gcc/testsuite/gcc.dg/torture/pr125025.c
+ bc2955b0a92e5a341dd24f923e74809b  gcc/testsuite/gcc.dg/torture/pr125040.c
  a5b9e215eaee30cede04135bd18b6a59  gcc/testsuite/gcc.dg/torture/pr125153.c
  1380b111d91a82b39e2bcbae4eab1160  gcc/testsuite/gcc.dg/torture/pr125156.c
  f04a0ca1134a2f6b7f28283527f4394b  gcc/testsuite/gcc.dg/torture/pr125185.c
*************** e2a142dab1f38e7f7a8ffcdce454ce29  gcc/te
*** 62682,62690 ****
--- 62707,62720 ----
  828006abdbcb5a0b6e3bc5451790d857  gcc/testsuite/gcc.dg/torture/pr125545.c
  865ae037be55d942ca9a21c2d93b6994  gcc/testsuite/gcc.dg/torture/pr125553.c
  e1cd2f943b1276d7edf0ad19d7f2af26  gcc/testsuite/gcc.dg/torture/pr125652.c
+ 3846d71f952a8a48bea91f2256b1a576  gcc/testsuite/gcc.dg/torture/pr125730.c
  13a26b482c0abe9bba6de7ad78d38472  gcc/testsuite/gcc.dg/torture/pr125774-1.c
  459e4addcc4688257422fed8391988cd  gcc/testsuite/gcc.dg/torture/pr125776-1.c
  9b58e29ad15155e6fc7bf7dbad6bc468  gcc/testsuite/gcc.dg/torture/pr125776-2.c
+ 93bc071aaec418c0585a366bbff0fb37  gcc/testsuite/gcc.dg/torture/pr125786.c
+ 63c0b8bffdfe448123d4936d22c33576  gcc/testsuite/gcc.dg/torture/pr125875.c
+ d37f980a2ba8a3f7fef2d2c9a4f2a81d  gcc/testsuite/gcc.dg/torture/pr125953.c
+ 14be17fc44652a0c0f9e613a6f758c8a  gcc/testsuite/gcc.dg/torture/pr126008.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** ca03d4215dfd4e98fc1d17e6890fcc4a  gcc/te
*** 82456,82463 ****
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
  b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.c
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
! 783749b808801f545a547539f41dec21  gcc/testsuite/gcc.target/arm/pr110268-1.c
! 64df4c73d4d8e79ee289d41e18bf6095  gcc/testsuite/gcc.target/arm/pr110268-2.c
  2d6d0432c5753dcd78f171e5f50e0fcd  gcc/testsuite/gcc.target/arm/pr111235.c
  c2682b969fcec66bb2ebb2442ff4221b  gcc/testsuite/gcc.target/arm/pr112337.c
  95b83592cd208bcb180064639fd1558f  gcc/testsuite/gcc.target/arm/pr115153.c
--- 82486,82493 ----
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
  b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.c
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
! 0aac0e8217b2116ddcd4950176b5060e  gcc/testsuite/gcc.target/arm/pr110268-1.c
! ef45ae02da1e431415b4e19e77af7507  gcc/testsuite/gcc.target/arm/pr110268-2.c
  2d6d0432c5753dcd78f171e5f50e0fcd  gcc/testsuite/gcc.target/arm/pr111235.c
  c2682b969fcec66bb2ebb2442ff4221b  gcc/testsuite/gcc.target/arm/pr112337.c
  95b83592cd208bcb180064639fd1558f  gcc/testsuite/gcc.target/arm/pr115153.c
*************** bb8948b99ee40edd60fac5552a29094b  gcc/te
*** 95817,95825 ****
  1c3dd2fcc33b780dbf70e4ad8f8354e5  gcc/testsuite/gcc.target/powerpc/acmp-tst-32bit.c
  d3d9937409a146815a384e38f69c829a  gcc/testsuite/gcc.target/powerpc/acmp-tst-indexed.c
  51497862cbe2c65e679d0f8102a6c722  gcc/testsuite/gcc.target/powerpc/acmp-tst.c
! 7e51ad94a84aa7e10974b09b04903e96  gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c
! a230b59a8a08e65922c81f1a9237b840  gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c
! b38a63566b67c129c09f0d282731b17b  gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c
  49eb45ddbbc137e8692612bbe8958966  gcc/testsuite/gcc.target/powerpc/altivec-1.c
  d71351ecab256bb9c7162016a5087dd9  gcc/testsuite/gcc.target/powerpc/altivec-10.c
  a5a1d544c1a4460222f01fc318321eea  gcc/testsuite/gcc.target/powerpc/altivec-11.c
--- 95847,95855 ----
  1c3dd2fcc33b780dbf70e4ad8f8354e5  gcc/testsuite/gcc.target/powerpc/acmp-tst-32bit.c
  d3d9937409a146815a384e38f69c829a  gcc/testsuite/gcc.target/powerpc/acmp-tst-indexed.c
  51497862cbe2c65e679d0f8102a6c722  gcc/testsuite/gcc.target/powerpc/acmp-tst.c
! e949a835430ed98c68bf16b11530d359  gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c
! 037cb6004be866fa6551ab06df7600d2  gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c
! e0c066339c0b535296ec3ff7345658d1  gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c
  49eb45ddbbc137e8692612bbe8958966  gcc/testsuite/gcc.target/powerpc/altivec-1.c
  d71351ecab256bb9c7162016a5087dd9  gcc/testsuite/gcc.target/powerpc/altivec-10.c
  a5a1d544c1a4460222f01fc318321eea  gcc/testsuite/gcc.target/powerpc/altivec-11.c
*************** b018ac82fb41680ec84f71c82531b157  gcc/te
*** 96326,96331 ****
--- 96356,96362 ----
  62820786e811568bf9c0487b4ef6761b  gcc/testsuite/gcc.target/powerpc/e500-ord-2.c
  6ea92a9945a83333f8d1ba665d65f560  gcc/testsuite/gcc.target/powerpc/e500-unord-1.c
  83d3ef0422135a547b552e5700f1e4a6  gcc/testsuite/gcc.target/powerpc/e500-unord-2.c
+ 37ad2d0acc730b153cd2124638ef1642  gcc/testsuite/gcc.target/powerpc/ecc-builtin-1.c
  01907d008b05c94700170b948c96b56e  gcc/testsuite/gcc.target/powerpc/ehreturn.c
  bd2c353f1036b5195045a2743592560e  gcc/testsuite/gcc.target/powerpc/error-1.c
  30b61e9be61686ff759fe9e565bd6199  gcc/testsuite/gcc.target/powerpc/extend-divide-1.c
*************** dcbebe071d63c21a542a5715031d4d82  gcc/te
*** 96619,96624 ****
--- 96650,96658 ----
  1b40025433c5882c82a7973a8acd66cf  gcc/testsuite/gcc.target/powerpc/fusion2.c
  fd3ca3fdb9af79fbaaaf7ad8d0d02666  gcc/testsuite/gcc.target/powerpc/future-1.c
  a37f7a987530bbfd72ef935e3501f63e  gcc/testsuite/gcc.target/powerpc/future-2.c
+ ce8dbd2fc4cbdb51ea62b59c743705ab  gcc/testsuite/gcc.target/powerpc/future-vucmpr-altivec.c
+ c8ada5234676e0119ac6f109140c4322  gcc/testsuite/gcc.target/powerpc/future-vucmpr-vsx.c
+ 949970ead2aa1271087aca0d76231500  gcc/testsuite/gcc.target/powerpc/future-vupk.c
  c8bb039efa1ac96486e0294c85966d8f  gcc/testsuite/gcc.target/powerpc/fwprop-1.c
  d339d3fe4c50dd4c2727de10dcf3374e  gcc/testsuite/gcc.target/powerpc/gcse-1.c
  8bb9827b615648c123de2019c6d1017b  gcc/testsuite/gcc.target/powerpc/gnuattr1.c
*************** e0fe6119bfcf724ee51375d3156cacc5  gcc/te
*** 112657,112662 ****
--- 112691,112697 ----
  69c9adbbfbe876b0ebe43dc051936ce2  gcc/testsuite/gfortran.dg/associate_76.f90
  455dfc6f26983668bd6203def9eb927b  gcc/testsuite/gfortran.dg/associate_77.f90
  741671a391caf8cb1c98e29e99735660  gcc/testsuite/gfortran.dg/associate_78.f90
+ 5a67561f9b0d9f903558a99dceabeb25  gcc/testsuite/gfortran.dg/associate_79.f90
  3c2206420bb8717914aa447789b5f079  gcc/testsuite/gfortran.dg/associate_8.f03
  c7ede1ebcb10a45e043e636af05828b5  gcc/testsuite/gfortran.dg/associate_80.f90
  459fbab02621785ee9cc92b06ca356f4  gcc/testsuite/gfortran.dg/associate_81.f90
*************** c82475796fec905fbcbddbebc480ad15  gcc/te
*** 118365,118370 ****
--- 118400,118406 ----
  21a6fcd9db938827306935bac8eec1c1  gcc/testsuite/gfortran.dg/pr125391.f90
  7e2e05a5f046a763356f94130e52c9a6  gcc/testsuite/gfortran.dg/pr126116.f90
  6e08f4627287595ccc509969aa703e88  gcc/testsuite/gfortran.dg/pr126210.f90
+ 5a00ca35ba1faa29766a381172b84b0d  gcc/testsuite/gfortran.dg/pr126234.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  2b5f18b773a5db29b0a2ee2d8cce767c  gcc/testsuite/gfortran.dg/pr15140.f90
*************** de9eeadec9703aff96169206e31a3a22  gcc/te
*** 128327,128333 ****
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! bc501c0cd1b56f167be7f2ca7329a568  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
--- 128363,128369 ----
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! ab8fd96bdae94c83c527f949629710ad  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
*************** a4340dde4019e28f9fad54b2a7770c74  gcc/tr
*** 131103,131109 ****
  ed70c897fa5690940494f2b8b6e27f21  gcc/tree-affine.h
  bc74f92323ee5636997f0c03aec16115  gcc/tree-assume.cc
  a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
! c36473c02a1a99e2b3c00b0953d1fb64  gcc/tree-cfg.cc
  809e1f07de4be5a3fc990f66bd6d1105  gcc/tree-cfg.h
  e4268d258c67f33e0625d4eb1ca512f7  gcc/tree-cfgcleanup.cc
  645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
--- 131139,131145 ----
  ed70c897fa5690940494f2b8b6e27f21  gcc/tree-affine.h
  bc74f92323ee5636997f0c03aec16115  gcc/tree-assume.cc
  a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
! 649ea4ec9479ed4ec22d106db1351249  gcc/tree-cfg.cc
  809e1f07de4be5a3fc990f66bd6d1105  gcc/tree-cfg.h
  e4268d258c67f33e0625d4eb1ca512f7  gcc/tree-cfgcleanup.cc
  645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
*************** f6e775dc713dd010d4533cdab4dc044f  gcc/tr
*** 131159,131165 ****
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
  ce9274119122c3cd5ea7c58552f62d21  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
! 39f64c2e1c6ae742ac610f096aa9e013  gcc/tree-ssa-address.cc
  2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
  fcb7975097b4ee08d301f6de516fdd62  gcc/tree-ssa-alias-compare.h
  9c20916ac2e4fdfc859f243e764d56db  gcc/tree-ssa-alias.cc
--- 131195,131201 ----
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
  ce9274119122c3cd5ea7c58552f62d21  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
! 6b789908da4ef6b57b1873aeeb83ab62  gcc/tree-ssa-address.cc
  2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
  fcb7975097b4ee08d301f6de516fdd62  gcc/tree-ssa-alias-compare.h
  9c20916ac2e4fdfc859f243e764d56db  gcc/tree-ssa-alias.cc
*************** d5dba4b9ca0d7dfc67c9d53ec5273fb1  gcc/tr
*** 131175,131181 ****
  ec31925fe8431d27258939fc79f1f02e  gcc/tree-ssa-dom.h
  b0752286b16612fce67b55c8b0bdbdbc  gcc/tree-ssa-dse.cc
  1df01d660e0f98ade0ae7a3152aa33ed  gcc/tree-ssa-dse.h
! d661ab29105f33e6bac7e0eb1e7c64af  gcc/tree-ssa-forwprop.cc
  bb90d30f7c6176fd9edf8b10cc7803b6  gcc/tree-ssa-ifcombine.cc
  96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
  7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
--- 131211,131217 ----
  ec31925fe8431d27258939fc79f1f02e  gcc/tree-ssa-dom.h
  b0752286b16612fce67b55c8b0bdbdbc  gcc/tree-ssa-dse.cc
  1df01d660e0f98ade0ae7a3152aa33ed  gcc/tree-ssa-dse.h
! 54d68a702851ab81a446047379f271b7  gcc/tree-ssa-forwprop.cc
  bb90d30f7c6176fd9edf8b10cc7803b6  gcc/tree-ssa-ifcombine.cc
  96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
  7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
*************** fa83f982a805985b3a3da2ca5e10e43a  gcc/tr
*** 131199,131208 ****
  f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
  8168c2bba2a0b4e4c6122b10037b1dd4  gcc/tree-ssa-phiopt.cc
  8ab9314ce21d683c5fd9fc16bf7cab29  gcc/tree-ssa-phiprop.cc
! e356f4c7b22c3759a86c782d5e99d1a8  gcc/tree-ssa-pre.cc
  5d6622629ccbf56551beb5cb3cc8684a  gcc/tree-ssa-propagate.cc
  d38017eb69a50f24b5e47ee97928afde  gcc/tree-ssa-propagate.h
! 33a97fbc8e9875cc95093cb937c2d7e3  gcc/tree-ssa-reassoc.cc
  82a2c700ac2e32f106bcbd11fc5cf152  gcc/tree-ssa-reassoc.h
  d7b35a4618335fb10cc691bd78609de5  gcc/tree-ssa-sccvn.cc
  969557a6ff2537ae4a6d36fde566e436  gcc/tree-ssa-sccvn.h
--- 131235,131244 ----
  f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
  8168c2bba2a0b4e4c6122b10037b1dd4  gcc/tree-ssa-phiopt.cc
  8ab9314ce21d683c5fd9fc16bf7cab29  gcc/tree-ssa-phiprop.cc
! ce2cd68cbd7cab2d7f162601320c968d  gcc/tree-ssa-pre.cc
  5d6622629ccbf56551beb5cb3cc8684a  gcc/tree-ssa-propagate.cc
  d38017eb69a50f24b5e47ee97928afde  gcc/tree-ssa-propagate.h
! c07b9f6300ed9a83f61556cad10b1e0d  gcc/tree-ssa-reassoc.cc
  82a2c700ac2e32f106bcbd11fc5cf152  gcc/tree-ssa-reassoc.h
  d7b35a4618335fb10cc691bd78609de5  gcc/tree-ssa-sccvn.cc
  969557a6ff2537ae4a6d36fde566e436  gcc/tree-ssa-sccvn.h
*************** a276a785e139fcb28cbe71af406290bf  gcc/tr
*** 131237,131243 ****
  e316eddfbf9a02433a4ee93e648f3aa4  gcc/tree-switch-conversion.h
  6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
  9d1d629a67b789d8cb739163675798bd  gcc/tree-vect-data-refs.cc
! a423c268d5ba9ac563732fd6d038c572  gcc/tree-vect-generic.cc
  f4b6293b33ff0a7b939e7fda4a1f995e  gcc/tree-vect-loop-manip.cc
  6978b3f49f7f097a59a2a30c0e4b58c7  gcc/tree-vect-loop.cc
  2730836d8cc13635cf2bbb611acecb51  gcc/tree-vect-patterns.cc
--- 131273,131279 ----
  e316eddfbf9a02433a4ee93e648f3aa4  gcc/tree-switch-conversion.h
  6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
  9d1d629a67b789d8cb739163675798bd  gcc/tree-vect-data-refs.cc
! c187b64bd58a62576ed5776f4099d4a0  gcc/tree-vect-generic.cc
  f4b6293b33ff0a7b939e7fda4a1f995e  gcc/tree-vect-loop-manip.cc
  6978b3f49f7f097a59a2a30c0e4b58c7  gcc/tree-vect-loop.cc
  2730836d8cc13635cf2bbb611acecb51  gcc/tree-vect-patterns.cc
*************** d6e6c12ad7955457218136e35f5a30d6  gcc/va
*** 131285,131292 ****
  1657e0e5b170dd495911d1c2ceeb23da  gcc/varasm.cc
  183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
  136dfca78729a02f744f7929df4331c9  gcc/varpool.cc
! 1eb1aeaffcea7302f0e479e7e824f742  gcc/vec-perm-indices.cc
! f5d57a9ceb21da232787c72a12a3b597  gcc/vec-perm-indices.h
  0eab6e9da32af1112170f518a116f7cb  gcc/vec.cc
  c91273a15934abde46fad0e255ab7a7d  gcc/vec.h
  f2d9db7b65884c657d64eb3ef0099e7e  gcc/vector-builder.h
--- 131321,131328 ----
  1657e0e5b170dd495911d1c2ceeb23da  gcc/varasm.cc
  183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
  136dfca78729a02f744f7929df4331c9  gcc/varpool.cc
! 67ef90b264ca4a7659bfc0d8463734ab  gcc/vec-perm-indices.cc
! e935d6531151e5ddb269beeff4ed2d53  gcc/vec-perm-indices.h
  0eab6e9da32af1112170f518a116f7cb  gcc/vec.cc
  c91273a15934abde46fad0e255ab7a7d  gcc/vec.h
  f2d9db7b65884c657d64eb3ef0099e7e  gcc/vector-builder.h
*************** d1c33a8b5e0f3d9a19ffe583f8e72f56  libgru
*** 144005,144011 ****
  c21183b1df7f7afb240d765035277db1  libgrust/rustc-lib/version-info
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! b410f72aba62692e5d05c1fff871f4f1  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  de0b0731d5d06e748df71e896c6078a5  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
--- 144041,144047 ----
  c21183b1df7f7afb240d765035277db1  libgrust/rustc-lib/version-info
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 72a1eae6b23aaac696265f2b21e8d465  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  de0b0731d5d06e748df71e896c6078a5  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
*************** a79b53a4509df76eed91f2b385434167  libibe
*** 144116,144122 ****
  fd7b0f956a27a9c003becee0f7127dc9  libiberty/simple-object-coff.c
  7d1dc7e843b27598f270728a44698f7e  libiberty/simple-object-common.h
  0f48244c3d903b42615870ec6763e7dd  libiberty/simple-object-elf.c
! 5eea7a0264697812cc1cb751094bb348  libiberty/simple-object-mach-o.c
  d66a370bb6427e3e775064e74b0a4f86  libiberty/simple-object-xcoff.c
  d83b0f719987de9d9cc6ea43bd6441b7  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
--- 144152,144158 ----
  fd7b0f956a27a9c003becee0f7127dc9  libiberty/simple-object-coff.c
  7d1dc7e843b27598f270728a44698f7e  libiberty/simple-object-common.h
  0f48244c3d903b42615870ec6763e7dd  libiberty/simple-object-elf.c
! d00d4298a0b9075e8f0e5c376205f61b  libiberty/simple-object-mach-o.c
  d66a370bb6427e3e775064e74b0a4f86  libiberty/simple-object-xcoff.c
  d83b0f719987de9d9cc6ea43bd6441b7  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 146012,146018 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 38c6fd112965feb0105688f6a94e6e51  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 146048,146054 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! c9e12eaa75e0700bd844e60d3a55aece  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a8e79cb6c591611cd6113eed355c3de6  libstd
*** 147436,147442 ****
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
  c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
! 14fa0aceca3461a5dfbdd0084a7b5778  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
--- 147472,147478 ----
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
  c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
! e506bf53a6eacb30a97977dae295204a  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
*************** d9b30ac9f13a2d342a56ff319aca749e  libstd
*** 147476,147482 ****
  b6acc193775e3cf38850b9d166d46caf  libstdc++-v3/include/std/simd
  b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
  32f9089a1eee35a3cb0ee86636d8d338  libstdc++-v3/include/std/span
! efdde6d8d883a91854d4ae616b627e53  libstdc++-v3/include/std/spanstream
  f00ff992c96a4a6422d964aad9315664  libstdc++-v3/include/std/sstream
  f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
  11dbc7eaf7ffced493f65f6bc3b423b1  libstdc++-v3/include/std/stacktrace
--- 147512,147518 ----
  b6acc193775e3cf38850b9d166d46caf  libstdc++-v3/include/std/simd
  b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
  32f9089a1eee35a3cb0ee86636d8d338  libstdc++-v3/include/std/span
! 77b9026597a9ba6d2cab06332d67fcc4  libstdc++-v3/include/std/spanstream
  f00ff992c96a4a6422d964aad9315664  libstdc++-v3/include/std/sstream
  f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
  11dbc7eaf7ffced493f65f6bc3b423b1  libstdc++-v3/include/std/stacktrace
*************** f5a5ebc7b6133572f8f361cde93ec52f  libstd
*** 147486,147492 ****
  e6e7d75896bc3f784a372c70020e9d04  libstdc++-v3/include/std/streambuf
  76bd18b5fc744472aa3988d57a5928c5  libstdc++-v3/include/std/string
  f1890d5dbe9c9ef672c11e6397c881b9  libstdc++-v3/include/std/string_view
! 2357e8bc64ed236c453da02aa0eab3ea  libstdc++-v3/include/std/syncstream
  0574b134b5132494e9294186a6a4511c  libstdc++-v3/include/std/system_error
  3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
--- 147522,147528 ----
  e6e7d75896bc3f784a372c70020e9d04  libstdc++-v3/include/std/streambuf
  76bd18b5fc744472aa3988d57a5928c5  libstdc++-v3/include/std/string
  f1890d5dbe9c9ef672c11e6397c881b9  libstdc++-v3/include/std/string_view
! 772a19ba59fc7b87db2baaa46050638d  libstdc++-v3/include/std/syncstream
  0574b134b5132494e9294186a6a4511c  libstdc++-v3/include/std/system_error
  3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
*************** ac7b7a080d5f7aa8fe6a26188631fc18  libstd
*** 147807,147813 ****
  9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 625f396ba37e13c10cd9e79a5d19832f  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
--- 147843,147849 ----
  9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 1c17f826dbfe2f324aeee14e664edc19  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
diff -Nrcpad gcc-16-20260711/gcc/ChangeLog gcc-16-20260718/gcc/ChangeLog
*** gcc-16-20260711/gcc/ChangeLog	Sat Jul 11 22:32:05 2026
--- gcc-16-20260718/gcc/ChangeLog	Sat Jul 18 22:32:05 2026
***************
*** 1,3 ****
--- 1,313 ----
+ 2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126262
+ 	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Treat
+ 	IFN_MUL_OVERFLOW and IFN_UBSAN_CHECK_MUL like IFN_BSWAP, regardless
+ 	of bitint_big_endian.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126257
+ 	* match.pd (x+x -> x*2): Only optimize if 2 is representable in the
+ 	type.
+ 
+ 2026-07-15  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-07-09  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtins.def: Move AES builtins to future-vsx
+ 	stanza.
+ 	* doc/extend.texi: Add subheading for AES builtins.
+ 
+ 2026-07-15  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-07-07  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	* config/rs6000/altivec.md (UNSPEC_VUCMPRHN): New unspec entry.
+ 	(UNSPEC_VUCMPRLN): Likewise.
+ 	(UNSPEC_VUCMPRHB): Likewise.
+ 	(UNSPEC_VUCMPRLB): Likewise.
+ 	(UNSPEC_VUCMPRHH): Likewise.
+ 	(UNSPEC_VUCMPRLH): Likewise.
+ 	(UNSPEC_VUPKHSNTOB): Likewise.
+ 	(UNSPEC_VUPKLSNTOB): Likewise.
+ 	(UNSPEC_VUPKINT4TOBF16): Likewise.
+ 	(UNSPEC_VUPKINT8TOBF16): Likewise.
+ 	(UNSPEC_VUPKINT4TOFP32): Likewise.
+ 	(UNSPEC_VUPKINT8TOFP32): Likewise.
+ 	(vu_hl): New attribute.
+ 	(vu_lh): Likewise.
+ 	(VUPKNTOB): New int iterator.
+ 	(altivec_vupkhsntob): New define_insn.
+ 	(altivec_vupklsntob): Likewise.
+ 	(altivec_vupkint4tobf16): Likewise.
+ 	(altivec_vupkint8tobf16): Likewise.
+ 	(altivec_vupkint4tofp32): Likewise.
+ 	(altivec_vupkint8tofp32): Likewise.
+ 	(vucmpr_splat): New attribute.
+ 	(vucmpr_pcv): Likewise.
+ 	(vucmpr_uim): Likewise.
+ 	(VUCMPR_N): New int iterator.
+ 	(VUCMPR_B): Likewise.
+ 	(VUCMPR_H): Likewise.
+ 	(altivec_vucmpr<vu_hl>n): New define_expand.
+ 	(altivec_vucmpr<vu_hl>n_direct): New define_insn for vucmpr<vu_hl>n.
+ 	(altivec_vucmpr<vu_hl>b): New define_expand.
+ 	(altivec_vucmpr<vu_hl>b_direct): New define_insn for vucmpr<vu_hl>b.
+ 	(altivec_vucmpr<vu_hl>h): New define_expand.
+ 	(altivec_vucmpr<vu_hl>h_direct): New define_insn for vucmpr<vu_hl>h.
+ 	* config/rs6000/rs6000-builtins.def: Add vector uncompress and unpack
+ 	builtins under [future].
+ 	* config/rs6000/rs6000-overload.def: Add vec_uncompress* and vec_unpack*
+ 	interfaces.
+ 
+ 2026-07-15  Manjunath Matti  <mmatti@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-25  Manjunath Matti  <mmatti@linux.ibm.com>
+ 
+ 	* config/rs6000/predicates.md (const_0_to_6_operand): New predicate.
+ 	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xxmulmul): Add new
+ 	builtin definitions under [future] stanza.
+ 	(__builtin_vsx_xxmulmulhiadd): Likewise.
+ 	(__builtin_vsx_xxmulmulloadd): Likewise.
+ 	(__builtin_vsx_xxssumudm): Likewise.
+ 	(__builtin_vsx_xxssumudmc): Likewise.
+ 	(__builtin_vsx_xxssumudmcext): Likewise.
+ 	(__builtin_vsx_xsaddadduqm): Likewise.
+ 	(__builtin_vsx_xsaddaddsuqm): Likewise.
+ 	(__builtin_vsx_xsaddsubuqm): Likewise.
+ 	(__builtin_vsx_xsaddsubsuqm): Likewise.
+ 	(__builtin_vsx_xsmerge2t1uqm): Likewise.
+ 	(__builtin_vsx_xsmerge2t2uqm): Likewise.
+ 	(__builtin_vsx_xsmerge2t3uqm): Likewise.
+ 	(__builtin_vsx_xsmerge3t1uqm): Likewise.
+ 	(__builtin_vsx_xsrebase2t1uqm): Likewise.
+ 	(__builtin_vsx_xsrebase2t2uqm): Likewise.
+ 	(__builtin_vsx_xsrebase2t3uqm): Likewise.
+ 	(__builtin_vsx_xsrebase2t4uqm): Likewise.
+ 	(__builtin_vsx_xsrebase3t1uqm): Likewise.
+ 	(__builtin_vsx_xsrebase3t2uqm): Likewise.
+ 	(__builtin_vsx_xsrebase3t3uqm): Likewise.
+ 	* config/rs6000/vsx.md (UNSPEC_XXMULMUL): Add UNSPEC entry.
+ 	(UNSPEC_XXMULMULHIADD): Likewise.
+ 	(UNSPEC_XXMULMULLOADD): Likewise.
+ 	(UNSPEC_XXSSUMUDM): Likewise.
+ 	(UNSPEC_XXSSUMUDMC): Likewise.
+ 	(UNSPEC_XXSSUMUDMCEXT): Likewise.
+ 	(UNSPEC_XSADDADDUQM): Likewise.
+ 	(UNSPEC_XSADDADDSUQM): Likewise.
+ 	(UNSPEC_XSADDSUBUQM): Likewise.
+ 	(UNSPEC_XSADDSUBSUQM): Likewise.
+ 	(UNSPEC_XSMERGE2T1UQM): Likewise.
+ 	(UNSPEC_XSMERGE2T2UQM): Likewise.
+ 	(UNSPEC_XSMERGE2T3UQM): Likewise.
+ 	(UNSPEC_XSMERGE3T1UQM): Likewise.
+ 	(UNSPEC_XSREBASE2T1UQM): Likewise.
+ 	(UNSPEC_XSREBASE2T2UQM): Likewise.
+ 	(UNSPEC_XSREBASE2T3UQM): Likewise.
+ 	(UNSPEC_XSREBASE2T4UQM): Likewise.
+ 	(UNSPEC_XSREBASE3T1UQM): Likewise.
+ 	(UNSPEC_XSREBASE3T2UQM): Likewise.
+ 	(UNSPEC_XSREBASE3T3UQM): Likewise.
+ 	(vsx_xxmulmul): New define_insn.
+ 	(vsx_xxmulmulhiadd): Likewise.
+ 	(vsx_xxmulmulloadd): Likewise.
+ 	(vsx_xxssumudm): Likewise.
+ 	(vsx_xxssumudmc): Likewise.
+ 	(vsx_xxssumudmcext): Likewise.
+ 	(vsx_xsaddadduqm): Likewise.
+ 	(vsx_xsaddaddsuqm): Likewise.
+ 	(vsx_xsaddsubuqm): Likewise.
+ 	(vsx_xsaddsubsuqm): Likewise.
+ 	(vsx_xsmerge2t1uqm): Likewise.
+ 	(vsx_xsmerge2t2uqm): Likewise.
+ 	(vsx_xsmerge2t3uqm): Likewise.
+ 	(vsx_xsmerge3t1uqm): Likewise.
+ 	(vsx_xsrebase2t1uqm): Likewise.
+ 	(vsx_xsrebase2t2uqm): Likewise.
+ 	(vsx_xsrebase2t3uqm): Likewise.
+ 	(vsx_xsrebase2t4uqm): Likewise.
+ 	(vsx_xsrebase3t1uqm): Likewise.
+ 	(vsx_xsrebase3t2uqm): Likewise.
+ 	(vsx_xsrebase3t3uqm): Likewise.
+ 	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
+ 	documentation for ECC cryptography builtins available on
+ 	future ISA.
+ 
+ 2026-07-14  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	Backported from master:
+ 	2026-07-07  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (rigel): New entry.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi (AArch64 Options): Document the above.
+ 
+ 2026-07-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* doc/sourcebuild.texi (arm_v8_1m_mve_link): Document.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/126084
+ 	* gimple-lower-bitint.cc: Include "attribs.h" and "asan.h".
+ 	(gimple_lower_bitint): Use asan_expand_poison_ifn to lower
+ 	.ASAN_POISON calls with large/huge _BitInt lhs.
+ 	* asan.cc (report_error_func): Set *nargs and use _n builtin
+ 	even if size is not a power of two or larger than 16.
+ 	(asan_expand_poison_ifn): Handle nargs == 2.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 		    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR tree-optimization/120201
+ 	* cfgexpand.cc (expand_used_vars): Set data.asan_alignb to
+ 	maximum of itself and crtl->stack_alignment_needed
+ 	/ BITS_PER_UNIT.
+ 
+ 2026-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126194
+ 	* gimple-ssa-pta-constraints.cc (find_func_aliases_for_call):
+ 	Only ignore calls to delete if DECL_IS_REPLACEABLE_OPERATOR.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-07-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126150
+ 	* tree-cfg.cc (replace_uses_by): Delay purging of EH edges
+ 	until after FOR_EACH_IMM_USE_STMT finished.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125953
+ 	* gimple-range.cc (gimple_ranger::range_of_expr): Document.
+ 	Fall back to global ranges if 'stmt' is not in the IL.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125875
+ 	* match.pd: When checking for !can_vec_perm_const_p also
+ 	allow variable permutes and use the vec_perm_indices CTOR
+ 	with the original tree operands.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* vec-perm-indices.h (vec_perm_indices::new_vector): New overload.
+ 	(vec_perm_indices::input_bitwise_zero_p): New method.
+ 	(vec_perm_indices::m_input0_bitwise_zero_p,
+ 	vec_perm_indices::m_input1_bitwise_zero_p): New members.
+ 	(vec_perm_indices::vec_perm_indices): Adjust.
+ 	(tree_to_vec_perm_indices): Declare.
+ 	* vec-perm-indices.cc (vec_perm_indices::new_vector): New overload.
+ 	(vec_perm_indices::new_expanded_vector): Adjust.
+ 	(tree_to_vec_perm_indices): New function.
+ 	* optabs-query.cc (can_vec_perm_const_p): Handle permute
+ 	patterns mapping to vec_shl/vec_shr.
+ 	* tree-vect-generic.cc (lower_vec_perm): Move vec_shl/vec_shr
+ 	detection to can_vec_perm_const_p and simplify.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125786
+ 	* tree-ssa-reassoc.cc (optimize_vec_cond_expr): Create a new
+ 	stmt instead of rewriting an existing possibly multi-use one.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125668
+ 	* tree-ssa-forwprop.cc (forward_propagate_addr_expr_1):
+ 	Preserve alignment of the original access also for propagating
+ 	into the LHS.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125296
+ 	* tree-ssa-forwprop.cc (forward_propagate_addr_expr_1):
+ 	Preserve alignment of the original access.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126008
+ 	* tree-ssa-loop-ivopts.cc (alloc_iv): Revert last change.
+ 	* tree-ssa-address.cc (add_to_parts): Use unsigned arithmetic
+ 	to accumulate to base.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125730
+ 	* tree-ssa-loop-ivopts.cc (alloc_iv): Do not convert pointer
+ 	IVs to unsigned before canonicalizing.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125040
+ 	* tree-ssa-pre.cc (clean): Iterate processing.
+ 
+ 2026-07-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	Backported from master:
+ 	2026-07-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/125121
+ 	* cgraph.cc (cgraph_edge::make_callback): Add missing call to
+ 	duplication hooks.
+ 	* ipa-prop.cc (init_callback_edge_summary): Remove function.
+ 	(ipa_compute_jump_functions_for_edge): Remove call to
+ 	init_callback_edge_summary, fix comment.
+ 	(ipa_edge_args_sum_t::duplicate): Fix the initialization of jump
+ 	functions vector for callback edges.
+ 
  2026-07-10  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/DATESTAMP gcc-16-20260718/gcc/DATESTAMP
*** gcc-16-20260711/gcc/DATESTAMP	Sat Jul 11 22:32:05 2026
--- gcc-16-20260718/gcc/DATESTAMP	Sat Jul 18 22:32:05 2026
***************
*** 1 ****
! 20260711
--- 1 ----
! 20260718
diff -Nrcpad gcc-16-20260711/gcc/ada/ChangeLog gcc-16-20260718/gcc/ada/ChangeLog
*** gcc-16-20260711/gcc/ada/ChangeLog	Sat Jul 11 22:32:05 2026
--- gcc-16-20260718/gcc/ada/ChangeLog	Sat Jul 18 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Perform the
+ 	full resolution of the reducer even if it is not overloaded, but do
+ 	not resolve the prefix if it is an aggregate
+ 
  2026-07-10  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* exp_disp.adb (Expand_Dispatching_Call): Reenable the suppression
diff -Nrcpad gcc-16-20260711/gcc/ada/sem_attr.adb gcc-16-20260718/gcc/ada/sem_attr.adb
*** gcc-16-20260711/gcc/ada/sem_attr.adb	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/ada/sem_attr.adb	Sat Jul 18 22:32:06 2026
*************** package body Sem_Attr is
*** 12879,12889 ****
                 function Is_Reducer_Subprogram (E : Entity_Id) return Boolean;
                 --  Return whether E is a reducer subprogram (RM 4.5.10(11-13))
  
-                function Make_Array_Type
-                  (Index, Value : Entity_Id) return Entity_Id;
-                --  This function returns a simple array type to resolve the
-                --  array aggregate.
- 
                 -----------------------
                 -- Get_Value_Subtype --
                 -----------------------
--- 12879,12884 ----
*************** package body Sem_Attr is
*** 12915,12920 ****
--- 12910,12919 ----
                       It         : Interp;
  
                    begin
+                      if not Is_Overloaded (Reducer_N) then
+                         return;
+                      end if;
+ 
                       Get_First_Interp (Reducer_N, I, It);
                       while Present (It.Nam) loop
                          if Is_Reducer_Subprogram (It.Nam) then
*************** package body Sem_Attr is
*** 13014,13035 ****
                 --  Start of processing for Get_Value_Subtype
  
                 begin
-                   --  In case the reducer is not overloaded, check directly
-                   --  its second formal for the value subtype.
- 
-                   if not Is_Overloaded (Reducer_N) then
-                      if Is_Reducer_Subprogram (Entity (Reducer_N)) then
-                         return Etype (Next_Formal
-                                        (First_Formal (Entity (Reducer_N))));
- 
-                      --  Return any type to signal the caller that no proper
-                      --  reducer subprogram was found.
- 
-                      else
-                         return Any_Type;
-                      end if;
-                   end if;
- 
                    --  RM 4.5.10(11/5): the reducer subprogram is required to be
                    --  subtype conformant with one of the following profiles:
  
--- 13013,13018 ----
*************** package body Sem_Attr is
*** 13308,13338 ****
                    end if;
                 end Is_Reducer_Subprogram;
  
-                ---------------------
-                -- Make_Array_Type --
-                ---------------------
- 
-                function Make_Array_Type
-                  (Index, Value : Entity_Id) return Entity_Id
-                is
-                   Array_Type : constant Entity_Id := Make_Temporary (Loc, 'A');
-                   Range_N    : constant Node_Id :=
-                     Make_Range (Loc,
-                       Low_Bound  => Type_Low_Bound (Index),
-                       High_Bound => Type_High_Bound (Index));
-                begin
-                   Set_In_List (Range_N);
-                   Set_Etype (Range_N, Index);
- 
-                   Set_Etype (Array_Type, Array_Type);
-                   Set_Scope (Array_Type, Find_Enclosing_Scope (N));
-                   Mutate_Ekind (Array_Type, E_Array_Type);
-                   Set_Component_Type (Array_Type, Value);
-                   Set_First_Index (Array_Type, Range_N);
- 
-                   return Array_Type;
-                end Make_Array_Type;
- 
                 --  Local variables
  
                 Reducer_E : Entity_Id;
--- 13291,13296 ----
*************** package body Sem_Attr is
*** 13460,13474 ****
                 end if;
  
                 --  Complete the resolution of the reduction expression by
!                --  resolving the initial expression and array aggregate.
  
                 Resolve (Init_Value_Expr, Accum_Typ);
  
!                if Nkind (P) = N_Aggregate then
!                   Resolve_Aggregate (P,
!                     Make_Array_Type (Index => Standard_Positive,
!                                      Value => Value_Typ));
!                else
                    Resolve (P);
                 end if;
              end;
--- 13418,13430 ----
                 end if;
  
                 --  Complete the resolution of the reduction expression by
!                --  resolving the initial expression, and the prefix if it
!                --  is not an aggregate, since the aggregate is only meant
!                --  to be a placeholder for the iterated association.
  
                 Resolve (Init_Value_Expr, Accum_Typ);
  
!                if Nkind (P) /= N_Aggregate then
                    Resolve (P);
                 end if;
              end;
diff -Nrcpad gcc-16-20260711/gcc/algol68/ChangeLog gcc-16-20260718/gcc/algol68/ChangeLog
*** gcc-16-20260711/gcc/algol68/ChangeLog	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/algol68/ChangeLog	Sat Jul 18 22:32:06 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-07-16  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	Backported from master:
+ 	2026-06-12  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* a68-imports.cc (a68_try_suffixes): Use .dylib suffix on Darwin.
+ 	Use .dll suffix and optional lib prefix on Windows.
+ 
  2026-05-01  Peter Damianov  <peter0x44@disroot.org>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/algol68/a68-imports.cc gcc-16-20260718/gcc/algol68/a68-imports.cc
*** gcc-16-20260711/gcc/algol68/a68-imports.cc	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/algol68/a68-imports.cc	Sat Jul 18 22:32:06 2026
*************** a68_try_suffixes (std::string *pfilename
*** 365,370 ****
--- 365,399 ----
  
    const char* basename = lbasename (pfilename->c_str());
    size_t basename_pos = basename - pfilename->c_str ();
+ 
+ #if TARGET_MACHO
+   /* Macos uses .dylib as extension for libraries.  */
+   filename = pfilename->substr (0, basename_pos) + "lib" + basename + ".dylib";
+   fd = open (filename.c_str (), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+ #elif TARGET_PECOFF
+   /* Windows uses .dll.  Maybe prefixed with lib.  */
+   filename = pfilename->substr (0, basename_pos) + "lib" + basename + ".dll";
+   fd = open (filename.c_str (), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+   /* Maybe not prefixed with lib.  */
+   filename = pfilename->substr (0, basename_pos) + basename + ".dll";
+   fd = open (filename.c_str (), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+ #else
+   /* Other supported systems use .so.  */
    filename = pfilename->substr (0, basename_pos) + "lib" + basename + ".so";
    fd = open (filename.c_str (), O_RDONLY | O_BINARY);
    if (fd >= 0)
*************** a68_try_suffixes (std::string *pfilename
*** 372,377 ****
--- 401,407 ----
        *pfilename = filename;
        return fd;
      }
+ #endif
  
    filename = pfilename->substr (0, basename_pos) + "lib" + basename + ".a";
    fd = open (filename.c_str (), O_RDONLY | O_BINARY);
diff -Nrcpad gcc-16-20260711/gcc/asan.cc gcc-16-20260718/gcc/asan.cc
*** gcc-16-20260711/gcc/asan.cc	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/asan.cc	Sat Jul 18 22:32:06 2026
*************** report_error_func (bool is_store, bool r
*** 2536,2543 ****
        *nargs = 2;
        return builtin_decl_implicit (report[recover_p][is_store][5]);
      }
-   *nargs = 1;
    int size_log2 = exact_log2 (size_in_bytes);
    return builtin_decl_implicit (report[recover_p][is_store][size_log2]);
  }
  
--- 2536,2548 ----
        *nargs = 2;
        return builtin_decl_implicit (report[recover_p][is_store][5]);
      }
    int size_log2 = exact_log2 (size_in_bytes);
+   if (size_log2 == -1 || size_log2 >= 5)
+     {
+       *nargs = 2;
+       return builtin_decl_implicit (report[recover_p][is_store][5]);
+     }
+   *nargs = 1;
    return builtin_decl_implicit (report[recover_p][is_store][size_log2]);
  }
  
*************** asan_expand_poison_ifn (gimple_stmt_iter
*** 4380,4387 ****
  	{
  	  tree fun = report_error_func (store_p, recover_p, tree_to_uhwi (size),
  					&nargs);
! 	  call = gimple_build_call (fun, 1,
! 				    build_fold_addr_expr (shadow_var));
  	}
        gimple_set_location (call, gimple_location (use));
        gimple *call_to_insert = call;
--- 4385,4396 ----
  	{
  	  tree fun = report_error_func (store_p, recover_p, tree_to_uhwi (size),
  					&nargs);
! 	  call = gimple_build_call (fun, nargs,
! 				    build_fold_addr_expr (shadow_var),
! 				    nargs == 2
! 				    ? fold_convert (pointer_sized_int_node,
! 						    size)
! 				    : NULL_TREE);
  	}
        gimple_set_location (call, gimple_location (use));
        gimple *call_to_insert = call;
diff -Nrcpad gcc-16-20260711/gcc/c/ChangeLog gcc-16-20260718/gcc/c/ChangeLog
*** gcc-16-20260711/gcc/c/ChangeLog	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/c/ChangeLog	Sat Jul 18 22:32:06 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/125935
+ 	* c-decl.cc (c_init_decl_processing): Use "bool" rather than "_Bool"
+ 	as the name of boolean_type_node for C23+.
+ 
  2026-07-05  Kees Cook  <kees@kernel.org>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/c/c-decl.cc gcc-16-20260718/gcc/c/c-decl.cc
*** gcc-16-20260711/gcc/c/c-decl.cc	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/c/c-decl.cc	Sat Jul 18 22:32:06 2026
*************** c_init_decl_processing (void)
*** 4953,4959 ****
    truthvalue_false_node = integer_zero_node;
  
    /* Even in C99, which has a real boolean type.  */
!   pushdecl (build_decl (UNKNOWN_LOCATION, TYPE_DECL, get_identifier ("_Bool"),
  			boolean_type_node));
  
    /* C-specific nullptr initialization.  */
--- 4953,4960 ----
    truthvalue_false_node = integer_zero_node;
  
    /* Even in C99, which has a real boolean type.  */
!   pushdecl (build_decl (UNKNOWN_LOCATION, TYPE_DECL,
! 			get_identifier (flag_isoc23 ? "bool" : "_Bool"),
  			boolean_type_node));
  
    /* C-specific nullptr initialization.  */
diff -Nrcpad gcc-16-20260711/gcc/c-family/ChangeLog gcc-16-20260718/gcc/c-family/ChangeLog
*** gcc-16-20260711/gcc/c-family/ChangeLog	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/c-family/ChangeLog	Sat Jul 18 22:32:06 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124948
+ 	* c-common.cc (sync_resolve_size): Return -1 for fetch ops
+ 	on _BitInt types with padding bits where the target requires
+ 	extension into the padding bits.
+ 	(atomic_bitint_fetch_using_cas_loop): Handle also __sync_*
+ 	fetch builtins.
+ 
  2026-07-05  Martin Uecker  <uecker@tugraz.at>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/c-family/c-common.cc gcc-16-20260718/gcc/c-family/c-common.cc
*** gcc-16-20260711/gcc/c-family/c-common.cc	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/c-family/c-common.cc	Sat Jul 18 22:32:06 2026
*************** sync_resolve_size (tree function, vec<tr
*** 7749,7755 ****
      }
  
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
!     return size;
  
    if (fetch && !orig_format && TREE_CODE (type) == BITINT_TYPE)
      return -1;
--- 7749,7771 ----
      }
  
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
!     {
!       /* For _BitInt with padding bits where the ABI mandates sign or
! 	 zero extension into the padding bits, force a CAS loop so that
! 	 the extension is properly performed.  */
!       if (fetch
! 	  && BITINT_TYPE_P (type)
! 	  && (TYPE_PRECISION (type)
! 	      != GET_MODE_PRECISION (SCALAR_TYPE_MODE (type))))
! 	{
! 	  struct bitint_info info;
! 	  bool ok = targetm.c.bitint_type_info (TYPE_PRECISION (type), &info);
! 	  gcc_assert (ok);
! 	  if (info.extended != bitint_ext_undef)
! 	    return -1;
! 	}
!       return size;
!     }
  
    if (fetch && !orig_format && TREE_CODE (type) == BITINT_TYPE)
      return -1;
*************** resolve_overloaded_atomic_store (locatio
*** 8408,8414 ****
  }
  
  /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
!    1, 2, 4, 8 or 16 bytes using __atomic_compare_exchange loop.
     ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
     ORIG_PARAMS arguments of the call.  */
  
--- 8424,8431 ----
  }
  
  /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
!    1, 2, 4, 8 or 16 bytes (or if it has padding bits and they
!    need to be extended) using __atomic_compare_exchange loop.
     ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
     ORIG_PARAMS arguments of the call.  */
  
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8420,8425 ****
--- 8437,8443 ----
  {
    enum tree_code code = ERROR_MARK;
    bool return_old_p = false;
+   bool sync_p = false;
    switch (orig_code)
      {
      case BUILT_IN_ATOMIC_ADD_FETCH_N:
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8462,8474 ****
        code = BIT_IOR_EXPR;
        return_old_p = true;
        break;
      default:
        gcc_unreachable ();
      }
  
!   if (orig_params->length () != 3)
      {
!       if (orig_params->length () < 3)
  	error_at (loc, "too few arguments to function %qE", orig_function);
        else
  	error_at (loc, "too many arguments to function %qE", orig_function);
--- 8480,8544 ----
        code = BIT_IOR_EXPR;
        return_old_p = true;
        break;
+     case BUILT_IN_SYNC_ADD_AND_FETCH_N:
+       code = PLUS_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_SUB_AND_FETCH_N:
+       code = MINUS_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_OR_AND_FETCH_N:
+       code = BIT_IOR_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_AND_AND_FETCH_N:
+       code = BIT_AND_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_XOR_AND_FETCH_N:
+       code = BIT_XOR_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_NAND_AND_FETCH_N:
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_ADD_N:
+       code = PLUS_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_SUB_N:
+       code = MINUS_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_OR_N:
+       code = BIT_IOR_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_AND_N:
+       code = BIT_AND_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_XOR_N:
+       code = BIT_XOR_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_NAND_N:
+       return_old_p = true;
+       sync_p = true;
+       break;
      default:
        gcc_unreachable ();
      }
  
!   if (orig_params->length () != (sync_p ? 2 : 3))
      {
!       if (orig_params->length () < (sync_p ? 2 : 3))
  	error_at (loc, "too few arguments to function %qE", orig_function);
        else
  	error_at (loc, "too many arguments to function %qE", orig_function);
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8483,8494 ****
  
    tree lhs_addr = (*orig_params)[0];
    tree val = convert (nonatomic_lhs_type, (*orig_params)[1]);
!   tree model = convert (integer_type_node, (*orig_params)[2]);
    if (!c_dialect_cxx ())
      {
        lhs_addr = c_fully_fold (lhs_addr, false, NULL);
        val = c_fully_fold (val, false, NULL);
!       model = c_fully_fold (model, false, NULL);
      }
    if (TREE_SIDE_EFFECTS (lhs_addr))
      {
--- 8553,8566 ----
  
    tree lhs_addr = (*orig_params)[0];
    tree val = convert (nonatomic_lhs_type, (*orig_params)[1]);
!   tree model
!     = sync_p ? NULL_TREE : convert (integer_type_node, (*orig_params)[2]);
    if (!c_dialect_cxx ())
      {
        lhs_addr = c_fully_fold (lhs_addr, false, NULL);
        val = c_fully_fold (val, false, NULL);
!       if (model)
! 	model = c_fully_fold (model, false, NULL);
      }
    if (TREE_SIDE_EFFECTS (lhs_addr))
      {
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8504,8510 ****
  		    NULL_TREE);
        add_stmt (val);
      }
!   if (TREE_SIDE_EFFECTS (model))
      {
        tree var = create_tmp_var_raw (integer_type_node);
        model = build4 (TARGET_EXPR, integer_type_node, var, model, NULL_TREE,
--- 8576,8582 ----
  		    NULL_TREE);
        add_stmt (val);
      }
!   if (model && TREE_SIDE_EFFECTS (model))
      {
        tree var = create_tmp_var_raw (integer_type_node);
        model = build4 (TARGET_EXPR, integer_type_node, var, model, NULL_TREE,
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8522,8527 ****
--- 8594,8601 ----
    TREE_ADDRESSABLE (newval) = 1;
    suppress_warning (newval);
  
+   tree retval = NULL_TREE;
+ 
    tree loop_decl = create_artificial_label (loc);
    tree loop_label = build1 (LABEL_EXPR, void_type_node, loop_decl);
  
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8585,8605 ****
  
    /* if (__atomic_compare_exchange (addr, &old, &new, false, model, model))
         goto done;  */
!   fndecl = builtin_decl_explicit (BUILT_IN_ATOMIC_COMPARE_EXCHANGE);
    params->quick_push (lhs_addr);
!   params->quick_push (old_addr);
!   params->quick_push (newval_addr);
!   params->quick_push (integer_zero_node);
!   params->quick_push (model);
!   if (tree_fits_uhwi_p (model)
!       && (tree_to_uhwi (model) == MEMMODEL_RELEASE
! 	  || tree_to_uhwi (model) == MEMMODEL_ACQ_REL))
!     params->quick_push (build_int_cst (integer_type_node, MEMMODEL_RELAXED));
    else
!     params->quick_push (model);
    func_call = resolve_overloaded_builtin (loc, fndecl, params);
    if (func_call == NULL_TREE)
      func_call = build_function_call_vec (loc, vNULL, fndecl, params, NULL);
  
    tree goto_stmt = build1 (GOTO_EXPR, void_type_node, done_decl);
    SET_EXPR_LOCATION (goto_stmt, loc);
--- 8659,8701 ----
  
    /* if (__atomic_compare_exchange (addr, &old, &new, false, model, model))
         goto done;  */
!   if (sync_p)
!     fndecl = builtin_decl_explicit (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N);
!   else
!     fndecl = builtin_decl_explicit (BUILT_IN_ATOMIC_COMPARE_EXCHANGE);
    params->quick_push (lhs_addr);
!   if (sync_p)
!     {
!       params->quick_push (old);
!       params->quick_push (newval);
!     }
    else
!     {
!       params->quick_push (old_addr);
!       params->quick_push (newval_addr);
!       params->quick_push (integer_zero_node);
!       params->quick_push (model);
!       if (tree_fits_uhwi_p (model)
! 	  && (tree_to_uhwi (model) == MEMMODEL_RELEASE
! 	      || tree_to_uhwi (model) == MEMMODEL_ACQ_REL))
! 	params->quick_push (build_int_cst (integer_type_node,
! 					   MEMMODEL_RELAXED));
!       else
! 	params->quick_push (model);
!     }
    func_call = resolve_overloaded_builtin (loc, fndecl, params);
    if (func_call == NULL_TREE)
      func_call = build_function_call_vec (loc, vNULL, fndecl, params, NULL);
+   if (sync_p)
+     {
+       if (return_old_p)
+ 	retval = create_tmp_var_raw (nonatomic_lhs_type);
+       else
+ 	retval = old;
+       func_call = build2 (MODIFY_EXPR, void_type_node, retval, func_call);
+       tree cmp = build2 (EQ_EXPR, boolean_type_node, retval, newval);
+       func_call = build2 (COMPOUND_EXPR, boolean_type_node, func_call, cmp);
+     }
  
    tree goto_stmt = build1 (GOTO_EXPR, void_type_node, done_decl);
    SET_EXPR_LOCATION (goto_stmt, loc);
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8609,8614 ****
--- 8705,8716 ----
    SET_EXPR_LOCATION (stmt, loc);
    add_stmt (stmt);
  
+   if (sync_p && return_old_p)
+     {
+       stmt = build2_loc (loc, MODIFY_EXPR, void_type_node, old, retval);
+       add_stmt (stmt);
+     }
+ 
    /* goto loop;  */
    goto_stmt = build1 (GOTO_EXPR, void_type_node, loop_decl);
    SET_EXPR_LOCATION (goto_stmt, loc);
diff -Nrcpad gcc-16-20260711/gcc/cfgexpand.cc gcc-16-20260718/gcc/cfgexpand.cc
*** gcc-16-20260711/gcc/cfgexpand.cc	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/cfgexpand.cc	Sat Jul 18 22:32:06 2026
*************** expand_used_vars (bitmap forced_stack_va
*** 2676,2681 ****
--- 2676,2684 ----
  	  HOST_WIDE_INT offset, sz, redzonesz;
  	  redzonesz = ASAN_RED_ZONE_SIZE;
  	  sz = data.asan_vec[0] - prev_offset;
+ 	  data.asan_alignb = MAX (data.asan_alignb,
+ 				  crtl->stack_alignment_needed
+ 				  / BITS_PER_UNIT);
  	  if (data.asan_alignb > ASAN_RED_ZONE_SIZE
  	      && data.asan_alignb <= 4096
  	      && sz + ASAN_RED_ZONE_SIZE >= (int) data.asan_alignb)
diff -Nrcpad gcc-16-20260711/gcc/cgraph.cc gcc-16-20260718/gcc/cgraph.cc
*** gcc-16-20260711/gcc/cgraph.cc	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/cgraph.cc	Sat Jul 18 22:32:06 2026
*************** cgraph_edge::make_callback (cgraph_node
*** 1383,1388 ****
--- 1383,1389 ----
    else
      e2->can_throw_external = can_throw_external;
    e2->lto_stmt_uid = lto_stmt_uid;
+   symtab->call_edge_duplication_hooks (this, e2);
    n2->mark_address_taken ();
    return e2;
  }
diff -Nrcpad gcc-16-20260711/gcc/config/aarch64/aarch64-cores.def gcc-16-20260718/gcc/config/aarch64/aarch64-cores.def
*** gcc-16-20260711/gcc/config/aarch64/aarch64-cores.def	Sat Jul 11 22:32:06 2026
--- gcc-16-20260718/gcc/config/aarch64/aarch64-cores.def	Sat Jul 18 22:32:06 2026
*************** AARCH64_CORE("demeter", demeter, cortexa
*** 245,250 ****
--- 245,251 ----
  
  /* NVIDIA ('N') cores. */
  AARCH64_CORE("olympus", olympus, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE, FAMINMAX, FP8FMA, FP8DOT2, FP8DOT4, LUT, SVE2_AES, SVE2_SHA3, SVE2_SM4), olympus, 0x4e, 0x10, -1)
+ AARCH64_CORE("rigel", rigel, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE, FAMINMAX, FP8FMA, FP8DOT2, FP8DOT4, LUT, SVE2_AES, SVE2_SHA3, SVE2_SM4), olympus, 0x4e, 0x11, -1)
  
  /* Armv9-A big.LITTLE processors.  */
  AARCH64_CORE("gb10",  gb10, cortexa57, V9_2A,  (SVE2_BITPERM, SVE2_AES, SVE2_SHA3, SVE2_SM4, MEMTAG, PROFILE), cortexx925, 0x41, AARCH64_BIG_LITTLE (0xd85, 0xd87), -1)
diff -Nrcpad gcc-16-20260711/gcc/config/aarch64/aarch64-tune.md gcc-16-20260718/gcc/config/aarch64/aarch64-tune.md
*** gcc-16-20260711/gcc/config/aarch64/aarch64-tune.md	Sat Jul 11 22:32:23 2026
--- gcc-16-20260718/gcc/config/aarch64/aarch64-tune.md	Sat Jul 18 22:32:23 2026
***************
*** 1,5 ****
  ;; -*- buffer-read-only: t -*-
  ;; Generated automatically by gentune.sh from aarch64-cores.def
  (define_attr "tune"
! 	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88,thunderxt88p1,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,ampere1c,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,hip12,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,oryon1,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexr82ae,applea12,applem1_0,applem1_1,applem1_2,applem1_3,applem2_0,applem2_1,applem2_2,applem2_3,applem3_0,applem3_1,applem3_2,applem4_0,applem4_1,applem4_2,applem5_0,applem5_1,applem5_2,cortexa510,cortexa520,cortexa520ae,cortexa710,cortexa715,cortexa720,cortexa720ae,cortexa725,cortexa320,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,armagicpu,c1nano,c1pro,c1premium,c1ultra,demeter,olympus,gb10,generic,generic_armv8_a,generic_armv9_a"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
--- 1,5 ----
  ;; -*- buffer-read-only: t -*-
  ;; Generated automatically by gentune.sh from aarch64-cores.def
  (define_attr "tune"
! 	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88,thunderxt88p1,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,ampere1c,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,hip12,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,oryon1,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexr82ae,applea12,applem1_0,applem1_1,applem1_2,applem1_3,applem2_0,applem2_1,applem2_2,applem2_3,applem3_0,applem3_1,applem3_2,applem4_0,applem4_1,applem4_2,applem5_0,applem5_1,applem5_2,cortexa510,cortexa520,cortexa520ae,cortexa710,cortexa715,cortexa720,cortexa720ae,cortexa725,cortexa320,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,armagicpu,c1nano,c1pro,c1premium,c1ultra,demeter,olympus,rigel,gb10,generic,generic_armv8_a,generic_armv9_a"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff -Nrcpad gcc-16-20260711/gcc/config/rs6000/altivec.md gcc-16-20260718/gcc/config/rs6000/altivec.md
*** gcc-16-20260711/gcc/config/rs6000/altivec.md	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/config/rs6000/altivec.md	Sat Jul 18 22:32:07 2026
***************
*** 171,176 ****
--- 171,188 ----
     UNSPEC_SLDB
     UNSPEC_SRDB
     UNSPEC_VECTOR_SHIFT
+    UNSPEC_VUCMPRHN
+    UNSPEC_VUCMPRLN
+    UNSPEC_VUCMPRHB
+    UNSPEC_VUCMPRLB
+    UNSPEC_VUCMPRHH
+    UNSPEC_VUCMPRLH
+    UNSPEC_VUPKHSNTOB
+    UNSPEC_VUPKLSNTOB
+    UNSPEC_VUPKINT4TOBF16
+    UNSPEC_VUPKINT8TOBF16
+    UNSPEC_VUPKINT4TOFP32
+    UNSPEC_VUPKINT8TOFP32
  ])
  
  (define_c_enum "unspecv"
***************
*** 4850,4852 ****
--- 4862,5214 ----
  				  (match_dup 3)]
  				 UNSPEC_BCD_ADD_SUB)
  		    (match_dup 4)))])])
+ 
+ (define_int_attr vu_hl [(UNSPEC_VUPKHSNTOB "h") (UNSPEC_VUPKLSNTOB "l")
+ 			(UNSPEC_VUCMPRHN "h") (UNSPEC_VUCMPRLN "l")
+ 			(UNSPEC_VUCMPRHB "h") (UNSPEC_VUCMPRLB "l")
+ 			(UNSPEC_VUCMPRHH "h") (UNSPEC_VUCMPRLH "l")])
+ 
+ (define_int_attr vu_lh [(UNSPEC_VUPKHSNTOB "l") (UNSPEC_VUPKLSNTOB "h")
+ 			(UNSPEC_VUCMPRHN "l") (UNSPEC_VUCMPRLN "h")
+ 			(UNSPEC_VUCMPRHB "l") (UNSPEC_VUCMPRLB "h")
+ 			(UNSPEC_VUCMPRHH "l") (UNSPEC_VUCMPRLH "h")])
+ 
+ ;; Vector unpack instructions for future.
+ 
+ (define_int_iterator VUPKNTOB [UNSPEC_VUPKHSNTOB UNSPEC_VUPKLSNTOB])
+ 
+ (define_insn "altivec_vupk<vu_hl>sntob_direct"
+   [(set (match_operand:V16QI 0 "altivec_register_operand" "=v")
+ 	(unspec:V16QI [(match_operand:V2DI 1 "altivec_register_operand" "v")]
+ 		      VUPKNTOB))]
+   "TARGET_FUTURE && TARGET_VSX"
+   "vupk<vu_hl>sntob %0, %1"
+   [(set_attr "type" "vecperm")])
+ 
+ ;; Unpack signed nibbles to bytes.
+ ;; For big-endian, generates:
+ ;;   vupk<vu_hl>sntob operands[0], operands[1]
+ ;; For little-endian, generates (requires VSX for xxbrq):
+ ;;   vupk<vu_lh>sntob operands[0], operands[1]
+ ;;   xxbrq operands[0], operands[0]
+ ;; TARGET_VSX is required because the builtin operates on V2DI (vector
+ ;; unsigned long long), which requires -mvsx. On little-endian systems,
+ ;; the endian compensation also uses the VSX xxbrq instruction.
+ 
+ (define_expand "altivec_vupk<vu_hl>sntob"
+   [(set (match_operand:V16QI 0 "altivec_register_operand")
+ 	(unspec:V16QI [(match_operand:V2DI 1 "altivec_register_operand")]
+ 		      VUPKNTOB))]
+   "TARGET_FUTURE && TARGET_VSX"
+ {
+   if (BYTES_BIG_ENDIAN)
+     emit_insn (gen_altivec_vupk<vu_hl>sntob_direct (operands[0],
+ 						    operands[1]));
+   else
+     {
+       emit_insn (gen_altivec_vupk<vu_lh>sntob_direct (operands[0],
+ 						      operands[1]));
+       emit_insn (gen_p9_xxbrq_v16qi (operands[0], operands[0]));
+     }
+   DONE;
+ })
+ 
+ (define_insn "altivec_vupkint4tobf16"
+   [(set (match_operand:V16QI 0 "altivec_register_operand" "=v")
+ 	(unspec:V16QI [(match_operand:V8HI 1 "altivec_register_operand" "v")
+ 		       (match_operand:QI 2 "const_0_to_3_operand" "i")]
+ 		      UNSPEC_VUPKINT4TOBF16))]
+   "TARGET_FUTURE"
+   "vupkint4tobf16 %0, %1, %2"
+   [(set_attr "type" "vecperm")])
+ 
+ (define_insn "altivec_vupkint8tobf16"
+   [(set (match_operand:V16QI 0 "altivec_register_operand" "=v")
+ 	(unspec:V16QI [(match_operand:V8HI 1 "altivec_register_operand" "v")
+ 		       (match_operand:QI 2 "const_0_to_1_operand" "i")]
+ 		      UNSPEC_VUPKINT8TOBF16))]
+   "TARGET_FUTURE"
+   "vupkint8tobf16 %0, %1, %2"
+   [(set_attr "type" "vecperm")])
+ 
+ (define_insn "altivec_vupkint4tofp32"
+   [(set (match_operand:V4SF 0 "altivec_register_operand" "=v")
+         (unspec:V4SF [(match_operand:V4SI 1 "altivec_register_operand" "v")
+ 		      (match_operand:QI 2 "const_0_to_7_operand" "i")]
+ 		     UNSPEC_VUPKINT4TOFP32))]
+   "TARGET_FUTURE"
+   "vupkint4tofp32 %0, %1, %2"
+   [(set_attr "type" "vecperm")])
+ 
+ (define_insn "altivec_vupkint8tofp32"
+   [(set (match_operand:V4SF 0 "altivec_register_operand" "=v")
+ 	(unspec:V4SF [(match_operand:V4SI 1 "altivec_register_operand" "v")
+ 		      (match_operand:QI 2 "const_0_to_3_operand" "i")]
+ 		     UNSPEC_VUPKINT8TOFP32))]
+   "TARGET_FUTURE"
+   "vupkint8tofp32 %0, %1, %2"
+   [(set_attr "type" "vecperm")])
+ 
+ ;; Vector uncompress instructions for future.
+ 
+ ;; VSX splat values for vector uncompress instructions for little endian.
+ (define_int_attr vucmpr_splat [(UNSPEC_VUCMPRHN "3")
+ 			       (UNSPEC_VUCMPRLN "2")
+ 			       (UNSPEC_VUCMPRHB "7")
+ 			       (UNSPEC_VUCMPRLB "6")
+ 			       (UNSPEC_VUCMPRHH "15")
+ 			       (UNSPEC_VUCMPRLH "14")])
+ 
+ ;; Altivec PCV(Permute Control Vector) mask values for vperm used in
+ ;; little endian.
+ (define_int_attr vucmpr_pcv [(UNSPEC_VUCMPRHN "0x0f0e0d0c")
+ 			     (UNSPEC_VUCMPRLN "0x0b0a0908")
+ 			     (UNSPEC_VUCMPRHB "0x0f0e0000")
+ 			     (UNSPEC_VUCMPRLB "0x0d0c0000")])
+ 
+ ;; Values for UIM which are used in vinsw instruction which will be used in
+ ;; little-endian, to know in vector.
+ (define_int_attr vucmpr_uim [(UNSPEC_VUCMPRHN "4") (UNSPEC_VUCMPRLN "0")
+ 			     (UNSPEC_VUCMPRHB "2") (UNSPEC_VUCMPRLB "0")])
+ 
+ /* On little-endian systems, the selector/mask layout does not match
+    the architectural element ordering used by the vector uncompress
+    instructions. Byte-wise reverse the selector layout and swap the high/low
+    nibbles so that the resulting vector matches big-endian semantics.  */
+ 
+ ;; Vector Uncompress Nibbles
+ 
+ (define_int_iterator VUCMPR_N [UNSPEC_VUCMPRHN UNSPEC_VUCMPRLN])
+ 
+ (define_insn "altivec_vucmpr<vu_hl>n_direct"
+   [(set (match_operand:V8HI 0 "altivec_register_operand" "=v")
+ 	(unspec:V8HI [(match_operand:V16QI 1 "altivec_register_operand" "v")
+ 		      (match_operand:V4SI 2 "altivec_register_operand" "v")]
+ 		     VUCMPR_N))]
+   "TARGET_FUTURE"
+   "vucmpr<vu_hl>n %0, %1, %2")
+ 
+ ;; Vector uncompress nibbles.
+ ;; For big-endian, generates:
+ ;;   vucmpr<vu_hl>n operands[0], operands[1], operands[2]
+ ;; For little-endian with VSX, generates:
+ ;;   vspltw splat, operands[2], <vucmpr_splat>
+ ;;   xxbrw splat, splat
+ ;;   vspltisb shift, 4
+ ;;   vrlb rotated, bytes, shift
+ ;;   vucmpr<vu_lh>n operands[0], operands[1], selector
+ ;; For little-endian without VSX (Altivec-only), generates:
+ ;;   pli mask, <vucmpr_pcv>
+ ;;   vinsw pcv, mask, <vucmpr_uim>
+ ;;   vperm operands[2], operands[2], operands[2], perm
+ ;;   vspltisb shift, 4
+ ;;   vrlb rotated, bytes, shift
+ ;;   vucmpr<vu_lh>n operands[0], operands[1], selector
+ ;;
+ ;; Uncompress builtins require special handling on little-endian systems because
+ ;; the selector/mask layout does not match the architectural element ordering
+ ;; used by the vector uncompress instructions. The selector must be byte-wise
+ ;; reversed and the high/low nibbles swapped (via rotation) so that the
+ ;; resulting vector matches big-endian semantics.
+ 
+ (define_expand "altivec_vucmpr<vu_hl>n"
+   [(set (match_operand:V8HI 0 "altivec_register_operand")
+ 	(unspec:V8HI [(match_operand:V16QI 1 "altivec_register_operand")
+ 		      (match_operand:V4SI 2 "altivec_register_operand")]
+ 		     VUCMPR_N))]
+   "TARGET_FUTURE"
+ {
+   if (BYTES_BIG_ENDIAN)
+     {
+       emit_insn (gen_altivec_vucmpr<vu_hl>n_direct(operands[0], operands[1],
+ 						   operands[2]));
+       DONE;
+     }
+   if (TARGET_VSX)
+     {
+       rtx splat = gen_reg_rtx (V4SImode);
+       rtx shift = gen_reg_rtx (V16QImode);
+       rtx bytes = gen_reg_rtx (V16QImode);
+       rtx rotated = gen_reg_rtx (V16QImode);
+       rtx selector = gen_reg_rtx (V4SImode);
+ 
+       emit_insn (gen_altivec_vspltw_direct (splat, operands[2],
+ 					    GEN_INT (<vucmpr_splat>)));
+       emit_insn (gen_p9_xxbrw_v4si (splat, splat));
+       emit_move_insn (bytes, gen_lowpart (V16QImode, splat));
+       emit_insn (gen_altivec_vspltisb (shift, GEN_INT (4)));
+       emit_insn (gen_altivec_vrlb (rotated, bytes, shift));
+       emit_move_insn (selector, gen_lowpart (V4SImode, rotated));
+       emit_insn (gen_altivec_vucmpr<vu_lh>n_direct (operands[0], operands[1],
+ 						    selector));
+     }
+   else
+     {
+       rtx pcv = gen_reg_rtx (V4SImode);
+       rtx perm = gen_reg_rtx (V16QImode);
+       rtx mask = gen_reg_rtx (SImode);
+       rtx shift = gen_reg_rtx (V16QImode);
+       rtx bytes = gen_reg_rtx (V16QImode);
+       rtx rotated = gen_reg_rtx (V16QImode);
+       rtx selector = gen_reg_rtx (V4SImode);
+ 
+       emit_move_insn (mask, GEN_INT (<vucmpr_pcv>));
+       emit_insn (gen_vreplace_elt_v4si_inst (pcv, pcv, mask,
+ 					     GEN_INT (<vucmpr_uim>)));
+       emit_move_insn (perm, gen_lowpart (V16QImode, pcv));
+       emit_insn (gen_altivec_vperm_v4si_direct (operands[2], operands[2],
+ 						operands[2], perm));
+       emit_insn (gen_altivec_vspltisb (shift, GEN_INT (4)));
+       emit_move_insn (bytes, gen_lowpart (V16QImode, operands[2]));
+       emit_insn (gen_altivec_vrlb (rotated, bytes, shift));
+       emit_move_insn (selector, gen_lowpart (V4SImode, rotated));
+       emit_insn (gen_altivec_vucmpr<vu_lh>n_direct (operands[0], operands[1],
+ 						    selector));
+     }
+ 
+   DONE;
+ })
+ 
+ ;; Vector Uncompress Bytes
+ 
+ (define_int_iterator VUCMPR_B [UNSPEC_VUCMPRHB UNSPEC_VUCMPRLB])
+ 
+ (define_insn "altivec_vucmpr<vu_hl>b_direct"
+   [(set (match_operand:V4SI 0 "altivec_register_operand" "=v")
+ 	(unspec:V4SI [(match_operand:V8HI 1 "altivec_register_operand" "v")
+ 		      (match_operand:V8HI 2 "altivec_register_operand" "v")]
+ 		     VUCMPR_B))]
+   "TARGET_FUTURE"
+   "vucmpr<vu_hl>b %0, %1, %2"
+   [(set_attr "type" "vecperm")])
+ 
+ ;; Vector uncompress bytes.
+ ;; For big-endian, generates:
+ ;;   vucmpr<vu_hl>b operands[0], operands[1], operands[2]
+ ;; For little-endian with VSX, generates:
+ ;;   vsplth splat, operands[2], <vucmpr_splat>
+ ;;   xxbrh splat, splat
+ ;;   vspltisb shift, 4
+ ;;   vrlb rotated, bytes, shift
+ ;;   vucmpr<vu_lh>b operands[0], operands[1], selector
+ ;; For little-endian without VSX (Altivec-only), generates:
+ ;;   pli mask, <vucmpr_pcv>
+ ;;   vinsw pcv, mask, <vucmpr_uim>
+ ;;   vperm bytes, bytes, bytes, perm
+ ;;   vspltisb shift, 4
+ ;;   vrlb rotated, bytes, shift
+ ;;   vucmpr<vu_lh>b operands[0], operands[1], selector
+ ;;
+ ;; Below builtins require special handling on little-endian systems similar
+ ;; to nibbles, with selector byte-reversal and nibble swapping via rotation.
+ 
+ (define_expand "altivec_vucmpr<vu_hl>b"
+   [(set (match_operand:V4SI 0 "altivec_register_operand")
+ 	(unspec:V4SI [(match_operand:V8HI 1 "altivec_register_operand")
+ 		      (match_operand:V8HI 2 "altivec_register_operand")]
+ 		     VUCMPR_B))]
+   "TARGET_FUTURE"
+ {
+   if (BYTES_BIG_ENDIAN)
+     {
+       emit_insn (gen_altivec_vucmpr<vu_hl>b_direct (operands[0], operands[1],
+ 						    operands[2]));
+       DONE;
+     }
+   if (TARGET_VSX)
+     {
+       rtx splat = gen_reg_rtx (V8HImode);
+       rtx shift = gen_reg_rtx (V16QImode);
+       rtx bytes = gen_reg_rtx (V16QImode);
+       rtx rotated = gen_reg_rtx (V16QImode);
+       rtx selector = gen_reg_rtx (V8HImode);
+ 
+       emit_insn (gen_altivec_vsplth_direct (splat, operands[2],
+ 					    GEN_INT (<vucmpr_splat>)));
+       emit_insn (gen_p9_xxbrh_v8hi (splat, splat));
+       emit_move_insn (bytes, gen_lowpart (V16QImode, splat));
+       emit_insn (gen_altivec_vspltisb (shift, GEN_INT (4)));
+       emit_insn (gen_altivec_vrlb (rotated, bytes, shift));
+       emit_move_insn (selector, gen_lowpart (V8HImode, rotated));
+       emit_insn (gen_altivec_vucmpr<vu_lh>b_direct (operands[0], operands[1],
+ 						    selector));
+     }
+   else
+     {
+       rtx pcv = gen_reg_rtx (V4SImode);
+       rtx perm = gen_reg_rtx (V16QImode);
+       rtx mask = gen_reg_rtx (SImode);
+       rtx shift = gen_reg_rtx (V16QImode);
+       rtx bytes = gen_reg_rtx (V16QImode);
+       rtx rotated = gen_reg_rtx (V16QImode);
+       rtx selector = gen_reg_rtx (V8HImode);
+ 
+       emit_move_insn (mask, GEN_INT (<vucmpr_pcv>));
+       emit_insn (gen_vreplace_elt_v4si_inst (pcv, pcv, mask,
+ 					     GEN_INT (<vucmpr_uim>)));
+       emit_move_insn (perm, gen_lowpart (V16QImode, pcv));
+       emit_move_insn (bytes, gen_lowpart (V16QImode, operands[2]));
+       emit_insn (gen_altivec_vperm_v16qi_direct (bytes, bytes, bytes, perm));
+       emit_insn (gen_altivec_vspltisb (shift, GEN_INT (4)));
+       emit_insn (gen_altivec_vrlb (rotated, bytes, shift));
+       emit_move_insn (selector, gen_lowpart (V8HImode, rotated));
+       emit_insn (gen_altivec_vucmpr<vu_lh>b_direct (operands[0], operands[1],
+ 						    selector));
+     }
+ 
+   DONE;
+ })
+ 
+ ;; Vector Uncompress Halfwords
+ 
+ (define_int_iterator VUCMPR_H [UNSPEC_VUCMPRHH UNSPEC_VUCMPRLH])
+ 
+ (define_insn "altivec_vucmpr<vu_hl>h_direct"
+   [(set (match_operand:V2DI 0 "altivec_register_operand" "=v")
+         (unspec:V2DI [(match_operand:V4SI 1 "altivec_register_operand" "v")
+ 		      (match_operand:V16QI 2 "altivec_register_operand" "v")]
+ 		     VUCMPR_H))]
+   "TARGET_FUTURE && TARGET_VSX"
+   "vucmpr<vu_hl>h %0, %1, %2"
+   [(set_attr "type" "vecperm")])
+ 
+ ;; Vector uncompress halfwords.
+ ;; For big-endian, generates:
+ ;;   vucmpr<vu_hl>h operands[0], operands[1], operands[2]
+ ;; For little-endian, generates:
+ ;;   vspltb splat, operands[2], <vucmpr_splat>
+ ;;   vspltisb shift, 4
+ ;;   vrlb rotated, splat, shift
+ ;;   vucmpr<vu_lh>h operands[0], operands[1], rotated
+ ;;
+ ;; TARGET_VSX is required because the builtin operates on V2DI (vector
+ ;; unsigned long long), which requires -mvsx.
+ 
+ (define_expand "altivec_vucmpr<vu_hl>h"
+   [(set (match_operand:V2DI 0 "altivec_register_operand")
+         (unspec:V2DI [(match_operand:V4SI 1 "altivec_register_operand")
+ 		      (match_operand:V16QI 2 "altivec_register_operand")]
+ 		     VUCMPR_H))]
+   "TARGET_FUTURE && TARGET_VSX"
+ {
+   if (BYTES_BIG_ENDIAN)
+     {
+       emit_insn (gen_altivec_vucmpr<vu_hl>h_direct (operands[0], operands[1],
+ 						    operands[2]));
+     }
+   else
+     {
+       rtx splat = gen_reg_rtx (V16QImode);
+       rtx shift = gen_reg_rtx (V16QImode);
+       rtx rotated = gen_reg_rtx (V16QImode);
+ 
+       emit_insn (gen_altivec_vspltb_direct (splat, operands[2],
+ 					    GEN_INT (<vucmpr_splat>)));
+       emit_insn (gen_altivec_vspltisb (shift, GEN_INT (4)));
+       emit_insn (gen_altivec_vrlb (rotated, splat, shift));
+       emit_insn (gen_altivec_vucmpr<vu_lh>h_direct (operands[0], operands[1],
+ 						    rotated));
+     }
+   DONE;
+ })
+ 
diff -Nrcpad gcc-16-20260711/gcc/config/rs6000/predicates.md gcc-16-20260718/gcc/config/rs6000/predicates.md
*** gcc-16-20260711/gcc/config/rs6000/predicates.md	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/config/rs6000/predicates.md	Sat Jul 18 22:32:07 2026
***************
*** 312,317 ****
--- 312,322 ----
    (and (match_code "const_int")
         (match_test "IN_RANGE (INTVAL (op), 2, 3)")))
  
+ ;; Match op = 0..6.
+ (define_predicate "const_0_to_6_operand"
+   (and (match_code "const_int")
+        (match_test "IN_RANGE (INTVAL (op), 0, 6)")))
+ 
  ;; Match op = 0..7.
  (define_predicate "const_0_to_7_operand"
    (and (match_code "const_int")
diff -Nrcpad gcc-16-20260711/gcc/config/rs6000/rs6000-builtins.def gcc-16-20260718/gcc/config/rs6000/rs6000-builtins.def
*** gcc-16-20260711/gcc/config/rs6000/rs6000-builtins.def	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/config/rs6000/rs6000-builtins.def	Sat Jul 18 22:32:07 2026
***************
*** 3942,3948 ****
    void __builtin_vsx_stxvp (v256, unsigned long, const v256 *);
      STXVP nothing {mma,pair}
  
! [future]
    const v256 __builtin_aes_encrypt_paired (v256, v256, const int<2>);
      XXAESENCP xxaesencp {}
  
--- 3942,4031 ----
    void __builtin_vsx_stxvp (v256, unsigned long, const v256 *);
      STXVP nothing {mma,pair}
  
! [future-vsx]
!   const vus __builtin_vsx_xvmulhuh (vus, vus);
!     XVMULHUH umulv8hi3_highpart {}
! 
!   const vss __builtin_vsx_xvmulhsh (vss, vss);
!     XVMULHSH smulv8hi3_highpart {}
! 
!   const vuq __builtin_vsx_xxmulmul (vull, vull, const int<0,6>);
!     XXMULMUL vsx_xxmulmul {}
! 
!   const vuq __builtin_vsx_xxmulmulhiadd (vuq, vull, vull, const int<1>, \
!                                           const int<1>, const int<1>);
!     XXMULMULHIADD vsx_xxmulmulhiadd {}
! 
!   const vuq __builtin_vsx_xxmulmulloadd (vuq, vull, vull, const int<1>, \
!                                           const int<1>);
!     XXMULMULLOADD vsx_xxmulmulloadd {}
! 
!   const vuq __builtin_vsx_xxssumudm (vuq, vull, vull, const int<1>);
!     XXSSUMUDM vsx_xxssumudm {}
! 
!   const vuq __builtin_vsx_xxssumudmc (vuq, vull, vull, const int<1>);
!     XXSSUMUDMC vsx_xxssumudmc {}
! 
!   const vuq __builtin_vsx_xxssumudmcext (vull, vull, vuq, const int<1>);
!     XXSSUMUDMCEXT vsx_xxssumudmcext {}
! 
!   const vuq __builtin_vsx_xsaddadduqm (vuq, vuq, vuq);
!     XSADDADDUQM vsx_xsaddadduqm {}
! 
!   const vuq __builtin_vsx_xsaddaddsuqm (vuq, vuq, vuq);
!     XSADDADDSUQM vsx_xsaddaddsuqm {}
! 
!   const vuq __builtin_vsx_xsaddsubuqm (vuq, vuq, vuq);
!     XSADDSUBUQM vsx_xsaddsubuqm {}
! 
!   const vuq __builtin_vsx_xsaddsubsuqm (vuq, vuq, vuq);
!     XSADDSUBSUQM vsx_xsaddsubsuqm {}
! 
!   const vuq __builtin_vsx_xsmerge2t1uqm (vuq, vuq);
!     XSMERGE2T1UQM vsx_xsmerge2t1uqm {}
! 
!   const vuq __builtin_vsx_xsmerge2t2uqm (vuq, vuq);
!     XSMERGE2T2UQM vsx_xsmerge2t2uqm {}
! 
!   const vuq __builtin_vsx_xsmerge2t3uqm (vuq, vuq);
!     XSMERGE2T3UQM vsx_xsmerge2t3uqm {}
! 
!   const vuq __builtin_vsx_xsmerge3t1uqm (vuq, vuq, vuq);
!     XSMERGE3T1UQM vsx_xsmerge3t1uqm {}
! 
!   const vuq __builtin_vsx_xsrebase2t1uqm (vuq, vuq);
!     XSREBASE2T1UQM vsx_xsrebase2t1uqm {}
! 
!   const vuq __builtin_vsx_xsrebase2t2uqm (vuq, vuq);
!     XSREBASE2T2UQM vsx_xsrebase2t2uqm {}
! 
!   const vuq __builtin_vsx_xsrebase2t3uqm (vuq, vuq);
!     XSREBASE2T3UQM vsx_xsrebase2t3uqm {}
! 
!   const vuq __builtin_vsx_xsrebase2t4uqm (vuq, vuq);
!     XSREBASE2T4UQM vsx_xsrebase2t4uqm {}
! 
!   const vuq __builtin_vsx_xsrebase3t1uqm (vuq, vuq, vuq);
!     XSREBASE3T1UQM vsx_xsrebase3t1uqm {}
! 
!   const vuq __builtin_vsx_xsrebase3t2uqm (vuq, vuq, vuq);
!     XSREBASE3T2UQM vsx_xsrebase3t2uqm {}
! 
!   const vuq __builtin_vsx_xsrebase3t3uqm (vuq, vuq, vuq);
!     XSREBASE3T3UQM vsx_xsrebase3t3uqm {}
! 
!   const vull __builtin_altivec_uncompresshh (vui, vuc);
!     VUCMPRHH altivec_vucmprhh {}
! 
!   const vull __builtin_altivec_uncompresslh (vui, vuc);
!     VUCMPRLH altivec_vucmprlh {}
! 
!   const vsc __builtin_altivec_unpack_hsn_to_byte (vull);
!     VUPKHSNTOB altivec_vupkhsntob {}
! 
!   const vsc __builtin_altivec_unpack_lsn_to_byte (vull);
!     VUPKLSNTOB altivec_vupklsntob {}
! 
    const v256 __builtin_aes_encrypt_paired (v256, v256, const int<2>);
      XXAESENCP xxaesencp {}
  
***************
*** 3988,3996 ****
    const vuc __builtin_galois_field_mult_xts (vuc, vuc);
      XXGFMUL128XTS xxgfmul128xts {}
  
! [future-vsx]
!   const vus __builtin_vsx_xvmulhuh (vus, vus);
!     XVMULHUH umulv8hi3_highpart {}
  
!   const vss __builtin_vsx_xvmulhsh (vss, vss);
!     XVMULHSH smulv8hi3_highpart {}
--- 4071,4097 ----
    const vuc __builtin_galois_field_mult_xts (vuc, vuc);
      XXGFMUL128XTS xxgfmul128xts {}
  
! [future-altivec]
!   const vus __builtin_altivec_uncompresshn (vuc, vui);
!     VUCMPRHN altivec_vucmprhn {}
  
!   const vui __builtin_altivec_uncompresshb (vus, vus);
!     VUCMPRHB altivec_vucmprhb {}
! 
!   const vus __builtin_altivec_uncompressln (vuc, vui);
!     VUCMPRLN altivec_vucmprln {}
! 
!   const vui __builtin_altivec_uncompresslb (vus, vus);
!     VUCMPRLB altivec_vucmprlb {}
! 
!   const vuc __builtin_altivec_unpack_int4_to_bf16 (vus, const int<2>);
!     VUPKINT4TOBF16 altivec_vupkint4tobf16 {}
! 
!   const vuc __builtin_altivec_unpack_int8_to_bf16 (vus, const int<1>);
!     VUPKINT8TOBF16 altivec_vupkint8tobf16 {}
! 
!   const vf __builtin_altivec_unpack_int4_to_fp32 (vui, const int<3>);
!     VUPKINT4TOFP32 altivec_vupkint4tofp32 {}
! 
!   const vf __builtin_altivec_unpack_int8_to_fp32 (vui, const int<2>);
!     VUPKINT8TOFP32 altivec_vupkint8tofp32 {}
diff -Nrcpad gcc-16-20260711/gcc/config/rs6000/rs6000-overload.def gcc-16-20260718/gcc/config/rs6000/rs6000-overload.def
*** gcc-16-20260711/gcc/config/rs6000/rs6000-overload.def	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/config/rs6000/rs6000-overload.def	Sat Jul 18 22:32:07 2026
***************
*** 5027,5032 ****
--- 5027,5079 ----
    vd __builtin_vsx_xxsldwi (vd, vd, const int);
      XXSLDWI_2DF  XXSLDWI_VD2
  
+ [VEC_UCMPRHN, vec_uncompresshn, __builtin_vec_uncompresshn]
+   vus __builtin_vec_uncompresshn (vuc, vui);
+     VUCMPRHN
+ 
+ [VEC_UCMPRHB, vec_uncompresshb, __builtin_vec_uncomresshb]
+   vui __builtin_vec_uncomresshb (vus, vus);
+     VUCMPRHB
+ 
+ [VEC_UCMPRHH, vec_uncompresshh, __builtin_vec_uncomresshh]
+   vull __builtin_vec_uncomresshh (vui, vuc);
+     VUCMPRHH
+ 
+ [VEC_UCMPRLN, vec_uncompressln, __builtin_vec_uncomressln]
+   vus __builtin_vec_uncomressln (vuc, vui);
+     VUCMPRLN
+ 
+ [VEC_UCMPRLB, vec_uncompresslb, __builtin_vec_uncomresslb]
+   vui __builtin_vec_uncomresslb (vus, vus);
+     VUCMPRLB
+ 
+ [VEC_UCMPRLH, vec_uncompresslh, __builtin_vec_uncomresslh]
+   vull __builtin_vec_uncomresslh (vui, vuc);
+     VUCMPRLH
+ 
+ [VEC_UNPACK_HSN_TO_BYTE, vec_unpack_hsn_to_byte, __builtin_vec_unpack_hsn_to_byte]
+   vsc __builtin_vec_unpack_hsn_to_byte (vull);
+     VUPKHSNTOB
+ 
+ [VEC_UNPACK_LSN_TO_BYTE, vec_unpack_lsn_to_byte, __builtin_vec_unpack_lsn_to_byte]
+   vsc __builtin_vec_unpack_lsn_to_byte (vull);
+     VUPKLSNTOB
+ 
+ [VEC_UNPACK_INT4_TO_BF16, vec_unpack_int4_to_bf16, __builtin_vec_unpack_int4_to_bf16]
+   vuc __builtin_vec_unpack_int4_to_bf16 (vus, const int<2>);
+     VUPKINT4TOBF16
+ 
+ [VEC_UNPACK_INT8_TO_BF16, vec_unpack_int8_to_bf16, __builtin_vec_unpack_int8_to_bf16]
+   vuc __builtin_vec_unpack_int8_to_bf16 (vus, const int<1>);
+     VUPKINT8TOBF16
+ 
+ [VEC_UNPACK_INT4_TO_FP32, vec_unpack_int4_to_fp32, __builtin_vec_unpack_int4_to_fp32]
+   vf __builtin_vec_unpack_int4_to_fp32 (vui, const int<3>);
+     VUPKINT4TOFP32
+ 
+ [VEC_UNPACK_INT8_TO_FP32, vec_unpack_int8_to_fp32, __builtin_vec_unpack_int8_to_fp32]
+   vf __builtin_vec_unpack_int8_to_fp32 (vui, const int<2>);
+     VUPKINT8TOFP32
  
  ; **************************************************************************
  ; **************************************************************************
diff -Nrcpad gcc-16-20260711/gcc/config/rs6000/vsx.md gcc-16-20260718/gcc/config/rs6000/vsx.md
*** gcc-16-20260711/gcc/config/rs6000/vsx.md	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/config/rs6000/vsx.md	Sat Jul 18 22:32:07 2026
***************
*** 369,374 ****
--- 369,395 ----
     UNSPEC_XXSPLTI32DX
     UNSPEC_XXBLEND
     UNSPEC_XXPERMX
+    UNSPEC_XXMULMUL
+    UNSPEC_XXMULMULHIADD
+    UNSPEC_XXMULMULLOADD
+    UNSPEC_XXSSUMUDM
+    UNSPEC_XXSSUMUDMC
+    UNSPEC_XXSSUMUDMCEXT
+    UNSPEC_XSADDADDUQM
+    UNSPEC_XSADDADDSUQM
+    UNSPEC_XSADDSUBUQM
+    UNSPEC_XSADDSUBSUQM
+    UNSPEC_XSMERGE2T1UQM
+    UNSPEC_XSMERGE2T2UQM
+    UNSPEC_XSMERGE2T3UQM
+    UNSPEC_XSMERGE3T1UQM
+    UNSPEC_XSREBASE2T1UQM
+    UNSPEC_XSREBASE2T2UQM
+    UNSPEC_XSREBASE2T3UQM
+    UNSPEC_XSREBASE2T4UQM
+    UNSPEC_XSREBASE3T1UQM
+    UNSPEC_XSREBASE3T2UQM
+    UNSPEC_XSREBASE3T3UQM
    ])
  
  (define_int_iterator XVCVBF16	[UNSPEC_VSX_XVCVSPBF16
***************
*** 6851,6853 ****
--- 6872,7089 ----
    emit_insn (gen_vsx_extract_v2di (dest_op1, src_op, const1_rtx));
    DONE;
  })
+ 
+ 
+ ;; ECC (Elliptic Curve Cryptography) acceleration instructions for Power future
+ ;; These instructions support P-256 and P-384 elliptic curve operations
+ 
+ ;; xxmulmul - Multiply-Multiply with scaling
+ (define_insn "vsx_xxmulmul"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V2DI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V2DI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:QI 3 "const_0_to_6_operand" "n")]
+ 		     UNSPEC_XXMULMUL))]
+   "TARGET_FUTURE"
+   "xxmulmul %x0,%x1,%x2,%3")
+ 
+ ;; xxmulmulhiadd - Multiply-Multiply with high add and accumulator
+ (define_insn "vsx_xxmulmulhiadd"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V2DI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V2DI 3 "vsx_register_operand" "wa")
+ 		      (match_operand:QI 4 "const_0_to_1_operand" "n")
+ 		      (match_operand:QI 5 "const_0_to_1_operand" "n")
+ 		      (match_operand:QI 6 "const_0_to_1_operand" "n")]
+ 		     UNSPEC_XXMULMULHIADD))]
+   "TARGET_FUTURE"
+   "xxmulmulhiadd %x0,%x2,%x3,%4,%5,%6")
+ 
+ ;; xxmulmulloadd - Multiply-Multiply low add with accumulator
+ (define_insn "vsx_xxmulmulloadd"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V2DI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V2DI 3 "vsx_register_operand" "wa")
+ 		      (match_operand:QI 4 "const_0_to_1_operand" "n")
+ 		      (match_operand:QI 5 "const_0_to_1_operand" "n")]
+ 		     UNSPEC_XXMULMULLOADD))]
+   "TARGET_FUTURE"
+   "xxmulmulloadd %x0,%x2,%x3,%4,%5")
+ 
+ ;; xxssumudm - Scaled sum unsigned doubleword modulo
+ (define_insn "vsx_xxssumudm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V2DI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V2DI 3 "vsx_register_operand" "wa")
+ 		      (match_operand:QI 4 "const_0_to_1_operand" "n")]
+ 		     UNSPEC_XXSSUMUDM))]
+   "TARGET_FUTURE"
+   "xxssumudm %x0,%x2,%x3,%4")
+ 
+ ;; xxssumudmc - Scaled sum unsigned doubleword modulo carry
+ (define_insn "vsx_xxssumudmc"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V2DI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V2DI 3 "vsx_register_operand" "wa")
+ 		      (match_operand:QI 4 "const_0_to_1_operand" "n")]
+ 		     UNSPEC_XXSSUMUDMC))]
+   "TARGET_FUTURE"
+   "xxssumudmc %x0,%x2,%x3,%4")
+ 
+ ;; xxssumudmcext - Scaled sum unsigned doubleword modulo carry extended (prefixed)
+ (define_insn "vsx_xxssumudmcext"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V2DI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V2DI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")
+ 		      (match_operand:QI 4 "const_0_to_1_operand" "n")]
+ 		     UNSPEC_XXSSUMUDMCEXT))]
+   "TARGET_FUTURE"
+   "xxssumudmcext %x0,%x1,%x2,%x3,%4")
+ 
+ ;; xsaddadduqm - Add add unsigned quadword modulo
+ (define_insn "vsx_xsaddadduqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSADDADDUQM))]
+   "TARGET_FUTURE"
+   "xsaddadduqm %x0,%x2,%x3")
+ 
+ ;; xsaddaddsuqm - Add add scaled unsigned quadword modulo
+ (define_insn "vsx_xsaddaddsuqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSADDADDSUQM))]
+   "TARGET_FUTURE"
+   "xsaddaddsuqm %x0,%x2,%x3")
+ 
+ ;; xsaddsubuqm - Add subtract unsigned quadword modulo
+ (define_insn "vsx_xsaddsubuqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSADDSUBUQM))]
+   "TARGET_FUTURE"
+   "xsaddsubuqm %x0,%x2,%x3")
+ 
+ ;; xsaddsubsuqm - Add subtract scaled unsigned quadword modulo
+ (define_insn "vsx_xsaddsubsuqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSADDSUBSUQM))]
+   "TARGET_FUTURE"
+   "xsaddsubsuqm %x0,%x2,%x3")
+ 
+ ;; xsmerge2t1uqm - Merge type 1 (2-operand)
+ (define_insn "vsx_xsmerge2t1uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSMERGE2T1UQM))]
+   "TARGET_FUTURE"
+   "xsmerge2t1uqm %x0,%x1,%x2")
+ 
+ ;; xsmerge2t2uqm - Merge type 2 (2-operand)
+ (define_insn "vsx_xsmerge2t2uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSMERGE2T2UQM))]
+   "TARGET_FUTURE"
+   "xsmerge2t2uqm %x0,%x1,%x2")
+ 
+ ;; xsmerge2t3uqm - Merge type 3 (2-operand)
+ (define_insn "vsx_xsmerge2t3uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSMERGE2T3UQM))]
+   "TARGET_FUTURE"
+   "xsmerge2t3uqm %x0,%x1,%x2")
+ 
+ ;; xsmerge3t1uqm - Merge type 1 (3-operand with accumulator)
+ (define_insn "vsx_xsmerge3t1uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSMERGE3T1UQM))]
+   "TARGET_FUTURE"
+   "xsmerge3t1uqm %x0,%x2,%x3")
+ 
+ ;; xsrebase2t1uqm - Rebase type 1 (2-operand)
+ (define_insn "vsx_xsrebase2t1uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE2T1UQM))]
+   "TARGET_FUTURE"
+   "xsrebase2t1uqm %x0,%x1,%x2")
+ 
+ ;; xsrebase2t2uqm - Rebase type 2 (2-operand)
+ (define_insn "vsx_xsrebase2t2uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE2T2UQM))]
+   "TARGET_FUTURE"
+   "xsrebase2t2uqm %x0,%x1,%x2")
+ 
+ ;; xsrebase2t3uqm - Rebase type 3 (2-operand)
+ (define_insn "vsx_xsrebase2t3uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE2T3UQM))]
+   "TARGET_FUTURE"
+   "xsrebase2t3uqm %x0,%x1,%x2")
+ 
+ ;; xsrebase2t4uqm - Rebase type 4 (2-operand)
+ (define_insn "vsx_xsrebase2t4uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE2T4UQM))]
+   "TARGET_FUTURE"
+   "xsrebase2t4uqm %x0,%x1,%x2")
+ 
+ ;; xsrebase3t1uqm - Rebase type 1 (3-operand with accumulator)
+ (define_insn "vsx_xsrebase3t1uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE3T1UQM))]
+   "TARGET_FUTURE"
+   "xsrebase3t1uqm %x0,%x2,%x3")
+ 
+ ;; xsrebase3t2uqm - Rebase type 2 (3-operand with accumulator)
+ (define_insn "vsx_xsrebase3t2uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE3T2UQM))]
+   "TARGET_FUTURE"
+   "xsrebase3t2uqm %x0,%x2,%x3")
+ 
+ ;; xsrebase3t3uqm - Rebase type 3 (3-operand with accumulator)
+ (define_insn "vsx_xsrebase3t3uqm"
+   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
+ 	(unspec:V1TI [(match_operand:V1TI 1 "vsx_register_operand" "0")
+ 		      (match_operand:V1TI 2 "vsx_register_operand" "wa")
+ 		      (match_operand:V1TI 3 "vsx_register_operand" "wa")]
+ 		     UNSPEC_XSREBASE3T3UQM))]
+   "TARGET_FUTURE"
+   "xsrebase3t3uqm %x0,%x2,%x3")
diff -Nrcpad gcc-16-20260711/gcc/cp/ChangeLog gcc-16-20260718/gcc/cp/ChangeLog
*** gcc-16-20260711/gcc/cp/ChangeLog	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/cp/ChangeLog	Sat Jul 18 22:32:07 2026
***************
*** 1,3 ****
--- 1,62 ----
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126057
+ 	* decl.cc (cp_finish_decomp): Set assembler name to
+ 	<decomp> during error recovery whenever TREE_STATIC
+ 	rather than just DECL_NAMESPACE_SCOPE_P.
+ 	* pt.cc (tsubst_stmt): If tsubst_decomp_names fails,
+ 	set assembler name to <decomp>.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126036
+ 	* reflect.cc (get_range_elts): Avoid calling finish_compound_literal
+ 	when processing_template_decl, instead set *non_constant_p and
+ 	return NULL_TREE.
+ 	(process_metafunction): Likewise.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126007
+ 	* tree.cc (eligible_special_member_function_p): New function.
+ 	(implicit_lifetime_type_p): Use true instead of 1 in function comment.
+ 	Add some further comments.  Use eligible_special_member_function_p
+ 	instead of !DECL_DELETED_FN.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125674
+ 	* pt.cc (tsubst_decl): Diagnose bit-field widths
+ 	with invalid type.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/91155
+ 	* decl.cc (cp_make_fname_decl): Use cpp_translate_string instead of
+ 	cpp_interpret_string, don't prefix name strname.text with " and suffix
+ 	with " and NUL.
+ 
+ 2026-07-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126066
+ 	* tree.cc (lvalue_kind) <case MODOP_EXPR>: Use
+ 	gcc_checking_assert instead of gcc_assert.
+ 
  2026-07-08  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/cp/decl.cc gcc-16-20260718/gcc/cp/decl.cc
*** gcc-16-20260711/gcc/cp/decl.cc	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/cp/decl.cc	Sat Jul 18 22:32:07 2026
*************** cp_make_fname_decl (location_t loc, tree
*** 5901,5918 ****
        if (!release_name)
  	{
  	  cpp_string cstr = { 0, 0 }, strname;
! 	  size_t len = strlen (name) + 3; /* Two for '"'s.  One for NULL.  */
! 	  char *namep = XNEWVEC (char, len);
! 	  snprintf (namep, len, "\"%s\"", name);
! 	  strname.text = (unsigned char *) namep;
! 	  strname.len = len - 1;
! 	  if (cpp_interpret_string (parse_in, &strname, 1, &cstr, CPP_STRING))
  	    {
  	      name = (const char *) cstr.text;
  	      release_name = true;
  	    }
- 
- 	  XDELETEVEC (namep);
  	}
  
        size_t length = strlen (name);
--- 5901,5915 ----
        if (!release_name)
  	{
  	  cpp_string cstr = { 0, 0 }, strname;
! 	  strname.text
! 	    = const_cast <unsigned char *> ((const unsigned char *) name);
! 	  strname.len = strlen (name) + 1;
! 	  if (cpp_translate_string (parse_in, &strname, &cstr, CPP_STRING,
! 				    false))
  	    {
  	      name = (const char *) cstr.text;
  	      release_name = true;
  	    }
  	}
  
        size_t length = strlen (name);
*************** cp_finish_decomp (tree decl, cp_decomp *
*** 10717,10723 ****
  	    }
  	  first = DECL_CHAIN (first);
  	}
!       if (DECL_P (decl) && DECL_NAMESPACE_SCOPE_P (decl))
  	SET_DECL_ASSEMBLER_NAME (decl, get_identifier ("<decomp>"));
        return false;
      }
--- 10714,10720 ----
  	    }
  	  first = DECL_CHAIN (first);
  	}
!       if (DECL_P (decl) && TREE_STATIC (decl))
  	SET_DECL_ASSEMBLER_NAME (decl, get_identifier ("<decomp>"));
        return false;
      }
diff -Nrcpad gcc-16-20260711/gcc/cp/pt.cc gcc-16-20260718/gcc/cp/pt.cc
*** gcc-16-20260711/gcc/cp/pt.cc	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/cp/pt.cc	Sat Jul 18 22:32:07 2026
*************** tsubst_decl (tree t, tree args, tsubst_f
*** 16018,16028 ****
  	    cp_apply_type_quals_to_decl (cp_type_quals (type), r);
  
  	    if (DECL_C_BIT_FIELD (r))
! 	      /* For bit-fields, DECL_BIT_FIELD_REPRESENTATIVE gives the
! 		 number of bits.  */
! 	      DECL_BIT_FIELD_REPRESENTATIVE (r)
! 		= tsubst_expr (DECL_BIT_FIELD_REPRESENTATIVE (t), args,
! 			       complain, in_decl);
  	    if (DECL_INITIAL (t))
  	      {
  		/* Set up DECL_TEMPLATE_INFO so that we can get at the
--- 16018,16043 ----
  	    cp_apply_type_quals_to_decl (cp_type_quals (type), r);
  
  	    if (DECL_C_BIT_FIELD (r))
! 	      {
! 		/* For bit-fields, DECL_BIT_FIELD_REPRESENTATIVE gives the
! 		   number of bits.  */
! 		tree width
! 		  = tsubst_expr (DECL_BIT_FIELD_REPRESENTATIVE (t), args,
! 				 complain, in_decl);
! 		if (width
! 		    && width != error_mark_node
! 		    && !type_dependent_expression_p (width)
! 		    && !INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P
! 			 (TREE_TYPE (width)))
! 		  {
! 		    if (complain & tf_error)
! 		      error_at (DECL_SOURCE_LOCATION (t),
! 		      		"width of bit-field %qD has non-integral "
! 				"type %qT", r, TREE_TYPE (width));
! 		    RETURN (error_mark_node);
! 		  }
! 		DECL_BIT_FIELD_REPRESENTATIVE (r) = width;
! 	      }
  	    if (DECL_INITIAL (t))
  	      {
  		/* Set up DECL_TEMPLATE_INFO so that we can get at the
*************** tsubst_stmt (tree t, tree args, tsubst_f
*** 19791,19797 ****
  			if (tsubst_decomp_names (decl, pattern_decl, args,
  						 complain, in_decl, decomp)
  			    == error_mark_node)
! 			  decomp = NULL;
  		      }
  
  		    init = tsubst_init (init, decl, args, complain, in_decl);
--- 19806,19820 ----
  			if (tsubst_decomp_names (decl, pattern_decl, args,
  						 complain, in_decl, decomp)
  			    == error_mark_node)
! 			  {
! 			    decomp = NULL;
! 			    /* As in cp_finish_decomp.  */
! 			    if (TREE_STATIC (decl))
! 			      {
! 				tree id = get_identifier ("<decomp>");
! 				SET_DECL_ASSEMBLER_NAME (decl, id);
! 			      }
! 			  }
  		      }
  
  		    init = tsubst_init (init, decl, args, complain, in_decl);
diff -Nrcpad gcc-16-20260711/gcc/cp/reflect.cc gcc-16-20260718/gcc/cp/reflect.cc
*** gcc-16-20260711/gcc/cp/reflect.cc	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/cp/reflect.cc	Sat Jul 18 22:32:07 2026
*************** get_range_elts (location_t loc, const co
*** 685,690 ****
--- 685,696 ----
        }
      if (kind == REFLECT_CONSTANT_ARRAY && sz == 0)
        {
+ 	/* Don't call finish_compound_literal in a template.  */
+ 	if (processing_template_decl)
+ 	  {
+ 	    *non_constant_p = true;
+ 	    return NULL_TREE;
+ 	  }
  	/* Return std::array <valuet, 0> {}.  */
  	tree args = make_tree_vec (2);
  	TREE_VEC_ELT (args, 0) = valuet;
*************** process_metafunction (const constexpr_ct
*** 8007,8012 ****
--- 8013,8026 ----
    if (check_metafn_return_type (loc, METAFN_KIND_RET (minfo), rettype,
  				non_constant_p))
      return NULL_TREE;
+   /* Don't call get_vector_of_info_elts (for any metafn which returns
+      vector<info>) in a template.  */
+   if (processing_template_decl
+       && METAFN_KIND_RET (minfo) == METAFN_KIND_RET_VECTOR_INFO)
+     {
+       *non_constant_p = true;
+       return NULL_TREE;
+     }
    for (int argno = 0; argno < 3; ++argno)
      switch (METAFN_KIND_ARG (minfo, argno))
        {
diff -Nrcpad gcc-16-20260711/gcc/cp/tree.cc gcc-16-20260718/gcc/cp/tree.cc
*** gcc-16-20260711/gcc/cp/tree.cc	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/cp/tree.cc	Sat Jul 18 22:32:07 2026
*************** lvalue_kind (const_tree ref)
*** 280,286 ****
      case MODOP_EXPR:
        /* We expect to see unlowered MODOP_EXPRs only during
  	 template processing.  */
!       gcc_assert (processing_template_decl);
        if (CLASS_TYPE_P (TREE_TYPE (TREE_OPERAND (ref, 0))))
  	goto default_;
        else
--- 280,286 ----
      case MODOP_EXPR:
        /* We expect to see unlowered MODOP_EXPRs only during
  	 template processing.  */
!       gcc_checking_assert (processing_template_decl);
        if (CLASS_TYPE_P (TREE_TYPE (TREE_OPERAND (ref, 0))))
  	goto default_;
        else
*************** trivial_type_p (const_tree t)
*** 4907,4913 ****
      return scalarish_type_p (t);
  }
  
! /* Returns 1 iff type T is an implicit-lifetime type, as defined in
     [basic.types.general] and [class.prop].  */
  
  bool
--- 4907,4931 ----
      return scalarish_type_p (t);
  }
  
! /* Returns true iff FN (which is a special member function) is
!    an eligible special member function, as defined in [special]/6.
!    The "no special member function of the same kind whose associated
!    constraints, if any, are satisfied is more constrained" condition
!    is not checked, this is checked during add_method instead.  */
! 
! static bool
! eligible_special_member_function_p (tree fn)
! {
!   /* The function is not deleted.  */
!   if (DECL_DELETED_FN (fn))
!     return false;
!   /* The associated constraints, if any, are satisfied.  */
!   if (!constraints_satisfied_p (fn))
!     return false;
!   return true;
! }
! 
! /* Returns true iff type T is an implicit-lifetime type, as defined in
     [basic.types.general] and [class.prop].  */
  
  bool
*************** implicit_lifetime_type_p (tree t)
*** 4922,4927 ****
--- 4940,4946 ----
    if (!CLASS_TYPE_P (t))
      return false;
    t = TYPE_MAIN_VARIANT (t);
+   /* It is an aggregate whose destructor is not user-provided.  */
    if (CP_AGGREGATE_TYPE_P (t)
        && (!CLASSTYPE_DESTRUCTOR (t)
  	  || !user_provided_p (CLASSTYPE_DESTRUCTOR (t))))
*************** implicit_lifetime_type_p (tree t)
*** 4934,4939 ****
--- 4953,4960 ----
      return false;
    if (CLASSTYPE_LAZY_DESTRUCTOR (t))
      lazily_declare_fn (sfk_destructor, t);
+   /* It has at least one trivial eligible constructor and a trivial,
+      non-deleted destructor.  */
    tree fn = CLASSTYPE_DESTRUCTOR (t);
    if (!fn || DECL_DELETED_FN (fn))
      return false;
*************** implicit_lifetime_type_p (tree t)
*** 4943,4949 ****
        fn = *iter;
        if ((default_ctor_p (fn) || copy_fn_p (fn) || move_fn_p (fn))
  	  && trivial_fn_p (fn)
! 	  && !DECL_DELETED_FN (fn))
  	return true;
      }
    return false;
--- 4964,4970 ----
        fn = *iter;
        if ((default_ctor_p (fn) || copy_fn_p (fn) || move_fn_p (fn))
  	  && trivial_fn_p (fn)
! 	  && eligible_special_member_function_p (fn))
  	return true;
      }
    return false;
diff -Nrcpad gcc-16-20260711/gcc/doc/extend.texi gcc-16-20260718/gcc/doc/extend.texi
*** gcc-16-20260711/gcc/doc/extend.texi	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/doc/extend.texi	Sat Jul 18 22:32:07 2026
*************** int vec_any_le (vector signed __int128,
*** 26717,26722 ****
--- 26717,26821 ----
  int vec_any_le (vector unsigned __int128, vector unsigned __int128);
  @end smallexample
  
+ @subsubheading PowerPC Elliptic Curve Cryptography Assist Built-in-Functions
+ 
+ The following additional built-in functions may be available for the
+ PowerPC family of processors, on Future ISA.
+ These instructions provide hardware acceleration for Elliptic Curve
+ Cryptography (ECC) operations, specifically optimized for P-256 and P-384
+ elliptic curves.
+ 
+ The ECC built-in functions are organized into five categories:
+ multiply-multiply operations, scaled multiply-sum operations,
+ quadword add/subtract operations, merge operations and rebase operations.
+ 
+ @smallexample
+ vector unsigned __int128
+ __builtin_vsx_xxmulmul (vector unsigned long long ,
+                         vector unsigned long long ,
+                         const int);
+ vector unsigned __int128
+ __builtin_vsx_xxmulmulhiadd (vector unsigned __int128 ,
+                              vector unsigned long long ,
+                              vector unsigned long long ,
+                              const int ,
+                              const int ,
+                              const int);
+ vector unsigned __int128
+ __builtin_vsx_xxmulmulloadd (vector unsigned __int128 ,
+                              vector unsigned long long ,
+                              vector unsigned long long ,
+                              const int ,
+                              const int);
+ vector unsigned __int128
+ __builtin_vsx_xxssumudm (vector unsigned __int128 ,
+                          vector unsigned long long ,
+                          vector unsigned long long ,
+                          const int);
+ vector unsigned __int128
+ __builtin_vsx_xxssumudmc (vector unsigned __int128 ,
+                           vector unsigned long long ,
+                           vector unsigned long long ,
+                           const int);
+ vector unsigned __int128
+ __builtin_vsx_xxssumudmcext (vector unsigned long long ,
+                              vector unsigned long long ,
+                              vector unsigned __int128 ,
+                              const int);
+ vector unsigned __int128
+ __builtin_vsx_xsaddadduqm (vector unsigned __int128 ,
+                            vector unsigned __int128 ,
+                            vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsaddaddsuqm (vector unsigned __int128 ,
+                             vector unsigned __int128 ,
+                             vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsaddsubuqm (vector unsigned __int128 ,
+                            vector unsigned __int128 ,
+                            vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsaddsubsuqm (vector unsigned __int128 ,
+                             vector unsigned __int128 ,
+                             vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsmerge2t1uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsmerge2t2uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsmerge2t3uqm (vector unsigned __int128 ,
+                              vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsmerge3t1uqm (vector unsigned __int128 ,
+                              vector unsigned __int128 ,
+                              vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase2t1uqm (vector unsigned __int128 ,
+                               vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase2t2uqm (vector unsigned __int128 ,
+                               vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase2t3uqm (vector unsigned __int128 ,
+                               vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase2t4uqm (vector unsigned __int128 ,
+                               vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase3t1uqm (vector unsigned __int128 ,
+                               vector unsigned __int128 ,
+                               vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase3t2uqm (vector unsigned __int128 ,
+                               vector unsigned __int128 ,
+                               vector unsigned __int128);
+ vector unsigned __int128
+ __builtin_vsx_xsrebase3t3uqm (vector unsigned __int128 ,
+                               vector unsigned __int128 ,
+                               vector unsigned __int128);
+ @end smallexample
  
  The following instances are extension of the existing overloaded built-ins
  @code{vec_sld}, @code{vec_sldw}, @code{vec_slo}, @code{vec_sro}, @code{vec_srl}
*************** vector unsigned char);
*** 26759,26764 ****
--- 26858,26865 ----
  The following additional built-in functions are available for the
  PowerPC family of processors, starting with Future ISA.
  
+ @subsubheading PowerPC Advanced Encryption Standard (AES) Acceleration Built-in Functions
+ 
  Future ISA of the PowerPC may add new instructions for accelerating AES
  algorithm. GCC provides support for these new instructions through the
  following built-in functions. The third argument to
diff -Nrcpad gcc-16-20260711/gcc/doc/invoke.texi gcc-16-20260718/gcc/doc/invoke.texi
*** gcc-16-20260711/gcc/doc/invoke.texi	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/doc/invoke.texi	Sat Jul 18 22:32:07 2026
*************** performance of the code.  Permissible va
*** 21522,21528 ****
  @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
  @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace},
  @samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{armagicpu}, @samp{neoverse-n3},
! @samp{olympus}, @samp{cortex-a725}, @samp{cortex-x925},
  @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
  @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
  @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
--- 21522,21528 ----
  @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
  @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace},
  @samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{armagicpu}, @samp{neoverse-n3},
! @samp{olympus}, @samp{rigel}, @samp{cortex-a725}, @samp{cortex-x925},
  @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
  @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
  @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
diff -Nrcpad gcc-16-20260711/gcc/doc/sourcebuild.texi gcc-16-20260718/gcc/doc/sourcebuild.texi
*** gcc-16-20260711/gcc/doc/sourcebuild.texi	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/doc/sourcebuild.texi	Sat Jul 18 22:32:07 2026
*************** ARM target supports options to generate
*** 2216,2221 ****
--- 2216,2226 ----
  the M-Profile Vector Extension (MVE). Some multilibs may be incompatible
  with these options.
  
+ @item arm_v8_1m_mve_link
+ ARM target supports linking programs using the options selected by
+ @code{arm_v8_1m_mve_ok}. Some multilibs may be incompatible with these
+ options.
+ 
  @item arm_v8_1m_mve_fp_ok
  ARM target supports options to generate instructions from ARMv8.1-M with
  the Half-precision floating-point instructions (HP), Floating-point Extension
diff -Nrcpad gcc-16-20260711/gcc/fortran/ChangeLog gcc-16-20260718/gcc/fortran/ChangeLog
*** gcc-16-20260711/gcc/fortran/ChangeLog	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/fortran/ChangeLog	Sat Jul 18 22:32:08 2026
***************
*** 1,3 ****
--- 1,50 ----
+ 2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126234
+ 	* module.cc (read_module): Walk the symtree instead of
+ 	using gfc_find_symbol.
+ 
+ 2026-07-12  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/125172
+ 	* resolve.cc (gfc_fixup_inferred_type_refs): Update kind for
+ 	INQUIRY_RE and INQUIRY_IM references on inferred complex
+ 	associate-name.
+ 	(resolve_variable): For an inferred-type associate-name with
+ 	no subobject ref, refresh e->ts from sym->ts.
+ 	(resolve_assoc_var): For an inferred-type complex/character
+ 	associate-name, refresh sym->ts from the resolved target when
+ 	only the kind differs.
+ 
+ 2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126210
+ 	* module.cc (read_module): Only skip re-importing a symbol
+ 	already visible via host association from the same module
+ 	when that symbol is a derived type.
+ 
+ 2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-07-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126170
+ 	* class.cc (gfc_find_derived_vtab): Fix up a stale
+ 	non-use-associated duplicate vtab symbol.
+ 	(gfc_is_finalizable): Same fix-up, for the finalizer wrapper
+ 	symbol.
+ 	* module.cc (read_module): Skip re-importing a symbol already
+ 	visible via host association from the same module.
+ 
  2026-07-09  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/fortran/module.cc gcc-16-20260718/gcc/fortran/module.cc
*** gcc-16-20260711/gcc/fortran/module.cc	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/fortran/module.cc	Sat Jul 18 22:32:08 2026
*************** read_module (void)
*** 5882,5894 ****
  	    continue;
  
  	  /* Skip re-importing a derived type already visible via host
! 	     association from the same module.  */
  	  if (!only_flag && !info->u.rsym.renamed
  		&& strcmp (name, module_name) != 0
  		&& gfc_current_ns->parent)
  	    {
! 	      gfc_symbol *host_sym;
! 	      gfc_find_symbol (name, gfc_current_ns, 1, &host_sym);
  	      if (host_sym && host_sym->attr.flavor == FL_DERIVED
  		  && host_sym->module
  		  && strcmp (host_sym->module, module_name) == 0)
--- 5882,5903 ----
  	    continue;
  
  	  /* Skip re-importing a derived type already visible via host
! 	     association from the same module.  Walk the symtree since
! 	     using gfc_find_symbol can give a wrong error.  */
  	  if (!only_flag && !info->u.rsym.renamed
  		&& strcmp (name, module_name) != 0
  		&& gfc_current_ns->parent)
  	    {
! 	      gfc_symbol *host_sym = NULL;
! 	      for (gfc_namespace *pns = gfc_current_ns; pns; pns = pns->parent)
! 		{
! 		  gfc_symtree *host_st = gfc_find_symtree (pns->sym_root, name);
! 		  if (host_st)
! 		    {
! 		      host_sym = host_st->n.sym;
! 		      break;
! 		    }
! 		}
  	      if (host_sym && host_sym->attr.flavor == FL_DERIVED
  		  && host_sym->module
  		  && strcmp (host_sym->module, module_name) == 0)
diff -Nrcpad gcc-16-20260711/gcc/fortran/resolve.cc gcc-16-20260718/gcc/fortran/resolve.cc
*** gcc-16-20260711/gcc/fortran/resolve.cc	Sat Jul 11 22:32:07 2026
--- gcc-16-20260718/gcc/fortran/resolve.cc	Sat Jul 18 22:32:08 2026
*************** resolve_variable (gfc_expr *e)
*** 6578,6583 ****
--- 6578,6590 ----
        if (e->expr_type == EXPR_CONSTANT)
  	return true;
      }
+   else if (IS_INFERRED_TYPE (e)
+ 	   && sym->ts.type != BT_UNKNOWN
+ 	   && (sym->ts.type != e->ts.type || sym->ts.kind != e->ts.kind))
+     /* No subobject ref, but the expression's typespec was set at parse
+        time before the target's actual type/kind was known.  Refresh from
+        the now-resolved associate-name symbol.  */
+     e->ts = sym->ts;
    else if (sym->attr.select_type_temporary
  	   && sym->ns->assoc_name_inferred)
      gfc_fixup_inferred_type_refs (e);
*************** gfc_fixup_inferred_type_refs (gfc_expr *
*** 6962,6967 ****
--- 6969,6983 ----
  					   sym->assoc->target->ts.kind);
  	  gfc_replace_expr (e, ne);
  	}
+       else if (ref && ref->type == REF_INQUIRY
+ 	       && (ref->u.i == INQUIRY_RE || ref->u.i == INQUIRY_IM)
+ 	       && sym->ts.type == BT_COMPLEX
+ 	       && e->ts.type == BT_REAL
+ 	       && e->ts.kind != sym->ts.kind)
+ 	/* primary.cc set the inquiry-result kind to the default real kind
+ 	   when the associate-name's type was inferred from %re/%im before
+ 	   the target was resolved.  Now use the (resolved) selector kind.  */
+ 	e->ts.kind = sym->ts.kind;
  
        /* Now that the references are all sorted out, set the expression rank
  	 and return.  */
*************** resolve_assoc_var (gfc_symbol* sym, bool
*** 10688,10693 ****
--- 10704,10719 ----
  	/* Confirmed to be either a derived type or misidentified to be a
  	   scalar class object, when the selector is a class array.  */
  	sym->ts = target->ts;
+       else if (sym->assoc->inferred_type
+ 	       && (sym->ts.type == BT_COMPLEX
+ 		   || sym->ts.type == BT_CHARACTER)
+ 	       && target->ts.type == sym->ts.type
+ 	       && sym->ts.kind != target->ts.kind)
+ 	/* The inferred type was set from a %re, %im or %len inquiry on
+ 	   the associate name with the default kind, before the target's
+ 	   actual type was known.  Now that the target has been resolved,
+ 	   update the kind to match.  */
+ 	sym->ts = target->ts;
      }
  
  
diff -Nrcpad gcc-16-20260711/gcc/gimple-lower-bitint.cc gcc-16-20260718/gcc/gimple-lower-bitint.cc
*** gcc-16-20260711/gcc/gimple-lower-bitint.cc	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/gimple-lower-bitint.cc	Sat Jul 18 22:32:08 2026
*************** along with GCC; see the file COPYING3.
*** 56,61 ****
--- 56,63 ----
  #include "ubsan.h"
  #include "stor-layout.h"
  #include "gimple-lower-bitint.h"
+ #include "attribs.h"
+ #include "asan.h"
  
  /* Split BITINT_TYPE precisions in 4 categories.  Small _BitInt, where
     target hook says it is a single limb, middle _BitInt which per ABI
*************** build_bitint_stmt_ssa_conflicts (gimple
*** 6815,6829 ****
  	    }
  	}
      }
!   else if (bitint_big_endian
! 	   && is_gimple_call (stmt)
! 	   && gimple_call_internal_p (stmt))
      switch (gimple_call_internal_fn (stmt))
        {
        case IFN_ADD_OVERFLOW:
        case IFN_SUB_OVERFLOW:
        case IFN_UBSAN_CHECK_ADD:
        case IFN_UBSAN_CHECK_SUB:
        case IFN_MUL_OVERFLOW:
        case IFN_UBSAN_CHECK_MUL:
  	lhs = gimple_call_lhs (stmt);
--- 6817,6836 ----
  	    }
  	}
      }
!   else if (is_gimple_call (stmt) && gimple_call_internal_p (stmt))
      switch (gimple_call_internal_fn (stmt))
        {
        case IFN_ADD_OVERFLOW:
        case IFN_SUB_OVERFLOW:
        case IFN_UBSAN_CHECK_ADD:
        case IFN_UBSAN_CHECK_SUB:
+ 	if (bitint_big_endian)
+ 	  {
+ 	    lhs = gimple_call_lhs (stmt);
+ 	    if (lhs)
+ 	      muldiv_p = true;
+ 	  }
+ 	break;
        case IFN_MUL_OVERFLOW:
        case IFN_UBSAN_CHECK_MUL:
  	lhs = gimple_call_lhs (stmt);
*************** gimple_lower_bitint (void)
*** 7108,7113 ****
--- 7115,7154 ----
  	  free_dominance_info (CDI_DOMINATORS);
  	  free_dominance_info (CDI_POST_DOMINATORS);
  	  mark_virtual_operands_for_renaming (cfun);
+ 	  cleanup_tree_cfg (TODO_update_ssa);
+ 	}
+     }
+ 
+   if (flag_sanitize & (SANITIZE_ADDRESS | SANITIZE_HWADDRESS))
+     {
+       hash_map<tree, tree> shadow_vars_mapping;
+       bool need_commit_edge_insert = false;
+       bool any_asan_poison = false;
+       for (unsigned j = 0; j < num_ssa_names; ++j)
+ 	{
+ 	  tree s = ssa_name (j);
+ 	  if (s == NULL)
+ 	    continue;
+ 	  tree type = TREE_TYPE (s);
+ 	  if (BITINT_TYPE_P (type)
+ 	      && gimple_call_internal_p (SSA_NAME_DEF_STMT (s),
+ 					 IFN_ASAN_POISON)
+ 	      && bitint_precision_kind (type) >= bitint_prec_large)
+ 	    {
+ 	      any_asan_poison = true;
+ 	      gimple_stmt_iterator gsi = gsi_for_stmt (SSA_NAME_DEF_STMT (s));
+ 	      asan_expand_poison_ifn (&gsi, &need_commit_edge_insert,
+ 				      shadow_vars_mapping);
+ 	    }
+ 	}
+       if (any_asan_poison)
+ 	{
+ 	  if (need_commit_edge_insert)
+ 	    gsi_commit_edge_inserts ();
+ 	  i = 0;
+ 	  free_dominance_info (CDI_DOMINATORS);
+ 	  free_dominance_info (CDI_POST_DOMINATORS);
+ 	  mark_virtual_operands_for_renaming (cfun);
  	  cleanup_tree_cfg (TODO_update_ssa);
  	}
      }
diff -Nrcpad gcc-16-20260711/gcc/gimple-range.cc gcc-16-20260718/gcc/gimple-range.cc
*** gcc-16-20260711/gcc/gimple-range.cc	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/gimple-range.cc	Sat Jul 18 22:32:08 2026
*************** gimple_ranger::const_query ()
*** 78,83 ****
--- 78,86 ----
    return m_cache.const_query ();
  }
  
+ // Implement range of EXPR on stmt S, and return it in R.
+ // Return false if no range can be calculated.
+ 
  bool
  gimple_ranger::range_of_expr (vrange &r, tree expr, gimple *stmt)
  {
*************** gimple_ranger::range_of_expr (vrange &r,
*** 98,105 ****
  	fputs ("\n", dump_file);
      }
  
!   // If there is no statement, just get the global value.
!   if (!stmt)
      {
        value_range tmp (TREE_TYPE (expr));
        // If there is no global range for EXPR yet, try to evaluate it.
--- 101,109 ----
  	fputs ("\n", dump_file);
      }
  
!   // If there is no statement or stmt happens to be not in the IL,
!   // just get the global value.
!   if (!stmt || !gimple_bb (stmt))
      {
        value_range tmp (TREE_TYPE (expr));
        // If there is no global range for EXPR yet, try to evaluate it.
diff -Nrcpad gcc-16-20260711/gcc/gimple-ssa-pta-constraints.cc gcc-16-20260718/gcc/gimple-ssa-pta-constraints.cc
*** gcc-16-20260711/gcc/gimple-ssa-pta-constraints.cc	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/gimple-ssa-pta-constraints.cc	Sat Jul 18 22:32:08 2026
*************** find_func_aliases_for_call (struct funct
*** 2135,2141 ****
--- 2135,2143 ----
  	 such operator, then the effects for PTA (in particular
  	 the escaping of the pointer) can be ignored.  */
        else if (fndecl
+ 	       && flag_assume_sane_operators_new_delete
  	       && DECL_IS_OPERATOR_DELETE_P (fndecl)
+ 	       && DECL_IS_REPLACEABLE_OPERATOR (fndecl)
  	       && gimple_call_from_new_or_delete (t))
  	;
        else
diff -Nrcpad gcc-16-20260711/gcc/ipa-prop.cc gcc-16-20260718/gcc/ipa-prop.cc
*** gcc-16-20260711/gcc/ipa-prop.cc	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/ipa-prop.cc	Sat Jul 18 22:32:08 2026
*************** skip_a_safe_conversion_op (tree t)
*** 2480,2497 ****
    return t;
  }
  
- /* Initializes ipa_edge_args summary of CBE given its callback-carrying edge.
-    This primarily means allocating the correct amount of jump functions.  */
- 
- static inline void
- init_callback_edge_summary (struct cgraph_edge *cbe, tree attr)
- {
-   ipa_edge_args *cb_args = ipa_edge_args_sum->get_create (cbe);
-   size_t jf_vec_length = callback_num_args(attr);
-   vec_safe_grow_cleared (cb_args->jump_functions,
- 			 jf_vec_length, true);
- }
- 
  /* Compute jump function for all arguments of callsite CS and insert the
     information in the jump_functions array in the ipa_edge_args corresponding
     to this callsite.  */
--- 2480,2485 ----
*************** ipa_compute_jump_functions_for_edge (str
*** 2632,2638 ****
  		    }
  
  		  /* If a callback attribute describing this pointer is found,
! 			   create a callback edge to the pointee function to
  		     allow for further optimizations.  */
  		  if (callback_attr)
  		    {
--- 2620,2626 ----
  		    }
  
  		  /* If a callback attribute describing this pointer is found,
! 		     create a callback edge to the pointee function to
  		     allow for further optimizations.  */
  		  if (callback_attr)
  		    {
*************** ipa_compute_jump_functions_for_edge (str
*** 2641,2647 ****
  		      unsigned callback_id = n;
  		      cgraph_edge *cbe
  			= cs->make_callback (kernel_node, callback_id);
- 		      init_callback_edge_summary (cbe, callback_attr);
  		      callback_edges.safe_push (cbe);
  		    }
  		}
--- 2629,2634 ----
*************** ipa_edge_args_sum_t::duplicate (cgraph_e
*** 5152,5157 ****
--- 5139,5156 ----
        new_args->jump_functions = NULL;
        return;
      }
+ 
+   if (src->has_callback && dst->callback)
+     {
+       gcc_assert (src->caller == dst->caller);
+       tree attr = callback_fetch_attr_by_edge (dst, src);
+       unsigned arg_count = callback_num_args (attr);
+       vec_safe_grow_cleared (new_args->jump_functions, arg_count, true);
+       /* Duplication of jump functions is handled separately for callback
+ 	 pairs.  */
+       return;
+     }
+ 
    vec_safe_grow_cleared (new_args->jump_functions,
  			 old_args->jump_functions->length (), true);
  
diff -Nrcpad gcc-16-20260711/gcc/lto/ChangeLog gcc-16-20260718/gcc/lto/ChangeLog
*** gcc-16-20260711/gcc/lto/ChangeLog	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/lto/ChangeLog	Sat Jul 18 22:32:08 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-07-16  Michal Jires  <mjires@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-07-15  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/125257
+ 	* lto-partition.cc: Handle min/max_partition_size = 0 for
+ 	cache partitioning.
+ 
  2026-04-30  Release Manager
  
  	* GCC 16.1.0 released.
diff -Nrcpad gcc-16-20260711/gcc/lto/lto-partition.cc gcc-16-20260718/gcc/lto/lto-partition.cc
*** gcc-16-20260711/gcc/lto/lto-partition.cc	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/lto/lto-partition.cc	Sat Jul 18 22:32:08 2026
*************** public:
*** 987,997 ****
  
  protected:
    partitioner_base (int64_t min_partition_size, int64_t max_partition_size):
!     min_partition_size (min_partition_size),
!     max_partition_size (max_partition_size)
    {
-     gcc_assert (min_partition_size != 0);
-     gcc_assert (max_partition_size != 0);
    }
    virtual ~partitioner_base ()
    {}
--- 987,995 ----
  
  protected:
    partitioner_base (int64_t min_partition_size, int64_t max_partition_size):
!     min_partition_size (std::max<int64_t>(min_partition_size, 1)),
!     max_partition_size (std::max<int64_t>(max_partition_size, 1))
    {
    }
    virtual ~partitioner_base ()
    {}
diff -Nrcpad gcc-16-20260711/gcc/match.pd gcc-16-20260718/gcc/match.pd
*** gcc-16-20260711/gcc/match.pd	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/match.pd	Sat Jul 18 22:32:08 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6037,6043 ****
   (plus @0 @0)
   (if (SCALAR_FLOAT_TYPE_P (type))
    (mult @0 { build_real (type, dconst2); })
!   (if (INTEGRAL_TYPE_P (type))
     (mult @0 { build_int_cst (type, 2); }))))
  
  /* 0 - X  ->  -X.  */
--- 6037,6044 ----
   (plus @0 @0)
   (if (SCALAR_FLOAT_TYPE_P (type))
    (mult @0 { build_real (type, dconst2); })
!   (if (INTEGRAL_TYPE_P (type)
!        && TYPE_PRECISION (type) > (2 - TYPE_UNSIGNED (type)))
     (mult @0 { build_int_cst (type, 2); }))))
  
  /* 0 - X  ->  -X.  */
*************** and,
*** 11743,11761 ****
       machine_mode result_mode = TYPE_MODE (type);
       machine_mode op_mode = TYPE_MODE (TREE_TYPE (@2));
       int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
!      vec_perm_builder builder0;
!      vec_perm_builder builder1;
!      vec_perm_builder builder2 (nelts, nelts, 1);
     }
!    (if (tree_to_vec_perm_builder (&builder0, @4)
! 	&& tree_to_vec_perm_builder (&builder1, @5)
  	&& TYPE_SIZE (TREE_TYPE (TREE_TYPE (@0)))
  	   == TYPE_SIZE (TREE_TYPE (TREE_TYPE (@1))))
      (with
       {
!        vec_perm_indices sel0 (builder0, 2, nelts);
!        vec_perm_indices sel1 (builder1, 2, nelts);
! 
         for (int i = 0; i < nelts; i++)
  	 builder2.quick_push (sel0[sel1[i].to_constant ()]);
  
--- 11744,11758 ----
       machine_mode result_mode = TYPE_MODE (type);
       machine_mode op_mode = TYPE_MODE (TREE_TYPE (@2));
       int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
!      vec_perm_indices sel0, sel1;
     }
!    (if (tree_to_vec_perm_indices (&sel0, @2, @3, @4)
! 	&& tree_to_vec_perm_indices (&sel1, @0, @0, @5)
  	&& TYPE_SIZE (TREE_TYPE (TREE_TYPE (@0)))
  	   == TYPE_SIZE (TREE_TYPE (TREE_TYPE (@1))))
      (with
       {
!        vec_perm_builder builder2 (nelts, nelts, 1);
         for (int i = 0; i < nelts; i++)
  	 builder2.quick_push (sel0[sel1[i].to_constant ()]);
  
*************** and,
*** 11769,11777 ****
  	  number of VEC_PERM_EXPRs that can't be handled.  */
         if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
  	   || (single_use (@0)
! 	       ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, false)
! 		  || !can_vec_perm_const_p (result_mode, op_mode, sel1, false))
! 	       : !can_vec_perm_const_p (result_mode, op_mode, sel1, false)))
  	 op0 = vec_perm_indices_to_tree (TREE_TYPE (@5), sel2);
       }
       (if (op0)
--- 11766,11774 ----
  	  number of VEC_PERM_EXPRs that can't be handled.  */
         if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
  	   || (single_use (@0)
! 	       ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
! 		  || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
! 	       : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
  	 op0 = vec_perm_indices_to_tree (TREE_TYPE (@5), sel2);
       }
       (if (op0)
*************** and,
*** 11793,11810 ****
       machine_mode result_mode = TYPE_MODE (type);
       machine_mode op_mode = TYPE_MODE (TREE_TYPE (@1));
       int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
!      vec_perm_builder builder0;
!      vec_perm_builder builder1;
!      vec_perm_builder builder2 (nelts, nelts, 2);
     }
!    (if (tree_to_vec_perm_builder (&builder0, @3)
! 	&& tree_to_vec_perm_builder (&builder1, @4))
      (with
       {
-        vec_perm_indices sel0 (builder0, 2, nelts);
-        vec_perm_indices sel1 (builder1, 2, nelts);
         bool use_1 = false, use_2 = false;
  
         for (int i = 0; i < nelts; i++)
           {
  	   if (known_lt ((poly_uint64)sel1[i], sel1.nelts_per_input ()))
--- 11790,11804 ----
       machine_mode result_mode = TYPE_MODE (type);
       machine_mode op_mode = TYPE_MODE (TREE_TYPE (@1));
       int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
!      vec_perm_indices sel0, sel1;
     }
!    (if (tree_to_vec_perm_indices (&sel0, @1, @2, @3)
!         && tree_to_vec_perm_indices (&sel1, @5, @0, @4))
      (with
       {
         bool use_1 = false, use_2 = false;
  
+        vec_perm_builder builder2 (nelts, nelts, 2);
         for (int i = 0; i < nelts; i++)
           {
  	   if (known_lt ((poly_uint64)sel1[i], sel1.nelts_per_input ()))
*************** and,
*** 11836,11844 ****
  	    number of VEC_PERM_EXPRs that can't be handled.  */
  	 if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
  	     || (single_use (@0)
! 		 ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, false)
! 		    || !can_vec_perm_const_p (result_mode, op_mode, sel1, false))
! 		 : !can_vec_perm_const_p (result_mode, op_mode, sel1, false)))
  	   op0 = vec_perm_indices_to_tree (TREE_TYPE (@4), sel2);
         }
         (if (op0)
--- 11830,11838 ----
  	    number of VEC_PERM_EXPRs that can't be handled.  */
  	 if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
  	     || (single_use (@0)
! 		 ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
! 		    || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
! 		 : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
  	   op0 = vec_perm_indices_to_tree (TREE_TYPE (@4), sel2);
         }
         (if (op0)
*************** and,
*** 11858,11875 ****
       machine_mode result_mode = TYPE_MODE (type);
       machine_mode op_mode = TYPE_MODE (TREE_TYPE (@1));
       int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
!      vec_perm_builder builder0;
!      vec_perm_builder builder1;
!      vec_perm_builder builder2 (nelts, nelts, 2);
     }
!    (if (tree_to_vec_perm_builder (&builder0, @3)
! 	&& tree_to_vec_perm_builder (&builder1, @4))
      (with
       {
-        vec_perm_indices sel0 (builder0, 2, nelts);
-        vec_perm_indices sel1 (builder1, 2, nelts);
         bool use_1 = false, use_2 = false;
  
         for (int i = 0; i < nelts; i++)
           {
  	   if (known_ge ((poly_uint64)sel1[i], sel1.nelts_per_input ()))
--- 11852,11866 ----
       machine_mode result_mode = TYPE_MODE (type);
       machine_mode op_mode = TYPE_MODE (TREE_TYPE (@1));
       int nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
!      vec_perm_indices sel0, sel1;
     }
!    (if (tree_to_vec_perm_indices (&sel0, @1, @2, @3)
!         && tree_to_vec_perm_indices (&sel1, @0, @5, @4))
      (with
       {
         bool use_1 = false, use_2 = false;
  
+        vec_perm_builder builder2 (nelts, nelts, 2);
         for (int i = 0; i < nelts; i++)
           {
  	   if (known_ge ((poly_uint64)sel1[i], sel1.nelts_per_input ()))
*************** and,
*** 11900,11908 ****
  	    number of VEC_PERM_EXPRs that can't be handled.  */
  	 if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
  	     || (single_use (@0)
! 		 ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, false)
! 		    || !can_vec_perm_const_p (result_mode, op_mode, sel1, false))
! 		 : !can_vec_perm_const_p (result_mode, op_mode, sel1, false)))
  	   op0 = vec_perm_indices_to_tree (TREE_TYPE (@4), sel2);
         }
         (if (op0)
--- 11891,11899 ----
  	    number of VEC_PERM_EXPRs that can't be handled.  */
  	 if (can_vec_perm_const_p (result_mode, op_mode, sel2, false)
  	     || (single_use (@0)
! 		 ? (!can_vec_perm_const_p (result_mode, op_mode, sel0, true)
! 		    || !can_vec_perm_const_p (result_mode, op_mode, sel1, true))
! 		 : !can_vec_perm_const_p (result_mode, op_mode, sel1, true)))
  	   op0 = vec_perm_indices_to_tree (TREE_TYPE (@4), sel2);
         }
         (if (op0)
diff -Nrcpad gcc-16-20260711/gcc/optabs-query.cc gcc-16-20260718/gcc/optabs-query.cc
*** gcc-16-20260711/gcc/optabs-query.cc	Sat Jul 11 22:32:08 2026
--- gcc-16-20260718/gcc/optabs-query.cc	Sat Jul 18 22:32:08 2026
*************** can_vec_perm_var_p (machine_mode mode)
*** 415,426 ****
  /* Return true if the target directly supports VEC_PERM_EXPRs on vectors
     of mode OP_MODE and result vector of mode MODE using the selector SEL.
     ALLOW_VARIABLE_P is true if it is acceptable to force the selector into a
!    register and use a variable permute (if the target supports that).
! 
!    Note that additional permutations representing whole-vector shifts may
!    also be handled via the vec_shr or vec_shl optab, but only where the
!    second input vector is entirely constant zeroes; this case is not dealt
!    with here.  */
  
  bool
  can_vec_perm_const_p (machine_mode mode, machine_mode op_mode,
--- 415,421 ----
  /* Return true if the target directly supports VEC_PERM_EXPRs on vectors
     of mode OP_MODE and result vector of mode MODE using the selector SEL.
     ALLOW_VARIABLE_P is true if it is acceptable to force the selector into a
!    register and use a variable permute (if the target supports that).  */
  
  bool
  can_vec_perm_const_p (machine_mode mode, machine_mode op_mode,
*************** can_vec_perm_const_p (machine_mode mode,
*** 465,470 ****
--- 460,511 ----
  	 into integer operations.  */
      }
  
+   unsigned elements;
+   if (mode == op_mode
+       && GET_MODE_NUNITS (mode).is_constant (&elements))
+     {
+       if (sel.input_bitwise_zero_p (0)
+ 	  && can_implement_p (vec_shl_optab, mode))
+ 	{
+ 	  unsigned int first = 0, i;
+ 	  for (i = 0; i < elements; ++i)
+ 	    if (known_eq (poly_uint64 (sel[i]), elements))
+ 	      {
+ 		if (i == 0 || first)
+ 		  break;
+ 		first = i;
+ 	      }
+ 	    else if (first
+ 		     ? maybe_ne (poly_uint64 (sel[i]),
+ 				 elements + i - first)
+ 		     : maybe_ge (poly_uint64 (sel[i]), elements))
+ 	      break;
+ 	  if (first && i == elements)
+ 	    return true;
+ 	}
+       if (sel.input_bitwise_zero_p (1)
+ 	  && maybe_ne (sel[0], 0)
+ 	  && known_lt (sel[0], elements)
+ 	  && can_implement_p (vec_shr_optab, mode))
+ 	{
+ 	  if (sel.series_p (0, 1, sel[0], 1))
+ 	    return true;
+ 	  unsigned i;
+ 	  for (i = 1; i < elements; ++i)
+ 	    {
+ 	      poly_uint64 actual = sel[i];
+ 	      poly_uint64 expected = i + sel[0];
+ 	      /* Indices into the second vector are all equivalent.  */
+ 	      if (maybe_lt (actual, elements)
+ 		  ? maybe_ne (actual, expected)
+ 		  : maybe_lt (expected, elements))
+ 		break;
+ 	    }
+ 	  if (i == elements)
+ 	    return true;
+ 	}
+     }
+ 
    return false;
  }
  
diff -Nrcpad gcc-16-20260711/gcc/testsuite/ChangeLog gcc-16-20260718/gcc/testsuite/ChangeLog
*** gcc-16-20260711/gcc/testsuite/ChangeLog	Sat Jul 11 22:32:10 2026
--- gcc-16-20260718/gcc/testsuite/ChangeLog	Sat Jul 18 22:32:10 2026
***************
*** 1,3 ****
--- 1,284 ----
+ 2026-07-16  Michal Jires  <mjires@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-07-15  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/125257
+ 	* gcc.dg/lto/pr125257_0.c: New test.
+ 
+ 2026-07-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	Backported from master:
+ 	2026-07-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* gcc.dg/torture/bitint-101.c: Require bitint.
+ 
+ 2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126262
+ 	* gcc.dg/torture/bitint-102.c: New test.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126257
+ 	* gcc.dg/torture/bitint-101.c: New test.
+ 
+ 2026-07-15  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-07-09  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/aes-builtin-1.c: Add future_compile_ok and lp64
+ 	testsuite directive.
+ 	* gcc.target/powerpc/aes-builtin-2.c: Add future_compile_ok and lp64
+ 	testsuite directive.
+ 	* gcc.target/powerpc/aes-builtin-3.c: Add future_compile_ok and lp64
+ 	testsuite directive.
+ 
+ 2026-07-15  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-07-07  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/future-vucmpr-altivec.c: New test.
+ 	* gcc.target/powerpc/future-vucmpr-vsx.c: Likewise.
+ 	* gcc.target/powerpc/future-vupk.c: Likewise.
+ 
+ 2026-07-15  Manjunath Matti  <mmatti@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-25  Manjunath Matti  <mmatti@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/ecc-builtin-1.c: New test for ECC builtins.
+ 
+ 2026-07-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.target/arm/pr110268-1.c: Use arm_v8_1m_mve_link.
+ 	* gcc.target/arm/pr110268-2.c: Likewise
+ 	* lib/target-supports.exp (arm_v8_1m_mve_link): New.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124948
+ 	* gcc.dg/torture/bitint-100.c: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/126084
+ 	* gcc.dg/asan/bitint-1.c: New test.
+ 	* gcc.dg/asan/bitint-2.c: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 		    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR tree-optimization/120201
+ 	* g++.dg/asan/pr120201-1.C: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/opt/20260703-1.C: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126057
+ 	* g++.dg/cpp2a/decomp11.C: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126036
+ 	* g++.dg/reflect/pr126036.C: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126007
+ 	* g++.dg/ext/is_implicit_lifetime3.C: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/125935
+ 	* gcc.dg/debug/dwarf2/pr125935-1.c: New test.
+ 	* gcc.dg/debug/dwarf2/pr125935-2.c: New test.
+ 	* gcc.dg/debug/dwarf2/pr125935-3.c: New test.
+ 	* gcc.dg/debug/ctf/ctf-bitfields-3.c: Expect bool rather than _Bool.
+ 	* gcc.dg/Warray-bounds-65.c: Expect bool in diagnostics instead of
+ 	_Bool.
+ 	* gcc.dg/Wbad-function-cast-1.c: Likewise.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125674
+ 	* g++.dg/template/bitfield5.C: New test.
+ 	* g++.dg/template/bitfield6.C: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/91155
+ 	* g++.dg/torture/pr91155.C: Change into dg-do run test, actually test
+ 	the strings are the same.
+ 
+ 2026-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126194
+ 	* g++.dg/lto/pr126194.h: New testcase.
+ 	* g++.dg/lto/pr126194_0.C: Likewise.
+ 	* g++.dg/lto/pr126194_1.C: Likewise.
+ 	* g++.dg/lto/pr126194_2.C: Likewise.
+ 
+ 2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126234
+ 	* gfortran.dg/pr126234.f90: New test.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-07-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126150
+ 	* g++.dg/pr126150.C: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125953
+ 	* gcc.dg/torture/pr125953.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125875
+ 	* gcc.dg/torture/pr125875.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125786
+ 	* gcc.dg/torture/pr125786.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125668
+ 	* gcc.dg/pr125668.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125296
+ 	* gcc.dg/pr125206.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126008
+ 	* gcc.dg/torture/pr126008.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125730
+ 	* gcc.dg/torture/pr125730.c: New testcase.
+ 
+ 2026-07-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-07-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125040
+ 	* gcc.dg/torture/pr125040.c: New testcase.
+ 
+ 2026-07-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	Backported from master:
+ 	2026-07-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/125121
+ 	* c-c++-common/gomp/pr125121.c: New test.
+ 
+ 2026-07-12  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/125172
+ 	* gfortran.dg/associate_79.f90: New test.
+ 
+ 2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126210
+ 	* gfortran.dg/pr126210.f90: New test.
+ 
+ 2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-07-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126170
+ 	* gfortran.dg/lto/pr126170_0.f90: New test.
+ 	* gfortran.dg/lto/pr126170_1.f90: New test.
+ 
  2026-07-10  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/gcc/testsuite/c-c++-common/gomp/pr125121.c gcc-16-20260718/gcc/testsuite/c-c++-common/gomp/pr125121.c
*** gcc-16-20260711/gcc/testsuite/c-c++-common/gomp/pr125121.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/c-c++-common/gomp/pr125121.c	Sat Jul 18 22:32:11 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-ipa-cp" } */
+ 
+ void
+ a ()
+ {
+ #pragma omp parallel sections
+   {
+     ;
+   }
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/asan/pr120201-1.C gcc-16-20260718/gcc/testsuite/g++.dg/asan/pr120201-1.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/asan/pr120201-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/asan/pr120201-1.C	Sat Jul 18 22:32:11 2026
***************
*** 0 ****
--- 1,42 ----
+ // { dg-do run }
+ // { dg-options "-O3 -std=c++23 -fsanitize=address" }
+ 
+ using size_t = decltype (sizeof 0);
+ 
+ float* shaderLightData;
+ 
+ using ShaderShadowTransform = float[4z * 4z * 6z];
+ using Transform = float[4 * 4];
+ 
+ __attribute__ ((noipa))
+ #if defined(__i386__) || defined(__x86_64__)
+ __attribute__ ((target ("arch=x86-64-v4")))
+ #endif
+ static void
+ do_test (void)
+ {
+   int lightCount = 3;
+   ShaderShadowTransform* shaderShadowData = new ShaderShadowTransform[lightCount];
+   for (int index = 0; index < lightCount; index++)
+     {
+       Transform transforms[6];
+ 
+       const size_t matSize = 4z * 4z;
+       float* transformBlockStart = shaderShadowData[index];
+       for (int face = 0; face < 6; face++)
+ 	__builtin_memcpy(transformBlockStart + (matSize * face),
+ 			 &transforms[face][0], matSize * sizeof(float));
+   }
+ 
+   delete [] shaderShadowData;
+ }
+ 
+ int
+ main (void)
+ {
+ #if defined(__i386__) || defined(__x86_64__)
+   if (__builtin_cpu_supports ("x86-64-v4"))
+ #endif
+     do_test ();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/cpp2a/decomp11.C gcc-16-20260718/gcc/testsuite/g++.dg/cpp2a/decomp11.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/cpp2a/decomp11.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/cpp2a/decomp11.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/126057
+ // { dg-do compile { target c++20 } }
+ 
+ template <typename T>
+ int
+ foo ()
+ {
+   static auto [a] = 0;	// { dg-error "cannot decompose non-array non-class type 'int'" }
+   return 0;
+ }
+ 
+ int a = foo <int> ();
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/ext/is_implicit_lifetime3.C gcc-16-20260718/gcc/testsuite/g++.dg/ext/is_implicit_lifetime3.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/ext/is_implicit_lifetime3.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/ext/is_implicit_lifetime3.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/126007
+ // { dg-do compile { target c++20 } }
+ 
+ template <bool B>
+ struct S {
+   S () requires B = default;
+   S (const S &) {}
+ };
+ 
+ static_assert (!__builtin_is_implicit_lifetime (S<false>));
+ static_assert (__builtin_is_implicit_lifetime (S<true>));
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194.h gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194.h
*** gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194.h	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,87 ----
+ #pragma once
+ 
+ using Size = decltype(sizeof(0));
+ 
+ struct A
+ {
+     void (*const f_)(void**) noexcept;
+     void** const p_;
+     Size const a_;
+ 
+     A(void** pp, void (*f)(void**) noexcept, Size a) noexcept
+         : f_(f), p_(pp), a_(a) {}
+ 
+     void reset() const noexcept
+     {
+         if (*p_) {
+             (*f_)(p_);
+         }
+     }
+ 
+     A& operator=(const A&) = delete;
+ 
+     void* create(Size size, const void* caller, struct R& r) const;
+     void destroy(void* p, const void* caller, struct R& r) const noexcept;
+ };
+ 
+ struct R
+ {
+     virtual ~R() = default;
+     virtual void* allocate(Size size, const void* caller) = 0;
+     virtual void deallocate(void* p, const void* caller) noexcept = 0;
+ };
+ 
+ R& get_r() noexcept;
+ void touch(const void* p) noexcept;
+ 
+ struct B
+ {
+     void* q = nullptr;
+ 
+     static void cb(void** pp) noexcept
+     {
+         B* self = reinterpret_cast<B*>(pp);
+         if (self->q) {
+             extern void release_q(void*);
+             release_q(self->q);
+         }
+         self->q = nullptr;
+     }
+ 
+     ~B() noexcept
+     {
+         touch(this);
+         if (q) {
+             extern void release_q(void*);
+             release_q(q);
+         }
+     }
+ 
+     B() noexcept = default;
+     B(const B&) = delete;
+     B& operator=(const B&) = delete;
+     B(B&& other) noexcept : q(other.q)
+     {
+         other.q = nullptr;
+     }
+     B& operator=(B&& other) noexcept
+     {
+         if (this != &other) {
+             if (q) {
+                 extern void release_q(void*);
+                 release_q(q);
+             }
+             q = other.q;
+             other.q = nullptr;
+         }
+         return *this;
+     }
+ 
+     operator A() noexcept
+     {
+         return A(&q, &cb, alignof(void*));
+     }
+ };
+ 
+ void* operator new(Size size, A const& a, R& r) noexcept(false);
+ void  operator delete(void* p, A const& a, R& r) noexcept;
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194_0.C gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194_0.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194_0.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194_0.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,71 ----
+ // { dg-lto-do run }
+ // { dg-lto-options { { -O2 -flto } } }
+ 
+ #include "pr126194.h"
+ 
+ extern "C" void* malloc(Size size) noexcept;
+ extern "C" void free(void* p) noexcept;
+ 
+ namespace {
+ class M final : public R
+ {
+ public:
+     void* allocate(Size size, const void* /*caller*/) override
+     {
+         return malloc(size);
+     }
+ 
+     void deallocate(void* p, const void* /*caller*/) noexcept override
+     {
+         free(p);
+     }
+ };
+ 
+ M g_r;
+ }
+ 
+ R& get_r() noexcept
+ {
+     return g_r;
+ }
+ 
+ void touch(const void* p) noexcept
+ {
+     static const volatile void* sink = nullptr;
+     sink = p;
+ }
+ 
+ void release_q(void* p)
+ {
+     free(p);
+ }
+ 
+ int g_should_throw = 0;
+ 
+ void* A::create(Size size, const void* caller, R& r) const
+ {
+     reset();
+     if (size < a_) size = a_;
+     void* p = r.allocate(size, caller);
+     if (!p) throw 2;
+     *p_ = p;
+     return p;
+ }
+ 
+ __attribute__((noinline))
+ void A::destroy(void* p, const void* caller, R& r) const noexcept
+ {
+     *p_ = nullptr;
+     r.deallocate(p, caller);
+ }
+ 
+ void* operator new(Size size, A const& a, R& r) noexcept(false)
+ {
+     return a.create(size, __builtin_return_address(0), r);
+ }
+ 
+ __attribute__((noinline))
+ void operator delete(void* p, A const& a, R& r) noexcept
+ {
+     a.destroy(p, __builtin_return_address(0), r);
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194_1.C gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194_1.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194_1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194_1.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,41 ----
+ #include "pr126194.h"
+ 
+ extern int g_should_throw;
+ 
+ struct T
+ {
+     int a;
+     __attribute__((noinline)) T() : a(0)
+     {
+         if (g_should_throw) {
+             throw 1;
+         }
+     }
+ };
+ 
+ __attribute__((noinline))
+ int make_widget(bool go, void** out_ptr)
+ {
+     B b;
+     R& r = get_r();
+     if (go) {
+         T* t = new(b, r) T();
+         (void)t;
+     }
+     *out_ptr = b.q;
+     b.q = nullptr;
+     return 42;
+ }
+ 
+ extern "C" __attribute__((visibility("default")))
+ int run_repro(int argc)
+ {
+     g_should_throw = (argc > 0);
+     void* p = nullptr;
+     try {
+         (void)make_widget(argc > 0, &p);
+         return 1;
+     } catch (...) {
+         return 0;
+     }
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194_2.C gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194_2.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/lto/pr126194_2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/lto/pr126194_2.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,8 ----
+ // { dg-options "-fno-lto" }
+ 
+ extern "C" int run_repro(int argc);
+ 
+ int main(int argc, char**)
+ {
+     return run_repro(argc);
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/opt/20260703-1.C gcc-16-20260718/gcc/testsuite/g++.dg/opt/20260703-1.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/opt/20260703-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/opt/20260703-1.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,46 ----
+ // This started to be miscompiled with r15-579 or in a larger
+ // test with r15-3956 and got fixed with r17-2039.
+ // DSE would optimize away the store of 42.
+ // { dg-do run { target c++11 } }
+ // { dg-options "-O2" }
+ 
+ struct B { };
+ 
+ void *volatile g;
+ 
+ template <typename T>
+ struct D { T foo (void) const { return (T) g; } };
+ 
+ struct G : public B
+ {
+   virtual B *bar (int);
+   struct H : public B { H () : h (42) {} int h; };
+   struct I : public B {};
+   D <I *> g;
+ };
+ 
+ struct H : public G { virtual B *bar (int) { return nullptr; } };
+ 
+ B *
+ G::bar (int x)
+ {
+   if (x == 0)
+     return new H ();
+   I *y = g.foo ();
+   return y;
+ }
+ 
+ [[gnu::noipa]] B *
+ baz (G *x, int y)
+ {
+   return x->bar (y);
+ }
+ 
+ int
+ main ()
+ {
+   G g;
+   G::H *h = (G::H *) baz (&g, 0);
+   if (h->h != 42)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/pr126150.C gcc-16-20260718/gcc/testsuite/g++.dg/pr126150.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/pr126150.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/pr126150.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,8 ----
+ // { dg-do compile }
+ // { dg-options "-fnon-call-exceptions -O2 --param=max-completely-peel-loop-nest-depth=0" }
+ 
+ struct B {
+   B() { t = 0; }
+   ~B();
+   int t;
+ } w3[1][2];
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/reflect/pr126036.C gcc-16-20260718/gcc/testsuite/g++.dg/reflect/pr126036.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/reflect/pr126036.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/reflect/pr126036.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/126036
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ namespace A { int a; };
+ 
+ template <int N>
+ void
+ foo ()
+ {
+   constexpr auto m = std::meta::members_of (^^A, std::meta::access_context::unchecked ());
+   // { dg-error "is not a constant expression because it refers to a result of 'operator new'" "" { target *-*-* } .-1 }
+ }
+ 
+ void
+ bar ()
+ {
+   foo <42> ();
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/template/bitfield5.C gcc-16-20260718/gcc/testsuite/g++.dg/template/bitfield5.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/template/bitfield5.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/template/bitfield5.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/125674
+ // { dg-do compile { target c++20 } }
+ 
+ struct A { int a : 1.; };	// { dg-error "width of bit-field 'a' has non-integral type 'double'" }
+ template <typename T>
+ struct B { int b : 1.; };	// { dg-error "width of bit-field 'b' has non-integral type 'double'" }
+ template <typename T>
+ struct C { T c : 1.; };		// { dg-error "width of bit-field 'c' has non-integral type 'double'" }
+ template <auto N>
+ struct D { int d : N; };	// { dg-error "width of bit-field 'D<N>::d' has non-integral type 'double'" }
+ template <typename T, auto N>
+ struct E { T e : N; };		// { dg-error "width of bit-field 'E<T, N>::e' has non-integral type 'double'" }
+ B <int> b;
+ C <int> c;
+ D <1.> d;
+ E <int, 1.> e;
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/template/bitfield6.C gcc-16-20260718/gcc/testsuite/g++.dg/template/bitfield6.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/template/bitfield6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/g++.dg/template/bitfield6.C	Sat Jul 18 22:32:12 2026
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/125674
+ // { dg-do compile }
+ 
+ template <typename T>
+ struct A {
+   int f ();
+   int i : f;	// { dg-error "width of bit-field 'A<T>::i' has non-integral type '<unresolved overloaded function type>'" }
+ };
+ A<int> a;
diff -Nrcpad gcc-16-20260711/gcc/testsuite/g++.dg/torture/pr91155.C gcc-16-20260718/gcc/testsuite/g++.dg/torture/pr91155.C
*** gcc-16-20260711/gcc/testsuite/g++.dg/torture/pr91155.C	Sat Jul 11 22:32:12 2026
--- gcc-16-20260718/gcc/testsuite/g++.dg/torture/pr91155.C	Sat Jul 18 22:32:12 2026
***************
*** 1,4 ****
! /* PR c++/91155.  */
  
  template< char C > struct dummy {};
  
--- 1,5 ----
! // PR c++/91155
! // { dg-do run }
  
  template< char C > struct dummy {};
  
*************** template< typename T > const char *test(
*** 10,18 ****
  
  int main()
  {
!     if (__builtin_strcmp ("const char* test() [with T = dummy<\'\\000\'>]", test< dummy< '\0' > > ()) != 0)
!     {};//      __builtin_abort ();
!     if (__builtin_strcmp ("const char* test() [with T = dummy<\'\\\'\'>]", test< dummy< '\'' > > ()) != 0)
!     {};//      __builtin_abort ();
!     return 0;
  }
--- 11,19 ----
  
  int main()
  {
!   if (__builtin_strcmp ("const char* test() [with T = dummy<\'\\000\'>]", test< dummy< '\0' > > ()) != 0)
!     __builtin_abort ();
!   if (__builtin_strcmp ("const char* test() [with T = dummy<\'\\\'\'>]", test< dummy< '\'' > > ()) != 0)
!     __builtin_abort ();
!   return 0;
  }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/Warray-bounds-65.c gcc-16-20260718/gcc/testsuite/gcc.dg/Warray-bounds-65.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/Warray-bounds-65.c	Sat Jul 11 22:32:13 2026
--- gcc-16-20260718/gcc/testsuite/gcc.dg/Warray-bounds-65.c	Sat Jul 18 22:32:13 2026
*************** test_note (int (*pia3)[3])    // { dg-me
*** 31,41 ****
  void test_a1_cst (_Bool (*pba0)[0], char (*pca1)[1],
  		  short (*psa2)[2], int (*pia3)[3])
  {
!   T ((*pba0)[-1]);            // { dg-warning "array subscript -1 is (above|outside) array bounds of '_Bool\\\[0]'" }
!   T ((*pba0)[0]);             // { dg-warning "array subscript 0 is (above|outside) array bounds of '_Bool\\\[0]'" }
!   T ((*pba0)[1]);             // { dg-warning "array subscript 1 is (above|outside) array bounds of '_Bool\\\[0]'" }
!   T ((*pba0)[2]);             // { dg-warning "array subscript 2 is (above|outside) array bounds of '_Bool\\\[0]'" }
!   T ((*pba0)[12]);            // { dg-warning "array subscript 12 is (above|outside) array bounds of '_Bool\\\[0]'" }
  
    T ((*pca1)[-1]);            // { dg-warning "array subscript -1 is (below|outside) array bounds of 'char\\\[1]'" }
    T ((*pca1)[0]);
--- 31,41 ----
  void test_a1_cst (_Bool (*pba0)[0], char (*pca1)[1],
  		  short (*psa2)[2], int (*pia3)[3])
  {
!   T ((*pba0)[-1]);            // { dg-warning "array subscript -1 is (above|outside) array bounds of 'bool\\\[0]'" }
!   T ((*pba0)[0]);             // { dg-warning "array subscript 0 is (above|outside) array bounds of 'bool\\\[0]'" }
!   T ((*pba0)[1]);             // { dg-warning "array subscript 1 is (above|outside) array bounds of 'bool\\\[0]'" }
!   T ((*pba0)[2]);             // { dg-warning "array subscript 2 is (above|outside) array bounds of 'bool\\\[0]'" }
!   T ((*pba0)[12]);            // { dg-warning "array subscript 12 is (above|outside) array bounds of 'bool\\\[0]'" }
  
    T ((*pca1)[-1]);            // { dg-warning "array subscript -1 is (below|outside) array bounds of 'char\\\[1]'" }
    T ((*pca1)[0]);
*************** void test_a1_cst (_Bool (*pba0)[0], char
*** 61,80 ****
  void test_a2_cst (_Bool (*pba0_1)[0][1], char (*pca1_2)[1][2],
  		  short (*psa2_3)[2][3], int (*pia3_4)[3][4])
  {
!   T ((*pba0_1)[-1][-1]);        // { dg-warning "array subscript -1 is (below|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[-1][0]);         // { dg-warning "array subscript -1 is (above|outside) array bounds of '_Bool\\\[0]\\\[1]'" }
  
!   T ((*pba0_1)[0][-1]);         // { dg-warning "array subscript -1 is (below|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[0][0]);          // { dg-warning "array subscript 0 is (above|outside) array bounds of '_Bool\\\[0]\\\[1]'" }
!   T ((*pba0_1)[0][1]);          // { dg-warning "array subscript 1 is (above|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[0][2]);          // { dg-warning "array subscript 2 is (above|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[0][12]);         // { dg-warning "array subscript 12 is (above|outside) array bounds of '_Bool\\\[1]'" }
  
!   T ((*pba0_1)[1][-1]);         // { dg-warning "array subscript -1 is (below|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[1][0]);          // { dg-warning "array subscript 1 is (above|outside) array bounds of '_Bool\\\[0]\\\[1]'" }
!   T ((*pba0_1)[1][1]);          // { dg-warning "array subscript 1 is (above|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[1][2]);          // { dg-warning "array subscript 2 is (above|outside) array bounds of '_Bool\\\[1]'" }
!   T ((*pba0_1)[1][12]);         // { dg-warning "array subscript 12 is (above|outside) array bounds of '_Bool\\\[1]'" }
  
  
    T ((*pca1_2)[0][0]);
--- 61,80 ----
  void test_a2_cst (_Bool (*pba0_1)[0][1], char (*pca1_2)[1][2],
  		  short (*psa2_3)[2][3], int (*pia3_4)[3][4])
  {
!   T ((*pba0_1)[-1][-1]);        // { dg-warning "array subscript -1 is (below|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[-1][0]);         // { dg-warning "array subscript -1 is (above|outside) array bounds of 'bool\\\[0]\\\[1]'" }
  
!   T ((*pba0_1)[0][-1]);         // { dg-warning "array subscript -1 is (below|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[0][0]);          // { dg-warning "array subscript 0 is (above|outside) array bounds of 'bool\\\[0]\\\[1]'" }
!   T ((*pba0_1)[0][1]);          // { dg-warning "array subscript 1 is (above|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[0][2]);          // { dg-warning "array subscript 2 is (above|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[0][12]);         // { dg-warning "array subscript 12 is (above|outside) array bounds of 'bool\\\[1]'" }
  
!   T ((*pba0_1)[1][-1]);         // { dg-warning "array subscript -1 is (below|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[1][0]);          // { dg-warning "array subscript 1 is (above|outside) array bounds of 'bool\\\[0]\\\[1]'" }
!   T ((*pba0_1)[1][1]);          // { dg-warning "array subscript 1 is (above|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[1][2]);          // { dg-warning "array subscript 2 is (above|outside) array bounds of 'bool\\\[1]'" }
!   T ((*pba0_1)[1][12]);         // { dg-warning "array subscript 12 is (above|outside) array bounds of 'bool\\\[1]'" }
  
  
    T ((*pca1_2)[0][0]);
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/Wbad-function-cast-1.c gcc-16-20260718/gcc/testsuite/gcc.dg/Wbad-function-cast-1.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/Wbad-function-cast-1.c	Sat Jul 11 22:32:13 2026
--- gcc-16-20260718/gcc/testsuite/gcc.dg/Wbad-function-cast-1.c	Sat Jul 18 22:32:13 2026
*************** foo(void)
*** 40,51 ****
       types.  */
    (float)if1(); /* { dg-warning "cast from function call of type 'int' to non-matching type 'float'" } */
    (double)if2(); /* { dg-warning "cast from function call of type 'char' to non-matching type 'double'" } */
!   (_Bool)if3(); /* { dg-warning "cast from function call of type 'long int' to non-matching type '_Bool'" } */
    (int)rf1(); /* { dg-warning "cast from function call of type 'float' to non-matching type 'int'" } */
    (long)rf2(); /* { dg-warning "cast from function call of type 'double' to non-matching type 'long int'" } */
    (double)cf(); /* { dg-warning "cast from function call of type 'complex double' to non-matching type 'double'" } */
    (int)ef(); /* { dg-warning "cast from function call of type 'enum e' to non-matching type 'int'" } */
!   (int)bf(); /* { dg-warning "cast from function call of type '_Bool' to non-matching type 'int'" } */
    (__SIZE_TYPE__)pf1(); /* { dg-warning "cast from function call of type 'char \\*' to non-matching type '\[^\\n\]*'" } */
    (__PTRDIFF_TYPE__)pf2(); /* { dg-warning "cast from function call of type 'int \\*' to non-matching type '\[^\\n\]*'" } */
  }
--- 40,51 ----
       types.  */
    (float)if1(); /* { dg-warning "cast from function call of type 'int' to non-matching type 'float'" } */
    (double)if2(); /* { dg-warning "cast from function call of type 'char' to non-matching type 'double'" } */
!   (_Bool)if3(); /* { dg-warning "cast from function call of type 'long int' to non-matching type 'bool'" } */
    (int)rf1(); /* { dg-warning "cast from function call of type 'float' to non-matching type 'int'" } */
    (long)rf2(); /* { dg-warning "cast from function call of type 'double' to non-matching type 'long int'" } */
    (double)cf(); /* { dg-warning "cast from function call of type 'complex double' to non-matching type 'double'" } */
    (int)ef(); /* { dg-warning "cast from function call of type 'enum e' to non-matching type 'int'" } */
!   (int)bf(); /* { dg-warning "cast from function call of type 'bool' to non-matching type 'int'" } */
    (__SIZE_TYPE__)pf1(); /* { dg-warning "cast from function call of type 'char \\*' to non-matching type '\[^\\n\]*'" } */
    (__PTRDIFF_TYPE__)pf2(); /* { dg-warning "cast from function call of type 'int \\*' to non-matching type '\[^\\n\]*'" } */
  }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/asan/bitint-1.c gcc-16-20260718/gcc/testsuite/gcc.dg/asan/bitint-1.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/asan/bitint-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/asan/bitint-1.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,26 ----
+ /* PR middle-end/126084 */
+ /* { dg-do run { target bitint575 } } */
+ /* { dg-shouldfail "asan" } */
+ /* { dg-skip-if "" { *-*-* }  { "*" } { "-O2" } } */
+ 
+ _BitInt(135)
+ foo ()
+ {
+   _BitInt(135) *p, *q;
+   {
+     _BitInt(135) a, b;
+     p = &a;
+     q = &b;
+   }
+   return *p + *q;
+ }
+ 
+ int
+ main ()
+ {
+   volatile _BitInt(135) x = foo ();
+ }
+ 
+ /* { dg-output "ERROR: AddressSanitizer: stack-use-after-scope on address.*(\n|\r\n|\r)" } */
+ /* { dg-output "READ of size .*" } */
+ /* { dg-output ".*'a' \\(line 11\\) <== Memory access at offset \[0-9\]* is inside this variable.*" } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/asan/bitint-2.c gcc-16-20260718/gcc/testsuite/gcc.dg/asan/bitint-2.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/asan/bitint-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/asan/bitint-2.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,27 ----
+ /* PR middle-end/126084 */
+ /* { dg-do run { target bitint575 } } */
+ /* { dg-shouldfail "asan" } */
+ /* { dg-skip-if "" { *-*-* }  { "*" } { "-O2" } } */
+ 
+ void
+ foo ()
+ {
+   _BitInt(135) *p, *q;
+   {
+     _BitInt(135) a, b;
+     p = &a;
+     q = &b;
+   }
+   *p = 1;
+   *q = 2;
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+ }
+ 
+ /* { dg-output "ERROR: AddressSanitizer: stack-use-after-scope on address.*(\n|\r\n|\r)" } */
+ /* { dg-output "WRITE of size .*" } */
+ /* { dg-output ".*'a' \\(line 11\\) <== Memory access at offset \[0-9\]* is inside this variable.*" } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c gcc-16-20260718/gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c	Sat Jul 11 22:32:13 2026
--- gcc-16-20260718/gcc/testsuite/gcc.dg/debug/ctf/ctf-bitfields-3.c	Sat Jul 18 22:32:13 2026
***************
*** 6,12 ****
  /* { dg-final { scan-assembler-times "\[\t \]0x2\[\t \]+\[^\n\]*cts_type" 2 } } */
  /* { dg-final { scan-assembler-times "\[\t \]0x1\[\t \]+\[^\n\]*cts_bits" 2 } } */
  
! /* { dg-final { scan-assembler-times "ascii \"_Bool.0\"\[\t \]+\[^\n\]*ctf_string" 1 } } */
  
  #include <stdbool.h>
  
--- 6,12 ----
  /* { dg-final { scan-assembler-times "\[\t \]0x2\[\t \]+\[^\n\]*cts_type" 2 } } */
  /* { dg-final { scan-assembler-times "\[\t \]0x1\[\t \]+\[^\n\]*cts_bits" 2 } } */
  
! /* { dg-final { scan-assembler-times "ascii \"bool.0\"\[\t \]+\[^\n\]*ctf_string" 1 } } */
  
  #include <stdbool.h>
  
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-1.c gcc-16-20260718/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-1.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-1.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,8 ----
+ /* PR c/125935 */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c17 -g -dA" } */
+ 
+ _Bool x;
+ 
+ /* { dg-final { scan-assembler-times "(DW_AT_name: \"_Bool\"|\"_Bool..\"\[^\\r\\n\]*DW_AT_name)" 1 } } */
+ /* { dg-final { scan-assembler-not "(DW_AT_name: \"bool\"|\"bool..\"\[^\\r\\n\]*DW_AT_name)" } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-2.c gcc-16-20260718/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-2.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-2.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,8 ----
+ /* PR c/125935 */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23 -g -dA" } */
+ 
+ _Bool x;
+ 
+ /* { dg-final { scan-assembler-not "(DW_AT_name: \"_Bool\"|\"_Bool..\"\[^\\r\\n\]*DW_AT_name)" } } */
+ /* { dg-final { scan-assembler-times "(DW_AT_name: \"bool\"|\"bool..\"\[^\\r\\n\]*DW_AT_name)" 1 } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-3.c gcc-16-20260718/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-3.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/debug/dwarf2/pr125935-3.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,8 ----
+ /* PR c/125935 */
+ /* { dg-do compile } */
+ /* { dg-options "-std=c23 -g -dA" } */
+ 
+ bool x;
+ 
+ /* { dg-final { scan-assembler-not "(DW_AT_name: \"_Bool\"|\"_Bool..\"\[^\\r\\n\]*DW_AT_name)" } } */
+ /* { dg-final { scan-assembler-times "(DW_AT_name: \"bool\"|\"bool..\"\[^\\r\\n\]*DW_AT_name)" 1 } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/lto/pr125257_0.c gcc-16-20260718/gcc/testsuite/gcc.dg/lto/pr125257_0.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/lto/pr125257_0.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/lto/pr125257_0.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,6 ----
+ /* PR lto/125257 */
+ /* { dg-lto-do link } */
+ /* { dg-lto-options { "-O0 -flto --param=lto-min-partition=0 --param=lto-max-partition=0" } } */
+ 
+ int main() {}
+ __attribute__((used)) void foo() {}
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/pr125206.c gcc-16-20260718/gcc/testsuite/gcc.dg/pr125206.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/pr125206.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/pr125206.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fgimple -fdump-tree-forwprop1-gimple" } */
+ 
+ struct S {
+   struct S *next;
+   int vals[5];
+ };
+ 
+ int __GIMPLE foo (struct S * s, int idx)
+ {
+   int D_2968;
+   int *_1;
+ 
+   /* In GIMPLE '*s' does not have to be aligned according to its type
+      so we have to preserve the alignment of the access when forwarding
+      the address.  */
+   _1 = &s->vals[idx];
+   D_2968 = __MEM <volatile int> ((volatile int *)_1);
+   return D_2968;
+ }
+ 
+ /* { dg-final { scan-tree-dump "__MEM <struct S, 32>" "forwprop1" { target lp64 } } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/pr125668.c gcc-16-20260718/gcc/testsuite/gcc.dg/pr125668.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/pr125668.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/pr125668.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-strict-aliasing -fdump-tree-forwprop1-gimple" } */
+ 
+ struct S {
+   long x;
+   int y;
+ };
+ 
+ struct S2 {
+   struct S bufs[];
+ };
+ 
+ void foo(struct S2 *p, int i)
+ {
+   struct S *buf = &p->bufs[i];
+   if (*((volatile int *)&buf->y) < 0)
+     *((volatile int *)&buf->y) = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times ", 32>" 2 "forwprop1" { target lp64 } } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/bitint-100.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/bitint-100.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/bitint-100.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/bitint-100.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,197 ----
+ /* PR target/124948 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-std=c23 -pedantic-errors" } */
+ /* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+ 
+ _BitInt(17) a;
+ unsigned _BitInt(17) b;
+ 
+ #include "../bitintext.h"
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f1 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_add_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f2 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_sub_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f3 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_fetch_add (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f4 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_fetch_sub (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f5 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_add_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f6 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_sub_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f7 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_fetch_and_add (p, q);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f8 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_fetch_and_sub (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f9 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_add_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f10 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_sub_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f11 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_fetch_add (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f12 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_fetch_sub (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f13 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_add_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f14 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_sub_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f15 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_fetch_and_add (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f16 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_fetch_and_sub (p, q);
+ }
+ 
+ int
+ main ()
+ {
+   _BitInt(17) c;
+   unsigned _BitInt(17) d;
+   a = 64295wb;
+   BEXTC (a);
+   c = f1 (&a, 187040987wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -65534wb || c != a)
+     __builtin_abort ();
+   c = f2 (&a, 394264674wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 65440wb || c != a)
+     __builtin_abort ();
+   c = f3 (&a, 840434595wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -64701wb || c != 65440wb)
+     __builtin_abort ();
+   c = f4 (&a, 591403122wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 60113wb || c != -64701wb)
+     __builtin_abort ();
+   c = f5 (&a, 1215571163wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -61524wb || c != a)
+     __builtin_abort ();
+   c = f6 (&a, 1913664021wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 56727wb || c != a)
+     __builtin_abort ();
+   c = f7 (&a, 858931586wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -57575wb || c != 56727wb)
+     __builtin_abort ();
+   c = f8 (&a, 286413601wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 52216wb || c != -57575wb)
+     __builtin_abort ();
+   b = 77593uwb;
+   BEXTC (b);
+   d = f9 (&b, 858861337uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 24114uwb || d != b)
+     __builtin_abort ();
+   d = f10 (&b, 1431383831uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 77595uwb || d != b)
+     __builtin_abort ();
+   d = f11 (&b, 305231735uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 42642uwb || d != 77595uwb)
+     __builtin_abort ();
+   d = f12 (&b, 591497352uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 73226uwb || d != 42642uwb)
+     __builtin_abort ();
+   d = f13 (&b, 1985058934uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 46720uwb || d != b)
+     __builtin_abort ();
+   d = f14 (&b, 840018893uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 68275uwb || d != b)
+     __builtin_abort ();
+   d = f15 (&b, 1698807006uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 51089uwb || d != 68275uwb)
+     __builtin_abort ();
+   d = f16 (&b, 877788892uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 51381uwb || d != 51089uwb)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/bitint-101.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/bitint-101.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/bitint-101.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/bitint-101.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,26 ----
+ /* PR tree-optimization/126257 */
+ /* { dg-do run { target bitint } } */
+ 
+ _BitInt(2) a;
+ long long b, c, d;
+ 
+ int
+ main ()
+ {
+   int e;
+   _BitInt(2) f;
+   bool g;
+   long long h = b;
+ lab:
+   e = h;
+   if (e != 4)
+     f = -1;
+   f = f + f;
+   a = f;
+   g = d - 4;
+   if (!g)
+     goto lab;
+   c = a;
+   if (c != -2)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/bitint-102.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/bitint-102.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/bitint-102.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/bitint-102.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,33 ----
+ /* PR tree-optimization/126262 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-std=gnu23" } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 1024
+ typedef unsigned _BitInt (512) A;
+ typedef _BitInt (1024) B;
+ 
+ [[gnu::noipa]] int
+ foo (signed char x, A y)
+ {
+   B b = -(B) y;
+   A c;
+   if (__builtin_mul_overflow (1, b, &c))
+     c = 42;
+   B f;
+   if (__builtin_mul_overflow (x, 9, &f))
+     f = 42;
+   int i;
+   if (__builtin_mul_overflow (f, 1, &i))
+     i = 42;
+   return c + i;
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 1024
+   if (foo (1, -2) != 51)
+     __builtin_abort ();
+ #endif
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125040.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125040.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125040.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125040.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ 
+ int a() {
+   int b;
+   int *c = __builtin_calloc(sizeof(int), b);
+   int count;
+   for (int d; d;)
+     for (int e;; b++) {
+       c[e] = c[b - count - 1];
+       c[b - count - 1] = count;
+       count = count + 1;
+     }
+   __builtin_printf("", c);
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125730.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125730.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125730.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125730.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do run } */
+ 
+ char *key;
+ char *value;
+ char **name_regex = &key;
+ 
+ __attribute__ ((noipa)) void
+ dict_get_item_ref (char ***result)
+ {
+   *result = &value;
+ }
+ 
+ __attribute__ ((noinline)) static void
+ parse_keyword_dict (char ***argnames, char ***values,
+ 		    int num_posargs, int num_kwargs)
+ {
+   char ***first_kw_arg = argnames + num_posargs;
+   char ***name = first_kw_arg;
+ 
+   while (*name && num_kwargs > 0)
+     {
+       char **fetched_value;
+       dict_get_item_ref (&fetched_value);
+       values[name - argnames] = fetched_value;
+       name++;
+     }
+ }
+ 
+ int
+ main ()
+ {
+   char **fetched_values[] = { 0 };
+   char **argnames[] = { name_regex, 0 };
+   parse_keyword_dict (argnames, fetched_values, 0, 1);
+ 
+   if (fetched_values[0] != &value)
+     __builtin_abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125786.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125786.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125786.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125786.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do run } */
+ 
+ #define length 16
+ typedef int type;
+ typedef type v8i64 __attribute__((vector_size(sizeof(type)*length)));
+ v8i64 g6, g27;
+ _Bool main_c14;
+ 
+ __attribute__((noipa))
+ static
+ void f(v8i64 *a)
+ {
+   for(int i =0;i<length;i++)
+     if ((*a)[i] != -1)
+       __builtin_abort();
+ }
+ 
+ int main()
+ {
+   if (main_c14) goto lbl_br43;
+ lbl_bf7:
+   g6 = 0 <= g27;
+   g27 = g27 <= g27;
+   g27 = g6 > g27;
+ lbl_br43:
+   g6 = g6 | g27;
+   if (main_c14) goto lbl_bf7;
+   g6 = g6 * g27 == 0;
+   f(&g6);
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125875.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125875.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125875.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125875.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile } */
+ 
+ #include <stdint.h>
+ typedef int16_t v4i16 __attribute__((vector_size(8)));
+ v4i16 g7, g19;
+ int64_t g16;
+ _Bool f16_a0_c3, f16_a0_ob6;
+ void f16_a0()
+ {
+     int32_t ov10;
+     uint64_t __ov_tmp_g16 = __builtin_sub_overflow(0, 0, &__ov_tmp_g16);
+     g16 = __ov_tmp_g16;
+ lbl_b1:
+     __builtin_mul_overflow(g16, g16, &ov10);
+     switch (ov10)
+     case 33:
+         goto lbl_sw_def57;
+ lbl_sw_def15:
+     if (f16_a0_c3) goto lbl_b1;
+     g7 = __builtin_shufflevector(g7, g7, 4, 3, 4, 5);
+     f16_a0_ob6 = f16_a0;
+     g19 = g19 <= g19;
+ lbl_bf43:
+     g19 = ~g19;
+     g7 = __builtin_shufflevector(g7, g19, 6, 7, 0, 1);
+ lbl_sw_def57:
+     if (f16_a0_ob6) goto lbl_sw_def15;
+     goto lbl_bf43;
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125953.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125953.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr125953.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr125953.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-march=armv8.3-a+sve2" { target aarch64-*-* } } */
+ 
+ unsigned char *begin(unsigned char *out)
+ {
+   int size_0_0_0;
+   unsigned char *kRow = begin(out);
+   unsigned char *currentRow = kRow;
+   for (int x = 0; x < size_0_0_0; ++x) {
+     char k = kRow ? kRow[x] : 5;
+     out[2] = currentRow[2] * k / 255;
+   }
+   return out;
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr126008.c gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr126008.c
*** gcc-16-20260711/gcc/testsuite/gcc.dg/torture/pr126008.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.dg/torture/pr126008.c	Sat Jul 18 22:32:13 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target int32plus } */
+ 
+ int h, q, r;
+ int o[27];
+ 
+ __attribute__((noipa))
+ void z (int r) {
+   int q = -13363 + r; // 27
+   int p = -71005931 * q + ~51083117 + 1968243255; // == 0
+   while (p != 12)
+   {
+     o[p] = 1 + p;
+     p = 1 + p;
+   }
+ }
+ 
+ int main () {
+   z(13390);
+ }
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/arm/pr110268-1.c gcc-16-20260718/gcc/testsuite/gcc.target/arm/pr110268-1.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/arm/pr110268-1.c	Sat Jul 11 22:32:15 2026
--- gcc-16-20260718/gcc/testsuite/gcc.target/arm/pr110268-1.c	Sat Jul 18 22:32:14 2026
***************
*** 1,6 ****
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_arch_v8_1m_main_link } */ /* Make sure we have suitable multilibs to link successfully.  */
! /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
--- 1,5 ----
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_v8_1m_mve_link } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/arm/pr110268-2.c gcc-16-20260718/gcc/testsuite/gcc.target/arm/pr110268-2.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/arm/pr110268-2.c	Sat Jul 11 22:32:15 2026
--- gcc-16-20260718/gcc/testsuite/gcc.target/arm/pr110268-2.c	Sat Jul 18 22:32:14 2026
***************
*** 1,6 ****
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_arch_v8_1m_main_link } */ /* Make sure we have suitable multilibs to link successfully.  */
! /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
--- 1,5 ----
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_v8_1m_mve_link } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c	Sat Jul 11 22:32:16 2026
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/aes-builtin-1.c	Sat Jul 18 22:32:15 2026
***************
*** 1,4 ****
--- 1,6 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ /* { dg-require-effective-target lp64 } */
  /* { dg-options "-mdejagnu-cpu=future -O2" } */
  
  void
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c	Sat Jul 11 22:32:16 2026
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/aes-builtin-2.c	Sat Jul 18 22:32:15 2026
***************
*** 1,4 ****
--- 1,6 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ /* { dg-require-effective-target lp64 } */
  /* { dg-options "-mdejagnu-cpu=future -O2" } */
  
  typedef unsigned char vec_t __attribute__((vector_size(16)));
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c	Sat Jul 11 22:32:16 2026
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/aes-builtin-3.c	Sat Jul 18 22:32:15 2026
***************
*** 1,4 ****
--- 1,6 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ /* { dg-require-effective-target lp64 } */
  /* { dg-options "-mdejagnu-cpu=future -O2" } */
  
  void
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/ecc-builtin-1.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/ecc-builtin-1.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/ecc-builtin-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/ecc-builtin-1.c	Sat Jul 18 22:32:15 2026
***************
*** 0 ****
--- 1,203 ----
+ /* { dg-do compile { target { lp64 } } } */
+ /* { dg-options "-mdejagnu-cpu=future -O2" } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ 
+ /* Test the ECC (Elliptic Curve Cryptography) acceleration builtins for Power future.
+    These instructions support P-256 and P-384 elliptic curve operations. */
+ 
+ #include <altivec.h>
+ 
+ /* Test xxmulmul - Multiply-Multiply with scaling */
+ vector unsigned __int128
+ test_xxmulmul (vector unsigned long long a, vector unsigned long long b)
+ {
+   return __builtin_vsx_xxmulmul (a, b, 3);
+ }
+ 
+ /* Test xxmulmulhiadd - Multiply-Multiply with high add and accumulator */
+ vector unsigned __int128
+ test_xxmulmulhiadd (vector unsigned __int128 acc,
+ 		    vector unsigned long long a,
+ 		    vector unsigned long long b)
+ {
+   return __builtin_vsx_xxmulmulhiadd (acc, a, b, 1, 0, 1);
+ }
+ 
+ /* Test xxmulmulloadd - Multiply-Multiply low add with accumulator */
+ vector unsigned __int128
+ test_xxmulmulloadd (vector unsigned __int128 acc,
+ 		    vector unsigned long long a,
+ 		    vector unsigned long long b)
+ {
+   return __builtin_vsx_xxmulmulloadd (acc, a, b, 1, 0);
+ }
+ 
+ /* Test xxssumudm - Scaled sum unsigned doubleword modulo */
+ vector unsigned __int128
+ test_xxssumudm (vector unsigned __int128 acc,
+ 		vector unsigned long long a,
+ 		vector unsigned long long b)
+ {
+   return __builtin_vsx_xxssumudm (acc, a, b, 1);
+ }
+ 
+ /* Test xxssumudmc - Scaled sum unsigned doubleword modulo carry */
+ vector unsigned __int128
+ test_xxssumudmc (vector unsigned __int128 acc,
+ 		 vector unsigned long long a,
+ 		 vector unsigned long long b)
+ {
+   return __builtin_vsx_xxssumudmc (acc, a, b, 0);
+ }
+ 
+ /* Test xxssumudmcext - Scaled sum unsigned doubleword modulo carry extended */
+ vector unsigned __int128
+ test_xxssumudmcext (vector unsigned long long a,
+                     vector unsigned long long b,
+                     vector unsigned __int128 c)
+ {
+   return __builtin_vsx_xxssumudmcext (a, b, c, 1);
+ }
+ 
+ /* Test xsaddadduqm - Add add unsigned quadword modulo */
+ vector unsigned __int128
+ test_xsaddadduqm (vector unsigned __int128 acc,
+                   vector unsigned __int128 a,
+                   vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsaddadduqm (acc, a, b);
+ }
+ 
+ /* Test xsaddaddsuqm - Add add scaled unsigned quadword modulo */
+ vector unsigned __int128
+ test_xsaddaddsuqm (vector unsigned __int128 acc,
+                    vector unsigned __int128 a,
+                    vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsaddaddsuqm (acc, a, b);
+ }
+ 
+ /* Test xsaddsubuqm - Add subtract unsigned quadword modulo */
+ vector unsigned __int128
+ test_xsaddsubuqm (vector unsigned __int128 acc,
+                   vector unsigned __int128 a,
+                   vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsaddsubuqm (acc, a, b);
+ }
+ 
+ /* Test xsaddsubsuqm - Add subtract scaled unsigned quadword modulo */
+ vector unsigned __int128
+ test_xsaddsubsuqm (vector unsigned __int128 acc,
+                    vector unsigned __int128 a,
+                    vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsaddsubsuqm (acc, a, b);
+ }
+ 
+ /* Test xsmerge2t1uqm - Merge type 1 (2-operand) */
+ vector unsigned __int128
+ test_xsmerge2t1uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsmerge2t1uqm (a, b);
+ }
+ 
+ /* Test xsmerge2t2uqm - Merge type 2 (2-operand) */
+ vector unsigned __int128
+ test_xsmerge2t2uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsmerge2t2uqm (a, b);
+ }
+ 
+ /* Test xsmerge2t3uqm - Merge type 3 (2-operand) */
+ vector unsigned __int128
+ test_xsmerge2t3uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsmerge2t3uqm (a, b);
+ }
+ 
+ /* Test xsmerge3t1uqm - Merge type 1 (3-operand with accumulator) */
+ vector unsigned __int128
+ test_xsmerge3t1uqm (vector unsigned __int128 acc,
+                     vector unsigned __int128 a,
+                     vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsmerge3t1uqm (acc, a, b);
+ }
+ 
+ /* Test xsrebase2t1uqm - Rebase type 1 (2-operand) */
+ vector unsigned __int128
+ test_xsrebase2t1uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase2t1uqm (a, b);
+ }
+ 
+ /* Test xsrebase2t2uqm - Rebase type 2 (2-operand) */
+ vector unsigned __int128
+ test_xsrebase2t2uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase2t2uqm (a, b);
+ }
+ 
+ /* Test xsrebase2t3uqm - Rebase type 3 (2-operand) */
+ vector unsigned __int128
+ test_xsrebase2t3uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase2t3uqm (a, b);
+ }
+ 
+ /* Test xsrebase2t4uqm - Rebase type 4 (2-operand) */
+ vector unsigned __int128
+ test_xsrebase2t4uqm (vector unsigned __int128 a, vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase2t4uqm (a, b);
+ }
+ 
+ /* Test xsrebase3t1uqm - Rebase type 1 (3-operand with accumulator) */
+ vector unsigned __int128
+ test_xsrebase3t1uqm (vector unsigned __int128 acc,
+                      vector unsigned __int128 a,
+                      vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase3t1uqm (acc, a, b);
+ }
+ 
+ /* Test xsrebase3t2uqm - Rebase type 2 (3-operand with accumulator) */
+ vector unsigned __int128
+ test_xsrebase3t2uqm (vector unsigned __int128 acc,
+                      vector unsigned __int128 a,
+                      vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase3t2uqm (acc, a, b);
+ }
+ 
+ /* Test xsrebase3t3uqm - Rebase type 3 (3-operand with accumulator) */
+ vector unsigned __int128
+ test_xsrebase3t3uqm (vector unsigned __int128 acc,
+                      vector unsigned __int128 a,
+                      vector unsigned __int128 b)
+ {
+   return __builtin_vsx_xsrebase3t3uqm (acc, a, b);
+ }
+ 
+ /* { dg-final { scan-assembler-times {\mxxmulmul\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxxmulmulhiadd\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxxmulmulloadd\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxxssumudm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxxssumudmc\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxxssumudmcext\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsaddadduqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsaddaddsuqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsaddsubuqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsaddsubsuqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsmerge2t1uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsmerge2t2uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsmerge2t3uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsmerge3t1uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase2t1uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase2t2uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase2t3uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase2t4uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase3t1uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase3t2uqm\M} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxsrebase3t3uqm\M} 1 } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/future-vucmpr-altivec.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/future-vucmpr-altivec.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/future-vucmpr-altivec.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/future-vucmpr-altivec.c	Sat Jul 18 22:32:15 2026
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mdejagnu-cpu=future -mno-vsx" } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ 
+ #include <altivec.h>
+ 
+ vector unsigned short
+ test_uncompresshn (vector unsigned char a,
+                    vector unsigned int b)
+ {
+   return vec_uncompresshn (a, b);
+ }
+ 
+ vector unsigned int
+ test_uncompresshb (vector unsigned short a,
+                    vector unsigned short b)
+ {
+   return vec_uncompresshb (a, b);
+ }
+ 
+ vector unsigned short
+ test_uncompressln (vector unsigned char a,
+                    vector unsigned int b)
+ {
+   return vec_uncompressln (a, b);
+ }
+ 
+ vector unsigned int
+ test_uncompresslb (vector unsigned short a,
+                    vector unsigned short b)
+ {
+   return vec_uncompresslb (a, b);
+ }
+ 
+ /* { dg-final { scan-assembler-not "vxor" { target { be } } } } */
+ /* { dg-final { scan-assembler-not "vinsw" { target { be } } } } */
+ /* { dg-final { scan-assembler-not "vperm" { target { be } } } } */
+ 
+ 
+ /* { dg-final { scan-assembler-times "vxor" 4 { target { le } } } } */
+ /* { dg-final { scan-assembler-times "vinsw" 4 { target { le } } } } */
+ /* { dg-final { scan-assembler-times "vperm" 4 { target { le } } } } */
+ /* { dg-final { scan-assembler-times "vrlb" 4 { target { le } } } } */
+ /* { dg-final { scan-assembler-times "vspltisb" 4 { target { le } } } } */
+ 
+ /* Final uncompress instructions.  */
+ 
+ /* { dg-final { scan-assembler-times {vucmpr[lh][nb]} 4 } } */
+ 
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/future-vucmpr-vsx.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/future-vucmpr-vsx.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/future-vucmpr-vsx.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/future-vucmpr-vsx.c	Sat Jul 18 22:32:15 2026
***************
*** 0 ****
--- 1,61 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mdejagnu-cpu=future -mvsx" } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ 
+ #include <altivec.h>
+ 
+ vector unsigned short test_uncompresshn(vector unsigned char a,
+                                         vector unsigned int b)
+ {
+   return vec_uncompresshn(a, b);
+ }
+ 
+ vector unsigned int test_uncompresshb(vector unsigned short a,
+                                       vector unsigned short b)
+ {
+   return vec_uncompresshb(a, b);
+ }
+ 
+ vector unsigned long long test_uncompresshh(vector unsigned int a,
+                                             vector unsigned char b)
+ {
+   return vec_uncompresshh(a, b);
+ }
+ 
+ vector unsigned short test_uncompressln(vector unsigned char a,
+                                         vector unsigned int b)
+ {
+   return vec_uncompressln(a, b);
+ }
+ 
+ vector unsigned int test_uncompresslb(vector unsigned short a,
+                                       vector unsigned short b)
+ {
+   return vec_uncompresslb(a, b);
+ }
+ 
+ vector unsigned long long test_uncompresslh(vector unsigned int a,
+                                             vector unsigned char b)
+ {
+   return vec_uncompresslh(a, b);
+ }
+ 
+ /* BE: direct instructions, no splats or reverse. */
+ 
+ /* { dg-final { scan-assembler-not {vsplt[whb]} { target { be } } } } */
+ /* { dg-final { scan-assembler-not {xxspltib} { target { be } } } } */
+ /* { dg-final { scan-assembler-not {xxbr[wh]\M} { target { be } } } } */
+ /* { dg-final { scan-assembler-not {vrlb} { target { be } } } } */
+ 
+ /* LE: splats and reverse-byte + rotate must appear. */
+ 
+ /* { dg-final { scan-assembler-times {vsplt[whb]} 6 { target { le } } } } */
+ 
+ /* { dg-final { scan-assembler-times "xxspltib" 6 { target { le } } } } */
+ 
+ /* { dg-final { scan-assembler-times {xxbr[wh]} 4 { target { le } } } } */
+ 
+ /* { dg-final { scan-assembler-times "vrlb" 6 { target { le } } } } */
+ 
+ /* { dg-final { scan-assembler-times {vucmpr[lh][nbh]} 6 } } */
+ 
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/future-vupk.c gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/future-vupk.c
*** gcc-16-20260711/gcc/testsuite/gcc.target/powerpc/future-vupk.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gcc.target/powerpc/future-vupk.c	Sat Jul 18 22:32:15 2026
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mdejagnu-cpu=future" } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ 
+ #include <altivec.h>
+ 
+ vector signed char
+ test_unpack_hsn_to_byte(vector unsigned long long a)
+ {
+   return vec_unpack_hsn_to_byte(a);
+ }
+ 
+ vector signed char
+ test_unpack_lsn_to_byte(vector unsigned long long a)
+ {
+   return vec_unpack_lsn_to_byte(a);
+ }
+ 
+ vector unsigned char
+ test_unpack_int4_to_bf16(vector unsigned short a)
+ {
+   return vec_unpack_int4_to_bf16(a, 0);
+ }
+ 
+ vector unsigned char
+ test_unpack_int8_to_bf16(vector unsigned short a)
+ {
+   return vec_unpack_int8_to_bf16(a, 0);
+ }
+ 
+ vector float
+ test_unpack_int4_to_fp32(vector unsigned int a)
+ {
+   return vec_unpack_int4_to_fp32(a, 0);
+ }
+ 
+ vector float
+ test_unpack_int8_to_fp32(vector unsigned int a)
+ {
+   return vec_unpack_int8_to_fp32(a, 0);
+ }
+ 
+ 
+ /* { dg-final { scan-assembler-times "xxbrq" 2 { target { vsx_hw && le } }  } } */
+ 
+ /* { dg-final { scan-assembler-times "vupkhsntob" 1  } } */
+ /* { dg-final { scan-assembler-times "vupklsntob" 1  } } */
+ /* { dg-final { scan-assembler-times "vupkint4tobf16" 1 } } */
+ /* { dg-final { scan-assembler-times "vupkint8tobf16" 1 } } */
+ /* { dg-final { scan-assembler-times "vupkint4tofp32" 1 } } */
+ /* { dg-final { scan-assembler-times "vupkint8tofp32" 1 } } */
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gfortran.dg/associate_79.f90 gcc-16-20260718/gcc/testsuite/gfortran.dg/associate_79.f90
*** gcc-16-20260711/gcc/testsuite/gfortran.dg/associate_79.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gfortran.dg/associate_79.f90	Sat Jul 18 22:32:16 2026
***************
*** 0 ****
--- 1,34 ----
+ ! { dg-do run }
+ !
+ ! Verify that an associate-name whose target is a call to an internal
+ ! procedure (CONTAINS in a program) gets the correct declared kind from
+ ! the function's return type, instead of falling back to default kind.
+ !
+ program demo
+   use, intrinsic :: iso_fortran_env, only: wp => real64
+   implicit none
+   complex(wp) :: z
+   real(wp) :: re_ref, im_ref
+ 
+   z = (1.0_wp, 2.0_wp)
+   re_ref = real (sin (z), wp)
+   im_ref = aimag (sin (z))
+ 
+   associate (k => myfunc (z))
+     if (kind (k%re) /= kind (1.0_wp)) stop 1
+     if (kind (k%im) /= kind (1.0_wp)) stop 2
+     if (kind (aimag (k)) /= kind (1.0_wp)) stop 3
+     if (abs (k%re - re_ref) > 1.0e-12_wp) stop 4
+     if (abs (k%im - im_ref) > 1.0e-12_wp) stop 5
+     if (abs (aimag (k) - im_ref) > 1.0e-12_wp) stop 6
+   end associate
+ 
+ contains
+ 
+   complex(wp) function myfunc (x)
+     complex(wp), intent(in) :: x
+     myfunc = sin (x)
+   end function myfunc
+ 
+ end program demo
+ 
diff -Nrcpad gcc-16-20260711/gcc/testsuite/gfortran.dg/pr126234.f90 gcc-16-20260718/gcc/testsuite/gfortran.dg/pr126234.f90
*** gcc-16-20260711/gcc/testsuite/gfortran.dg/pr126234.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260718/gcc/testsuite/gfortran.dg/pr126234.f90	Sat Jul 18 22:32:16 2026
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do compile }
+ !
+ ! PR fortran/126234
+ ! Test case derived from the PR example
+ module amod
+   real, parameter :: a1 = 1.0
+ end module amod
+ 
+ module bmod
+   real, parameter :: a1 = 2.0
+ end module bmod
+ 
+ module cmod
+   use amod
+ end module cmod
+ 
+ module mmod
+   use amod
+   use bmod
+ contains
+   subroutine sub (x)
+     use cmod
+     real :: x
+     x = 1.0
+   end subroutine sub
+ end module mmod
diff -Nrcpad gcc-16-20260711/gcc/testsuite/lib/target-supports.exp gcc-16-20260718/gcc/testsuite/lib/target-supports.exp
*** gcc-16-20260711/gcc/testsuite/lib/target-supports.exp	Sat Jul 11 22:32:17 2026
--- gcc-16-20260718/gcc/testsuite/lib/target-supports.exp	Sat Jul 18 22:32:17 2026
*************** proc check_effective_target_arm_v8_1m_mv
*** 7091,7096 ****
--- 7091,7113 ----
  		check_effective_target_arm_v8_1m_mve_ok_nocache]
  }
  
+ # Return 1 if the target can link ARMv8.1-M MVE code using the
+ # options selected by arm_v8_1m_mve_ok, 0 otherwise.
+ 
+ proc check_effective_target_arm_v8_1m_mve_link { } {
+     if { ![check_effective_target_arm_v8_1m_mve_ok] } {
+ 	return 0
+     }
+ 
+     return [check_no_compiler_messages arm_v8_1m_mve_link executable {
+ 	int
+ 	main (void)
+ 	{
+ 	  return 0;
+ 	}
+     } [add_options_for_arm_v8_1m_mve ""]]
+ }
+ 
  proc add_options_for_arm_v8_1m_mve { flags } {
      if { ! [check_effective_target_arm_v8_1m_mve_ok] } {
  	return "$flags"
diff -Nrcpad gcc-16-20260711/gcc/tree-cfg.cc gcc-16-20260718/gcc/tree-cfg.cc
*** gcc-16-20260711/gcc/tree-cfg.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/tree-cfg.cc	Sat Jul 18 22:32:17 2026
*************** replace_uses_by (tree name, tree val)
*** 1940,1945 ****
--- 1940,1946 ----
    use_operand_p use;
    gimple *stmt;
    edge e;
+   auto_bitmap eh_cleanup_bbs;
  
    FOR_EACH_IMM_USE_STMT (stmt, imm_iter, name)
      {
*************** replace_uses_by (tree name, tree val)
*** 1997,2006 ****
  	    }
  
  	  if (maybe_clean_or_replace_eh_stmt (orig_stmt, stmt))
! 	    gimple_purge_dead_eh_edges (gimple_bb (stmt));
  	}
      }
  
    gcc_checking_assert (has_zero_uses (name));
  
    /* Also update the trees stored in loop structures.  */
--- 1998,2010 ----
  	    }
  
  	  if (maybe_clean_or_replace_eh_stmt (orig_stmt, stmt))
! 	    bitmap_set_bit (eh_cleanup_bbs, gimple_bb (stmt)->index);
  	}
      }
  
+   if (!bitmap_empty_p (eh_cleanup_bbs))
+     gimple_purge_all_dead_eh_edges (eh_cleanup_bbs);
+ 
    gcc_checking_assert (has_zero_uses (name));
  
    /* Also update the trees stored in loop structures.  */
diff -Nrcpad gcc-16-20260711/gcc/tree-ssa-address.cc gcc-16-20260718/gcc/tree-ssa-address.cc
*** gcc-16-20260711/gcc/tree-ssa-address.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/tree-ssa-address.cc	Sat Jul 18 22:32:17 2026
*************** add_to_parts (struct mem_address *parts,
*** 546,555 ****
        return;
      }
  
!   /* Add ELT to base.  */
    type = TREE_TYPE (parts->base);
    if (POINTER_TYPE_P (type))
!     parts->base = fold_build_pointer_plus (parts->base, elt);
    else
      parts->base = fold_build2 (PLUS_EXPR, type, parts->base, elt);
  }
--- 546,560 ----
        return;
      }
  
!   /* Add ELT to base.  As we have arbitrarily associated address parts
!      make sure to use unsigned arithmetic.  */
    type = TREE_TYPE (parts->base);
    if (POINTER_TYPE_P (type))
!     parts->base
!       = fold_convert (TREE_TYPE (parts->base),
! 		      fold_build2 (PLUS_EXPR, sizetype,
! 				   fold_convert (sizetype, parts->base),
! 				   fold_convert (sizetype, elt)));
    else
      parts->base = fold_build2 (PLUS_EXPR, type, parts->base, elt);
  }
diff -Nrcpad gcc-16-20260711/gcc/tree-ssa-forwprop.cc gcc-16-20260718/gcc/tree-ssa-forwprop.cc
*** gcc-16-20260711/gcc/tree-ssa-forwprop.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/tree-ssa-forwprop.cc	Sat Jul 18 22:32:17 2026
*************** forward_propagate_addr_expr_1 (tree name
*** 770,777 ****
  	      new_base = build_fold_addr_expr (*def_rhs_basep);
  	      new_offset = TREE_OPERAND (lhs, 1);
  	    }
! 	  *def_rhs_basep = build2 (MEM_REF, TREE_TYPE (*def_rhs_basep),
! 				   new_base, new_offset);
  	  TREE_THIS_VOLATILE (*def_rhs_basep) = TREE_THIS_VOLATILE (lhs);
  	  TREE_SIDE_EFFECTS (*def_rhs_basep) = TREE_SIDE_EFFECTS (lhs);
  	  TREE_THIS_NOTRAP (*def_rhs_basep) = TREE_THIS_NOTRAP (lhs);
--- 770,779 ----
  	      new_base = build_fold_addr_expr (*def_rhs_basep);
  	      new_offset = TREE_OPERAND (lhs, 1);
  	    }
! 	  tree atype = TREE_TYPE (*def_rhs_basep);
! 	  if (TYPE_ALIGN (TREE_TYPE (lhs)) < TYPE_ALIGN (atype))
! 	    atype = build_aligned_type (atype, TYPE_ALIGN (TREE_TYPE (lhs)));
! 	  *def_rhs_basep = build2 (MEM_REF, atype, new_base, new_offset);
  	  TREE_THIS_VOLATILE (*def_rhs_basep) = TREE_THIS_VOLATILE (lhs);
  	  TREE_SIDE_EFFECTS (*def_rhs_basep) = TREE_SIDE_EFFECTS (lhs);
  	  TREE_THIS_NOTRAP (*def_rhs_basep) = TREE_THIS_NOTRAP (lhs);
*************** forward_propagate_addr_expr_1 (tree name
*** 856,863 ****
  	      new_base = build_fold_addr_expr (*def_rhs_basep);
  	      new_offset = TREE_OPERAND (rhs, 1);
  	    }
! 	  *def_rhs_basep = build2 (MEM_REF, TREE_TYPE (*def_rhs_basep),
! 				   new_base, new_offset);
  	  TREE_THIS_VOLATILE (*def_rhs_basep) = TREE_THIS_VOLATILE (rhs);
  	  TREE_SIDE_EFFECTS (*def_rhs_basep) = TREE_SIDE_EFFECTS (rhs);
  	  TREE_THIS_NOTRAP (*def_rhs_basep) = TREE_THIS_NOTRAP (rhs);
--- 858,867 ----
  	      new_base = build_fold_addr_expr (*def_rhs_basep);
  	      new_offset = TREE_OPERAND (rhs, 1);
  	    }
! 	  tree atype = TREE_TYPE (*def_rhs_basep);
! 	  if (TYPE_ALIGN (TREE_TYPE (rhs)) < TYPE_ALIGN (atype))
! 	    atype = build_aligned_type (atype, TYPE_ALIGN (TREE_TYPE (rhs)));
! 	  *def_rhs_basep = build2 (MEM_REF, atype, new_base, new_offset);
  	  TREE_THIS_VOLATILE (*def_rhs_basep) = TREE_THIS_VOLATILE (rhs);
  	  TREE_SIDE_EFFECTS (*def_rhs_basep) = TREE_SIDE_EFFECTS (rhs);
  	  TREE_THIS_NOTRAP (*def_rhs_basep) = TREE_THIS_NOTRAP (rhs);
diff -Nrcpad gcc-16-20260711/gcc/tree-ssa-pre.cc gcc-16-20260718/gcc/tree-ssa-pre.cc
*** gcc-16-20260711/gcc/tree-ssa-pre.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/tree-ssa-pre.cc	Sat Jul 18 22:32:17 2026
*************** static void
*** 2140,2161 ****
  clean (bitmap_set_t set1, bitmap_set_t set2 = NULL)
  {
    vec<pre_expr> exprs = sorted_array_from_bitmap_set (set1, false);
!   pre_expr expr;
!   int i;
  
!   FOR_EACH_VEC_ELT (exprs, i, expr)
      {
!       if (!valid_in_sets (set1, set2, expr))
  	{
! 	  unsigned int val  = get_expr_value_id (expr);
! 	  bitmap_clear_bit (&set1->expressions, get_expression_id (expr));
! 	  /* We are entered with possibly multiple expressions for a value
! 	     so before removing a value from the set see if there's an
! 	     expression for it left.  */
! 	  if (! bitmap_find_leader (set1, val))
! 	    bitmap_clear_bit (&set1->values, val);
  	}
      }
    exprs.release ();
  
    if (flag_checking)
--- 2140,2177 ----
  clean (bitmap_set_t set1, bitmap_set_t set2 = NULL)
  {
    vec<pre_expr> exprs = sorted_array_from_bitmap_set (set1, false);
!   bool changed;
  
!   do
      {
!       unsigned j = 0;
!       changed = false;
!       for (unsigned i = 0; i < exprs.length (); ++i)
  	{
! 	  pre_expr expr = exprs[i];
! 	  if (!valid_in_sets (set1, set2, expr))
! 	    {
! 	      unsigned int val = get_expr_value_id (expr);
! 	      bitmap_clear_bit (&set1->expressions, get_expression_id (expr));
! 	      /* We are entered with possibly multiple expressions for a value
! 		 so before removing a value from the set see if there's an
! 		 expression for it left.  */
! 	      if (! bitmap_find_leader (set1, val))
! 		{
! 		  bitmap_clear_bit (&set1->values, val);
! 		  changed = true;
! 		}
! 	    }
! 	  else
! 	    {
! 	      exprs[j] = expr;
! 	      ++j;
! 	    }
  	}
+       exprs.truncate (j);
      }
+   /* As the value graph can have cycles we have to iterate here.  */
+   while (changed);
    exprs.release ();
  
    if (flag_checking)
diff -Nrcpad gcc-16-20260711/gcc/tree-ssa-reassoc.cc gcc-16-20260718/gcc/tree-ssa-reassoc.cc
*** gcc-16-20260711/gcc/tree-ssa-reassoc.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/tree-ssa-reassoc.cc	Sat Jul 18 22:32:17 2026
*************** optimize_vec_cond_expr (tree_code opcode
*** 4264,4270 ****
  
    for (i = 0; i < length; ++i)
      {
!       tree elt0 = (*ops)[i]->op;
  
        gassign *stmt0, *vcond0;
        bool invert;
--- 4264,4270 ----
  
    for (i = 0; i < length; ++i)
      {
!       tree &elt0 = (*ops)[i]->op;
  
        gassign *stmt0, *vcond0;
        bool invert;
*************** optimize_vec_cond_expr (tree_code opcode
*** 4312,4322 ****
  	  gimple_stmt_iterator gsi = gsi_for_stmt (vcond0);
  	  tree exp = force_gimple_operand_gsi (&gsi, comb, true, NULL_TREE,
  					       true, GSI_SAME_STMT);
! 	  if (invert)
! 	    swap_ssa_operands (vcond0, gimple_assign_rhs2_ptr (vcond0),
! 			       gimple_assign_rhs3_ptr (vcond0));
! 	  gimple_assign_set_rhs1 (vcond0, exp);
! 	  update_stmt (vcond0);
  
  	  elt1 = error_mark_node;
  	  any_changes = true;
--- 4312,4324 ----
  	  gimple_stmt_iterator gsi = gsi_for_stmt (vcond0);
  	  tree exp = force_gimple_operand_gsi (&gsi, comb, true, NULL_TREE,
  					       true, GSI_SAME_STMT);
! 	  tree res = gimple_build (&gsi, true, GSI_SAME_STMT, UNKNOWN_LOCATION,
! 				   VEC_COND_EXPR, TREE_TYPE (elt0), exp,
! 				   constant_boolean_node (true,
! 							  TREE_TYPE (elt0)),
! 				   constant_boolean_node (false,
! 							  TREE_TYPE (elt0)));
! 	  elt0 = res;
  
  	  elt1 = error_mark_node;
  	  any_changes = true;
diff -Nrcpad gcc-16-20260711/gcc/tree-vect-generic.cc gcc-16-20260718/gcc/tree-vect-generic.cc
*** gcc-16-20260711/gcc/tree-vect-generic.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/tree-vect-generic.cc	Sat Jul 18 22:32:17 2026
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1640,1715 ****
  	mask = gimple_assign_rhs1 (def_stmt);
      }
  
-   vec_perm_builder sel_int;
  
    if (TREE_CODE (mask) == VECTOR_CST
!       && tree_to_vec_perm_builder (&sel_int, mask))
      {
-       vec_perm_indices indices (sel_int, 2, in_elements);
        machine_mode vmode = TYPE_MODE (vect_type);
        tree lhs_type = TREE_TYPE (gimple_assign_lhs (stmt));
        machine_mode lhs_mode = TYPE_MODE (lhs_type);
!       if (can_vec_perm_const_p (lhs_mode, vmode, indices))
  	{
  	  gimple_assign_set_rhs3 (stmt, mask);
  	  update_stmt (stmt);
  	  return;
  	}
-       /* Also detect vec_shr pattern - VEC_PERM_EXPR with zero
- 	 vector as VEC1 and a right element shift MASK.  */
-       if (can_implement_p (vec_shr_optab, TYPE_MODE (vect_type))
- 	  && TREE_CODE (vec1) == VECTOR_CST
- 	  && initializer_zerop (vec1)
- 	  && maybe_ne (indices[0], 0)
- 	  && known_lt (poly_uint64 (indices[0]), elements))
- 	{
- 	  bool ok_p = indices.series_p (0, 1, indices[0], 1);
- 	  if (!ok_p)
- 	    {
- 	      for (i = 1; i < elements; ++i)
- 		{
- 		  poly_uint64 actual = indices[i];
- 		  poly_uint64 expected = i + indices[0];
- 		  /* Indices into the second vector are all equivalent.  */
- 		  if (maybe_lt (actual, elements)
- 		      ? maybe_ne (actual, expected)
- 		      : maybe_lt (expected, elements))
- 		    break;
- 		}
- 	      ok_p = i == elements;
- 	    }
- 	  if (ok_p)
- 	    {
- 	      gimple_assign_set_rhs3 (stmt, mask);
- 	      update_stmt (stmt);
- 	      return;
- 	    }
- 	}
-       /* And similarly vec_shl pattern.  */
-       if (can_implement_p (vec_shl_optab, TYPE_MODE (vect_type))
- 	  && TREE_CODE (vec0) == VECTOR_CST
- 	  && initializer_zerop (vec0))
- 	{
- 	  unsigned int first = 0;
- 	  for (i = 0; i < elements; ++i)
- 	    if (known_eq (poly_uint64 (indices[i]), elements))
- 	      {
- 		if (i == 0 || first)
- 		  break;
- 		first = i;
- 	      }
- 	    else if (first
- 		     ? maybe_ne (poly_uint64 (indices[i]),
- 					      elements + i - first)
- 		     : maybe_ge (poly_uint64 (indices[i]), elements))
- 	      break;
- 	  if (first && i == elements)
- 	    {
- 	      gimple_assign_set_rhs3 (stmt, mask);
- 	      update_stmt (stmt);
- 	      return;
- 	    }
- 	}
      }
    else if (can_vec_perm_var_p (TYPE_MODE (vect_type)))
      return;
--- 1640,1659 ----
  	mask = gimple_assign_rhs1 (def_stmt);
      }
  
  
+   vec_perm_indices indices;
    if (TREE_CODE (mask) == VECTOR_CST
!       && tree_to_vec_perm_indices (&indices, vec0, vec1, mask))
      {
        machine_mode vmode = TYPE_MODE (vect_type);
        tree lhs_type = TREE_TYPE (gimple_assign_lhs (stmt));
        machine_mode lhs_mode = TYPE_MODE (lhs_type);
!       if (can_vec_perm_const_p (lhs_mode, vmode, indices, true))
  	{
  	  gimple_assign_set_rhs3 (stmt, mask);
  	  update_stmt (stmt);
  	  return;
  	}
      }
    else if (can_vec_perm_var_p (TYPE_MODE (vect_type)))
      return;
diff -Nrcpad gcc-16-20260711/gcc/vec-perm-indices.cc gcc-16-20260718/gcc/vec-perm-indices.cc
*** gcc-16-20260711/gcc/vec-perm-indices.cc	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/vec-perm-indices.cc	Sat Jul 18 22:32:17 2026
*************** along with GCC; see the file COPYING3.
*** 31,36 ****
--- 31,37 ----
  #include "selftest.h"
  #include "rtx-vector-builder.h"
  
+ 
  /* Switch to a new permutation vector that selects between NINPUTS vector
     inputs that have NELTS_PER_INPUT elements each.  Take the elements of the
     new permutation vector from ELEMENTS, clamping each one to be in range.  */
*************** along with GCC; see the file COPYING3.
*** 38,47 ****
--- 39,52 ----
  void
  vec_perm_indices::new_vector (const vec_perm_builder &elements,
  			      unsigned int ninputs,
+ 			      bool input0_bitwise_zero_p,
+ 			      bool input1_bitwise_zero_p,
  			      poly_uint64 nelts_per_input)
  {
    m_ninputs = ninputs;
    m_nelts_per_input = nelts_per_input;
+   m_input0_bitwise_zero_p = input0_bitwise_zero_p;
+   m_input1_bitwise_zero_p = input1_bitwise_zero_p;
    /* If the vector has a constant number of elements, expand the
       encoding and clamp each element.  E.g. { 0, 2, 4, ... } might
       wrap halfway if there is only one vector input, and we want
*************** vec_perm_indices::new_expanded_vector (c
*** 87,92 ****
--- 92,99 ----
  				       unsigned int factor)
  {
    m_ninputs = orig.m_ninputs;
+   m_input0_bitwise_zero_p = orig.m_input0_bitwise_zero_p;
+   m_input1_bitwise_zero_p = orig.m_input1_bitwise_zero_p;
    m_nelts_per_input = orig.m_nelts_per_input * factor;
    m_encoding.new_vector (orig.m_encoding.full_nelts () * factor,
  			 orig.m_encoding.npatterns () * factor,
*************** tree_to_vec_perm_builder (vec_perm_build
*** 301,306 ****
--- 308,331 ----
    return true;
  }
  
+ /* Try to read the contents of VECTOR_CST PERM_CST as a constant permutation
+    vector permuting OP0 and OP1.  Return true and populate INDICES on success,
+    otherwise return false without modifying INDICES.  */
+ 
+ bool
+ tree_to_vec_perm_indices (vec_perm_indices *indices, tree op0, tree op1,
+ 			  tree perm_cst)
+ {
+   vec_perm_builder builder;
+   if (!tree_to_vec_perm_builder (&builder, perm_cst))
+     return false;
+   indices->new_vector (builder, op0 == op1 ? 1 : 2,
+ 		       initializer_zerop (op0), initializer_zerop (op1),
+ 		       TYPE_VECTOR_SUBPARTS (TREE_TYPE (op0)));
+   return true;
+ }
+ 
+ 
  /* Return a VECTOR_CST of type TYPE for the permutation vector in INDICES.  */
  
  tree
diff -Nrcpad gcc-16-20260711/gcc/vec-perm-indices.h gcc-16-20260718/gcc/vec-perm-indices.h
*** gcc-16-20260711/gcc/vec-perm-indices.h	Sat Jul 11 22:32:18 2026
--- gcc-16-20260718/gcc/vec-perm-indices.h	Sat Jul 18 22:32:17 2026
*************** public:
*** 55,61 ****
    vec_perm_indices ();
    vec_perm_indices (const vec_perm_builder &, unsigned int, poly_uint64);
  
!   void new_vector (const vec_perm_builder &, unsigned int, poly_uint64);
    void new_expanded_vector (const vec_perm_indices &, unsigned int);
    bool new_shrunk_vector (const vec_perm_indices &, unsigned int);
    void rotate_inputs (int delta);
--- 55,66 ----
    vec_perm_indices ();
    vec_perm_indices (const vec_perm_builder &, unsigned int, poly_uint64);
  
!   void new_vector (const vec_perm_builder &b, unsigned int ni, poly_uint64 ne)
!   {
!     new_vector (b, ni, false, false, ne);
!   }
!   void new_vector (const vec_perm_builder &, unsigned int, bool, bool,
! 		   poly_uint64);
    void new_expanded_vector (const vec_perm_indices &, unsigned int);
    bool new_shrunk_vector (const vec_perm_indices &, unsigned int);
    void rotate_inputs (int delta);
*************** public:
*** 70,75 ****
--- 75,87 ----
    /* Return the number of input vectors being permuted.  */
    unsigned int ninputs () const { return m_ninputs; }
  
+   /* Return whether the input N is known bitwise zero.  */
+   bool input_bitwise_zero_p (unsigned n) const
+   {
+     return (n == 0 ? m_input0_bitwise_zero_p
+ 	    : (n == 1 ? m_input1_bitwise_zero_p : false));
+   }
+ 
    /* Return the number of elements in each input vector.  */
    poly_uint64 nelts_per_input () const { return m_nelts_per_input; }
  
*************** private:
*** 87,102 ****
--- 99,119 ----
  
    vec_perm_builder m_encoding;
    unsigned int m_ninputs;
+   bool m_input0_bitwise_zero_p;
+   bool m_input1_bitwise_zero_p;
    poly_uint64 m_nelts_per_input;
  };
  
  bool tree_to_vec_perm_builder (vec_perm_builder *, tree);
+ bool tree_to_vec_perm_indices (vec_perm_indices *, tree, tree, tree);
  tree vec_perm_indices_to_tree (tree, const vec_perm_indices &);
  rtx vec_perm_indices_to_rtx (machine_mode, const vec_perm_indices &);
  
  inline
  vec_perm_indices::vec_perm_indices ()
    : m_ninputs (0),
+     m_input0_bitwise_zero_p (false),
+     m_input1_bitwise_zero_p (false),
      m_nelts_per_input (0)
  {
  }
*************** vec_perm_indices::vec_perm_indices (cons
*** 110,116 ****
  				    unsigned int ninputs,
  				    poly_uint64 nelts_per_input)
  {
!   new_vector (elements, ninputs, nelts_per_input);
  }
  
  /* Return the canonical value for permutation vector element ELT,
--- 127,133 ----
  				    unsigned int ninputs,
  				    poly_uint64 nelts_per_input)
  {
!   new_vector (elements, ninputs, false, false, nelts_per_input);
  }
  
  /* Return the canonical value for permutation vector element ELT,
diff -Nrcpad gcc-16-20260711/libiberty/ChangeLog gcc-16-20260718/libiberty/ChangeLog
*** gcc-16-20260711/libiberty/ChangeLog	Sat Jul 11 22:32:19 2026
--- gcc-16-20260718/libiberty/ChangeLog	Sat Jul 18 22:32:19 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-07-16  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	Backported from master:
+ 	2026-06-10  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* simple-object-mach-o.c (MACH_O_MH_DYLIB): New definition.
+ 	(simple_object_mach_o_match): Accept dylibs as well as object files.
+ 
  2026-04-30  Release Manager
  
  	* GCC 16.1.0 released.
diff -Nrcpad gcc-16-20260711/libiberty/simple-object-mach-o.c gcc-16-20260718/libiberty/simple-object-mach-o.c
*** gcc-16-20260711/libiberty/simple-object-mach-o.c	Sat Jul 11 22:32:19 2026
--- gcc-16-20260718/libiberty/simple-object-mach-o.c	Sat Jul 18 22:32:19 2026
*************** struct mach_o_header_64
*** 78,83 ****
--- 78,84 ----
  /* For filetype field in header.  */
  
  #define MACH_O_MH_OBJECT		0x01
+ #define MACH_O_MH_DYLIB			0x06
  
  /* A Mach-O file is a list of load commands.  This is the header of a
     load command.  */
*************** simple_object_mach_o_match (
*** 312,320 ****
    b = &buf[0];
  
    filetype = (*fetch_32) (b + offsetof (struct mach_o_header_32, filetype));
!   if (filetype != MACH_O_MH_OBJECT)
      {
!       *errmsg = "Mach-O file is not object file";
        *err = 0;
        return NULL;
      }
--- 313,321 ----
    b = &buf[0];
  
    filetype = (*fetch_32) (b + offsetof (struct mach_o_header_32, filetype));
!   if (!(filetype == MACH_O_MH_OBJECT || filetype == MACH_O_MH_DYLIB))
      {
!       *errmsg = "Mach-O file is neither object file nor dylib";
        *err = 0;
        return NULL;
      }
diff -Nrcpad gcc-16-20260711/libstdc++-v3/ChangeLog gcc-16-20260718/libstdc++-v3/ChangeLog
*** gcc-16-20260711/libstdc++-v3/ChangeLog	Sat Jul 11 22:32:20 2026
--- gcc-16-20260718/libstdc++-v3/ChangeLog	Sat Jul 18 22:32:19 2026
***************
*** 1,3 ****
--- 1,17 ----
+ 2026-07-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/126111
+ 	* include/std/format (__format::__write_escape_seq): Remove
+ 	unnecessary alias declaration.
+ 	* include/std/spanstream (wspanbuf, wispanstream, wospanstream)
+ 	(wspanstream): Only declare for _GLIBCXX_USE_WCHAR_T.
+ 	* include/std/syncstream (wsyncbuf wosyncstream): Likewise.
+ 	* src/c++23/std.cc.in: Add preprocessor checks for
+ 	_GLIBCXX_USE_WCHAR_T to names which depend on it.
+ 
  2026-07-01  Matthias Kretz  <m.kretz@gsi.de>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260711/libstdc++-v3/include/std/format gcc-16-20260718/libstdc++-v3/include/std/format
*** gcc-16-20260711/libstdc++-v3/include/std/format	Sat Jul 11 22:32:20 2026
--- gcc-16-20260718/libstdc++-v3/include/std/format	Sat Jul 18 22:32:20 2026
*************** namespace __format
*** 1053,1059 ****
      __write_escape_seq(_Out __out, uint_least32_t __val,
  		       basic_string_view<_CharT> __prefix)
      {
-       using _Str_view = basic_string_view<_CharT>;
        constexpr size_t __max = 8;
        char __buf[__max];
        const string_view __narrow(
--- 1053,1058 ----
*************** namespace __format
*** 1068,1077 ****
  #ifdef _GLIBCXX_USE_WCHAR_T
        else
  	{
! 	  _CharT __wbuf[__max];
  	  const size_t __n = __narrow.size();
  	  std::__to_wstring_numeric(__narrow.data(), __n, __wbuf);
! 	  __out = __format::__write(__out, _Str_view(__wbuf, __n));
  	}
  #endif
        *__out = _Separators<_CharT>::_S_braces()[1];
--- 1067,1076 ----
  #ifdef _GLIBCXX_USE_WCHAR_T
        else
  	{
! 	  wchar_t __wbuf[__max];
  	  const size_t __n = __narrow.size();
  	  std::__to_wstring_numeric(__narrow.data(), __n, __wbuf);
! 	  __out = __format::__write(__out, wstring_view(__wbuf, __n));
  	}
  #endif
        *__out = _Separators<_CharT>::_S_braces()[1];
diff -Nrcpad gcc-16-20260711/libstdc++-v3/include/std/spanstream gcc-16-20260718/libstdc++-v3/include/std/spanstream
*** gcc-16-20260711/libstdc++-v3/include/std/spanstream	Sat Jul 11 22:32:20 2026
--- gcc-16-20260718/libstdc++-v3/include/std/spanstream	Sat Jul 18 22:32:20 2026
*************** template<typename _CharT, typename _Trai
*** 224,230 ****
--- 224,232 ----
    { __x.swap(__y); }
  
  using spanbuf = basic_spanbuf<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wspanbuf = basic_spanbuf<wchar_t>;
+ #endif
  
  template<typename _CharT, typename _Traits>
    class basic_ispanstream
*************** template<typename _CharT, typename _Trai
*** 318,324 ****
--- 320,328 ----
    { __x.swap(__y); }
  
  using ispanstream = basic_ispanstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wispanstream = basic_ispanstream<wchar_t>;
+ #endif
  
  template<typename _CharT, typename _Traits>
    class basic_ospanstream
*************** template<typename _CharT, typename _Trai
*** 388,394 ****
--- 392,400 ----
    { __x.swap(__y); }
  
  using ospanstream = basic_ospanstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wospanstream = basic_ospanstream<wchar_t>;
+ #endif
  
  template<typename _CharT, typename _Traits>
    class basic_spanstream
*************** template<typename _CharT, typename _Trai
*** 458,464 ****
--- 464,472 ----
    { __x.swap(__y); }
  
  using spanstream = basic_spanstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wspanstream = basic_spanstream<wchar_t>;
+ #endif
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
diff -Nrcpad gcc-16-20260711/libstdc++-v3/include/std/syncstream gcc-16-20260718/libstdc++-v3/include/std/syncstream
*** gcc-16-20260711/libstdc++-v3/include/std/syncstream	Sat Jul 11 22:32:20 2026
--- gcc-16-20260718/libstdc++-v3/include/std/syncstream	Sat Jul 18 22:32:20 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 298,307 ****
      { __x.swap(__y); }
  
    using syncbuf = basic_syncbuf<char>;
-   using wsyncbuf = basic_syncbuf<wchar_t>;
- 
    using osyncstream = basic_osyncstream<char>;
    using wosyncstream = basic_osyncstream<wchar_t>;
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
  #endif // __cpp_lib_syncbuf
--- 298,308 ----
      { __x.swap(__y); }
  
    using syncbuf = basic_syncbuf<char>;
    using osyncstream = basic_osyncstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using wsyncbuf = basic_syncbuf<wchar_t>;
    using wosyncstream = basic_osyncstream<wchar_t>;
+ #endif
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
  #endif // __cpp_lib_syncbuf
diff -Nrcpad gcc-16-20260711/libstdc++-v3/src/c++23/std.cc.in gcc-16-20260718/libstdc++-v3/src/c++23/std.cc.in
*** gcc-16-20260711/libstdc++-v3/src/c++23/std.cc.in	Sat Jul 11 22:32:20 2026
--- gcc-16-20260718/libstdc++-v3/src/c++23/std.cc.in	Sat Jul 18 22:32:20 2026
*************** export namespace std
*** 1368,1384 ****
  #endif
    using std::formatter;
    using std::make_format_args;
-   using std::make_wformat_args;
  #if __cpp_lib_format >= 202603L // >= C++26
    using std::dynamic_format;
  #endif
    using std::vformat;
    using std::vformat_to;
    using std::visit_format_arg;
    using std::wformat_args;
    using std::wformat_context;
    using std::wformat_parse_context;
    using std::wformat_string;
  #ifdef __cpp_lib_format_ranges
    using std::format_kind;
    using std::range_format;
--- 1368,1386 ----
  #endif
    using std::formatter;
    using std::make_format_args;
  #if __cpp_lib_format >= 202603L // >= C++26
    using std::dynamic_format;
  #endif
    using std::vformat;
    using std::vformat_to;
    using std::visit_format_arg;
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using std::make_wformat_args;
    using std::wformat_args;
    using std::wformat_context;
    using std::wformat_parse_context;
    using std::wformat_string;
+ #endif
  #ifdef __cpp_lib_format_ranges
    using std::format_kind;
    using std::range_format;
*************** export namespace std
*** 1416,1425 ****
--- 1418,1429 ----
    using std::ifstream;
    using std::ofstream;
    using std::swap;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wfilebuf;
    using std::wfstream;
    using std::wifstream;
    using std::wofstream;
+ #endif
  }
  
  // <functional>
*************** export namespace std
*** 1620,1626 ****
--- 1624,1632 ----
    using std::streamsize;
    using std::unitbuf;
    using std::uppercase;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wios;
+ #endif
  }
  
  // <iosfwd>
*************** export namespace std
*** 1639,1647 ****
--- 1645,1655 ----
    using std::basic_syncbuf;
    using std::osyncstream;
    using std::syncbuf;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wosyncstream;
    using std::wsyncbuf;
  #endif
+ #endif
  }
  
  // <iostream>
*************** export namespace std
*** 1651,1660 ****
--- 1659,1670 ----
    using std::cin;
    using std::clog;
    using std::cout;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wcerr;
    using std::wcin;
    using std::wclog;
    using std::wcout;
+ #endif
  }
  
  // <istream>
*************** export namespace std
*** 1664,1671 ****
--- 1674,1683 ----
    using std::basic_istream;
    using std::iostream;
    using std::istream;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wiostream;
    using std::wistream;
+ #endif
    using std::ws;
    using std::operator>>;
  }
*************** export namespace std
*** 2487,2493 ****
--- 2499,2507 ----
    using std::ends;
    using std::flush;
    using std::ostream;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wostream;
+ #endif
    using std::operator<<;
  #ifdef __cpp_lib_syncbuf
    using std::emit_on_flush;
*************** export namespace std
*** 2916,2924 ****
--- 2930,2940 ----
    using std::ssub_match;
    using std::sub_match;
    using std::swap;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wcsub_match;
    using std::wregex;
    using std::wssub_match;
+ #endif
    using std::operator==;
    using std::operator<=>;
    using std::operator<<;
*************** export namespace std
*** 2934,2954 ****
--- 2950,2974 ----
    using std::smatch;
    using std::sregex_iterator;
    using std::sregex_token_iterator;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wcmatch;
    using std::wcregex_iterator;
    using std::wcregex_token_iterator;
    using std::wsmatch;
    using std::wsregex_iterator;
    using std::wsregex_token_iterator;
+ #endif
    namespace pmr
    {
  #if _GLIBCXX_USE_CXX11_ABI
      using std::pmr::cmatch;
      using std::pmr::match_results;
      using std::pmr::smatch;
+ #ifdef _GLIBCXX_USE_WCHAR_T
      using std::pmr::wcmatch;
      using std::pmr::wsmatch;
  #endif
+ #endif
    }
  }
  
*************** export namespace std
*** 3020,3036 ****
  export namespace std
  {
    using std::basic_spanbuf;
-   using std::spanbuf;
-   using std::wspanbuf;
    using std::basic_ispanstream;
-   using std::ispanstream;
-   using std::wispanstream;
    using std::basic_ospanstream;
-   using std::ospanstream;
-   using std::wospanstream;
    using std::basic_spanstream;
    using std::spanstream;
    using std::wspanstream;
  }
  #endif
  
--- 3040,3058 ----
  export namespace std
  {
    using std::basic_spanbuf;
    using std::basic_ispanstream;
    using std::basic_ospanstream;
    using std::basic_spanstream;
+   using std::spanbuf;
+   using std::ispanstream;
+   using std::ospanstream;
    using std::spanstream;
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using std::wspanbuf;
+   using std::wispanstream;
+   using std::wospanstream;
    using std::wspanstream;
+ #endif
  }
  #endif
  
*************** export namespace std
*** 3046,3055 ****
--- 3068,3079 ----
    using std::stringbuf;
    using std::stringstream;
    using std::swap;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wistringstream;
    using std::wostringstream;
    using std::wstringbuf;
    using std::wstringstream;
+ #endif
  }
  
  // <stack>
*************** export namespace std
*** 3144,3150 ****
--- 3168,3176 ----
  {
    using std::basic_streambuf;
    using std::streambuf;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wstreambuf;
+ #endif
  }
  
  // <string>
*************** export namespace std
*** 3171,3177 ****
--- 3197,3205 ----
    using std::stoull;
    using std::string;
    using std::to_string;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::to_wstring;
+ #endif
    using std::u16string;
    using std::u32string;
    using std::u8string;
*************** export namespace std
*** 3236,3244 ****
--- 3264,3274 ----
    using std::basic_osyncstream;
    using std::osyncstream;
    using std::syncbuf;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wosyncstream;
    using std::wsyncbuf;
  #endif
+ #endif
  }
  
  // 19.5 <system_error>
