diff -Nrcpad gcc-14-20260611/LAST_UPDATED gcc-14-20260618/LAST_UPDATED
*** gcc-14-20260611/LAST_UPDATED	Thu Jun 11 22:32:18 2026
--- gcc-14-20260618/LAST_UPDATED	Thu Jun 18 22:32:20 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision f6db0bbd1566c3e0c8d7c2c758d5221f7246708f
--- 1 ----
! Obtained from git: releases/gcc-14 revision 03de9f71ecc50a3bd928d225879c67199b7236ca
diff -Nrcpad gcc-14-20260611/MD5SUMS gcc-14-20260618/MD5SUMS
*** gcc-14-20260611/MD5SUMS	Thu Jun 11 22:32:23 2026
--- gcc-14-20260618/MD5SUMS	Thu Jun 18 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260611.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260618.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
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! e62aa540de93fcc21538b3b4a79e47c9  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 6ccaaad9fc2128c892fc87b62fa76127  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** bc7394806417778d77541ba1ec0e4a70  gcc/BA
*** 505,511 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 775c2dfd4218704ad71c695523163df0  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 505,511 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! a195fe82cdaa8a19087004a9eec73403  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 230dd2150536b87bb2ef2404aa7ee685  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 541,547 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 7d83f428cbad2a0cf60b63e738c22d02  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** d2e2dbc63c0154344dea94259ba7515b  gcc/cf
*** 3235,3241 ****
  85d2f4cd89ca64ed13cf1784d099c7ef  gcc/cfgloopmanip.h
  a5a13e03513caa40b6e2e78a29c3f9ce  gcc/cfgrtl.cc
  621be2da689efc912f68e163b182acac  gcc/cfgrtl.h
! e96b4639e7fcc608fe111ec89b70504c  gcc/cgraph.cc
  18fbe7f9e2b6016552d7ceefd5509ed3  gcc/cgraph.h
  48d1e1b2c184a043a04232867cbbf4ee  gcc/cgraphbuild.cc
  a9521e7e3672b0a6bdeca1a495ba3627  gcc/cgraphclones.cc
--- 3235,3241 ----
  85d2f4cd89ca64ed13cf1784d099c7ef  gcc/cfgloopmanip.h
  a5a13e03513caa40b6e2e78a29c3f9ce  gcc/cfgrtl.cc
  621be2da689efc912f68e163b182acac  gcc/cfgrtl.h
! 2ffb11c899183c64ce1c764a40c8d083  gcc/cgraph.cc
  18fbe7f9e2b6016552d7ceefd5509ed3  gcc/cgraph.h
  48d1e1b2c184a043a04232867cbbf4ee  gcc/cgraphbuild.cc
  a9521e7e3672b0a6bdeca1a495ba3627  gcc/cgraphclones.cc
*************** d3b3f877b2f7ba7842ef909af5fc5c7b  gcc/co
*** 3325,3331 ****
  8710ba7e69e4eb0fe531cacce5ac0ef7  gcc/config/aarch64/aarch64-cost-tables.h
  19827f863b9abd957d663a067d5b2db2  gcc/config/aarch64/aarch64-d.cc
  4ddea453344c4e39481f379718aed12e  gcc/config/aarch64/aarch64-d.h
! bf0dbcf766e44baeb78443dc7a408d3a  gcc/config/aarch64/aarch64-early-ra.cc
  4d5e3969a5f34509454d8ae9fb320737  gcc/config/aarch64/aarch64-elf-raw.h
  216353ccada5a78e01754365c3eb2d77  gcc/config/aarch64/aarch64-elf.h
  a289174b82942eb716cb2570624a336a  gcc/config/aarch64/aarch64-errata.h
--- 3325,3331 ----
  8710ba7e69e4eb0fe531cacce5ac0ef7  gcc/config/aarch64/aarch64-cost-tables.h
  19827f863b9abd957d663a067d5b2db2  gcc/config/aarch64/aarch64-d.cc
  4ddea453344c4e39481f379718aed12e  gcc/config/aarch64/aarch64-d.h
! f49618f0e3522fd9f35b3cc0f42ec005  gcc/config/aarch64/aarch64-early-ra.cc
  4d5e3969a5f34509454d8ae9fb320737  gcc/config/aarch64/aarch64-elf-raw.h
  216353ccada5a78e01754365c3eb2d77  gcc/config/aarch64/aarch64-elf.h
  a289174b82942eb716cb2570624a336a  gcc/config/aarch64/aarch64-errata.h
*************** d36a2aabdf8da39363d9be0efef739b0  gcc/co
*** 5363,5369 ****
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 477105d2f49229959a60adde249ddc16  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5363,5369 ----
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 85b12fce9466cac8f4caf268913f4b26  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** e5de0a6c0e25db99122b38cfbd158f92  gcc/cp
*** 5446,5452 ****
  4c2302075ee88f154fe1d9d5bc880b38  gcc/cp/name-lookup.h
  9071e61b746a07f7ae419836317ea8d4  gcc/cp/operators.def
  b4ea7976f776ee37fce22b16756ad0e0  gcc/cp/optimize.cc
! 4bc52c47d4aa96b189358fee46c747b2  gcc/cp/parser.cc
  64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
  448339060118bbddc256f35c182e5f15  gcc/cp/pt.cc
  c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
--- 5446,5452 ----
  4c2302075ee88f154fe1d9d5bc880b38  gcc/cp/name-lookup.h
  9071e61b746a07f7ae419836317ea8d4  gcc/cp/operators.def
  b4ea7976f776ee37fce22b16756ad0e0  gcc/cp/optimize.cc
! d1521f58fb9f44240c194e11ce856553  gcc/cp/parser.cc
  64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
  448339060118bbddc256f35c182e5f15  gcc/cp/pt.cc
  c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
*************** a5fc41cc98ae6fa01564177547cd44a6  gcc/et
*** 5854,5860 ****
  2372f40e0b8d7fea3f7a324caf3414f6  gcc/exec-tool.in
  4dd3474c92b4c4f8d54f09023a02eb47  gcc/explow.cc
  57812da28f5183635747d35e64be7fa3  gcc/explow.h
! ce818138311d538d3f0efed2fc6a6543  gcc/expmed.cc
  698a745f400cd248d2a1c1b1bb392dba  gcc/expmed.h
  4c13fbe5fe5a7ee76bdb66a10f238b15  gcc/expr.cc
  b94536f82db12f3d8eb00942b9d6336c  gcc/expr.h
--- 5854,5860 ----
  2372f40e0b8d7fea3f7a324caf3414f6  gcc/exec-tool.in
  4dd3474c92b4c4f8d54f09023a02eb47  gcc/explow.cc
  57812da28f5183635747d35e64be7fa3  gcc/explow.h
! dfec957c408bdb2d495eb70d441b4dff  gcc/expmed.cc
  698a745f400cd248d2a1c1b1bb392dba  gcc/expmed.h
  4c13fbe5fe5a7ee76bdb66a10f238b15  gcc/expr.cc
  b94536f82db12f3d8eb00942b9d6336c  gcc/expr.h
*************** c234572876f75890cc99027aed682b90  gcc/gi
*** 6059,6065 ****
  422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
  1ece622a98fd5bd127baa4493d2fb983  gcc/gimple-expr.cc
  0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! e9c4136d3b6d2c8a5db4605cca8d8ac9  gcc/gimple-fold.cc
  0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
  2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
  c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
--- 6059,6065 ----
  422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
  1ece622a98fd5bd127baa4493d2fb983  gcc/gimple-expr.cc
  0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! e11d0a72564cc6ee2349354a27e269ac  gcc/gimple-fold.cc
  0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
  2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
  c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
*************** fe2179d73ec08d75380b77cd96ef730f  gcc/gi
*** 6087,6093 ****
  14d0498976dc3cac161a8fd059e73540  gcc/gimple-range-cache.h
  c30ab99edc39750d88872cd2cf4bda14  gcc/gimple-range-edge.cc
  b8854cd80bb187319a41cc07e71d2cd4  gcc/gimple-range-edge.h
! 9ebde70f49d9ee959748f601372d3421  gcc/gimple-range-fold.cc
  b4fac90ec25f720d30ee5890677475fd  gcc/gimple-range-fold.h
  68a5b050418b8f44c335239368452be8  gcc/gimple-range-gori.cc
  9b1df29c360a25800cf1f12713f12357  gcc/gimple-range-gori.h
--- 6087,6093 ----
  14d0498976dc3cac161a8fd059e73540  gcc/gimple-range-cache.h
  c30ab99edc39750d88872cd2cf4bda14  gcc/gimple-range-edge.cc
  b8854cd80bb187319a41cc07e71d2cd4  gcc/gimple-range-edge.h
! b869312ce401a54989cd5d2aaf297506  gcc/gimple-range-fold.cc
  b4fac90ec25f720d30ee5890677475fd  gcc/gimple-range-fold.h
  68a5b050418b8f44c335239368452be8  gcc/gimple-range-gori.cc
  9b1df29c360a25800cf1f12713f12357  gcc/gimple-range-gori.h
*************** a8b5cd5c218902eae6bbccc1d0be5b80  gcc/gi
*** 6105,6111 ****
  081816f563209fc8aebe9184dd513969  gcc/gimple-range.cc
  edd45cc78795113879b5ce152a700abc  gcc/gimple-range.h
  193026f77efda4460f36b4a315d31678  gcc/gimple-ssa-backprop.cc
! a0fa65b26e495830df197a8490a2fb49  gcc/gimple-ssa-isolate-paths.cc
  2fc6c230ffcb053416f70f12a4b75355  gcc/gimple-ssa-nonnull-compare.cc
  b23005df27991a89a55c9670c9293f53  gcc/gimple-ssa-sccopy.cc
  40a9709570d315119e4151e29a6e5235  gcc/gimple-ssa-split-paths.cc
--- 6105,6111 ----
  081816f563209fc8aebe9184dd513969  gcc/gimple-range.cc
  edd45cc78795113879b5ce152a700abc  gcc/gimple-range.h
  193026f77efda4460f36b4a315d31678  gcc/gimple-ssa-backprop.cc
! 6f62aaac1fe859981f6558377be01513  gcc/gimple-ssa-isolate-paths.cc
  2fc6c230ffcb053416f70f12a4b75355  gcc/gimple-ssa-nonnull-compare.cc
  b23005df27991a89a55c9670c9293f53  gcc/gimple-ssa-sccopy.cc
  40a9709570d315119e4151e29a6e5235  gcc/gimple-ssa-split-paths.cc
*************** e40310b8dee85f5c92031ddd41ba5409  gcc/ip
*** 6287,6293 ****
  903cac1b9a72c89d66ebdaace79c5bbf  gcc/ipa-modref-tree.h
  368637ab8d1b7d99fea4dc5822d81a68  gcc/ipa-modref.cc
  b04d793fd14925e2ee9fadff3fdb4778  gcc/ipa-modref.h
! 4c04dbefd668da9c0f1cd206fbd6e755  gcc/ipa-param-manipulation.cc
  c0af2050309ae9c2d64886ab2cc82f36  gcc/ipa-param-manipulation.h
  88cd4aec0f60db7b8e89075516093659  gcc/ipa-polymorphic-call.cc
  dffeb86886059ee4946f5ae58ddc8795  gcc/ipa-predicate.cc
--- 6287,6293 ----
  903cac1b9a72c89d66ebdaace79c5bbf  gcc/ipa-modref-tree.h
  368637ab8d1b7d99fea4dc5822d81a68  gcc/ipa-modref.cc
  b04d793fd14925e2ee9fadff3fdb4778  gcc/ipa-modref.h
! bc942c47d9bd8283a526591ef70b4d82  gcc/ipa-param-manipulation.cc
  c0af2050309ae9c2d64886ab2cc82f36  gcc/ipa-param-manipulation.h
  88cd4aec0f60db7b8e89075516093659  gcc/ipa-polymorphic-call.cc
  dffeb86886059ee4946f5ae58ddc8795  gcc/ipa-predicate.cc
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7419,7425 ****
  d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
  db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
  a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! 3b8775dd7c853d2830326f205788cf7c  gcc/match.pd
  3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
  258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
  b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
--- 7419,7425 ----
  d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
  db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
  a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! 0223cc049db597de397e6b0b756b7c37  gcc/match.pd
  3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
  258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
  b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
*************** f10bbd315e3f7d5cf8f33c6e10277944  gcc/re
*** 7584,7590 ****
  78f7bb4149a60eafba8a5dda7bd80729  gcc/ree.cc
  e3d83ae4baa1d776cf5951923617ec90  gcc/reg-notes.def
  35723f09766711c71ebef9ec4f7c41fc  gcc/reg-stack.cc
! e95738a65e09b7bd3bbcbbb5467f543c  gcc/regcprop.cc
  a97922db0f92509d800d3f1768f20b7d  gcc/regcprop.h
  8127bcf927a8c046fe7c9c8746589d49  gcc/regenerate-opt-urls.py
  a7d5787d583f54d43ff6842cf943d3ab  gcc/reginfo.cc
--- 7584,7590 ----
  78f7bb4149a60eafba8a5dda7bd80729  gcc/ree.cc
  e3d83ae4baa1d776cf5951923617ec90  gcc/reg-notes.def
  35723f09766711c71ebef9ec4f7c41fc  gcc/reg-stack.cc
! 549e391e0147f25cc68452de9aa20b44  gcc/regcprop.cc
  a97922db0f92509d800d3f1768f20b7d  gcc/regcprop.h
  8127bcf927a8c046fe7c9c8746589d49  gcc/regenerate-opt-urls.py
  a7d5787d583f54d43ff6842cf943d3ab  gcc/reginfo.cc
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8062,8068 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! ab4ab2882828e0601fb2857b5761f099  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8062,8068 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! c5481d57c522ab9e7c821f607d514641  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** c88701df415b47ac9bf5cba84cf379ab  gcc/te
*** 14093,14098 ****
--- 14093,14099 ----
  a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/testsuite/g++.dg/abi/vthunk2.C
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
+ 53e31dbb580c47605f7e76bc6cfd7704  gcc/testsuite/g++.dg/absvect.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
  8912b54490e20101a190287fddb390f8  gcc/testsuite/g++.dg/analyzer/analyzer.exp
  0918dccee8951925f7bc4640874a6cd3  gcc/testsuite/g++.dg/analyzer/cstdlib-2.C
*************** ccba3040ed86b5ffae7d72b18f556d1c  gcc/te
*** 17504,17509 ****
--- 17505,17511 ----
  be2e2da855b83583283092ca0bb72265  gcc/testsuite/g++.dg/cpp0x/rv-conv4.C
  1cf65d6b3d6f2efdc39e97cc285cfb7c  gcc/testsuite/g++.dg/cpp0x/rv-conv5.C
  889a7002f4d78b4abd44856da792f8dc  gcc/testsuite/g++.dg/cpp0x/rv-copy1.C
+ fa930410478009be16ff5c21544f405c  gcc/testsuite/g++.dg/cpp0x/rv-decl1.C
  de88aaa56b0d394bd02f079bb0f4dddf  gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
  f213598004dcfd0117fecc9593637790  gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C
  589e28fb5e0fffb1d369fc47ca52bcfd  gcc/testsuite/g++.dg/cpp0x/rv-dotstar.C
*************** ac5555b4df88275d04e41aa95b0aca9a  gcc/te
*** 24322,24327 ****
--- 24324,24331 ----
  f1d9eed0025353353019a54838c87ed9  gcc/testsuite/g++.dg/lto/pr113208.h
  22230575f68a36106d16454407701753  gcc/testsuite/g++.dg/lto/pr113208_0.C
  36a6b4f47dbbdcca4469926f1398a598  gcc/testsuite/g++.dg/lto/pr113208_1.C
+ 56055cfb3b55c9e36f0d7e5af4adee7f  gcc/testsuite/g++.dg/lto/pr114790_0.C
+ 944a89dbdddf4ca4f396efb802bbd896  gcc/testsuite/g++.dg/lto/pr114790_1.C
  170fab8219ca5d2db78f5026f9bf82c8  gcc/testsuite/g++.dg/lto/pr119067_0.C
  c2fbc4281a4940f3ba50c956b391e55a  gcc/testsuite/g++.dg/lto/pr119067_1.C
  ba9b686c163762488051ec4094a838b2  gcc/testsuite/g++.dg/lto/pr40818_0.C
*************** f298eddbaaad3dfdc15f6cf9683ff08a  gcc/te
*** 29643,29648 ****
--- 29647,29653 ----
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
  0d979e637ca747e39d8182a541458797  gcc/testsuite/g++.dg/torture/pr120987-1.C
  75b55c517ba9c0f47c83851f084cb294  gcc/testsuite/g++.dg/torture/pr121870.C
+ 2fa3f60c4a0ae3a4528024698d6d2c3c  gcc/testsuite/g++.dg/torture/pr123596.C
  fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
  ca7ea9ef86090651fbec9289f32896ab  gcc/testsuite/g++.dg/torture/pr123729.C
  947406bbc75c3117568a96cd4a4cc34b  gcc/testsuite/g++.dg/torture/pr124130.C
*************** c8dd934a48d7e3b1838eba0a9b59da95  gcc/te
*** 47030,47035 ****
--- 47035,47041 ----
  915d1c3bdd1ce10f8b739772e4406bf6  gcc/testsuite/gcc.dg/pr115502.c
  6ba8ec161f815bc3e024b67bfffd9530  gcc/testsuite/gcc.dg/pr115646.c
  8a0ca2cbf65dafe6cccb9a0465069fcc  gcc/testsuite/gcc.dg/pr116034.c
+ 6adb8da8e1b0e69504276878042cf1d4  gcc/testsuite/gcc.dg/pr116053-1.c
  c44ac8a093cda751002f1697cad3bee4  gcc/testsuite/gcc.dg/pr116284.c
  7820d64b46e8082950940bc4a0bfba8c  gcc/testsuite/gcc.dg/pr116290.c
  298938472467086a22ec44a01fb0ee8f  gcc/testsuite/gcc.dg/pr116481.c
*************** a3d075dd1b96232581aa40c9e02294e1  gcc/te
*** 47059,47064 ****
--- 47065,47071 ----
  5b4015cb994569a43c505c35b96cda44  gcc/testsuite/gcc.dg/pr119204.c
  212cef6b05e312dbd1f377cf4e35ab99  gcc/testsuite/gcc.dg/pr120048.c
  9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
+ fb8a0a60fb2754e29f845aad904922d4  gcc/testsuite/gcc.dg/pr120560.c
  4a9d9632d82cf6c4f4f4acbad8ab018d  gcc/testsuite/gcc.dg/pr120638.c
  f67888cb77a175aca5793c68c576187f  gcc/testsuite/gcc.dg/pr121104.c
  7032b52dc2dd1e6cab514293c2d0b276  gcc/testsuite/gcc.dg/pr121322.c
*************** b975ebfa27ac446e553bacbb75421590  gcc/te
*** 47071,47076 ****
--- 47078,47086 ----
  2e58c4d553f61913c629f0f4e16cef6c  gcc/testsuite/gcc.dg/pr123537.c
  5cd501fa005281d9c622810307478c79  gcc/testsuite/gcc.dg/pr123882.c
  f402be89e4891c76c691c8144fe168f7  gcc/testsuite/gcc.dg/pr124138.c
+ 32cf8bc03bc1ee1694db58a529d26406  gcc/testsuite/gcc.dg/pr124454-1.c
+ 4ac96a747a32d5c51b5be5c05cdd21c5  gcc/testsuite/gcc.dg/pr125019.c
+ ab60b475998ea1ed92a9002d6336bfd6  gcc/testsuite/gcc.dg/pr125501.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** c6c07c813f67e0f94f1352f2810dfcff  gcc/te
*** 50623,50628 ****
--- 50633,50642 ----
  50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
  406979b51eba3578f721938e7d4189da  gcc/testsuite/gcc.dg/torture/pr123887.c
  d4f9bc1a728b13f9940b71ab03cc40fd  gcc/testsuite/gcc.dg/torture/pr124132.c
+ e394027559c72da3f714e1f0bce86a7c  gcc/testsuite/gcc.dg/torture/pr124555.c
+ 16b777622562135656ac0ab96375cfb5  gcc/testsuite/gcc.dg/torture/pr124868.c
+ fbe779467ae6f7cb7ee578922f1e8686  gcc/testsuite/gcc.dg/torture/pr125025.c
+ 13a26b482c0abe9bba6de7ad78d38472  gcc/testsuite/gcc.dg/torture/pr125774-1.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
*************** d044056d4248cb78637686f3d28272bb  gcc/te
*** 52839,52844 ****
--- 52853,52859 ----
  5f36d3d6eda4211f506ed2e65fc779c4  gcc/testsuite/gcc.dg/tree-ssa/pr117423.c
  b0891b1dddf226da47f4f976abdd7cb0  gcc/testsuite/gcc.dg/tree-ssa/pr119085.c
  71eb14b3ae5faf81c5226dc766d48edd  gcc/testsuite/gcc.dg/tree-ssa/pr122976.c
+ d87a1ad6187c06f07e6ee3b7c6352e9e  gcc/testsuite/gcc.dg/tree-ssa/pr124151.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** b9ca6f13a261db1602a13a0c96147059  gcc/te
*** 58572,58577 ****
--- 58587,58593 ----
  95306727ea8db0e2fdb8e199f754c587  gcc/testsuite/gcc.target/aarch64/pr123285-1.c
  3525a5777032197cdd1e39b2aad94c29  gcc/testsuite/gcc.target/aarch64/pr123294-1.c
  085f7e2087fb0cf8d5d9a44259bb616c  gcc/testsuite/gcc.target/aarch64/pr123548.c
+ b925908f19e4f112a6a854e9b34023c4  gcc/testsuite/gcc.target/aarch64/pr125795.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
*************** fc2eb8ac52faed5fba0a017b858d4ae4  gcc/te
*** 64352,64357 ****
--- 64368,64374 ----
  8ba6cf5317762b2b89350d4f652efa53  gcc/testsuite/gcc.target/aarch64/torture/pr116564.c
  d03b2f46140f14ae9b2101813aec3525  gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
  164477999ab21aa17183a55d49bb0d71  gcc/testsuite/gcc.target/aarch64/torture/pr124491.c
+ a9e9dc89b86dea48cebffdbd8459e3a1  gcc/testsuite/gcc.target/aarch64/torture/pr125621.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
*************** ca55d89300492a406b4293654a75c058  gcc/te
*** 101055,101060 ****
--- 101072,101078 ----
  777b852dc009b4634413ed078253b5e8  gcc/testsuite/gfortran.dg/vect/pr108979.f90
  ed99007df506ce091870da0cdbff417d  gcc/testsuite/gfortran.dg/vect/pr110451.f
  7e36b2b10502091bcb389f5834b42c96  gcc/testsuite/gfortran.dg/vect/pr114736.f90
+ 586131e6c904729b8febde3dbc667a68  gcc/testsuite/gfortran.dg/vect/pr125431.f90
  a17cb1ab891a5af3471298da97331dda  gcc/testsuite/gfortran.dg/vect/pr19049.f90
  fdb4a5f5d5eff2fd75822f14875bd776  gcc/testsuite/gfortran.dg/vect/pr32377.f90
  bbb6998ea100c6c2039976c6446a0c10  gcc/testsuite/gfortran.dg/vect/pr32380.f
*************** a42cfecde2bde84e8caf09636b68c9b2  gcc/tr
*** 110648,110654 ****
  debb27964e157c88b76b5e2a00cbd4c1  gcc/tree-diagnostic.h
  8cd37203c422b0d03a76db07974de7a0  gcc/tree-dump.cc
  5aeed18b459de9d2e00f46c9e11d231d  gcc/tree-dump.h
! f7a313000b5713e225cfe8ef9a1580f4  gcc/tree-eh.cc
  1f2b40921cf81768c6ef9a444bb90cbe  gcc/tree-eh.h
  d090daa844578953fae325419d401322  gcc/tree-emutls.cc
  9fff164e638f2e33d35d0e021f67fc5b  gcc/tree-hash-traits.h
--- 110666,110672 ----
  debb27964e157c88b76b5e2a00cbd4c1  gcc/tree-diagnostic.h
  8cd37203c422b0d03a76db07974de7a0  gcc/tree-dump.cc
  5aeed18b459de9d2e00f46c9e11d231d  gcc/tree-dump.h
! d99f5f623c56cb3f5c97d7d40a96c324  gcc/tree-eh.cc
  1f2b40921cf81768c6ef9a444bb90cbe  gcc/tree-eh.h
  d090daa844578953fae325419d401322  gcc/tree-emutls.cc
  9fff164e638f2e33d35d0e021f67fc5b  gcc/tree-hash-traits.h
*************** ac7a115cd070672d90d6479104a15e65  gcc/tr
*** 110682,110688 ****
  fa283611866c6ad433cfe860538eb2b3  gcc/tree-profile.cc
  bdc9bab14ae5624d86bc275c54f2c859  gcc/tree-scalar-evolution.cc
  fe964e6bef89af1a79d00c19713660bd  gcc/tree-scalar-evolution.h
! 4f6d8d52d63b5cf641ebacec6098ba31  gcc/tree-sra.cc
  1e9cd044620373c14038fbd39740fd14  gcc/tree-sra.h
  76ef7a403eba76cb39fe06d695ab266a  gcc/tree-ssa-address.cc
  a35227be3c2b85c69d7e31275f1f7092  gcc/tree-ssa-address.h
--- 110700,110706 ----
  fa283611866c6ad433cfe860538eb2b3  gcc/tree-profile.cc
  bdc9bab14ae5624d86bc275c54f2c859  gcc/tree-scalar-evolution.cc
  fe964e6bef89af1a79d00c19713660bd  gcc/tree-scalar-evolution.h
! c2d94790ae19c335fa7724e93adec068  gcc/tree-sra.cc
  1e9cd044620373c14038fbd39740fd14  gcc/tree-sra.h
  76ef7a403eba76cb39fe06d695ab266a  gcc/tree-ssa-address.cc
  a35227be3c2b85c69d7e31275f1f7092  gcc/tree-ssa-address.h
*************** be2ddd67b1fc2c7baf9c618d285adce3  gcc/tr
*** 110696,110702 ****
  c4fb95e78992e4ae89759e9c2fda21c4  gcc/tree-ssa-copy.cc
  a9a57c1e6ef21dcf260929f34c5c8aac  gcc/tree-ssa-dce.cc
  394662362ab7d17b000ab838d7bda85c  gcc/tree-ssa-dce.h
! 5fb557e8777afa7cdad5a08a17b37cdc  gcc/tree-ssa-dom.cc
  c9368eed42c8261bad4b65accae4859c  gcc/tree-ssa-dom.h
  c369eacbed5c4c55970cbab9e45becba  gcc/tree-ssa-dse.cc
  310f6675fc42485a28214ba25f193e4c  gcc/tree-ssa-dse.h
--- 110714,110720 ----
  c4fb95e78992e4ae89759e9c2fda21c4  gcc/tree-ssa-copy.cc
  a9a57c1e6ef21dcf260929f34c5c8aac  gcc/tree-ssa-dce.cc
  394662362ab7d17b000ab838d7bda85c  gcc/tree-ssa-dce.h
! 480d852759cf436a575bb110ccb3f0cf  gcc/tree-ssa-dom.cc
  c9368eed42c8261bad4b65accae4859c  gcc/tree-ssa-dom.h
  c369eacbed5c4c55970cbab9e45becba  gcc/tree-ssa-dse.cc
  310f6675fc42485a28214ba25f193e4c  gcc/tree-ssa-dse.h
*************** d13427e991e77725e732629fb007437a  gcc/tr
*** 110711,110717 ****
  66d2704d1626bcfc35f8aa458ee6a1a1  gcc/tree-ssa-loop-ivopts.h
  468cc85e2332333521f69f26b7dd5b27  gcc/tree-ssa-loop-manip.cc
  66557039c7e4f18ad92b155b29c79d30  gcc/tree-ssa-loop-manip.h
! cdc0524cbed8b79b9fa33724590ce9c1  gcc/tree-ssa-loop-niter.cc
  ec5f7abc3695bde1fbe2a8b2a7e53167  gcc/tree-ssa-loop-niter.h
  1227f24f2f18334f57649a99ceeda666  gcc/tree-ssa-loop-prefetch.cc
  e9f452126b26b0f6c9e13fe86093c977  gcc/tree-ssa-loop-split.cc
--- 110729,110735 ----
  66d2704d1626bcfc35f8aa458ee6a1a1  gcc/tree-ssa-loop-ivopts.h
  468cc85e2332333521f69f26b7dd5b27  gcc/tree-ssa-loop-manip.cc
  66557039c7e4f18ad92b155b29c79d30  gcc/tree-ssa-loop-manip.h
! 79b628aa8eeadfd4c6edd17fbc42a4c3  gcc/tree-ssa-loop-niter.cc
  ec5f7abc3695bde1fbe2a8b2a7e53167  gcc/tree-ssa-loop-niter.h
  1227f24f2f18334f57649a99ceeda666  gcc/tree-ssa-loop-prefetch.cc
  e9f452126b26b0f6c9e13fe86093c977  gcc/tree-ssa-loop-split.cc
*************** e52dd1666766e097473010a395e05b72  gcc/tr
*** 110763,110771 ****
  7c2d603160e6cc66d6f331c03cbd63e4  gcc/tree-vect-data-refs.cc
  d118b2d044875c26f314d37ff24df105  gcc/tree-vect-generic.cc
  a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
! 5dde40010c41d8f666c71ace1ae0edcf  gcc/tree-vect-loop.cc
  43f6f3fee20eb715fd451bf19e9bfd4c  gcc/tree-vect-patterns.cc
! 28617cab8a239cf14b40a71d5bbc169c  gcc/tree-vect-slp-patterns.cc
  ae55d259a8015d98d10ea9b66379ac0c  gcc/tree-vect-slp.cc
  d5e6103371171054496e94bbda06f520  gcc/tree-vect-stmts.cc
  795c5280c71f566f4b3e8c7fdcc3b609  gcc/tree-vector-builder.cc
--- 110781,110789 ----
  7c2d603160e6cc66d6f331c03cbd63e4  gcc/tree-vect-data-refs.cc
  d118b2d044875c26f314d37ff24df105  gcc/tree-vect-generic.cc
  a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
! 8f57ce2752bafb1f8f0aa27f7b76b83c  gcc/tree-vect-loop.cc
  43f6f3fee20eb715fd451bf19e9bfd4c  gcc/tree-vect-patterns.cc
! a9afe9e3b431b84394a7e69f8cfb3b8d  gcc/tree-vect-slp-patterns.cc
  ae55d259a8015d98d10ea9b66379ac0c  gcc/tree-vect-slp.cc
  d5e6103371171054496e94bbda06f520  gcc/tree-vect-stmts.cc
  795c5280c71f566f4b3e8c7fdcc3b609  gcc/tree-vector-builder.cc
*************** bb8d04c4e68c6b4518199de46e56faeb  gcc/ve
*** 110815,110821 ****
  ad835c61b5aa28c3f501e0b335cfd8b7  gcc/vector-builder.h
  e9e81f6468a4d8def6380d5c73383508  gcc/vmsdbg.h
  46441fdd05b5cf12c9c2b11ce1a04f46  gcc/vmsdbgout.cc
! 2797b9888137402e36230540b02f6ff2  gcc/vr-values.cc
  e460830a86e9a9a754fcdc3352b86ed6  gcc/vr-values.h
  ff26c41ea07360558ce5b1efed5c5d8a  gcc/vtable-verify.cc
  531ee320a86188a0112184274dc1b80b  gcc/vtable-verify.h
--- 110833,110839 ----
  ad835c61b5aa28c3f501e0b335cfd8b7  gcc/vector-builder.h
  e9e81f6468a4d8def6380d5c73383508  gcc/vmsdbg.h
  46441fdd05b5cf12c9c2b11ce1a04f46  gcc/vmsdbgout.cc
! 32cfc3af066d4cdc39c9197e0493544e  gcc/vr-values.cc
  e460830a86e9a9a754fcdc3352b86ed6  gcc/vr-values.h
  ff26c41ea07360558ce5b1efed5c5d8a  gcc/vtable-verify.cc
  531ee320a86188a0112184274dc1b80b  gcc/vtable-verify.h
*************** c12365a0fd0bfbb153c9b75f558feba5  libgcc
*** 111771,111777 ****
  c7b2e09c1a819d37ab91db3294159732  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  b7792b93ec270f682ce38eb52297254e  libgcc/config/avr/lib2funcs.c
! ab2ffec49fef3d39e9c6f1ae99636541  libgcc/config/avr/libf7/ChangeLog
  159c564e8ed539925b0a82879e077648  libgcc/config/avr/libf7/asm-defs.h
  17424a1d9a928496654a70920fd02bc1  libgcc/config/avr/libf7/f7-renames.h
  242b56b2def38ab8671130aa24953e46  libgcc/config/avr/libf7/f7-wraps.h
--- 111789,111795 ----
  c7b2e09c1a819d37ab91db3294159732  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  b7792b93ec270f682ce38eb52297254e  libgcc/config/avr/lib2funcs.c
! bb482b4a7e3437a95340c18b67c27382  libgcc/config/avr/libf7/ChangeLog
  159c564e8ed539925b0a82879e077648  libgcc/config/avr/libf7/asm-defs.h
  17424a1d9a928496654a70920fd02bc1  libgcc/config/avr/libf7/f7-renames.h
  242b56b2def38ab8671130aa24953e46  libgcc/config/avr/libf7/f7-wraps.h
diff -Nrcpad gcc-14-20260611/gcc/ChangeLog gcc-14-20260618/gcc/ChangeLog
*** gcc-14-20260611/gcc/ChangeLog	Thu Jun 11 22:32:05 2026
--- gcc-14-20260618/gcc/ChangeLog	Thu Jun 18 22:32:05 2026
***************
*** 1,3 ****
--- 1,180 ----
+ 2026-06-17  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	Backported from master:
+ 	2026-06-09  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR middle-end/125621
+ 	* expmed.cc (make_tree): Fix CONST_POLY_INT case to pass type
+ 	instead of t, move it to its own switch case.
+ 
+ 2026-06-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-05-12  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/124151
+ 	* tree-sra.cc (build_user_friendly_ref_for_offset): Added parameters
+ 	CUR_SIZE and EXP_SIZE.  Added code passing the correct CUR_SIZE and
+ 	checking it against EXP_SIZE.  Removed unused code for the case when
+ 	EXP_TYPE was NULL_TREE.
+ 	(create_artificial_child_access): Adjusted the call to
+ 	build_user_friendly_ref_for_offset.
+ 	(propagate_subaccesses_from_rhs): Likewise.
+ 	(propagate_subaccesses_from_rhs): Removed a check that the size of
+ 	lchild is a multiple of BITS_PER_UNIT.
+ 	(propagate_subaccesses_from_lhs): Likewise.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-06-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR ipa/125699
+ 	* ipa-param-manipulation.cc (ipa_param_body_adjustments::prepare_debug_expressions): Fix
+ 	lifetime issue with m_dead_ssa_debug_equiv usage.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-06-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/125774
+ 	* gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Use
+ 	relation_swap rather than relation_negate when the operands are exchanged.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/124454
+ 	* regcprop.cc (pass_cprop_hardreg::execute): If something
+ 	changed and non-call exceptions is on, call purge_all_dead_edges
+ 	and cleanup_cfg.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/116053
+ 	* regcprop.cc (copyprop_hardreg_forward_1): Use delete_insn_and_edges
+ 	instead of delete_insn.
+ 
+ 2026-06-17  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2026-06-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/125431
+ 	* tree-vect-slp-patterns.cc (complex_mul_pattern::matches,
+ 	complex_fms_pattern::matches): Gate on FP contraction.
+ 
+ 2026-06-17  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Backported from master:
+ 	2026-06-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/125795
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::allocate_colors):
+ 	Compute the allocated-FPR mask as
+ 	((1ULL << color->group->size) - 1) << best.
+ 
+ 2026-06-17  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/125501
+ 	* tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Abort
+ 	if there are 2 SSA_NAMES on the branch condition.
+ 
+ 2026-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-10-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120560
+ 	* vr-values.cc (range_from_loop_direction): Use wi::ge_p rather
+ 	than wi::gt_p.
+ 
+ 2026-06-12  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	Backported from master:
+ 	2025-07-11  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/114790
+ 	* cgraph.cc (cgraph_update_edges_for_call_stmt_node): Resolve devirtualization
+ 	if call statement was optimized out or turned to direct call.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125146
+ 	* gimple-fold.cc (fold_stmt_1): Discard stmts in seq
+ 	after failed gimple_simplify as well.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125025
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_ne): Avoid
+ 	negation of most negative signed integer.
+ 	(number_of_iterations_lt): Likewise.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125019
+ 	* tree-vect-loop.cc (vectorizable_recurr): Properly guard
+ 	against hitting last stmt when searching for the insertion
+ 	place.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124868
+ 	* gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
+ 	Do not diagnose returns in blocks not dominated by the PHI.
+ 	(find_implicit_erroneous_behavior): Do two sweeps over PHIs,
+ 	first for NULL dereferences and then for local address returns.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124555
+ 	* match.pd ((A - B) >=/> 0 ? (A - B) : (B - A) -> abs (A - B)):
+ 	Guard the vector case with target_supports_op_p checks.
+ 	((A - B) <=/< 0 ? (A - B) : (B - A) -> -abs (A - B)): Likewise.
+ 	((type)A >=/> 0 ? A : -A -> abs (A)): Likewise.
+ 	((type)A <=/< 0 ? A : -A -> -abs (A)): Likewise.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123596
+ 	* tree-eh.cc (sink_clobbers): Create a virtual PHI when
+ 	one is required but not present, queuing arguments
+ 	for renaming.
+ 
+ 2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/125751
+ 	* config/avr/avr.cc (avr_out_fract): Fix too small sequence
+ 	lengths in avr_asm_len calls.
+ 
  2026-06-10  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260611/gcc/DATESTAMP gcc-14-20260618/gcc/DATESTAMP
*** gcc-14-20260611/gcc/DATESTAMP	Thu Jun 11 22:32:05 2026
--- gcc-14-20260618/gcc/DATESTAMP	Thu Jun 18 22:32:06 2026
***************
*** 1 ****
! 20260611
--- 1 ----
! 20260618
diff -Nrcpad gcc-14-20260611/gcc/cgraph.cc gcc-14-20260618/gcc/cgraph.cc
*** gcc-14-20260611/gcc/cgraph.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/cgraph.cc	Thu Jun 18 22:32:06 2026
*************** cgraph_update_edges_for_call_stmt_node (
*** 1642,1647 ****
--- 1642,1660 ----
  
        if (e)
  	{
+ 	  /* If call was devirtualized during cloning, mark edge
+ 	     as resolved.  */
+ 	  if (e->speculative)
+ 	    {
+ 	      if (new_stmt && is_gimple_call (new_stmt))
+ 		{
+ 		  tree decl = gimple_call_fndecl (new_stmt);
+ 		  if (decl)
+ 		    e = cgraph_edge::resolve_speculation (e, decl);
+ 		}
+ 	      else
+ 		e = cgraph_edge::resolve_speculation (e, NULL);
+ 	    }
  	  /* Keep calls marked as dead dead.  */
  	  if (new_stmt && is_gimple_call (new_stmt) && e->callee
  	      && fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE,
diff -Nrcpad gcc-14-20260611/gcc/config/aarch64/aarch64-early-ra.cc gcc-14-20260618/gcc/config/aarch64/aarch64-early-ra.cc
*** gcc-14-20260611/gcc/config/aarch64/aarch64-early-ra.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/config/aarch64/aarch64-early-ra.cc	Thu Jun 18 22:32:06 2026
*************** early_ra::allocate_colors ()
*** 2919,2925 ****
        if (dump_file && (dump_flags & TDF_DETAILS))
  	fprintf (dump_file, "  Allocating [v%d:v%d] to color %d\n",
  		 best, best + color->group->size - 1, color->id);
!       m_allocated_fprs |= ((1U << color->group->size) - 1) << best;
      }
  }
  
--- 2919,2931 ----
        if (dump_file && (dump_flags & TDF_DETAILS))
  	fprintf (dump_file, "  Allocating [v%d:v%d] to color %d\n",
  		 best, best + color->group->size - 1, color->id);
!       // Mark the COLOR's FPRs as allocated.  A full-width color can have
!       // size == 32, so shift a wide enough value: "1U << 32" is undefined,
!       // as is "1UL << 32" on hosts with 32-bit long.  unsigned long long is
!       // at least 64 bits everywhere.  best + size <= 32 (from the candidate
!       // search) keeps the result within the 32-bit mask.
!       gcc_assert (best + color->group->size <= 32);
!       m_allocated_fprs |= ((1ULL << color->group->size) - 1) << best;
      }
  }
  
diff -Nrcpad gcc-14-20260611/gcc/cp/ChangeLog gcc-14-20260618/gcc/cp/ChangeLog
*** gcc-14-20260611/gcc/cp/ChangeLog	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/cp/ChangeLog	Thu Jun 18 22:32:07 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-05-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR c++/65271
+ 	* parser.cc (cp_parser_class_specifier): Accept &&.
+ 
  2026-06-10  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260611/gcc/cp/parser.cc gcc-14-20260618/gcc/cp/parser.cc
*** gcc-14-20260611/gcc/cp/parser.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/cp/parser.cc	Thu Jun 18 22:32:07 2026
*************** cp_parser_class_specifier (cp_parser* pa
*** 26950,26955 ****
--- 26950,26956 ----
        case CPP_SEMICOLON:
        case CPP_MULT:
        case CPP_AND:
+       case CPP_AND_AND:
        case CPP_OPEN_PAREN:
        case CPP_CLOSE_PAREN:
        case CPP_COMMA:
diff -Nrcpad gcc-14-20260611/gcc/expmed.cc gcc-14-20260618/gcc/expmed.cc
*** gcc-14-20260611/gcc/expmed.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/expmed.cc	Thu Jun 18 22:32:07 2026
*************** make_tree (tree type, rtx x)
*** 5367,5372 ****
--- 5367,5375 ----
        t = wide_int_to_tree (type, rtx_mode_t (x, TYPE_MODE (type)));
        return t;
  
+     case CONST_POLY_INT:
+       return wide_int_to_tree (type, const_poly_int_value (x));
+ 
      case CONST_DOUBLE:
        STATIC_ASSERT (HOST_BITS_PER_WIDE_INT * 2 <= MAX_BITSIZE_MODE_ANY_INT);
        if (TARGET_SUPPORTS_WIDE_INT == 0 && GET_MODE (x) == VOIDmode)
*************** make_tree (tree type, rtx x)
*** 5458,5466 ****
        /* fall through.  */
  
      default:
-       if (CONST_POLY_INT_P (x))
- 	return wide_int_to_tree (t, const_poly_int_value (x));
- 
        t = build_decl (RTL_LOCATION (x), VAR_DECL, NULL_TREE, type);
  
        /* If TYPE is a POINTER_TYPE, we might need to convert X from
--- 5461,5466 ----
diff -Nrcpad gcc-14-20260611/gcc/gimple-fold.cc gcc-14-20260618/gcc/gimple-fold.cc
*** gcc-14-20260611/gcc/gimple-fold.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/gimple-fold.cc	Thu Jun 18 22:32:07 2026
*************** fold_stmt_1 (gimple_stmt_iterator *gsi,
*** 6406,6418 ****
        gimple_seq seq = NULL;
        gimple_match_op res_op;
        if (gimple_simplify (stmt, &res_op, inplace ? NULL : &seq,
! 			   valueize, valueize))
! 	{
! 	  if (replace_stmt_with_simplification (gsi, &res_op, &seq, inplace))
! 	    changed = true;
! 	  else
! 	    gimple_seq_discard (seq);
! 	}
      }
  
    stmt = gsi_stmt (*gsi);
--- 6406,6416 ----
        gimple_seq seq = NULL;
        gimple_match_op res_op;
        if (gimple_simplify (stmt, &res_op, inplace ? NULL : &seq,
! 			   valueize, valueize)
! 	  && replace_stmt_with_simplification (gsi, &res_op, &seq, inplace))
! 	changed = true;
!       else
! 	gimple_seq_discard (seq);
      }
  
    stmt = gsi_stmt (*gsi);
diff -Nrcpad gcc-14-20260611/gcc/gimple-range-fold.cc gcc-14-20260618/gcc/gimple-range-fold.cc
*** gcc-14-20260611/gcc/gimple-range-fold.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/gimple-range-fold.cc	Thu Jun 18 22:32:07 2026
*************** fold_using_range::relation_fold_and_or (
*** 1174,1180 ****
      return;
  
    if (reverse_op2)
!     relation2 = relation_negate (relation2);
  
    // x && y is false if the relation intersection of the true cases is NULL.
    if (is_and && relation_intersect (relation1, relation2) == VREL_UNDEFINED)
--- 1174,1180 ----
      return;
  
    if (reverse_op2)
!     relation2 = relation_swap (relation2);
  
    // x && y is false if the relation intersection of the true cases is NULL.
    if (is_and && relation_intersect (relation1, relation2) == VREL_UNDEFINED)
diff -Nrcpad gcc-14-20260611/gcc/gimple-ssa-isolate-paths.cc gcc-14-20260618/gcc/gimple-ssa-isolate-paths.cc
*** gcc-14-20260611/gcc/gimple-ssa-isolate-paths.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/gimple-ssa-isolate-paths.cc	Thu Jun 18 22:32:07 2026
*************** handle_return_addr_local_phi_arg (basic_
*** 641,647 ****
        if (!return_stmt)
  	continue;
  
!       if (gimple_return_retval (return_stmt) != lhs)
  	continue;
  
        /* Add an entry for the return statement and the locations
--- 641,648 ----
        if (!return_stmt)
  	continue;
  
!       if (gimple_return_retval (return_stmt) != lhs
! 	  || !dominated_by_p (CDI_DOMINATORS, gimple_bb (use_stmt), bb))
  	continue;
  
        /* Add an entry for the return statement and the locations
*************** find_implicit_erroneous_behavior (void)
*** 715,738 ****
   	 is then dereferenced within BB.  This is somewhat overly
  	 conservative, but probably catches most of the interesting
  	 cases.   */
        for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
  	{
  	  gphi *phi = si.phi ();
  	  tree lhs = gimple_phi_result (phi);
  
- 	  /* Initial number of PHI arguments.  The result may change
- 	     from one iteration of the loop below to the next in
- 	     response to changes to the CFG but only the initial
- 	     value is stored below for use by diagnostics.  */
- 	  unsigned nargs = gimple_phi_num_args (phi);
- 
  	  /* PHI produces a pointer result.  See if any of the PHI's
  	     arguments are NULL.
  
  	     When we remove an edge, we want to reprocess the current
  	     index since the argument at that index will have been
  	     removed, hence the ugly way we update I for each iteration.  */
- 	  basic_block duplicate = NULL;
  	  for (unsigned i = 0, next_i = 0;
  	       i < gimple_phi_num_args (phi); i = next_i)
  	    {
--- 716,733 ----
   	 is then dereferenced within BB.  This is somewhat overly
  	 conservative, but probably catches most of the interesting
  	 cases.   */
+       basic_block duplicate = NULL;
        for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
  	{
  	  gphi *phi = si.phi ();
  	  tree lhs = gimple_phi_result (phi);
  
  	  /* PHI produces a pointer result.  See if any of the PHI's
  	     arguments are NULL.
  
  	     When we remove an edge, we want to reprocess the current
  	     index since the argument at that index will have been
  	     removed, hence the ugly way we update I for each iteration.  */
  	  for (unsigned i = 0, next_i = 0;
  	       i < gimple_phi_num_args (phi); i = next_i)
  	    {
*************** find_implicit_erroneous_behavior (void)
*** 742,756 ****
  	      /* Advance the argument index unless a path involving
  		 the current argument has been isolated.  */
  	      next_i = i + 1;
- 	      bool isolated = false;
- 	      duplicate = handle_return_addr_local_phi_arg (bb, duplicate, lhs,
- 							    arg, e, locmap,
- 							    nargs, &isolated);
- 	      if (isolated)
- 		{
- 		  cfg_altered = true;
- 		  next_i = i;
- 		}
  
  	      if (!integer_zerop (arg))
  		continue;
--- 737,742 ----
*************** find_implicit_erroneous_behavior (void)
*** 788,793 ****
--- 774,821 ----
  		}
  	    }
  	}
+ 
+       /* Then look for a PHI which have addresses of locals that
+ 	 are then returned.  */
+       duplicate = NULL;
+       for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
+ 	{
+ 	  gphi *phi = si.phi ();
+ 	  tree lhs = gimple_phi_result (phi);
+ 
+ 	  /* Initial number of PHI arguments.  The result may change
+ 	     from one iteration of the loop below to the next in
+ 	     response to changes to the CFG but only the initial
+ 	     value is stored below for use by diagnostics.  */
+ 	  unsigned nargs = gimple_phi_num_args (phi);
+ 
+ 	  /* PHI produces a pointer result.  See if any of the PHI's
+ 	     arguments are NULL.
+ 
+ 	     When we remove an edge, we want to reprocess the current
+ 	     index since the argument at that index will have been
+ 	     removed, hence the ugly way we update I for each iteration.  */
+ 	  for (unsigned i = 0, next_i = 0;
+ 	       i < gimple_phi_num_args (phi); i = next_i)
+ 	    {
+ 	      tree arg = gimple_phi_arg_def (phi, i);
+ 	      edge e = gimple_phi_arg_edge (phi, i);
+ 
+ 	      /* Advance the argument index unless a path involving
+ 		 the current argument has been isolated.  */
+ 	      next_i = i + 1;
+ 	      bool isolated = false;
+ 	      duplicate = handle_return_addr_local_phi_arg (bb, duplicate, lhs,
+ 							    arg, e, locmap,
+ 							    nargs, &isolated);
+ 	      if (isolated)
+ 		{
+ 		  cfg_altered = true;
+ 		  next_i = i;
+ 		}
+ 	    }
+ 	}
+ 
      }
  
    diag_returned_locals (false, locmap);
diff -Nrcpad gcc-14-20260611/gcc/ipa-param-manipulation.cc gcc-14-20260618/gcc/ipa-param-manipulation.cc
*** gcc-14-20260611/gcc/ipa-param-manipulation.cc	Thu Jun 11 22:32:06 2026
--- gcc-14-20260618/gcc/ipa-param-manipulation.cc	Thu Jun 18 22:32:07 2026
*************** ipa_param_body_adjustments::prepare_debu
*** 1348,1355 ****
  	}
  
        gcc_assert (TREE_CODE (value) == SSA_NAME);
!       tree *d = m_dead_ssa_debug_equiv.get (value);
!       m_dead_ssa_debug_equiv.put (dead_ssa, *d);
        return true;
      }
  
--- 1348,1355 ----
  	}
  
        gcc_assert (TREE_CODE (value) == SSA_NAME);
!       tree d = *m_dead_ssa_debug_equiv.get (value);
!       m_dead_ssa_debug_equiv.put (dead_ssa, d);
        return true;
      }
  
diff -Nrcpad gcc-14-20260611/gcc/match.pd gcc-14-20260618/gcc/match.pd
*** gcc-14-20260611/gcc/match.pd	Thu Jun 11 22:32:07 2026
--- gcc-14-20260618/gcc/match.pd	Thu Jun 18 22:32:07 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 5960,5966 ****
     (cnd (cmp @0 zerop) @1 (negate @1))
      (if (!HONOR_SIGNED_ZEROS (TREE_TYPE(@0))
  	 && !TYPE_UNSIGNED (TREE_TYPE(@0))
! 	 && bitwise_equal_p (@0, @1))
       (if (TYPE_UNSIGNED (type))
        (absu:type @0)
        (abs @0)))))
--- 5960,5968 ----
     (cnd (cmp @0 zerop) @1 (negate @1))
      (if (!HONOR_SIGNED_ZEROS (TREE_TYPE(@0))
  	 && !TYPE_UNSIGNED (TREE_TYPE(@0))
! 	 && bitwise_equal_p (@0, @1)
! 	 && (!VECTOR_TYPE_P (type)
! 	     || target_supports_op_p (type, ABS_EXPR, optab_vector)))
       (if (TYPE_UNSIGNED (type))
        (absu:type @0)
        (abs @0)))))
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 5970,5976 ****
     (cnd (cmp @0 zerop) @1 (negate @1))
      (if (!HONOR_SIGNED_ZEROS (TREE_TYPE(@0))
  	 && !TYPE_UNSIGNED (TREE_TYPE(@0))
! 	 && bitwise_equal_p (@0, @1))
       (if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0))
  	   && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0)))
  	  || TYPE_UNSIGNED (type))
--- 5972,5980 ----
     (cnd (cmp @0 zerop) @1 (negate @1))
      (if (!HONOR_SIGNED_ZEROS (TREE_TYPE(@0))
  	 && !TYPE_UNSIGNED (TREE_TYPE(@0))
! 	 && bitwise_equal_p (@0, @1)
! 	 && (!VECTOR_TYPE_P (type)
! 	     || target_supports_op_p (type, ABS_EXPR, optab_vector)))
       (if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0))
  	   && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0)))
  	  || TYPE_UNSIGNED (type))
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6006,6012 ****
    (simplify
     (cnd (cmp (minus@0 @1 @2) zerop) @0 (minus @2 @1))
     (if (!HONOR_SIGNED_ZEROS (type)
! 	&& !TYPE_UNSIGNED (type))
      (abs @0))))
   /* (A - B) <=/< 0 ? (A - B) : (B - A)    same as -abs (A - B) */
   (for cmp (le lt)
--- 6010,6018 ----
    (simplify
     (cnd (cmp (minus@0 @1 @2) zerop) @0 (minus @2 @1))
     (if (!HONOR_SIGNED_ZEROS (type)
! 	&& !TYPE_UNSIGNED (type)
! 	&& (!VECTOR_TYPE_P (type)
! 	    || target_supports_op_p (type, ABS_EXPR, optab_vector)))
      (abs @0))))
   /* (A - B) <=/< 0 ? (A - B) : (B - A)    same as -abs (A - B) */
   (for cmp (le lt)
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6015,6021 ****
     (if (!HONOR_SIGNED_ZEROS (type)
  	&& !TYPE_UNSIGNED (type))
      (if (ANY_INTEGRAL_TYPE_P (type)
! 	 && !TYPE_OVERFLOW_WRAPS (type))
       (with {
          tree utype = unsigned_type_for (type);
        }
--- 6021,6030 ----
     (if (!HONOR_SIGNED_ZEROS (type)
  	&& !TYPE_UNSIGNED (type))
      (if (ANY_INTEGRAL_TYPE_P (type)
! 	 && !TYPE_OVERFLOW_WRAPS (type)
! 	 && (!VECTOR_TYPE_P (type)
! 	     || (target_supports_op_p (type, ABS_EXPR, optab_vector)
! 		 && target_supports_op_p (type, NEGATE_EXPR, optab_vector))))
       (with {
          tree utype = unsigned_type_for (type);
        }
diff -Nrcpad gcc-14-20260611/gcc/regcprop.cc gcc-14-20260618/gcc/regcprop.cc
*** gcc-14-20260611/gcc/regcprop.cc	Thu Jun 11 22:32:07 2026
--- gcc-14-20260618/gcc/regcprop.cc	Thu Jun 18 22:32:08 2026
***************
*** 36,41 ****
--- 36,42 ----
  #include "cfgrtl.h"
  #include "target.h"
  #include "function-abi.h"
+ #include "cfgcleanup.h"
  
  /* The following code does forward propagation of hard register copies.
     The object is to eliminate as many dependencies as possible, so that
*************** copyprop_hardreg_forward_1 (basic_block
*** 826,832 ****
  	  && !side_effects_p (SET_DEST (set)))
  	{
  	  bool last = insn == BB_END (bb);
! 	  delete_insn (insn);
  	  if (last)
  	    break;
  	  continue;
--- 827,833 ----
  	  && !side_effects_p (SET_DEST (set)))
  	{
  	  bool last = insn == BB_END (bb);
! 	  delete_insn_and_edges (insn);
  	  if (last)
  	    break;
  	  continue;
*************** pass_cprop_hardreg::execute (function *f
*** 1402,1407 ****
--- 1403,1409 ----
    auto_vec<int> *curr = &worklist1;
    auto_vec<int> *next = &worklist2;
    bool any_debug_changes = false;
+   bool any_changes = false;
  
    /* We need accurate notes.  Earlier passes such as if-conversion may
       leave notes in an inconsistent state.  */
*************** pass_cprop_hardreg::execute (function *f
*** 1421,1427 ****
    FOR_EACH_BB_FN (bb, fun)
      {
        if (cprop_hardreg_bb (bb, all_vd, visited))
! 	curr->safe_push (bb->index);
        if (all_vd[bb->index].n_debug_insn_changes)
  	any_debug_changes = true;
      }
--- 1423,1432 ----
    FOR_EACH_BB_FN (bb, fun)
      {
        if (cprop_hardreg_bb (bb, all_vd, visited))
! 	{
! 	  curr->safe_push (bb->index);
! 	  any_changes = true;
! 	}
        if (all_vd[bb->index].n_debug_insn_changes)
  	any_debug_changes = true;
      }
*************** pass_cprop_hardreg::execute (function *f
*** 1448,1454 ****
  	{
  	  bb = BASIC_BLOCK_FOR_FN (fun, index);
            if (cprop_hardreg_bb (bb, all_vd, visited))
! 	    next->safe_push (bb->index);
  	  if (all_vd[bb->index].n_debug_insn_changes)
  	    any_debug_changes = true;
  	}
--- 1453,1462 ----
  	{
  	  bb = BASIC_BLOCK_FOR_FN (fun, index);
            if (cprop_hardreg_bb (bb, all_vd, visited))
! 	    {
! 	      next->safe_push (bb->index);
! 	      any_changes = true;
! 	    }
  	  if (all_vd[bb->index].n_debug_insn_changes)
  	    any_debug_changes = true;
  	}
*************** pass_cprop_hardreg::execute (function *f
*** 1460,1465 ****
--- 1468,1482 ----
      }
  
    free (all_vd);
+ 
+   /* Copy propagation of the sp register into an mem's address
+      can cause what was a trapping instruction into
+      a non-trapping one so cleanup after that in the case of non-call
+      exceptions.  */
+   if (any_changes
+       && cfun->can_throw_non_call_exceptions
+       && purge_all_dead_edges ())
+     cleanup_cfg (0);
    return 0;
  }
  
diff -Nrcpad gcc-14-20260611/gcc/testsuite/ChangeLog gcc-14-20260618/gcc/testsuite/ChangeLog
*** gcc-14-20260611/gcc/testsuite/ChangeLog	Thu Jun 11 22:32:07 2026
--- gcc-14-20260618/gcc/testsuite/ChangeLog	Thu Jun 18 22:32:08 2026
***************
*** 1,3 ****
--- 1,146 ----
+ 2026-06-17  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	Backported from master:
+ 	2026-06-09  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR middle-end/125621
+ 	* gcc.target/aarch64/torture/pr125621.c: New test.
+ 
+ 2026-06-17  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-05-12  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/124151
+ 	* gcc.dg/tree-ssa/pr124151.c: New test.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-06-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/125774
+ 	* gcc.dg/torture/pr125774-1.c: New test.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-05-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR c++/65271
+ 	* g++.dg/cpp0x/rv-decl1.C: New test.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/124454
+ 	* gcc.dg/pr124454-1.c: New test.
+ 
+ 2026-06-17  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	Backported from master:
+ 	2026-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR rtl-optimization/116053
+ 	* gcc.dg/pr116053-1.c: 'dg-require-effective-target int128'.
+ 
+ 2026-06-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-02-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/116053
+ 	* gcc.dg/pr116053-1.c: New test.
+ 
+ 2026-06-17  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2026-06-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/125431
+ 	* gfortran.dg/vect/pr125431.f90: New test.
+ 
+ 2026-06-17  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Backported from master:
+ 	2026-06-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/125795
+ 	* gcc.target/aarch64/pr125795.c: New test.
+ 
+ 2026-06-17  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/125501
+ 	* gcc.dg/pr125501.c: New.
+ 
+ 2026-06-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-10-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120560
+ 	* gcc.dg/pr120560.c: New.
+ 
+ 2026-06-12  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	Backported from master:
+ 	2025-07-11  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* g++.dg/lto/pr114790_0.C: New test.
+ 	* g++.dg/lto/pr114790_1.C: New test.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125025
+ 	* gcc.dg/torture/pr125025.c: New testcase.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125019
+ 	* gcc.dg/pr125019.c: New testcase.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124868
+ 	* gcc.dg/torture/pr124868.c: New testcase.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124555
+ 	* gcc.dg/torture/pr124555.c: New testcase.
+ 	* g++.dg/absvect.C: Restrict dump scan to x86-64 and force
+ 	-msse4 there.
+ 
+ 2026-06-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123596
+ 	* g++.dg/torture/pr123596.C: New testcase.
+ 
+ 2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/125752
+ 	* gcc.target/avr/torture/fx-to-double.c: New test.
+ 
  2026-06-11  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260611/gcc/testsuite/g++.dg/absvect.C gcc-14-20260618/gcc/testsuite/g++.dg/absvect.C
*** gcc-14-20260611/gcc/testsuite/g++.dg/absvect.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/g++.dg/absvect.C	Thu Jun 18 22:32:08 2026
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast -fdump-tree-phiopt1" } */
+ /* { dg-additional-options "-msse4" { target { x86_64-*-* i?86-*-* } } } */
+ /* { dg-final { scan-tree-dump-times " = ABS_EXPR <x_\[0-9]*\\\(D\\\)>;" 1 "phiopt1" { target { x86_64-*-* i?86-*-* } } } } */
+ 
+ typedef int v2si __attribute__ ((vector_size (2 * sizeof(int))));
+ typedef short v2hi __attribute__ ((vector_size (2 * sizeof(short))));
+ 
+ v2hi  absvect1 (v2hi x, int i) {
+     v2hi neg = -x;
+     return (x > 0) ? x : neg;
+ }
+ 
diff -Nrcpad gcc-14-20260611/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C gcc-14-20260618/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C
*** gcc-14-20260611/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/g++.dg/cpp0x/rv-decl1.C	Thu Jun 18 22:32:08 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/65271
+ // { dg-do compile { target c++11 } }
+ 
+ struct {} && m0 = {};
+ union  {} && m1 = {};
+ class  {} && m2 = {};
+ enum   {} && m3 = {};
diff -Nrcpad gcc-14-20260611/gcc/testsuite/g++.dg/lto/pr114790_0.C gcc-14-20260618/gcc/testsuite/g++.dg/lto/pr114790_0.C
*** gcc-14-20260611/gcc/testsuite/g++.dg/lto/pr114790_0.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/g++.dg/lto/pr114790_0.C	Thu Jun 18 22:32:09 2026
***************
*** 0 ****
--- 1,16 ----
+ // { dg-lto-do link }
+ // { dg-lto-options { { -w -flto -g -flto-partition=1to1 -O2 -shared -fPIC -fvisibility=hidden} } }
+ // { dg-require-effective-target fpic }
+ // { dg-require-effective-target shared }
+ struct APITracerContext {
+   virtual ~APITracerContext() = default;
+   virtual void releaseActivetracersList() = 0;
+ };
+ struct APITracerContextImp : APITracerContext {
+   ~APITracerContextImp() override;
+   void releaseActivetracersList() override;
+ };
+ struct APITracerContextImp globalAPITracerContextImp;
+ struct APITracerContextImp *pGlobalAPITracerContextImp = &globalAPITracerContextImp;
+ APITracerContextImp::~APITracerContextImp() {}
+ 
diff -Nrcpad gcc-14-20260611/gcc/testsuite/g++.dg/lto/pr114790_1.C gcc-14-20260618/gcc/testsuite/g++.dg/lto/pr114790_1.C
*** gcc-14-20260611/gcc/testsuite/g++.dg/lto/pr114790_1.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/g++.dg/lto/pr114790_1.C	Thu Jun 18 22:32:09 2026
***************
*** 0 ****
--- 1,15 ----
+ struct APITracerContext {
+   virtual void releaseActivetracersList() = 0;
+ };
+ extern struct APITracerContextImp *pGlobalAPITracerContextImp;
+ struct APITracerContextImp : APITracerContext { void releaseActivetracersList();};
+ int g();
+ inline int
+ apiTracerWrapperImp(  ) {
+   for (int i = 0; i < g(); i++) 
+   pGlobalAPITracerContextImp->releaseActivetracersList();
+ }
+ __attribute__((visibility("default"))) int
+ zeCommandListAppendMemoryCopyTracing() {
+   return apiTracerWrapperImp(      );
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/g++.dg/torture/pr123596.C gcc-14-20260618/gcc/testsuite/g++.dg/torture/pr123596.C
*** gcc-14-20260611/gcc/testsuite/g++.dg/torture/pr123596.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/g++.dg/torture/pr123596.C	Thu Jun 18 22:32:09 2026
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile }
+ 
+ struct b {
+   ~b() {}
+ };
+ struct c {
+   c(long, const int &, b = b());
+ };
+ int _setjmp();
+ long d;
+ void e(int *);
+ int a;
+ int main()
+ {
+   auto f = [](int *data) { e(data); };
+   f(&a);
+   c(d, _setjmp());
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/pr116053-1.c gcc-14-20260618/gcc/testsuite/gcc.dg/pr116053-1.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/pr116053-1.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/pr116053-1.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -finstrument-functions -fno-forward-propagate -fno-delete-dead-exceptions -fnon-call-exceptions" } */
+ /* { dg-require-effective-target exceptions } */
+ /* { dg-require-effective-target int128 } */
+ 
+ /* PR rtl-optimization/116053 */
+ 
+ void
+ foo (__int128 x)
+ {
+   x = *(__int128 *) __builtin_memset (&x, 0, 10);
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/pr120560.c gcc-14-20260618/gcc/testsuite/gcc.dg/pr120560.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/pr120560.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/pr120560.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fno-tree-ccp -fdump-tree-evrp" } */
+ int main() {
+   int a = -1, b = 2, c = 1;
+   if (a >= 0)
+     c = 0;
+   while (1) {
+     if (-b + c - 7 >= 0)
+       return 0;
+     b = b - 1000 - 2147482648;
+   }
+ }
+ /* { dg-final { scan-tree-dump "return 0"  "evrp" } } */
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/pr124454-1.c gcc-14-20260618/gcc/testsuite/gcc.dg/pr124454-1.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/pr124454-1.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/pr124454-1.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-forward-propagate -fnon-call-exceptions -fno-dse -fprofile-generate -fopenmp -finstrument-functions" } */
+ /* { dg-additional-options "-mno-outline-atomics" { target aarch64*-*-* } } */
+ 
+ /* PR rtl-optimization/124454 */
+ 
+ int a, b;
+ 
+ void
+ foo()
+ {
+   long c;
+   a *= b;
+   b = *(char *)__builtin_memset(&c, 1, 4);
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/pr125019.c gcc-14-20260618/gcc/testsuite/gcc.dg/pr125019.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/pr125019.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/pr125019.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fno-vect-cost-model -fno-tree-dce -fno-tree-pre" } */
+ 
+ int a, b, c, d;
+ void e(unsigned f) {
+   for (c = 0; c < 2; c++) {
+     b = d;
+     d = f;
+     for (a = 0; a < 2; a++)
+       ;
+   }
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/pr125501.c gcc-14-20260618/gcc/testsuite/gcc.dg/pr125501.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/pr125501.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/pr125501.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,35 ----
+ // { dg-do run }
+ // { dg-options "-O3" }
+ 
+ #include <stdint.h>
+ int64_t g2, g27, g10;
+ static void *g13, *g24;
+ _Bool f11___trans_tmp_1, f11_c17;
+ void __attribute__((noinline)) f11(int64_t a0, void *a4, void *a5)
+ {
+     _Bool ob6;
+     int32_t v12;
+     int64_t v15;
+ lbl_entry:
+ lbl_sw_def4:
+     ob6 = g13 == a4;
+     if (ob6 || f11_c17) return;
+     if (f11___trans_tmp_1) v12 = g10;
+     a0 = (char *)a5 - (char *)a4;
+     ob6 = 0 == a0;
+     *(_Bool *)4 = 0;
+     if (ob6) goto lbl_b22;
+     __builtin_unreachable();
+ lbl_b22:
+     g27 = v12;
+     switch (v15)
+     {
+         case 6009053803839173278: goto lbl_sw_def4;
+         case 70689892217558167: goto lbl_entry;
+     }
+ }
+ 
+ int main()
+ {
+     f11(0, 0, g24);
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr124555.c gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr124555.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr124555.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr124555.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-additional-options "-fwrapv" } */
+ 
+ int vsad8_c_y;
+ char *vsad8_c_s1, *vsad8_c_s2;
+ long vsad8_c_stride;
+ int vsad8_c()
+ {
+   int score, x;
+   for (; vsad8_c_y; vsad8_c_y++)
+     {
+       x = 0;
+       for (; x < 8; x++)
+ 	score += (vsad8_c_s1[x] - vsad8_c_s2[x] - vsad8_c_s1[x + vsad8_c_stride]
+ 	    + vsad8_c_s2[x + vsad8_c_stride]) >= 0
+ 	    ? vsad8_c_s1[x] - vsad8_c_s2[x] -
+ 	    vsad8_c_s1[x + vsad8_c_stride] +
+ 	    vsad8_c_s2[x + vsad8_c_stride]
+ 	    : -(vsad8_c_s1[x] - vsad8_c_s2[x] -
+ 		vsad8_c_s1[x + vsad8_c_stride] +
+ 		vsad8_c_s2[x + vsad8_c_stride]);
+       vsad8_c_s1 += vsad8_c_stride;
+       vsad8_c_s2 += vsad8_c_stride;
+     }
+   return score;
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr124868.c gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr124868.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr124868.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr124868.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" } } */
+ /* { dg-additional-options "-fisolate-erroneous-paths-dereference" } */
+ 
+ int a;
+ static void __attribute__((noipa)) c(int b) {}
+ static int * __attribute__((noipa))
+ d()
+ {
+   int g = 0, *h = &g;
+   if (a)
+     {
+       int **i = &h;
+       *i = 0;
+     }
+   c(*h);
+   return h; /* { dg-warning "address of local variable" } */
+ }
+ int
+ main()
+ {
+   d();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr125025.c gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr125025.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr125025.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr125025.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fsanitize=undefined" } */
+ 
+ void f2(signed char a0)
+ {
+   signed char v4;
+   _Bool c7;
+   signed char v8 = 91;
+   v4 = v8 + v8;
+   v8 = 15 - 50;
+   a0 = v8 * v4;
+   v8 = v4 - a0;
+ lbl_br10:
+   c7 = a0 <= 0;
+   if (c7)
+     return;
+   v4 = v8 - 24;
+   a0 = a0 + v4;
+   goto lbl_br10;
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr125774-1.c gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr125774-1.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/torture/pr125774-1.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/torture/pr125774-1.c	Thu Jun 18 22:32:10 2026
***************
*** 0 ****
--- 1,48 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fgimple -fdump-tree-optimized" } */
+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */
+ /* PR tree-optimization/125774 */
+ 
+ __attribute__((noipa))
+ _Bool __GIMPLE (ssa,startwith("dom2"))
+ f (int a, int b)
+ {
+   _Bool _3;
+   _Bool _4;
+   _Bool _5;
+ 
+   __BB(2):
+   _3 = a_1(D) > b_2(D);
+   _4 = b_2(D) > a_1(D);
+   _5 = _3 | _4;
+   return _5;
+ }
+ 
+ __attribute__((noipa))
+ _Bool __GIMPLE (ssa,startwith("dom2"))
+ f1 (int a, int b)
+ {
+   _Bool _3;
+   _Bool _4;
+   _Bool _5;
+ 
+   __BB(2):
+   _3 = a_1(D) > b_2(D);
+   _4 = a_1(D) < b_2(D);
+   _5 = _3 | _4;
+   return _5;
+ }
+ 
+ int main()
+ {
+   int a = 10, b = 10;
+   if (f(a,b))
+     __builtin_abort();
+   if (f1(a,b))
+     __builtin_abort();
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "return 1" "optimized" } } */
+ /* Both functions should be optimized to `a_1 != b_2`. */
+ /* { dg-final { scan-tree-dump-times "a_1.D. != b_2.D." 2 "optimized" { target __OPTIMIZE__ } } } */
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.dg/tree-ssa/pr124151.c gcc-14-20260618/gcc/testsuite/gcc.dg/tree-ssa/pr124151.c
*** gcc-14-20260611/gcc/testsuite/gcc.dg/tree-ssa/pr124151.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.dg/tree-ssa/pr124151.c	Thu Jun 18 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ 
+ typedef struct {
+   _Bool : 1;
+ } Http2Identifier;
+ typedef struct {
+   _Bool is_end;
+   Http2Identifier identifier;
+ } Http2DataFrame;
+ typedef struct {
+   Http2Identifier identifier;
+   _Bool end_headers;
+ } Http2ContinuationFrame;
+ typedef struct {
+   union {
+     Http2DataFrame data;
+     Http2ContinuationFrame continuation;
+   };
+ } Http2Frame;
+ typedef struct {
+   Http2Identifier stream_identifier;
+ } Http2RawHeader;
+ Http2RawHeader parse_http2_continuation_frame_http2_raw_header;
+ Http2Frame gh2f;
+ void http2_send_and_receive_preface() {
+   Http2ContinuationFrame continuation_frame = {
+       parse_http2_continuation_frame_http2_raw_header.stream_identifier, 0};
+   Http2Frame frame = {.continuation = continuation_frame};
+   gh2f = frame;
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.target/aarch64/pr125795.c gcc-14-20260618/gcc/testsuite/gcc.target/aarch64/pr125795.c
*** gcc-14-20260611/gcc/testsuite/gcc.target/aarch64/pr125795.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.target/aarch64/pr125795.c	Thu Jun 18 22:32:11 2026
***************
*** 0 ****
--- 1,47 ----
+ /* PR target/125795 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -funroll-loops" } */
+ 
+ /* This loop is vectorized with LD2 (deinterleave) and TBL (lane reversal),
+    then unrolled.  The unrolled body builds a full-width (32 FPR) early-ra
+    color group, which used to trigger a "1U << 32" undefined shift in
+    early_ra::allocate_colors.  As a result the long-lived TBL permute index
+    was wrongly allocated to the same FPR as an LD2 tuple destination and got
+    clobbered, so the result was miscomputed.  */
+ 
+ extern void abort (void);
+ 
+ #define N 256
+ 
+ static int __attribute__ ((noipa))
+ foo (void)
+ {
+   int k[N];
+   int k2[N];
+   int i;
+ 
+   for (i = 0; i < N; i++)
+     k2[i] = i;
+ 
+   for (i = 0; i < 64; i++)
+     {
+       k[i] = k2[2 * i + 0];
+       k[255 - i] = k2[2 * i + 1];
+       k[64 + i] = k2[2 * i + 128];
+       k[191 - i] = k2[2 * i + 129];
+     }
+ 
+   for (i = 0; i < N; i++)
+     if (k[i] != ((i < 128) ? (2 * i) : (511 - 2 * i)))
+       return 1;
+ 
+   return 0;
+ }
+ 
+ int
+ main (void)
+ {
+   if (foo ())
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c gcc-14-20260618/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c
*** gcc-14-20260611/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gcc.target/aarch64/torture/pr125621.c	Thu Jun 18 22:32:12 2026
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8.2-a+sve -fsanitize=undefined" } */
+ #include <arm_sve.h>
+ 
+ long foo(long x) {
+   return (long)svcntd() * x;
+ }
diff -Nrcpad gcc-14-20260611/gcc/testsuite/gfortran.dg/vect/pr125431.f90 gcc-14-20260618/gcc/testsuite/gfortran.dg/vect/pr125431.f90
*** gcc-14-20260611/gcc/testsuite/gfortran.dg/vect/pr125431.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260618/gcc/testsuite/gfortran.dg/vect/pr125431.f90	Thu Jun 18 22:32:14 2026
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-O2 -ffp-contract=off" }
+ ! { dg-additional-options "-march=armv8.3-a" { target { aarch64*-*-* } } }
+ 
+ subroutine foo(a,b,c)
+ 
+   complex :: a(6,6)
+   complex :: b(6,6)
+   complex :: c(6,6)
+ 
+   c = MATMUL(a, b)
+ 
+ end subroutine foo
+ 
+ ! { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { vect_float } }  } }
+ ! { dg-final { scan-tree-dump-not "Found COMPLEX_MUL" "vect" } }
diff -Nrcpad gcc-14-20260611/gcc/tree-eh.cc gcc-14-20260618/gcc/tree-eh.cc
*** gcc-14-20260611/gcc/tree-eh.cc	Thu Jun 11 22:32:12 2026
--- gcc-14-20260618/gcc/tree-eh.cc	Thu Jun 18 22:32:14 2026
*************** sink_clobbers (basic_block bb,
*** 3740,3745 ****
--- 3740,3757 ----
      }
    if (first_sunk)
      {
+       /* If there isn't a single predecessor but no virtual PHI node
+ 	 create one and arrange for virtual operands to be renamed as
+ 	 we cannot be sure all incoming edges will updated from sinking
+ 	 something.  */
+       if (!vphi && !single_pred_p (succbb))
+ 	{
+ 	  vphi = create_phi_node (gimple_vop (cfun), succbb);
+ 	  FOR_EACH_EDGE (e, ei, succbb->preds)
+ 	    add_phi_arg (vphi, gimple_vop (cfun), e, UNKNOWN_LOCATION);
+ 	  mark_virtual_operands_for_renaming (cfun);
+ 	  todo |= TODO_update_ssa_only_virtuals;
+ 	}
        /* Adjust virtual operands if we sunk across a virtual PHI.  */
        if (vphi)
  	{
*************** sink_clobbers (basic_block bb,
*** 3759,3772 ****
  		   gimple_vuse (last_sunk));
  	  SET_USE (gimple_vuse_op (last_sunk), phi_def);
  	}
-       /* If there isn't a single predecessor but no virtual PHI node
-          arrange for virtual operands to be renamed.  */
-       else if (!single_pred_p (succbb)
- 	       && TREE_CODE (gimple_vuse (last_sunk)) == SSA_NAME)
- 	{
- 	  mark_virtual_operand_for_renaming (gimple_vuse (last_sunk));
- 	  todo |= TODO_update_ssa_only_virtuals;
- 	}
      }
  
    return todo;
--- 3771,3776 ----
diff -Nrcpad gcc-14-20260611/gcc/tree-sra.cc gcc-14-20260618/gcc/tree-sra.cc
*** gcc-14-20260611/gcc/tree-sra.cc	Thu Jun 11 22:32:12 2026
--- gcc-14-20260618/gcc/tree-sra.cc	Thu Jun 18 22:32:14 2026
*************** build_debug_ref_for_model (location_t lo
*** 2080,2095 ****
  }
  
  /* Construct a memory reference consisting of component_refs and array_refs to
!    a part of an aggregate *RES (which is of type TYPE).  The requested part
!    should have type EXP_TYPE at be the given OFFSET.  This function might not
!    succeed, it returns true when it does and only then *RES points to something
!    meaningful.  This function should be used only to build expressions that we
!    might need to present to user (e.g. in warnings).  In all other situations,
     build_ref_for_model or build_ref_for_offset should be used instead.  */
  
  static bool
  build_user_friendly_ref_for_offset (tree *res, tree type, HOST_WIDE_INT offset,
! 				    tree exp_type)
  {
    while (1)
      {
--- 2080,2099 ----
  }
  
  /* Construct a memory reference consisting of component_refs and array_refs to
!    a part of an aggregate *RES which is of type TYPE.  The requested part
!    should have type EXP_TYPE at the given OFFSET.  CUR_SIZE must be the size of
!    *RES unless it is known that *RES alone cannot be the result.  This function
!    might not succeed, it returns true when it does and only then *RES points to
!    something meaningful.
! 
!    This function should be used only to build expressions that we might need to
!    present to user (e.g. in warnings).  In all other situations,
     build_ref_for_model or build_ref_for_offset should be used instead.  */
  
  static bool
  build_user_friendly_ref_for_offset (tree *res, tree type, HOST_WIDE_INT offset,
! 				    HOST_WIDE_INT cur_size, tree exp_type,
! 				    HOST_WIDE_INT exp_size)
  {
    while (1)
      {
*************** build_user_friendly_ref_for_offset (tree
*** 2097,2103 ****
        tree tr_size, index, minidx;
        HOST_WIDE_INT el_size;
  
!       if (offset == 0 && exp_type
  	  && types_compatible_p (exp_type, type))
  	return true;
  
--- 2101,2108 ----
        tree tr_size, index, minidx;
        HOST_WIDE_INT el_size;
  
!       if (offset == 0
! 	  && cur_size == exp_size
  	  && types_compatible_p (exp_type, type))
  	return true;
  
*************** build_user_friendly_ref_for_offset (tree
*** 2135,2141 ****
  			     NULL_TREE);
  	      expr_ptr = &expr;
  	      if (build_user_friendly_ref_for_offset (expr_ptr, TREE_TYPE (fld),
! 						      offset - pos, exp_type))
  		{
  		  *res = expr;
  		  return true;
--- 2140,2147 ----
  			     NULL_TREE);
  	      expr_ptr = &expr;
  	      if (build_user_friendly_ref_for_offset (expr_ptr, TREE_TYPE (fld),
! 						      offset - pos, size,
! 						      exp_type, exp_size))
  		{
  		  *res = expr;
  		  return true;
*************** build_user_friendly_ref_for_offset (tree
*** 2158,2174 ****
  	  *res = build4 (ARRAY_REF, TREE_TYPE (type), *res, index,
  			 NULL_TREE, NULL_TREE);
  	  offset = offset % el_size;
  	  type = TREE_TYPE (type);
  	  break;
  
  	default:
! 	  if (offset != 0)
! 	    return false;
! 
! 	  if (exp_type)
! 	    return false;
! 	  else
! 	    return true;
  	}
      }
  }
--- 2164,2175 ----
  	  *res = build4 (ARRAY_REF, TREE_TYPE (type), *res, index,
  			 NULL_TREE, NULL_TREE);
  	  offset = offset % el_size;
+ 	  cur_size = el_size;
  	  type = TREE_TYPE (type);
  	  break;
  
  	default:
! 	  return false;
  	}
      }
  }
*************** create_artificial_child_access (struct a
*** 3035,3041 ****
    struct access *access = access_pool.allocate ();
    memset (access, 0, sizeof (struct access));
    if (!build_user_friendly_ref_for_offset (&expr, TREE_TYPE (expr), new_offset,
! 					   model->type))
      {
        access->grp_no_warning = true;
        expr = build_ref_for_model (EXPR_LOCATION (parent->base), parent->base,
--- 3036,3043 ----
    struct access *access = access_pool.allocate ();
    memset (access, 0, sizeof (struct access));
    if (!build_user_friendly_ref_for_offset (&expr, TREE_TYPE (expr), new_offset,
! 					   parent->size, model->type,
! 					   model->size))
      {
        access->grp_no_warning = true;
        expr = build_ref_for_model (EXPR_LOCATION (parent->base), parent->base,
*************** propagate_subaccesses_from_rhs (struct a
*** 3174,3181 ****
  	  tree t = lacc->base;
  
  	  lacc->type = racc->type;
  	  if (build_user_friendly_ref_for_offset (&t, TREE_TYPE (t),
! 						  lacc->offset, racc->type))
  	    {
  	      lacc->expr = t;
  	      lacc->grp_same_access_path = true;
--- 3176,3186 ----
  	  tree t = lacc->base;
  
  	  lacc->type = racc->type;
+ 	  /* We know racc and lacc are of different types so can pass -1 as
+ 	     cur_size.  */
  	  if (build_user_friendly_ref_for_offset (&t, TREE_TYPE (t),
! 						  lacc->offset, -1,
! 						  racc->type, racc->size))
  	    {
  	      lacc->expr = t;
  	      lacc->grp_same_access_path = true;
*************** propagate_subaccesses_from_rhs (struct a
*** 3233,3239 ****
  	}
  
        if (rchild->grp_unscalarizable_region
- 	  || (rchild->size % BITS_PER_UNIT) != 0
  	  || !budget_for_propagation_access (lacc->base))
  	{
  	  if (!lacc->grp_write && access_or_its_child_written (rchild))
--- 3238,3243 ----
*************** propagate_subaccesses_from_lhs (struct a
*** 3293,3299 ****
        HOST_WIDE_INT norm_offset = lchild->offset + norm_delta;
  
        if (lchild->grp_unscalarizable_region
- 	  || (lchild->size % BITS_PER_UNIT) != 0
  	  || child_would_conflict_in_acc (racc, norm_offset, lchild->size,
  					  &matching_acc)
  	  || !budget_for_propagation_access (racc->base))
--- 3297,3302 ----
diff -Nrcpad gcc-14-20260611/gcc/tree-ssa-dom.cc gcc-14-20260618/gcc/tree-ssa-dom.cc
*** gcc-14-20260611/gcc/tree-ssa-dom.cc	Thu Jun 11 22:32:12 2026
--- gcc-14-20260618/gcc/tree-ssa-dom.cc	Thu Jun 18 22:32:14 2026
*************** dom_opt_dom_walker::set_global_ranges_fr
*** 1429,1434 ****
--- 1429,1440 ----
        || !assert_unreachable_fallthru_edge_p (pred_e))
      return;
  
+   // Bail if the condition leading to the assert has 2 ssa-names.
+   // See PR 125501.
+   if ((TREE_CODE (gimple_cond_lhs (stmt)) == SSA_NAME
+       && TREE_CODE (gimple_cond_rhs (stmt)) == SSA_NAME))
+     return;
+ 
    tree name;
    gori_compute &gori = m_ranger->gori ();
    FOR_EACH_GORI_EXPORT_NAME (gori, pred_e->src, name)
diff -Nrcpad gcc-14-20260611/gcc/tree-ssa-loop-niter.cc gcc-14-20260618/gcc/tree-ssa-loop-niter.cc
*** gcc-14-20260611/gcc/tree-ssa-loop-niter.cc	Thu Jun 11 22:32:12 2026
--- gcc-14-20260618/gcc/tree-ssa-loop-niter.cc	Thu Jun 18 22:32:14 2026
*************** number_of_iterations_ne (class loop *loo
*** 987,994 ****
       if BNDS->below in the result is nonnegative.  */
    if (tree_int_cst_sign_bit (iv->step))
      {
!       s = fold_convert (niter_type,
! 			fold_build1 (NEGATE_EXPR, type, iv->step));
        c = fold_build2 (MINUS_EXPR, niter_type,
  		       fold_convert (niter_type, iv->base),
  		       fold_convert (niter_type, final));
--- 987,994 ----
       if BNDS->below in the result is nonnegative.  */
    if (tree_int_cst_sign_bit (iv->step))
      {
!       s = fold_build1 (NEGATE_EXPR, niter_type,
! 		       fold_convert (niter_type, iv->step));
        c = fold_build2 (MINUS_EXPR, niter_type,
  		       fold_convert (niter_type, iv->base),
  		       fold_convert (niter_type, final));
*************** number_of_iterations_lt (class loop *loo
*** 1632,1639 ****
    if (integer_nonzerop (iv0->step))
      step = fold_convert (niter_type, iv0->step);
    else
!     step = fold_convert (niter_type,
! 			 fold_build1 (NEGATE_EXPR, type, iv1->step));
  
    /* If we can determine the final value of the control iv exactly, we can
       transform the condition to != comparison.  In particular, this will be
--- 1632,1639 ----
    if (integer_nonzerop (iv0->step))
      step = fold_convert (niter_type, iv0->step);
    else
!     step = fold_build1 (NEGATE_EXPR, niter_type,
! 			fold_convert (niter_type, iv1->step));
  
    /* If we can determine the final value of the control iv exactly, we can
       transform the condition to != comparison.  In particular, this will be
diff -Nrcpad gcc-14-20260611/gcc/tree-vect-loop.cc gcc-14-20260618/gcc/tree-vect-loop.cc
*** gcc-14-20260611/gcc/tree-vect-loop.cc	Thu Jun 11 22:32:13 2026
--- gcc-14-20260618/gcc/tree-vect-loop.cc	Thu Jun 18 22:32:14 2026
*************** vectorizable_recurr (loop_vec_info loop_
*** 9364,9370 ****
      }
    /* Skip inserted vectorized stmts for the latch definition.  We have to
       insert after those.  */
!   while (gimple_uid (gsi_stmt (gsi2)) == 0);
  
    for (unsigned i = 0; i < ncopies; ++i)
      {
--- 9364,9370 ----
      }
    /* Skip inserted vectorized stmts for the latch definition.  We have to
       insert after those.  */
!   while (gsi_stmt (gsi2) && gimple_uid (gsi_stmt (gsi2)) == 0);
  
    for (unsigned i = 0; i < ncopies; ++i)
      {
diff -Nrcpad gcc-14-20260611/gcc/tree-vect-slp-patterns.cc gcc-14-20260618/gcc/tree-vect-slp-patterns.cc
*** gcc-14-20260611/gcc/tree-vect-slp-patterns.cc	Thu Jun 11 22:32:13 2026
--- gcc-14-20260618/gcc/tree-vect-slp-patterns.cc	Thu Jun 18 22:32:14 2026
*************** complex_mul_pattern::matches (complex_op
*** 1031,1036 ****
--- 1031,1041 ----
    if (op != MINUS_PLUS)
      return IFN_LAST;
  
+   /* It's only valid to form FMAs and MUL with -ffp-contract=fast.  */
+   if (flag_fp_contract_mode != FP_CONTRACT_FAST
+       && FLOAT_TYPE_P (SLP_TREE_VECTYPE (*node)))
+     return IFN_LAST;
+ 
    auto childs = *ops;
    auto l0node = SLP_TREE_CHILDREN (childs[0]);
  
*************** complex_mul_pattern::matches (complex_op
*** 1043,1053 ****
    auto_vec<slp_tree> left_op, right_op;
    slp_tree add0 = NULL;
  
!   /* Check if we may be a multiply add.  It's only valid to form FMAs
!      with -ffp-contract=fast.  */
    if (!mul0
-       && (flag_fp_contract_mode == FP_CONTRACT_FAST
- 	  || !FLOAT_TYPE_P (SLP_TREE_VECTYPE (*node)))
        && vect_match_expression_p (l0node[0], PLUS_EXPR))
      {
        auto vals = SLP_TREE_CHILDREN (l0node[0]);
--- 1048,1055 ----
    auto_vec<slp_tree> left_op, right_op;
    slp_tree add0 = NULL;
  
!   /* Check if we may be a multiply add.  */
    if (!mul0
        && vect_match_expression_p (l0node[0], PLUS_EXPR))
      {
        auto vals = SLP_TREE_CHILDREN (l0node[0]);
*************** complex_fms_pattern::matches (complex_op
*** 1278,1283 ****
--- 1280,1290 ----
    if (!vect_match_expression_p (root, MINUS_EXPR))
      return IFN_LAST;
  
+   /* It's only valid to form FMSs with -ffp-contract=fast.  */
+   if (flag_fp_contract_mode != FP_CONTRACT_FAST
+       && FLOAT_TYPE_P (SLP_TREE_VECTYPE (*ref_node)))
+     return IFN_LAST;
+ 
    /* TODO: Support invariants here, with the new layout CADD now
  	   can match before we get a chance to try CFMS.  */
    auto nodes = SLP_TREE_CHILDREN (root);
diff -Nrcpad gcc-14-20260611/gcc/vr-values.cc gcc-14-20260618/gcc/vr-values.cc
*** gcc-14-20260611/gcc/vr-values.cc	Thu Jun 11 22:32:13 2026
--- gcc-14-20260618/gcc/vr-values.cc	Thu Jun 18 22:32:14 2026
*************** range_from_loop_direction (irange &r, tr
*** 245,258 ****
      r.set_varying (type);
    else if (dir == EV_DIR_GROWS)
      {
!       if (wi::gt_p (begin.lower_bound (), end.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, begin.lower_bound (), end.upper_bound ());
      }
    else
      {
!       if (wi::gt_p (end.lower_bound (), begin.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, end.lower_bound (), begin.upper_bound ());
--- 245,258 ----
      r.set_varying (type);
    else if (dir == EV_DIR_GROWS)
      {
!       if (wi::ge_p (begin.lower_bound (), end.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, begin.lower_bound (), end.upper_bound ());
      }
    else
      {
!       if (wi::ge_p (end.lower_bound (), begin.upper_bound (), sign))
  	r.set_varying (type);
        else
  	r = int_range<1> (type, end.lower_bound (), begin.upper_bound ());
diff -Nrcpad gcc-14-20260611/libgcc/config/avr/libf7/ChangeLog gcc-14-20260618/libgcc/config/avr/libf7/ChangeLog
*** gcc-14-20260611/libgcc/config/avr/libf7/ChangeLog	Thu Jun 11 22:32:13 2026
--- gcc-14-20260618/libgcc/config/avr/libf7/ChangeLog	Thu Jun 18 22:32:14 2026
***************
*** 1,3 ****
--- 1,22 ----
+ 2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2026-06-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/125752
+ 	* libf7-asm.sx (ufx64_to_d, d_to_fx64): New DEFUNs.
+ 	(__fractdadf, __fractudadf, __fracttadf, __fractutadf)
+ 	(__fractdqdf, __fractudqdf): New _DEFUNs.
+ 	* libf7-common.mk (F7_ASM_PARTS) Add: fx2D, D2fx,
+ 	dq2D, udq2D, da2D, uda2D, ta2D uta2D.
+ 	(F7F): Add d_to_fx64, ufx64_to_d, sfx64_to_d.
+ 	* libf7.c (d_to_ufx, d_to_sfx): New protos.
+ 	(__fractdfda, __fractdfuda, __fractdfta, __fractdfuta)
+ 	(__fractdfdq, __fractdfudq): New modules.
+ 	* t-libf7 (LIBF7_DF_CONV): Add fractdfda,
+ 	fractdfta, fractdfdq, fractdfuda, fractdfuta, fractdfudq.
+ 	* f7-renames.h: Rebuild.
+ 
  2025-10-09  Georg-Johann Lay  <avr@gjlay.de>
  
  	Backported from master:
