diff -Nrcpad gcc-14-20260130/LAST_UPDATED gcc-14-20260206/LAST_UPDATED
*** gcc-14-20260130/LAST_UPDATED	Fri Jan 30 22:32:20 2026
--- gcc-14-20260206/LAST_UPDATED	Fri Feb  6 22:32:19 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 28e8b195c51c0ea0806ea6dc79534f29b06fa0e4
--- 1 ----
! Obtained from git: releases/gcc-14 revision 936c3666dbd45b6789772f48adca99f57af0fde6
diff -Nrcpad gcc-14-20260130/MD5SUMS gcc-14-20260206/MD5SUMS
*** gcc-14-20260130/MD5SUMS	Fri Jan 30 22:32:25 2026
--- gcc-14-20260206/MD5SUMS	Fri Feb  6 22:32:23 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260130.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-20260206.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
! 21b43ecc285a1833dc4f9c0546770f7f  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 6e356b2a35562dc05b9c5b601612ff78  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
! 99ca27c6682085e3c49e53b53aeec654  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
! 93fd38e747bc059965c6f7d02da36831  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
! ca4bdf552f9a521ce938dc419b14a5c0  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
! 6acd0d66cb75bcbd6dd0867a4200934b  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 553,559 ****
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! be0cab71ff09b7b659bf1c79f0fb3dd4  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 553,559 ----
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! a5c5c62b0d0067bc80f04937603bc712  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** bdcc560c68a31540ed1be0895b491d16  gcc/co
*** 3321,3328 ****
  0bb8e93654406d5816462dc1f8842769  gcc/config/aarch64/aarch64-builtins.h
  494ddd3c679bcdc80a1da0c474a5fcb8  gcc/config/aarch64/aarch64-c.cc
  d3b3f877b2f7ba7842ef909af5fc5c7b  gcc/config/aarch64/aarch64-cc-fusion.cc
! a17b67b85b4cff672d995ab11eef3784  gcc/config/aarch64/aarch64-cores.def
! d925338e5d17fde6b5de263fd751e66a  gcc/config/aarch64/aarch64-cost-tables.h
  19827f863b9abd957d663a067d5b2db2  gcc/config/aarch64/aarch64-d.cc
  4ddea453344c4e39481f379718aed12e  gcc/config/aarch64/aarch64-d.h
  384a4c1df14dc707c40334bccccab61d  gcc/config/aarch64/aarch64-early-ra.cc
--- 3321,3328 ----
  0bb8e93654406d5816462dc1f8842769  gcc/config/aarch64/aarch64-builtins.h
  494ddd3c679bcdc80a1da0c474a5fcb8  gcc/config/aarch64/aarch64-c.cc
  d3b3f877b2f7ba7842ef909af5fc5c7b  gcc/config/aarch64/aarch64-cc-fusion.cc
! 48a393d4f3ccf0b9d361930273ccf71d  gcc/config/aarch64/aarch64-cores.def
! 8710ba7e69e4eb0fe531cacce5ac0ef7  gcc/config/aarch64/aarch64-cost-tables.h
  19827f863b9abd957d663a067d5b2db2  gcc/config/aarch64/aarch64-d.cc
  4ddea453344c4e39481f379718aed12e  gcc/config/aarch64/aarch64-d.h
  384a4c1df14dc707c40334bccccab61d  gcc/config/aarch64/aarch64-early-ra.cc
*************** ef06d72bc9e60ff08580d377b7f8883a  gcc/co
*** 3367,3381 ****
  dab9f216d0b1b73156c675fe6b4d3460  gcc/config/aarch64/aarch64-sve.md
  a39737ff1f5e6f846bf63d31e70b6410  gcc/config/aarch64/aarch64-sve2.md
  83dd7ccda19ffdca5c763ae0357b3a40  gcc/config/aarch64/aarch64-sys-regs.def
! e74b8aa51ed0a0fd74ec97bb4009c55f  gcc/config/aarch64/aarch64-tune.md
  6ede31fb52cae2cf590b667c55706637  gcc/config/aarch64/aarch64-tuning-flags.def
  93d2ce2396c397f594f146a9d7d80c52  gcc/config/aarch64/aarch64-vxworks.h
! d5d1b940a8c66aeb356b4782536d3412  gcc/config/aarch64/aarch64.cc
  be8a897650902ba46d1df7cb3a50ca2c  gcc/config/aarch64/aarch64.h
  f73881040bcc95fcfef6c8adbb4d3e6d  gcc/config/aarch64/aarch64.md
  3948f2f1b7b27ca528cac06ae5fe36ff  gcc/config/aarch64/aarch64.opt
  1277617373f7bad91a5af74470db72b3  gcc/config/aarch64/aarch64.opt.urls
! 50444b4cc17d01769c6e4fe9b5ba9a04  gcc/config/aarch64/arm_acle.h
  c55b48fec74c65f795a066248defd73c  gcc/config/aarch64/arm_bf16.h
  bc7f4369a16c4662b3bddb54d086bbf7  gcc/config/aarch64/arm_fp16.h
  cdbd4445c7cfe7382e25c6b15ce3a42a  gcc/config/aarch64/arm_neon.h
--- 3367,3381 ----
  dab9f216d0b1b73156c675fe6b4d3460  gcc/config/aarch64/aarch64-sve.md
  a39737ff1f5e6f846bf63d31e70b6410  gcc/config/aarch64/aarch64-sve2.md
  83dd7ccda19ffdca5c763ae0357b3a40  gcc/config/aarch64/aarch64-sys-regs.def
! 33a4960a659d71bba22c1a55c94c828a  gcc/config/aarch64/aarch64-tune.md
  6ede31fb52cae2cf590b667c55706637  gcc/config/aarch64/aarch64-tuning-flags.def
  93d2ce2396c397f594f146a9d7d80c52  gcc/config/aarch64/aarch64-vxworks.h
! e5d21d41b4e1c5848810fd398dac9256  gcc/config/aarch64/aarch64.cc
  be8a897650902ba46d1df7cb3a50ca2c  gcc/config/aarch64/aarch64.h
  f73881040bcc95fcfef6c8adbb4d3e6d  gcc/config/aarch64/aarch64.md
  3948f2f1b7b27ca528cac06ae5fe36ff  gcc/config/aarch64/aarch64.opt
  1277617373f7bad91a5af74470db72b3  gcc/config/aarch64/aarch64.opt.urls
! f61efd6d307f4c9a5ce32b1a5ff63083  gcc/config/aarch64/arm_acle.h
  c55b48fec74c65f795a066248defd73c  gcc/config/aarch64/arm_bf16.h
  bc7f4369a16c4662b3bddb54d086bbf7  gcc/config/aarch64/arm_fp16.h
  cdbd4445c7cfe7382e25c6b15ce3a42a  gcc/config/aarch64/arm_neon.h
*************** c49f8b96d615307400f980e58ffd7cf8  gcc/co
*** 3424,3429 ****
--- 3424,3430 ----
  d35355ab4d0ccdea4076688532d48a05  gcc/config/aarch64/tuning_models/generic.h
  7a9a276714666f9890a3a5d6a980112c  gcc/config/aarch64/tuning_models/generic_armv8_a.h
  5508125b75bb109851c1d396c106f943  gcc/config/aarch64/tuning_models/generic_armv9_a.h
+ 4ea2c74c1aeb3cdbec7dc753540abde8  gcc/config/aarch64/tuning_models/hip12.h
  d068cb56d5712ac565cc516fc88dba6c  gcc/config/aarch64/tuning_models/neoverse512tvb.h
  202265af3c034cfb711d38ec66a8be25  gcc/config/aarch64/tuning_models/neoversen1.h
  3a9dd309e6e618ae56d5a65241605bbd  gcc/config/aarch64/tuning_models/neoversen2.h
*************** e82f2dd2df5fd204d1c7102be6f29c11  gcc/co
*** 4132,4138 ****
  70a56f513b7336a41d2b3a23877154f8  gcc/config/i386/sm4intrin.h
  8fce480b063b9abc4081b814b0fc7e01  gcc/config/i386/smmintrin.h
  fe9eadd749e61a2279304a5617888723  gcc/config/i386/sol2.h
! 3eec5e27b0ebb993a986fe9e9f2b4675  gcc/config/i386/sse.md
  b415a4e3e2cdd58a97ae395bffcb7e09  gcc/config/i386/ssemath.h
  618acc597863bc9b3c097b7b7669aed0  gcc/config/i386/stringop.def
  8fdfd8196f3dd509d9f9806774c453e0  gcc/config/i386/subst.md
--- 4133,4139 ----
  70a56f513b7336a41d2b3a23877154f8  gcc/config/i386/sm4intrin.h
  8fce480b063b9abc4081b814b0fc7e01  gcc/config/i386/smmintrin.h
  fe9eadd749e61a2279304a5617888723  gcc/config/i386/sol2.h
! b8336a17471de21706c7c105330819ab  gcc/config/i386/sse.md
  b415a4e3e2cdd58a97ae395bffcb7e09  gcc/config/i386/ssemath.h
  618acc597863bc9b3c097b7b7669aed0  gcc/config/i386/stringop.def
  8fdfd8196f3dd509d9f9806774c453e0  gcc/config/i386/subst.md
*************** bf32c438eaeb9f5ef0b840bddc108fc7  gcc/cs
*** 5471,5477 ****
  aba39deaa8ad2ad555dc0798497a6c58  gcc/ctfc.cc
  94a425b811af1e25020f3a86ae78ee7c  gcc/ctfc.h
  7f33e05a76e2406be70d93293850b281  gcc/ctfout.cc
! 7d7523e3335b4cfd0720280f0602afe8  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
--- 5472,5478 ----
  aba39deaa8ad2ad555dc0798497a6c58  gcc/ctfc.cc
  94a425b811af1e25020f3a86ae78ee7c  gcc/ctfc.h
  7f33e05a76e2406be70d93293850b281  gcc/ctfout.cc
! 7a2479f4acd215810b165b7c90bd66c2  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
*************** e9b8122841fbfbbc30fee8ed6613c399  gcc/do
*** 5794,5800 ****
  aa4d93313f9b7a5aec5b09041fd796a0  gcc/doc/install.texi
  2ef5aff8fc8a7cedf6236f86835e2608  gcc/doc/install.texi2html
  26c53e1edece23eebf72e40881f20e46  gcc/doc/interface.texi
! c1a5e80ed253e356229c7b9d11a15f0e  gcc/doc/invoke.texi
  4eb965d8ead78f1e3757415ae4d7872f  gcc/doc/languages.texi
  d2687b47a74c0bb7a227308dc1e7ba84  gcc/doc/libgcc.texi
  1e7dce602334edeb2ec545b9da6e4206  gcc/doc/loop.texi
--- 5795,5801 ----
  aa4d93313f9b7a5aec5b09041fd796a0  gcc/doc/install.texi
  2ef5aff8fc8a7cedf6236f86835e2608  gcc/doc/install.texi2html
  26c53e1edece23eebf72e40881f20e46  gcc/doc/interface.texi
! 61741472ca9bae87c7a749fabecbdb11  gcc/doc/invoke.texi
  4eb965d8ead78f1e3757415ae4d7872f  gcc/doc/languages.texi
  d2687b47a74c0bb7a227308dc1e7ba84  gcc/doc/libgcc.texi
  1e7dce602334edeb2ec545b9da6e4206  gcc/doc/loop.texi
*************** bb7378727cbc8346ebdf8cd0176af412  gcc/ge
*** 6021,6027 ****
  9fbc939eb3de1b24e44fe11079188734  gcc/genconstants.cc
  943979b69fdc9944eca15baf362f98e4  gcc/genemit.cc
  f3a7764a7c793e3d3df9b9acec2f48d0  gcc/genenums.cc
! 2eeedeeeb51c596de137156b7537bbe9  gcc/generic-match-head.cc
  0c416ac0631bf27d14efb4448314ae77  gcc/generic-match.h
  1390ddecf16e4f6bd2726bedbabe9efc  gcc/genextract.cc
  b888eb75bc8713a70f6e9c5d97c71dc3  gcc/genflags.cc
--- 6022,6028 ----
  9fbc939eb3de1b24e44fe11079188734  gcc/genconstants.cc
  943979b69fdc9944eca15baf362f98e4  gcc/genemit.cc
  f3a7764a7c793e3d3df9b9acec2f48d0  gcc/genenums.cc
! aa611ee3448c2c81eff3cb419ebff5d5  gcc/generic-match-head.cc
  0c416ac0631bf27d14efb4448314ae77  gcc/generic-match.h
  1390ddecf16e4f6bd2726bedbabe9efc  gcc/genextract.cc
  b888eb75bc8713a70f6e9c5d97c71dc3  gcc/genflags.cc
*************** f3cd4a37afdd5c50fd88f8bea73656f2  gcc/gi
*** 6075,6081 ****
  12562b4241cb21c9842168612f666fbb  gcc/gimple-lower-bitint.cc
  0da9234d337390e5ca66679b3e055deb  gcc/gimple-lower-bitint.h
  77bf05ef21f77c3ea4b0b145cd57240b  gcc/gimple-match-exports.cc
! 52905dc6829d45f26f8fbd85e434b469  gcc/gimple-match-head.cc
  31611e4e0bafcf373d9ef16549d2068d  gcc/gimple-match.h
  a2774d6e6bb2338986570646e859eda0  gcc/gimple-predicate-analysis.cc
  8f1e804189ae411c585fe95b40c35b4c  gcc/gimple-predicate-analysis.h
--- 6076,6082 ----
  12562b4241cb21c9842168612f666fbb  gcc/gimple-lower-bitint.cc
  0da9234d337390e5ca66679b3e055deb  gcc/gimple-lower-bitint.h
  77bf05ef21f77c3ea4b0b145cd57240b  gcc/gimple-match-exports.cc
! 9abca7865ad0fa60c0d19e6acebba08e  gcc/gimple-match-head.cc
  31611e4e0bafcf373d9ef16549d2068d  gcc/gimple-match.h
  a2774d6e6bb2338986570646e859eda0  gcc/gimple-predicate-analysis.cc
  8f1e804189ae411c585fe95b40c35b4c  gcc/gimple-predicate-analysis.h
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7418,7424 ****
  d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
  db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
  a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! c38aa5c5a57fb81f7a155848afd6b45b  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
! 777f974921b6580b181283b9d342a599  gcc/match.pd
  3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
  258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
  b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8061,8067 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! ffa85afc65ee172cbef6f993283c2b61  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
! 91fd5dae231fb229205c8fd7080d640c  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** b48e2095b969e9e4d541b80007eaed1f  gcc/te
*** 35215,35220 ****
--- 35216,35222 ----
  ea015573ee8ddabae38c2a615f8228fb  gcc/testsuite/g++.target/i386/pr122446-amxfp16.C
  59ffb1a0656cc43a87c4b7e240fb28c6  gcc/testsuite/g++.target/i386/pr122446-amxint8.C
  ffbb5e0bd5668625c6d5cef769228118  gcc/testsuite/g++.target/i386/pr122446-amxtile.C
+ fe98d8bd643079ebf7d12496d3189d03  gcc/testsuite/g++.target/i386/pr123779.C
  55fb67abf6517f92b1a0240d2c06b5c5  gcc/testsuite/g++.target/i386/pr35513-1.C
  14dde546e4eefec7aa6d1ac41261cb16  gcc/testsuite/g++.target/i386/pr35513-2.C
  1c706f97b6d93c0124dc4a203c98f6d2  gcc/testsuite/g++.target/i386/pr57362.C
*************** b9f75d112b5891dd319ae19e3779967f  gcc/te
*** 50498,50503 ****
--- 50500,50506 ----
  8059636329da8ba84cf6fc4ecf02e524  gcc/testsuite/gcc.dg/torture/pr116454-2.c
  26feb828f8efabc996ee22e90cd17fc1  gcc/testsuite/gcc.dg/torture/pr116585.c
  59484ae831cab97471a148691d17d840  gcc/testsuite/gcc.dg/torture/pr116768.c
+ bf21c0311a6a3c46ee997e03811677f0  gcc/testsuite/gcc.dg/torture/pr116772-1.c
  7ff97033e93d5c0fd815ba8a91fcd00e  gcc/testsuite/gcc.dg/torture/pr116922.c
  0ab0973399fe5f1ad629cde162d7febd  gcc/testsuite/gcc.dg/torture/pr117041.c
  717e28a7c3f736d4be6dffbb456735cc  gcc/testsuite/gcc.dg/torture/pr117086.c
*************** e6e17b2280f19928b738f46328c5dcf7  gcc/te
*** 50523,50528 ****
--- 50526,50532 ----
  e23df6b1422011499b9a500d2bf25add  gcc/testsuite/gcc.dg/torture/pr120944.c
  d41266e6594db1994e416e7a7353751e  gcc/testsuite/gcc.dg/torture/pr121370.c
  d4560440fd7b3647f8780537a59e4716  gcc/testsuite/gcc.dg/torture/pr122188.c
+ 406979b51eba3578f721938e7d4189da  gcc/testsuite/gcc.dg/torture/pr123887.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
*************** e95d7302a79bebe0c38e93d641a753d8  gcc/te
*** 58439,58444 ****
--- 58443,58449 ----
  aad77ff8d57a3f0e3712d2f32526716c  gcc/testsuite/gcc.target/aarch64/pr116258.c
  b9ca6f13a261db1602a13a0c96147059  gcc/testsuite/gcc.target/aarch64/pr117186.c
  83ac293146b05a62ec4a19e52751ebd1  gcc/testsuite/gcc.target/aarch64/pr121253.c
+ 085f7e2087fb0cf8d5d9a44259bb616c  gcc/testsuite/gcc.target/aarch64/pr123548.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
*************** d828e38384c506bf5e7d5a3c02725a37  libssp
*** 123804,123810 ****
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! bdaf24855e1634ad3ecc1c2418d90436  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 123809,123815 ----
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! 1dc08c67596816be2a7307ad950cdcbb  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** afef6bb168d2a386d2dc4aaf2937c1d1  libstd
*** 124557,124563 ****
  b320b8e354287c4e241d67f2b75eff17  libstdc++-v3/include/bits/ranges_algo.h
  6cb193dd721dcfc25fcaee8dfea5e5fe  libstdc++-v3/include/bits/ranges_algobase.h
  8acf5ee995f9787021a67b3f8d9c591b  libstdc++-v3/include/bits/ranges_base.h
! 2b75fae9285c2ca3120c6d7191768285  libstdc++-v3/include/bits/ranges_cmp.h
  66406b0b277e3b6df527a052145d6990  libstdc++-v3/include/bits/ranges_uninitialized.h
  6b723b82f7c41537c2bba4766e5d0639  libstdc++-v3/include/bits/ranges_util.h
  a7e081671330fd3d6d40ef990c3a9db5  libstdc++-v3/include/bits/refwrap.h
--- 124562,124568 ----
  b320b8e354287c4e241d67f2b75eff17  libstdc++-v3/include/bits/ranges_algo.h
  6cb193dd721dcfc25fcaee8dfea5e5fe  libstdc++-v3/include/bits/ranges_algobase.h
  8acf5ee995f9787021a67b3f8d9c591b  libstdc++-v3/include/bits/ranges_base.h
! 2d8db914447b3a437d4c8f60de452767  libstdc++-v3/include/bits/ranges_cmp.h
  66406b0b277e3b6df527a052145d6990  libstdc++-v3/include/bits/ranges_uninitialized.h
  6b723b82f7c41537c2bba4766e5d0639  libstdc++-v3/include/bits/ranges_util.h
  a7e081671330fd3d6d40ef990c3a9db5  libstdc++-v3/include/bits/refwrap.h
*************** cc051c68674baf68361ca6695a77f7e6  libstd
*** 124591,124597 ****
  1c3aabbb99d2602f69668b80beb790ae  libstdc++-v3/include/bits/stl_bvector.h
  6768219e2c3fc30ed6027137aafb710c  libstdc++-v3/include/bits/stl_construct.h
  1be5734c1db6c9de0fedf7fa1d5e102a  libstdc++-v3/include/bits/stl_deque.h
! ef1b6b4ad02b6462ce918aef51a943c0  libstdc++-v3/include/bits/stl_function.h
  75cf6d6cb1c1d44bd3a905a9544df4bc  libstdc++-v3/include/bits/stl_heap.h
  339b5390cddf138a3a7fc3f3cd6545cf  libstdc++-v3/include/bits/stl_iterator.h
  347505b7f4c350b156cf3d2bb3093b9e  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
--- 124596,124602 ----
  1c3aabbb99d2602f69668b80beb790ae  libstdc++-v3/include/bits/stl_bvector.h
  6768219e2c3fc30ed6027137aafb710c  libstdc++-v3/include/bits/stl_construct.h
  1be5734c1db6c9de0fedf7fa1d5e102a  libstdc++-v3/include/bits/stl_deque.h
! 294c786967cfe73187d740c03e84a825  libstdc++-v3/include/bits/stl_function.h
  75cf6d6cb1c1d44bd3a905a9544df4bc  libstdc++-v3/include/bits/stl_heap.h
  339b5390cddf138a3a7fc3f3cd6545cf  libstdc++-v3/include/bits/stl_iterator.h
  347505b7f4c350b156cf3d2bb3093b9e  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
*************** dd78226efec632a1bf11d226184d7549  libstd
*** 124610,124616 ****
  a57c2eea3d91c8f1a29fa4b9ace4ea63  libstdc++-v3/include/bits/stl_tempbuf.h
  5cf28485e3f264d431272d51f07c5c04  libstdc++-v3/include/bits/stl_tree.h
  3edc9af91c97f67be21f622537b06558  libstdc++-v3/include/bits/stl_uninitialized.h
! 49e91c31cb1c8d8699400b543aa62a5b  libstdc++-v3/include/bits/stl_vector.h
  efd6795d1859818275b215954d81b08a  libstdc++-v3/include/bits/stream_iterator.h
  418d6c0a63477cd40da6d48bda8fdaa2  libstdc++-v3/include/bits/streambuf.tcc
  44762e12d54d406bf2cc6315533a8b09  libstdc++-v3/include/bits/streambuf_iterator.h
--- 124615,124621 ----
  a57c2eea3d91c8f1a29fa4b9ace4ea63  libstdc++-v3/include/bits/stl_tempbuf.h
  5cf28485e3f264d431272d51f07c5c04  libstdc++-v3/include/bits/stl_tree.h
  3edc9af91c97f67be21f622537b06558  libstdc++-v3/include/bits/stl_uninitialized.h
! 26ec29a60b502126921878d5144d621e  libstdc++-v3/include/bits/stl_vector.h
  efd6795d1859818275b215954d81b08a  libstdc++-v3/include/bits/stream_iterator.h
  418d6c0a63477cd40da6d48bda8fdaa2  libstdc++-v3/include/bits/streambuf.tcc
  44762e12d54d406bf2cc6315533a8b09  libstdc++-v3/include/bits/streambuf_iterator.h
*************** b051e1657f96388a3e7d5d0d670145e5  libstd
*** 124632,124638 ****
  82dcb52b808193fbc7db29b11ae3736e  libstdc++-v3/include/bits/valarray_array.h
  d2c6eb67d615d7d096f492b22eea4b6f  libstdc++-v3/include/bits/valarray_array.tcc
  296f16b1a6f6cf57ecd784ec331fc19e  libstdc++-v3/include/bits/valarray_before.h
! 7bbbc93ff2717eacbdebe7603b9cd709  libstdc++-v3/include/bits/vector.tcc
  432f9805e57f028de277d620c0bd955c  libstdc++-v3/include/bits/version.def
  79dffe9ba62dab2f07ab10564feb1c43  libstdc++-v3/include/bits/version.h
  f6488e249fd41122a0aa656a7b88f669  libstdc++-v3/include/bits/version.tpl
--- 124637,124643 ----
  82dcb52b808193fbc7db29b11ae3736e  libstdc++-v3/include/bits/valarray_array.h
  d2c6eb67d615d7d096f492b22eea4b6f  libstdc++-v3/include/bits/valarray_array.tcc
  296f16b1a6f6cf57ecd784ec331fc19e  libstdc++-v3/include/bits/valarray_before.h
! 02d959bb068e1a0eb79cc9802e39be3a  libstdc++-v3/include/bits/vector.tcc
  432f9805e57f028de277d620c0bd955c  libstdc++-v3/include/bits/version.def
  79dffe9ba62dab2f07ab10564feb1c43  libstdc++-v3/include/bits/version.h
  f6488e249fd41122a0aa656a7b88f669  libstdc++-v3/include/bits/version.tpl
*************** ac89056b371085656f9349b818aa8656  libstd
*** 125190,125196 ****
  c858ae1b237dd656e75aa2b8f7c38210  libstdc++-v3/include/std/chrono
  e43c8d137c20c10ac051954a254c532c  libstdc++-v3/include/std/codecvt
  650adbddee3c473863f9d814c33e8ea3  libstdc++-v3/include/std/complex
! 029c042214e60b24aae61965e2ba2f9a  libstdc++-v3/include/std/concepts
  4c3e3b91f288c0a91fdf89dca455559c  libstdc++-v3/include/std/condition_variable
  249c5b284bdb3604f610bc79d1337856  libstdc++-v3/include/std/coroutine
  fda97f7d0f416dde1ab9178ea99e5455  libstdc++-v3/include/std/deque
--- 125195,125201 ----
  c858ae1b237dd656e75aa2b8f7c38210  libstdc++-v3/include/std/chrono
  e43c8d137c20c10ac051954a254c532c  libstdc++-v3/include/std/codecvt
  650adbddee3c473863f9d814c33e8ea3  libstdc++-v3/include/std/complex
! c63a0eb6ee6b9b0e85f677d7da244361  libstdc++-v3/include/std/concepts
  4c3e3b91f288c0a91fdf89dca455559c  libstdc++-v3/include/std/condition_variable
  249c5b284bdb3604f610bc79d1337856  libstdc++-v3/include/std/coroutine
  fda97f7d0f416dde1ab9178ea99e5455  libstdc++-v3/include/std/deque
*************** a4bfe8e7b7e1fcdb233d250f34d48b3c  libstd
*** 125337,125343 ****
  99bee300f6b2032bc884d190f8793068  libstdc++-v3/libsupc++/bad_cast.cc
  b5431c45ca63a8c33a822270b63ef91a  libstdc++-v3/libsupc++/bad_typeid.cc
  e4fce400a30b3c373310af56ffda6bb9  libstdc++-v3/libsupc++/class_type_info.cc
! 09e8468a6af8bd9856b984eaf6567691  libstdc++-v3/libsupc++/compare
  3471d9112038dca877667a79bd8cee85  libstdc++-v3/libsupc++/cxxabi.h
  9bcec4f6a2e90107b8caa460dc1787f0  libstdc++-v3/libsupc++/cxxabi_forced.h
  3e0c1597f198c4ce7e4a75fbf6b6186d  libstdc++-v3/libsupc++/cxxabi_init_exception.h
--- 125342,125348 ----
  99bee300f6b2032bc884d190f8793068  libstdc++-v3/libsupc++/bad_cast.cc
  b5431c45ca63a8c33a822270b63ef91a  libstdc++-v3/libsupc++/bad_typeid.cc
  e4fce400a30b3c373310af56ffda6bb9  libstdc++-v3/libsupc++/class_type_info.cc
! 7f3f124a2793c13e237a5fceec71184a  libstdc++-v3/libsupc++/compare
  3471d9112038dca877667a79bd8cee85  libstdc++-v3/libsupc++/cxxabi.h
  9bcec4f6a2e90107b8caa460dc1787f0  libstdc++-v3/libsupc++/cxxabi_forced.h
  3e0c1597f198c4ce7e4a75fbf6b6186d  libstdc++-v3/libsupc++/cxxabi_init_exception.h
*************** c56355cb5e2de33f96c86bf4db6c6be2  libstd
*** 126276,126281 ****
--- 126281,126287 ----
  863de17aa7ae07d75a900ee12560d23a  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
  5926b29b8b7edffe0168ef1f8cb5e292  libstdc++-v3/testsuite/20_util/function_objects/comparisons.cc
  1dfa8ecea1f9f2d79177cc6bcdd7be2b  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer.cc
+ ecfb8c4b535e0bf09b4b70c183321205  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc
  a653a483d30999c2e7af07fe033af406  libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
  72c5169eb585d2cd1cdd098c058f58b8  libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc
  0c0d37c2d6ac0fbb6d95ee39fe0d57c0  libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
*************** d89a9720f07a14c9e86e6f07e4c83bf5  libstd
*** 129962,129973 ****
  005243a58b67a49326d93516edecb628  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
  404a093d2a58fb8971363e6a1fa02a56  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! b592190b0f316200dd18d0acfdf59ac8  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
  7ad68b2965cffcacc1bfb6bcc694f371  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
  d3441c48a102fc3c48ef330b6d906b55  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
  5e891b22a8f3333fe993e9f8ab6c121e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
  13446821e8cabbd255d7581ffa01bc9e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
  4b4815c96f7f7bd01cecb6bd6c8b7e4e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
  1cbe0435d6c258bbf5c62cb499c8dd17  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
  94ae253a6ed1499fca9623d71c0008de  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
  2ce333567224f761a6833356d4cc3a02  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/3.cc
--- 129968,129980 ----
  005243a58b67a49326d93516edecb628  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
  404a093d2a58fb8971363e6a1fa02a56  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! 68d2c422a1142a58b29041e395bd9016  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
  7ad68b2965cffcacc1bfb6bcc694f371  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
  d3441c48a102fc3c48ef330b6d906b55  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
  5e891b22a8f3333fe993e9f8ab6c121e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
  13446821e8cabbd255d7581ffa01bc9e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
  4b4815c96f7f7bd01cecb6bd6c8b7e4e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
+ 4a2f9f9e84018ea58dae284a14d839cd  libstdc++-v3/testsuite/23_containers/vector/modifiers/resize.cc
  1cbe0435d6c258bbf5c62cb499c8dd17  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
  94ae253a6ed1499fca9623d71c0008de  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
  2ce333567224f761a6833356d4cc3a02  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/3.cc
*************** efd4c67d637b221742fe4248d47fed66  libstd
*** 133388,133394 ****
  cdf3ccdd510207748f101f6478638db9  libstdc++-v3/testsuite/backward/hash_set/1.cc
  a7b8c9fe054fcdca3d423c045c72171c  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! 879596921400555f43b6a4ba0ff7ec36  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
  c92b9786603b94690d2cf39f66fb11e4  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
  f3d7a910f0170b61f3a70077acd25f65  libstdc++-v3/testsuite/backward/strstream_members.cc
  d96a1e87bb7bfbfcead85c1d0166038b  libstdc++-v3/testsuite/backward/strstream_move.cc
--- 133395,133401 ----
  cdf3ccdd510207748f101f6478638db9  libstdc++-v3/testsuite/backward/hash_set/1.cc
  a7b8c9fe054fcdca3d423c045c72171c  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! 952d49aa043061c37f8603091b8e9bde  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
  c92b9786603b94690d2cf39f66fb11e4  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
  f3d7a910f0170b61f3a70077acd25f65  libstdc++-v3/testsuite/backward/strstream_members.cc
  d96a1e87bb7bfbfcead85c1d0166038b  libstdc++-v3/testsuite/backward/strstream_move.cc
diff -Nrcpad gcc-14-20260130/gcc/ChangeLog gcc-14-20260206/gcc/ChangeLog
*** gcc-14-20260130/gcc/ChangeLog	Fri Jan 30 22:32:06 2026
--- gcc-14-20260206/gcc/ChangeLog	Fri Feb  6 22:32:06 2026
***************
*** 1,3 ****
--- 1,95 ----
+ 2026-02-05  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2026-01-28  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/123779
+ 	* config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2):
+ 	Rename to ...
+ 	(*sse4_1_<code>v8qiv8hi2_2): ... this, and drop mask conditions.
+ 	(*avx2_<code>v8qiv8si2<mask_name>_2): Rename to ...
+ 	(*avx2_<code>v8qiv8si2_2): ... this, and likewise.
+ 	(*sse4_1_<code>v4qiv4si2<mask_name>_2): Rename to ...
+ 	(*sse4_1_<code>v4qiv4si2_2): ... this, and likewise.
+ 	(*sse4_1_<code>v4hiv4si2<mask_name>_2): Rename to ...
+ 	(*sse4_1_<code>v4hiv4si2_2): ... this, and likewise.
+ 	(*avx2_<code>v4qiv4di2<mask_name>_2): Rename to ...
+ 	(*avx2_<code>v4qiv4di2_2): ... this, and likewise.
+ 	(*avx2_<code>v4hiv4di2<mask_name>_2): Rename to ...
+ 	(*avx2_<code>v4hiv4di2_2): ... this, and likewise.
+ 	(*sse4_1_<code>v2hiv2di2<mask_name>_2): Rename to ...
+ 	(*sse4_1_<code>v2hiv2di2_2): ... this, and likewise.
+ 	(*sse4_1_<code>v2siv2di2<mask_name>_2): Rename to ...
+ 	(*sse4_1_<code>v2siv2di2_2): ... this, and likewise.
+ 	(*avx512f_<code>v8qiv8di2<mask_name>_2): Rename to ...
+ 	(*avx512f_<code>v8qiv8di2_2): ... this.
+ 	(*avx512vl_<code>v8qiv8hi2_mask_2): New define_insn_and_split.
+ 	(*avx512vl_<code>v8qiv8si2_mask_2): Likewise.
+ 	(*avx512vl_<code>v4qiv4si2_mask_2): Likewise.
+ 	(*avx512vl_<code>v4hiv4si2_mask_2): Likewise.
+ 	(*avx512f_<code>v8qiv8di2_mask_2): Likewise.
+ 	(*avx512vl_<code>v4qiv4di2_mask_2): Likewise.
+ 	(*avx512vl_<code>v4hiv4di2_mask_2): Likewise.
+ 	(*avx512vl_<code>v2hiv2di2_mask_2): Likewise.
+ 	(*avx512vl_<code>v2siv2di2_mask_2): Likewise.
+ 
+ 2026-02-03  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/123548
+ 	* config/aarch64/arm_acle.h (__plix): Change arguments to be
+ 	const.
+ 	(__pldx): Change arguments to be const.
+ 
+ 2026-02-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123887
+ 	* match.pd ((zero_one ==/!= 0) ? .. z <op> y .. -> zero_one * z ..):
+ 	Check evaluating z unconditionally has no side-effects, like
+ 	trapping.
+ 
+ 2026-02-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	Backported from master:
+ 	2024-09-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116772
+ 	* generic-match-head.cc (expr_no_side_effects_p): New function
+ 	* gimple-match-head.cc (expr_no_side_effects_p): New function
+ 
+ 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-ftypes.def: Remove unused type.
+ 
+ 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/123766
+ 	* config/loongarch/loongarch-builtins.cc
+ 	(loongarch_build_vpointer_type): New function.  Return a type
+ 	for 'volatile void *'.
+ 	(LARCH_ATYPE_VPOINTER): New macro.
+ 	* config/loongarch/loongarch-ftypes.def: Change the pointer
+ 	type of the store class function from CVPOINTER to VPOINTER.
+ 
+ 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/123807
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vector_init_same): When same is MEM and
+ 	GET_MODE(same) != imode, first load the data from memory
+ 	and then process it further.
+ 
  2026-01-23  Avinash Jayakar  <avinashd@linux.ibm.com>
  
  	PR target/119130
diff -Nrcpad gcc-14-20260130/gcc/DATESTAMP gcc-14-20260206/gcc/DATESTAMP
*** gcc-14-20260130/gcc/DATESTAMP	Fri Jan 30 22:32:06 2026
--- gcc-14-20260206/gcc/DATESTAMP	Fri Feb  6 22:32:06 2026
***************
*** 1 ****
! 20260130
--- 1 ----
! 20260206
diff -Nrcpad gcc-14-20260130/gcc/ada/ChangeLog gcc-14-20260206/gcc/ada/ChangeLog
*** gcc-14-20260130/gcc/ada/ChangeLog	Fri Jan 30 22:32:06 2026
--- gcc-14-20260206/gcc/ada/ChangeLog	Fri Feb  6 22:32:06 2026
***************
*** 1,3 ****
--- 1,14 ----
+ 2026-01-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123867
+ 	* sem_ch10.adb (Analyze_Compilation_Unit): Output info message
+ 	when -gnatdi is specified.
+ 	(Install_Parents): Likewise.  Set the Is_Visible_Lib_Unit flag
+ 	on the unit.
+ 	(Install_Private_With_Clauses): Do not output info message here.
+ 	(Remove_Parents): Output info message when -gnatdi is specified
+ 	and clear the Is_Visible_Lib_Unit flag on the unit.
+ 
  2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>
  
  	PR ada/123289
diff -Nrcpad gcc-14-20260130/gcc/config/aarch64/aarch64-cores.def gcc-14-20260206/gcc/config/aarch64/aarch64-cores.def
*** gcc-14-20260130/gcc/config/aarch64/aarch64-cores.def	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/config/aarch64/aarch64-cores.def	Fri Feb  6 22:32:06 2026
*************** AARCH64_CORE("a64fx", a64fx, a64fx, V8_2
*** 135,140 ****
--- 135,141 ----
  AARCH64_CORE("fujitsu-monaka", fujitsu_monaka, cortexa57, V9_3A, (F16, LS64, RNG, CRYPTO, SVE2_AES, SVE2_BITPERM, SVE2_SHA3, SVE2_SM4), fujitsu_monaka, 0x46, 0x003, -1)
  
  /* HiSilicon ('H') cores. */
+ AARCH64_CORE("hip12", hip12, cortexa57, V8_7A, (F16, PROFILE, RNG, SVE2_BITPERM, SVE2_AES, SVE2_SM4, SVE2_SHA3, LS64, RCPC3), hip12, 0x48, 0xd06, -1)
  AARCH64_CORE("tsv110",  tsv110, tsv110, V8_2A,  (CRYPTO, F16), tsv110,   0x48, 0xd01, -1)
  
  /* ARMv8.3-A Architecture Processors.  */
diff -Nrcpad gcc-14-20260130/gcc/config/aarch64/aarch64-cost-tables.h gcc-14-20260206/gcc/config/aarch64/aarch64-cost-tables.h
*** gcc-14-20260130/gcc/config/aarch64/aarch64-cost-tables.h	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/config/aarch64/aarch64-cost-tables.h	Fri Feb  6 22:32:06 2026
*************** const struct cpu_cost_table tsv110_extra
*** 561,566 ****
--- 561,673 ----
    }
  };
  
+ const struct cpu_cost_table hip12_extra_costs =
+ {
+   /* ALU */
+   {
+     0,                 /* arith.  */
+     0,                 /* logical.  */
+     0,                 /* shift.  */
+     0,                 /* shift_reg.  */
+     COSTS_N_INSNS (1), /* arith_shift.  */
+     COSTS_N_INSNS (1), /* arith_shift_reg.  */
+     0,                 /* log_shift.  */
+     0,                 /* log_shift_reg.  */
+     0,                 /* extend.  */
+     COSTS_N_INSNS (1), /* extend_arith.  */
+     0,                 /* bfi.  */
+     0,                 /* bfx.  */
+     0,                 /* clz.  */
+     0,                 /* rev.  */
+     0,                 /* non_exec.  */
+     true               /* non_exec_costs_exec.  */
+   },
+   {
+     /* MULT SImode */
+     {
+       COSTS_N_INSNS (1),       /* simple.  */
+       COSTS_N_INSNS (1),       /* flag_setting.  */
+       COSTS_N_INSNS (1),       /* extend.  */
+       COSTS_N_INSNS (2),       /* add.  */
+       COSTS_N_INSNS (2),       /* extend_add.  */
+       COSTS_N_INSNS (5)        /* idiv.  */
+     },
+     /* MULT DImode */
+     {
+       COSTS_N_INSNS (2),       /* simple.  */
+       0,                       /* flag_setting (N/A).  */
+       COSTS_N_INSNS (2),       /* extend.  */
+       COSTS_N_INSNS (3),       /* add.  */
+       COSTS_N_INSNS (3),       /* extend_add.  */
+       COSTS_N_INSNS (7)        /* idiv.  */
+     }
+   },
+   /* LD/ST */
+   {
+     COSTS_N_INSNS (3),         /* load.  */
+     COSTS_N_INSNS (3),         /* load_sign_extend.  */
+     COSTS_N_INSNS (3),         /* ldrd.  */
+     0,                         /* ldm_1st.  */
+     0,                         /* ldm_regs_per_insn_1st.  */
+     0,                         /* ldm_regs_per_insn_subsequent.  */
+     COSTS_N_INSNS (5),         /* loadf.  */
+     COSTS_N_INSNS (5),         /* loadd.  */
+     COSTS_N_INSNS (4),         /* load_unaligned.  */
+     0,                         /* store.  */
+     0,                         /* strd.  */
+     0,                         /* stm_1st.  */
+     0,                         /* stm_regs_per_insn_1st.  */
+     0,                         /* stm_regs_per_insn_subsequent.  */
+     0,                         /* storef.  */
+     0,                         /* stored.  */
+     COSTS_N_INSNS (1),         /* store_unaligned.  */
+     COSTS_N_INSNS (5),         /* loadv.  */
+     COSTS_N_INSNS (1)          /* storev.  */
+   },
+   {
+     /* FP SFmode */
+     {
+       COSTS_N_INSNS (5),       /* div.  */
+       COSTS_N_INSNS (2),       /* mult.  */
+       COSTS_N_INSNS (4),       /* mult_addsub.  */
+       COSTS_N_INSNS (3),       /* fma.  */
+       COSTS_N_INSNS (1),       /* addsub.  */
+       COSTS_N_INSNS (1),       /* fpconst.  */
+       0,                       /* neg.  */
+       COSTS_N_INSNS (1),       /* compare.  */
+       COSTS_N_INSNS (2),       /* widen.  */
+       COSTS_N_INSNS (2),       /* narrow.  */
+       COSTS_N_INSNS (2),       /* toint.  */
+       COSTS_N_INSNS (3),       /* fromint.  */
+       COSTS_N_INSNS (2)        /* roundint.  */
+     },
+     /* FP DFmode */
+     {
+       COSTS_N_INSNS (7),       /* div.  */
+       COSTS_N_INSNS (2),       /* mult.  */
+       COSTS_N_INSNS (4),       /* mult_addsub.  */
+       COSTS_N_INSNS (3),       /* fma.  */
+       COSTS_N_INSNS (1),       /* addsub.  */
+       COSTS_N_INSNS (1),       /* fpconst.  */
+       0,                       /* neg.  */
+       COSTS_N_INSNS (1),       /* compare.  */
+       COSTS_N_INSNS (2),       /* widen.  */
+       COSTS_N_INSNS (2),       /* narrow.  */
+       COSTS_N_INSNS (2),       /* toint.  */
+       COSTS_N_INSNS (3),       /* fromint.  */
+       COSTS_N_INSNS (2)        /* roundint.  */
+     }
+   },
+   /* Vector */
+   {
+     COSTS_N_INSNS (1),  /* alu.  */
+     COSTS_N_INSNS (2),  /* mult.  */
+     COSTS_N_INSNS (1),  /* movi.  */
+     COSTS_N_INSNS (1),  /* dup.  */
+     COSTS_N_INSNS (1)   /* extract.  */
+   }
+ };
+ 
  const struct cpu_cost_table a64fx_extra_costs =
  {
    /* ALU */
diff -Nrcpad gcc-14-20260130/gcc/config/aarch64/aarch64-tune.md gcc-14-20260206/gcc/config/aarch64/aarch64-tune.md
*** gcc-14-20260130/gcc/config/aarch64/aarch64-tune.md	Fri Jan 30 22:32:19 2026
--- gcc-14-20260206/gcc/config/aarch64/aarch64-tune.md	Fri Feb  6 22:32:17 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,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,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,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexa725,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,demeter,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,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,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,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexa725,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,demeter,generic,generic_armv8_a,generic_armv9_a"
  	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff -Nrcpad gcc-14-20260130/gcc/config/aarch64/aarch64.cc gcc-14-20260206/gcc/config/aarch64/aarch64.cc
*** gcc-14-20260130/gcc/config/aarch64/aarch64.cc	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/config/aarch64/aarch64.cc	Fri Feb  6 22:32:06 2026
*************** static const struct aarch64_flag_desc aa
*** 395,400 ****
--- 395,401 ----
  #include "tuning_models/thunderxt88.h"
  #include "tuning_models/thunderx.h"
  #include "tuning_models/tsv110.h"
+ #include "tuning_models/hip12.h"
  #include "tuning_models/xgene1.h"
  #include "tuning_models/emag.h"
  #include "tuning_models/qdf24xx.h"
diff -Nrcpad gcc-14-20260130/gcc/config/aarch64/arm_acle.h gcc-14-20260206/gcc/config/aarch64/arm_acle.h
*** gcc-14-20260130/gcc/config/aarch64/arm_acle.h	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/config/aarch64/arm_acle.h	Fri Feb  6 22:32:06 2026
*************** __pli (void const volatile *__addr)
*** 94,109 ****
  
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
! __plix (unsigned int __cache, unsigned int __rettn,
  	void const volatile *__addr)
  {
    return __builtin_aarch64_plix (__cache, __rettn, __addr);
  }
  
  __extension__ extern __inline void
! __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
! __pldx (unsigned int __access, unsigned int __cache, unsigned int __rettn,
! 	void const volatile *__addr)
  {
    return __builtin_aarch64_pldx (__access, __cache, __rettn, __addr);
  }
--- 94,109 ----
  
  __extension__ extern __inline void
  __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
! __plix (const unsigned int __cache, const unsigned int __rettn,
  	void const volatile *__addr)
  {
    return __builtin_aarch64_plix (__cache, __rettn, __addr);
  }
  
  __extension__ extern __inline void
!   __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
!   __pldx (const unsigned int __access, const unsigned int __cache,
! 	  const unsigned int __rettn, void const volatile *__addr)
  {
    return __builtin_aarch64_pldx (__access, __cache, __rettn, __addr);
  }
diff -Nrcpad gcc-14-20260130/gcc/config/aarch64/tuning_models/hip12.h gcc-14-20260206/gcc/config/aarch64/tuning_models/hip12.h
*** gcc-14-20260130/gcc/config/aarch64/tuning_models/hip12.h	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/gcc/config/aarch64/tuning_models/hip12.h	Fri Feb  6 22:32:06 2026
***************
*** 0 ****
--- 1,225 ----
+ /* Tuning model description for AArch64 architecture.
+    Copyright (C) 2009-2026 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GCC_AARCH64_H_HIP12
+ #define GCC_AARCH64_H_HIP12
+ 
+ #include "generic.h"
+ 
+ static const struct cpu_addrcost_table hip12_addrcost_table =
+ {
+     {
+       0, /* hi  */
+       0, /* si  */
+       0, /* di  */
+       2, /* ti  */
+     },
+   0, /* pre_modify  */
+   0, /* post_modify  */
+   2, /* post_modify_ld3_st3  */
+   2, /* post_modify_ld4_st4  */
+   0, /* register_offset  */
+   0, /* register_sextend  */
+   0, /* register_zextend  */
+   0, /* imm_offset  */
+ };
+ 
+ static const struct cpu_regmove_cost hip12_regmove_cost =
+ {
+   1, /* GP2GP  */
+   /* Spilling to int<->fp instead of memory is recommended so set
+      realistic costs compared to memmov_cost.  */
+   5, /* GP2FP  */
+   2, /* FP2GP  */
+   2  /* FP2FP  */
+ };
+ 
+ static const advsimd_vec_cost hip12_advsimd_vector_cost =
+ {
+   2, /* int_stmt_cost  */
+   2, /* fp_stmt_cost  */
+   2, /* ld2_st2_permute_cost  */
+   2, /* ld3_st3_permute_cost  */
+   3, /* ld4_st4_permute_cost  */
+   2, /* permute_cost  */
+   9, /* reduc_i8_cost  */
+   7, /* reduc_i16_cost  */
+   5, /* reduc_i32_cost  */
+   3, /* reduc_i64_cost  */
+   9, /* reduc_f16_cost  */
+   6, /* reduc_f32_cost  */
+   3, /* reduc_f64_cost  */
+   2, /* store_elt_extra_cost  */
+   2, /* vec_to_scalar_cost  */
+   4, /* scalar_to_vec_cost  */
+   6, /* align_load_cost  */
+   6, /* unalign_load_cost  */
+   1, /* unalign_store_cost  */
+   1  /* store_cost  */
+ };
+ 
+ static const sve_vec_cost hip12_sve_vector_cost =
+ {
+   {
+     2, /* int_stmt_cost  */
+     2, /* fp_stmt_cost  */
+     2, /* ld2_st2_permute_cost  */
+     3, /* ld3_st3_permute_cost  */
+     3, /* ld4_st4_permute_cost  */
+     2, /* permute_cost  */
+     /* Theoretically, a reduction involving 31 scalar ADDs could
+        complete in ~6 cycles and would have a cost of 31.  [SU]ADDV
+        completes in 13 cycles, so give it a cost of 31 + 7.  */
+     38, /* reduc_i8_cost  */
+     /* Likewise for 15 scalar ADDs (~3 cycles) vs. 10: 15 + 7.  */
+     22, /* reduc_i16_cost  */
+     /* Likewise for 7 scalar ADDs (~2 cycles) vs. 7: 7 + 5.  */
+     12, /* reduc_i32_cost  */
+     /* Likewise for 3 scalar ADDs (~1 cycles) vs. 4: 3 + 3.  */
+     6, /* reduc_i64_cost  */
+     /* Theoretically, a reduction involving 15 scalar FADDs could
+        complete in ~8 cycles and would have a cost of 30.  FADDV
+        completes in 15 cycles, so give it a cost of 30 + 7.  */
+     37, /* reduc_f16_cost  */
+     /* Likewise for 7 scalar FADDs (~4 cycles) vs. 12: 14 + 8.  */
+     22, /* reduc_f32_cost  */
+     /* Likewise for 3 scalar FADDs (~2 cycles) vs. 9: 6 + 7.  */
+     13, /* reduc_f64_cost  */
+     2, /* store_elt_extra_cost  */
+     2, /* vec_to_scalar_cost  */
+     4, /* scalar_to_vec_cost  */
+     6, /* align_load_cost  */
+     6, /* unalign_load_cost  */
+     1, /* unalign_store_cost  */
+     1  /* store_cost  */
+   },
+   3, /* clast_cost  */
+   42, /* fadda_f16_cost  */
+   26, /* fadda_f32_cost  */
+   20, /* fadda_f64_cost  */
+   32, /* gather_load_x32_cost  */
+   16, /* gather_load_x64_cost  */
+   3 /* scatter_store_elt_cost  */
+ };
+ 
+ static const aarch64_scalar_vec_issue_info hip12_scalar_issue_info =
+ {
+   5, /* loads_stores_per_cycle  */
+   2, /* stores_per_cycle  */
+   6, /* general_ops_per_cycle  */
+   0, /* fp_simd_load_general_ops  */
+   1 /* fp_simd_store_general_ops  */
+ };
+ 
+ static const aarch64_advsimd_vec_issue_info hip12_advsimd_issue_info =
+ {
+   {
+     5, /* loads_stores_per_cycle  */
+     2, /* stores_per_cycle  */
+     4, /* general_ops_per_cycle  */
+     0, /* fp_simd_load_general_ops  */
+     1 /* fp_simd_store_general_ops  */
+   },
+   2, /* ld2_st2_general_ops  */
+   2, /* ld3_st3_general_ops  */
+   3 /* ld4_st4_general_ops  */
+ };
+ 
+ static const aarch64_sve_vec_issue_info hip12_sve_issue_info =
+ {
+   {
+     {
+       5, /* loads_stores_per_cycle  */
+       2, /* stores_per_cycle  */
+       2, /* general_ops_per_cycle  */
+       0, /* fp_simd_load_general_ops  */
+       1 /* fp_simd_store_general_ops  */
+     },
+     2, /* ld2_st2_general_ops  */
+     2, /* ld3_st3_general_ops  */
+     3 /* ld4_st4_general_ops  */
+   },
+   2, /* pred_ops_per_cycle  */
+   2, /* while_pred_ops  */
+   2, /* int_cmp_pred_ops  */
+   1, /* fp_cmp_pred_ops  */
+   1, /* gather_scatter_pair_general_ops  */
+   1 /* gather_scatter_pair_pred_ops  */
+ };
+ 
+ static const aarch64_vec_issue_info hip12_vec_issue_info =
+ {
+   &hip12_scalar_issue_info,
+   &hip12_advsimd_issue_info,
+   &hip12_sve_issue_info
+ };
+ 
+ static const struct cpu_vector_cost hip12_vector_cost =
+ {
+   1, /* scalar_int_stmt_cost  */
+   2, /* scalar_fp_stmt_cost  */
+   4, /* scalar_load_cost  */
+   1, /* scalar_store_cost  */
+   1, /* cond_taken_branch_cost  */
+   1, /* cond_not_taken_branch_cost  */
+   &hip12_advsimd_vector_cost, /* advsimd  */
+   &hip12_sve_vector_cost, /* sve  */
+   &hip12_vec_issue_info /* issue_info  */
+ };
+ 
+ static const struct tune_params hip12_tunings =
+ {
+   &hip12_extra_costs,
+   &hip12_addrcost_table,
+   &hip12_regmove_cost,
+   &hip12_vector_cost,
+   &generic_branch_cost,
+   &generic_approx_modes,
+   SVE_256, /* sve_width  */
+   { 4, /* load_int.  */
+     1, /* store_int.  */
+     6, /* load_fp.  */
+     1, /* store_fp.  */
+     8, /* load_pred.  */
+     4 /* store_pred.  */
+   }, /* memmov_cost.  */
+   8,    /* issue_rate  */
+   (AARCH64_FUSE_CMP_BRANCH
+    | AARCH64_FUSE_AES_AESMC), /* fusible_ops  */
+   "16", /* function_align.  */
+   "4",  /* jump_align.  */
+   "8",  /* loop_align.  */
+   2,    /* int_reassoc_width.  */
+   4,    /* fp_reassoc_width.  */
+   2,    /* fma_reassoc_width.  */
+   2,    /* vec_reassoc_width.  */
+   2,    /* min_div_recip_mul_sf.  */
+   2,    /* min_div_recip_mul_df.  */
+   0,    /* max_case_values.  */
+   tune_params::AUTOPREFETCHER_WEAK,    /* autoprefetcher_model.  */
+   (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+    | AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA
+    | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+    | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),    /* tune_flags.  */
+   &generic_armv8_a_prefetch_tune,
+   AARCH64_LDP_STP_POLICY_ALWAYS,    /* ldp_policy_model.  */
+   AARCH64_LDP_STP_POLICY_ALWAYS     /* stp_policy_model.  */
+ };
+ 
+ #endif /* GCC_AARCH64_H_HIP12.  */
diff -Nrcpad gcc-14-20260130/gcc/config/i386/sse.md gcc-14-20260206/gcc/config/i386/sse.md
*** gcc-14-20260130/gcc/config/i386/sse.md	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/config/i386/sse.md	Fri Feb  6 22:32:07 2026
***************
*** 22984,22990 ****
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v8qiv8hi2<mask_name>_2"
    [(set (match_operand:V8HI 0 "register_operand")
  	(any_extend:V8HI
  	  (vec_select:V8QI
--- 22984,22990 ----
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v8qiv8hi2_2"
    [(set (match_operand:V8HI 0 "register_operand")
  	(any_extend:V8HI
  	  (vec_select:V8QI
***************
*** 22996,23002 ****
  		       (const_int 2) (const_int 3)
  		       (const_int 4) (const_int 5)
  		       (const_int 6) (const_int 7)]))))]
!   "TARGET_SSE4_1 && <mask_avx512bw_condition> && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 22996,23002 ----
  		       (const_int 2) (const_int 3)
  		       (const_int 4) (const_int 5)
  		       (const_int 6) (const_int 7)]))))]
!   "TARGET_SSE4_1
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23004,23009 ****
--- 23004,23035 ----
  	(any_extend:V8HI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v8qiv8hi2_mask_2"
+   [(set (match_operand:V8HI 0 "register_operand")
+ 	(vec_merge:V8HI
+ 	  (any_extend:V8HI
+ 	    (vec_select:V8QI
+ 	      (subreg:V16QI
+ 		(vec_concat:V2DI
+ 		  (match_operand:DI 1 "memory_operand")
+ 		  (const_int 0)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 			 (const_int 2) (const_int 3)
+ 		         (const_int 4) (const_int 5)
+ 		         (const_int 6) (const_int 7)])))
+ 	  (match_operand:V8HI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL && TARGET_AVX512BW
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V8HI
+ 	  (any_extend:V8HI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
+ 
  (define_insn_and_split "*sse4_1_zero_extendv8qiv8hi2_3"
    [(set (match_operand:V16QI 0 "register_operand" "=Yr,*x,Yw")
  	(vec_select:V16QI
***************
*** 23136,23142 ****
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "OI")])
  
! (define_insn_and_split "*avx2_<code>v8qiv8si2<mask_name>_2"
    [(set (match_operand:V8SI 0 "register_operand")
  	(any_extend:V8SI
  	  (vec_select:V8QI
--- 23162,23168 ----
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "OI")])
  
! (define_insn_and_split "*avx2_<code>v8qiv8si2_2"
    [(set (match_operand:V8SI 0 "register_operand")
  	(any_extend:V8SI
  	  (vec_select:V8QI
***************
*** 23148,23154 ****
  		       (const_int 2) (const_int 3)
  		       (const_int 4) (const_int 5)
  		       (const_int 6) (const_int 7)]))))]
!   "TARGET_AVX2 && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 23174,23180 ----
  		       (const_int 2) (const_int 3)
  		       (const_int 4) (const_int 5)
  		       (const_int 6) (const_int 7)]))))]
!   "TARGET_AVX2
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23156,23161 ****
--- 23182,23214 ----
  	(any_extend:V8SI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v8qiv8si2_mask_2"
+   [(set (match_operand:V8SI 0 "register_operand")
+ 	(vec_merge:V8SI
+ 	  (any_extend:V8SI
+ 	    (vec_select:V8QI
+ 	      (subreg:V16QI
+ 		(vec_concat:V2DI
+ 		  (match_operand:DI 1 "memory_operand")
+ 		  (const_int 0)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 			 (const_int 2) (const_int 3)
+ 			 (const_int 4) (const_int 5)
+ 			 (const_int 6) (const_int 7)])))
+ 	  (match_operand:V8SI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V8SI
+ 	  (any_extend:V8SI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
+ 
+ 
  (define_expand "<insn>v8qiv8si2"
    [(set (match_operand:V8SI 0 "register_operand")
  	(any_extend:V8SI
***************
*** 23199,23205 ****
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v4qiv4si2<mask_name>_2"
    [(set (match_operand:V4SI 0 "register_operand")
  	(any_extend:V4SI
  	  (vec_select:V4QI
--- 23252,23258 ----
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v4qiv4si2_2"
    [(set (match_operand:V4SI 0 "register_operand")
  	(any_extend:V4SI
  	  (vec_select:V4QI
***************
*** 23221,23226 ****
--- 23274,23308 ----
  	(any_extend:V4SI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V4QImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v4qiv4si2_mask_2"
+   [(set (match_operand:V4SI 0 "register_operand")
+ 	(vec_merge:V4SI
+ 	  (any_extend:V4SI
+ 	    (vec_select:V4QI
+ 	      (subreg:V16QI
+ 		(vec_merge:V4SI
+ 		  (vec_duplicate:V4SI
+ 		    (match_operand:SI 1 "memory_operand"))
+ 		  (const_vector:V4SI
+ 		    [(const_int 0) (const_int 0)
+ 		     (const_int 0) (const_int 0)])
+ 		  (const_int 1)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 			 (const_int 2) (const_int 3)])))
+ 	  (match_operand:V4SI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V4SI
+ 	  (any_extend:V4SI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V4QImode, 0);")
+ 
+ 
  (define_expand "<insn>v4qiv4si2"
    [(set (match_operand:V4SI 0 "register_operand")
  	(any_extend:V4SI
***************
*** 23372,23378 ****
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v4hiv4si2<mask_name>_2"
    [(set (match_operand:V4SI 0 "register_operand")
  	(any_extend:V4SI
  	  (vec_select:V4HI
--- 23454,23460 ----
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v4hiv4si2_2"
    [(set (match_operand:V4SI 0 "register_operand")
  	(any_extend:V4SI
  	  (vec_select:V4HI
***************
*** 23382,23388 ****
  		(const_int 0)) 0)
  	    (parallel [(const_int 0) (const_int 1)
  		       (const_int 2) (const_int 3)]))))]
!   "TARGET_SSE4_1 && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 23464,23470 ----
  		(const_int 0)) 0)
  	    (parallel [(const_int 0) (const_int 1)
  		       (const_int 2) (const_int 3)]))))]
!   "TARGET_SSE4_1
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23390,23395 ****
--- 23472,23502 ----
  	(any_extend:V4SI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V4HImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v4hiv4si2_mask_2"
+   [(set (match_operand:V4SI 0 "register_operand")
+ 	(vec_merge:V4SI
+ 	  (any_extend:V4SI
+ 	    (vec_select:V4HI
+ 	      (subreg:V8HI
+ 		(vec_concat:V2DI
+ 		  (match_operand:DI 1 "memory_operand")
+ 		  (const_int 0)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 			 (const_int 2) (const_int 3)])))
+ 	  (match_operand:V4SI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V4SI
+ 	  (any_extend:V4SI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V4HImode, 0);")
+ 
+ 
  (define_expand "<insn>v4hiv4si2"
    [(set (match_operand:V4SI 0 "register_operand")
  	(any_extend:V4SI
***************
*** 23500,23506 ****
     (set_attr "prefix" "evex")
     (set_attr "mode" "XI")])
  
! (define_insn_and_split "*avx512f_<code>v8qiv8di2<mask_name>_2"
    [(set (match_operand:V8DI 0 "register_operand")
  	(any_extend:V8DI
  	  (vec_select:V8QI
--- 23607,23613 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "XI")])
  
! (define_insn_and_split "*avx512f_<code>v8qiv8di2_2"
    [(set (match_operand:V8DI 0 "register_operand")
  	(any_extend:V8DI
  	  (vec_select:V8QI
***************
*** 23519,23524 ****
--- 23626,23657 ----
  	(any_extend:V8DI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
  
+ (define_insn_and_split "*avx512f_<code>v8qiv8di2_mask_2"
+   [(set (match_operand:V8DI 0 "register_operand")
+ 	(vec_merge:V8DI
+ 	  (any_extend:V8DI
+ 	    (vec_select:V8QI
+ 	      (subreg:V16QI
+ 		(vec_concat:V2DI
+ 		  (match_operand:DI 1 "memory_operand")
+ 		  (const_int 0)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 			 (const_int 2) (const_int 3)
+ 		         (const_int 4) (const_int 5)
+ 		         (const_int 6) (const_int 7)])))
+ 	  (match_operand:V8DI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512F && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V8DI
+ 	  (any_extend:V8DI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V8QImode, 0);")
+ 
+ 
  (define_expand "<insn>v8qiv8di2"
    [(set (match_operand:V8DI 0 "register_operand")
  	(any_extend:V8DI
***************
*** 23559,23565 ****
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "OI")])
  
! (define_insn_and_split "*avx2_<code>v4qiv4di2<mask_name>_2"
    [(set (match_operand:V4DI 0 "register_operand")
  	(any_extend:V4DI
  	  (vec_select:V4QI
--- 23692,23698 ----
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "OI")])
  
! (define_insn_and_split "*avx2_<code>v4qiv4di2_2"
    [(set (match_operand:V4DI 0 "register_operand")
  	(any_extend:V4DI
  	  (vec_select:V4QI
***************
*** 23573,23579 ****
  		(const_int 1)) 0)
  	    (parallel [(const_int 0) (const_int 1)
  		       (const_int 2) (const_int 3)]))))]
!   "TARGET_AVX2 && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 23706,23712 ----
  		(const_int 1)) 0)
  	    (parallel [(const_int 0) (const_int 1)
  		       (const_int 2) (const_int 3)]))))]
!   "TARGET_AVX2
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23581,23586 ****
--- 23714,23748 ----
  	(any_extend:V4DI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V4QImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v4qiv4di2_mask_2"
+   [(set (match_operand:V4DI 0 "register_operand")
+ 	(vec_merge:V4DI
+ 	  (any_extend:V4DI
+ 	    (vec_select:V4QI
+ 	      (subreg:V16QI
+ 		(vec_merge:V4SI
+ 		  (vec_duplicate:V4SI
+ 		    (match_operand:SI 1 "memory_operand"))
+ 		  (const_vector:V4SI
+ 		    [(const_int 0) (const_int 0)
+ 		     (const_int 0) (const_int 0)])
+ 		  (const_int 1)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 			 (const_int 2) (const_int 3)])))
+ 	  (match_operand:V4DI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V4DI
+ 	  (any_extend:V4DI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V4QImode, 0);")
+ 
+ 
  (define_expand "<insn>v4qiv4di2"
    [(set (match_operand:V4DI 0 "register_operand")
  	(any_extend:V4DI
***************
*** 23702,23708 ****
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "OI")])
  
! (define_insn_and_split "*avx2_<code>v4hiv4di2<mask_name>_2"
    [(set (match_operand:V4DI 0 "register_operand")
  	(any_extend:V4DI
  	  (vec_select:V4HI
--- 23864,23870 ----
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "OI")])
  
! (define_insn_and_split "*avx2_<code>v4hiv4di2_2"
    [(set (match_operand:V4DI 0 "register_operand")
  	(any_extend:V4DI
  	  (vec_select:V4HI
***************
*** 23712,23718 ****
  		(const_int 0)) 0)
  	    (parallel [(const_int 0) (const_int 1)
  		       (const_int 2) (const_int 3)]))))]
!   "TARGET_AVX2 && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 23874,23880 ----
  		(const_int 0)) 0)
  	    (parallel [(const_int 0) (const_int 1)
  		       (const_int 2) (const_int 3)]))))]
!   "TARGET_AVX2
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23720,23725 ****
--- 23882,23912 ----
  	(any_extend:V4DI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V4HImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v4hiv4di2_mask_2"
+   [(set (match_operand:V4DI 0 "register_operand")
+ 	(vec_merge:V4DI
+ 	  (any_extend:V4DI
+ 	    (vec_select:V4HI
+ 	      (subreg:V8HI
+ 		(vec_concat:V2DI
+ 		  (match_operand:DI 1 "memory_operand")
+ 		  (const_int 0)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)
+ 		         (const_int 2) (const_int 3)])))
+ 	  (match_operand:V4DI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V4DI
+ 	  (any_extend:V4DI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V4HImode, 0);")
+ 
+ 
  (define_expand "<insn>v4hiv4di2"
    [(set (match_operand:V4DI 0 "register_operand")
  	(any_extend:V4DI
***************
*** 23762,23768 ****
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v2hiv2di2<mask_name>_2"
    [(set (match_operand:V2DI 0 "register_operand")
  	(any_extend:V2DI
  	  (vec_select:V2HI
--- 23949,23955 ----
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v2hiv2di2_2"
    [(set (match_operand:V2DI 0 "register_operand")
  	(any_extend:V2DI
  	  (vec_select:V2HI
***************
*** 23775,23781 ****
  		    (const_int 0) (const_int 0)])
  		(const_int 1)) 0)
  	    (parallel [(const_int 0) (const_int 1)]))))]
!   "TARGET_SSE4_1 && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 23962,23968 ----
  		    (const_int 0) (const_int 0)])
  		(const_int 1)) 0)
  	    (parallel [(const_int 0) (const_int 1)]))))]
!   "TARGET_SSE4_1
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23783,23788 ****
--- 23970,24003 ----
  	(any_extend:V2DI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V2HImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v2hiv2di2_mask_2"
+   [(set (match_operand:V2DI 0 "register_operand")
+ 	(vec_merge:V2DI
+ 	  (any_extend:V2DI
+ 	    (vec_select:V2HI
+ 	      (subreg:V8HI
+ 		(vec_merge:V4SI
+ 		  (vec_duplicate:V4SI
+ 		    (match_operand:SI 1 "memory_operand"))
+ 		  (const_vector:V4SI
+ 		    [(const_int 0) (const_int 0)
+ 		     (const_int 0) (const_int 0)])
+ 		  (const_int 1)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)])))
+ 	  (match_operand:V2DI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V2DI
+ 	  (any_extend:V2DI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V2HImode, 0);")
+ 
+ 
  (define_expand "<insn>v2hiv2di2"
    [(set (match_operand:V2DI 0 "register_operand")
  	(any_extend:V2DI
***************
*** 23928,23934 ****
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v2siv2di2<mask_name>_2"
    [(set (match_operand:V2DI 0 "register_operand")
  	(any_extend:V2DI
  	  (vec_select:V2SI
--- 24143,24149 ----
     (set_attr "prefix" "orig,orig,maybe_evex")
     (set_attr "mode" "TI")])
  
! (define_insn_and_split "*sse4_1_<code>v2siv2di2_2"
    [(set (match_operand:V2DI 0 "register_operand")
  	(any_extend:V2DI
  	  (vec_select:V2SI
***************
*** 23937,23943 ****
  		(match_operand:DI 1 "memory_operand")
  		(const_int 0)) 0)
  	    (parallel [(const_int 0) (const_int 1)]))))]
!   "TARGET_SSE4_1 && <mask_avx512vl_condition>
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
--- 24152,24158 ----
  		(match_operand:DI 1 "memory_operand")
  		(const_int 0)) 0)
  	    (parallel [(const_int 0) (const_int 1)]))))]
!   "TARGET_SSE4_1
     && ix86_pre_reload_split ()"
    "#"
    "&& 1"
***************
*** 23945,23950 ****
--- 24160,24188 ----
  	(any_extend:V2DI (match_dup 1)))]
    "operands[1] = adjust_address_nv (operands[1], V2SImode, 0);")
  
+ (define_insn_and_split "*avx512vl_<code>v2siv2di2_mask_2"
+   [(set (match_operand:V2DI 0 "register_operand")
+ 	(vec_merge:V2DI
+ 	  (any_extend:V2DI
+ 	    (vec_select:V2SI
+ 	      (subreg:V4SI
+ 		(vec_concat:V2DI
+ 		  (match_operand:DI 1 "memory_operand")
+ 		  (const_int 0)) 0)
+ 	      (parallel [(const_int 0) (const_int 1)])))
+ 	  (match_operand:V2DI 2 "nonimm_or_0_operand")
+ 	  (match_operand:QI 3 "register_operand")))]
+   "TARGET_AVX512VL
+    && ix86_pre_reload_split ()"
+   "#"
+   "&& 1"
+   [(set (match_dup 0)
+ 	(vec_merge:V2DI
+ 	  (any_extend:V2DI (match_dup 1))
+ 	  (match_dup 2)
+ 	  (match_dup 3)))]
+   "operands[1] = adjust_address_nv (operands[1], V2SImode, 0);")
+ 
  (define_insn_and_split "*sse4_1_zero_extendv2siv2di2_3"
    [(set (match_operand:V4SI 0 "register_operand" "=Yr,*x,v")
  	(vec_select:V4SI
diff -Nrcpad gcc-14-20260130/gcc/d/ChangeLog gcc-14-20260206/gcc/d/ChangeLog
*** gcc-14-20260130/gcc/d/ChangeLog	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/d/ChangeLog	Fri Feb  6 22:32:07 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/123264
+ 	* types.cc (finish_aggregate_type): Propagate struct TYPE_NAME to all
+ 	TYPE_NEXT_VARIANT types.
+ 
  2026-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260130/gcc/doc/invoke.texi gcc-14-20260206/gcc/doc/invoke.texi
*** gcc-14-20260130/gcc/doc/invoke.texi	Fri Jan 30 22:32:07 2026
--- gcc-14-20260206/gcc/doc/invoke.texi	Fri Feb  6 22:32:07 2026
*************** performance of the code.  Permissible va
*** 21422,21428 ****
  @samp{octeontx2f95mm},
  @samp{a64fx}, @samp{fujitsu-monaka},
  @samp{thunderx}, @samp{thunderxt88},
! @samp{thunderxt88p1}, @samp{thunderxt81}, @samp{tsv110},
  @samp{thunderxt83}, @samp{thunderx2t99}, @samp{thunderx3t110}, @samp{zeus},
  @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
  @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
--- 21422,21428 ----
  @samp{octeontx2f95mm},
  @samp{a64fx}, @samp{fujitsu-monaka},
  @samp{thunderx}, @samp{thunderxt88},
! @samp{thunderxt88p1}, @samp{thunderxt81}, @samp{tsv110}, @samp{hip12},
  @samp{thunderxt83}, @samp{thunderx2t99}, @samp{thunderx3t110}, @samp{zeus},
  @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
  @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
diff -Nrcpad gcc-14-20260130/gcc/generic-match-head.cc gcc-14-20260206/gcc/generic-match-head.cc
*** gcc-14-20260130/gcc/generic-match-head.cc	Fri Jan 30 22:32:08 2026
--- gcc-14-20260206/gcc/generic-match-head.cc	Fri Feb  6 22:32:07 2026
*************** optimize_successive_divisions_p (tree, t
*** 105,110 ****
--- 105,122 ----
    return false;
  }
  
+ /* Returns true if the expression T has no side effects
+    including not trapping. */
+ static inline bool
+ expr_no_side_effects_p (tree t)
+ {
+   if (TREE_SIDE_EFFECTS (t))
+     return false;
+   if (generic_expr_could_trap_p (t))
+     return false;
+   return true;
+ }
+ 
  /* Return true if EXPR1 and EXPR2 have the same value, but not necessarily
     same type.  The types can differ through nop conversions.  */
  
diff -Nrcpad gcc-14-20260130/gcc/gimple-match-head.cc gcc-14-20260206/gcc/gimple-match-head.cc
*** gcc-14-20260130/gcc/gimple-match-head.cc	Fri Jan 30 22:32:08 2026
--- gcc-14-20260206/gcc/gimple-match-head.cc	Fri Feb  6 22:32:07 2026
*************** optimize_vectors_before_lowering_p ()
*** 135,140 ****
--- 135,150 ----
    return !cfun || (cfun->curr_properties & PROP_gimple_lvec) == 0;
  }
  
+ /* Returns true if the expression T has no side effects
+    including not trapping. */
+ static inline bool
+ expr_no_side_effects_p (tree t)
+ {
+   /* For gimple, there should only be gimple val's here. */
+   gcc_assert (is_gimple_val (t));
+   return true;
+ }
+ 
  /* Return true if pow(cst, x) should be optimized into exp(log(cst) * x).
     As a workaround for SPEC CPU2017 628.pop2_s, don't do it if arg0
     is an exact integer, arg1 = phi_res +/- cst1 and phi_res = PHI <cst2, ...>
diff -Nrcpad gcc-14-20260130/gcc/match.pd gcc-14-20260206/gcc/match.pd
*** gcc-14-20260130/gcc/match.pd	Fri Jan 30 22:32:08 2026
--- gcc-14-20260206/gcc/match.pd	Fri Feb  6 22:32:07 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 4249,4255 ****
          (op:c @2 @1))
    (if (INTEGRAL_TYPE_P (type)
         && TYPE_PRECISION (type) > 1
!        && (INTEGRAL_TYPE_P (TREE_TYPE (@0))))
         (op (mult (convert:type @0) @2) @1))))
  
  /* (zero_one != 0) ? z <op> y : y -> ((typeof(y))zero_one * z) <op> y */
--- 4249,4256 ----
          (op:c @2 @1))
    (if (INTEGRAL_TYPE_P (type)
         && TYPE_PRECISION (type) > 1
!        && INTEGRAL_TYPE_P (TREE_TYPE (@0))
!        && expr_no_side_effects_p (@2))
         (op (mult (convert:type @0) @2) @1))))
  
  /* (zero_one != 0) ? z <op> y : y -> ((typeof(y))zero_one * z) <op> y */
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 4261,4267 ****
          @1)
    (if (INTEGRAL_TYPE_P (type)
         && TYPE_PRECISION (type) > 1
!        && (INTEGRAL_TYPE_P (TREE_TYPE (@0))))
         (op (mult (convert:type @0) @2) @1))))
  
  /* ?: Value replacement. */
--- 4262,4269 ----
          @1)
    (if (INTEGRAL_TYPE_P (type)
         && TYPE_PRECISION (type) > 1
!        && INTEGRAL_TYPE_P (TREE_TYPE (@0))
!        && expr_no_side_effects_p (@2))
         (op (mult (convert:type @0) @2) @1))))
  
  /* ?: Value replacement. */
diff -Nrcpad gcc-14-20260130/gcc/testsuite/ChangeLog gcc-14-20260206/gcc/testsuite/ChangeLog
*** gcc-14-20260130/gcc/testsuite/ChangeLog	Fri Jan 30 22:32:08 2026
--- gcc-14-20260206/gcc/testsuite/ChangeLog	Fri Feb  6 22:32:08 2026
***************
*** 1,3 ****
--- 1,65 ----
+ 2026-02-05  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2026-01-28  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/123779
+ 	* g++.target/i386/pr123779.C: New test.
+ 
+ 2026-02-03  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/123548
+ 	* gcc.target/aarch64/pr123548.c: New test.
+ 
+ 2026-02-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123887
+ 	* gcc.dg/torture/pr123887.c: New testcase.
+ 
+ 2026-02-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	Backported from master:
+ 	2024-09-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/116772
+ 	* gcc.dg/torture/pr116772-1.c: New test.
+ 
+ 2026-01-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/limited_with3.ads: New test.
+ 	* gnat.dg/specs/limited_with3-child.ads: New helper.
+ 	* gnat.dg/specs/limited_with3-child-grandchild.ads: Likewise.
+ 	* gnat.dg/specs/limited_with3-child-grandchild-grandgrandchild.ads:
+ 	Likewise.
+ 
+ 2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/123264
+ 	* gdc.dg/pr123264.d: New test.
+ 
+ 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/123766
+ 	* gcc.target/loongarch/vector/lasx/pr123766.c: New test.
+ 	* gcc.target/loongarch/vector/lsx/pr123766.c: New test.
+ 
+ 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/123807
+ 	* gcc.target/loongarch/vector/lsx/pr123807.c: New test.
+ 
  2026-01-29  Iain Buclaw  <ibuclaw@gdcproject.org>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260130/gcc/testsuite/g++.target/i386/pr123779.C gcc-14-20260206/gcc/testsuite/g++.target/i386/pr123779.C
*** gcc-14-20260130/gcc/testsuite/g++.target/i386/pr123779.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/gcc/testsuite/g++.target/i386/pr123779.C	Fri Feb  6 22:32:09 2026
***************
*** 0 ****
--- 1,56 ----
+ /* PR target/123779 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mavx512vl -mavx512bw" } */
+ 
+ typedef char __v16qi __attribute__((__vector_size__(16)));
+ typedef short __v8hi __attribute__((__vector_size__(16)));
+ typedef int __v4si __attribute__((__vector_size__(16)));
+ typedef long long __v2di __attribute__((__vector_size__(16)));
+ 
+ typedef int __v8si __attribute__((__vector_size__(32)));
+ typedef long long __v4di __attribute__((__vector_size__(32)));
+ typedef long long __v8di __attribute__((__vector_size__(64)));
+ typedef unsigned char __mmask8;
+ 
+ long long g_mem;
+ 
+ #define MAKE_TEST_BLEND(NAME, DEST_T, SRC_INIT_T, PMOV_INPUT_CAST_T, \
+ 			PMOV_FUNC, BLEND_FUNC, BLEND_CAST_T, LOAD_VAL_TYPE, ...) \
+     DEST_T dest_##NAME, mask_src1_##NAME, mask_src2_##NAME, mask_##NAME, res_##NAME; \
+     void test_##NAME() \
+       { \
+         mask_##NAME = mask_src1_##NAME < mask_src2_##NAME; \
+         LOAD_VAL_TYPE val = (LOAD_VAL_TYPE)g_mem; \
+         SRC_INIT_T src_vec = { __VA_ARGS__ }; \
+         DEST_T extended = (DEST_T)PMOV_FUNC ((PMOV_INPUT_CAST_T)src_vec); \
+         res_##NAME = (DEST_T)BLEND_FUNC ( \
+             (BLEND_CAST_T)dest_##NAME, \
+             (BLEND_CAST_T)extended, \
+             (BLEND_CAST_T)mask_##NAME); \
+       }
+ 
+ #define MAKE_TEST_MASK(NAME, DEST_T, SRC_INIT_T, PMOV_INPUT_CAST_T, \
+ 		       PMOV_MASK_FUNC, LOAD_VAL_TYPE, ...) \
+     DEST_T dest_##NAME, res_##NAME; \
+     __mmask8 mask_##NAME; \
+     void test_##NAME() \
+       { \
+ 	LOAD_VAL_TYPE val = (LOAD_VAL_TYPE) g_mem; \
+ 	SRC_INIT_T src_vec = { __VA_ARGS__ }; \
+ 	res_##NAME = PMOV_MASK_FUNC ((PMOV_INPUT_CAST_T)src_vec, \
+ 				     dest_##NAME, \
+ 				     mask_##NAME);\
+       }  
+ 
+ 
+ MAKE_TEST_BLEND(v8qi_v8hi, __v8hi, __v2di, __v16qi, __builtin_ia32_pmovzxbw128, __builtin_ia32_pblendvb128, __v16qi, long long, val, 0)
+ MAKE_TEST_BLEND(v4qi_v4si, __v4si, __v4si, __v16qi, __builtin_ia32_pmovzxbd128, __builtin_ia32_pblendvb128, __v16qi, int, val, 0, 0, 0)
+ MAKE_TEST_BLEND(v4hi_v4si, __v4si, __v2di, __v8hi, __builtin_ia32_pmovzxwd128, __builtin_ia32_pblendvb128, __v16qi, long long, val, 0)
+ MAKE_TEST_BLEND(v2hi_v2di, __v2di, __v4si, __v8hi, __builtin_ia32_pmovzxwq128, __builtin_ia32_pblendvb128, __v16qi, int, val, 0, 0, 0)
+ MAKE_TEST_BLEND(v2si_v2di, __v2di, __v2di, __v4si, __builtin_ia32_pmovzxdq128, __builtin_ia32_pblendvb128, __v16qi, long long, val, 0)
+ 
+ 
+ MAKE_TEST_MASK(v8qi_v8si, __v8si, __v2di, __v16qi, __builtin_ia32_pmovzxbd256_mask, long long, val, 0)
+ MAKE_TEST_MASK(v4qi_v4di, __v4di, __v4si, __v16qi, __builtin_ia32_pmovzxbq256_mask, int, val, 0, 0, 0)
+ MAKE_TEST_MASK(v4hi_v4di, __v4di, __v2di, __v8hi, __builtin_ia32_pmovzxwq256_mask, long long, val, 0)
+ MAKE_TEST_MASK(v8qi_v8di, __v8di, __v2di, __v16qi, __builtin_ia32_pmovzxbq512_mask, long long, val, 0)
diff -Nrcpad gcc-14-20260130/gcc/testsuite/gcc.dg/torture/pr116772-1.c gcc-14-20260206/gcc/testsuite/gcc.dg/torture/pr116772-1.c
*** gcc-14-20260130/gcc/testsuite/gcc.dg/torture/pr116772-1.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/gcc/testsuite/gcc.dg/torture/pr116772-1.c	Fri Feb  6 22:32:10 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* PR middle-end/116772  */
+ /* The division by `/b` should not
+    be made uncondtional. */
+ 
+ int mult0(int a,int b) __attribute__((noipa));
+ 
+ int mult0(int a,int b){
+   return (b!=0 ? (a/b)*b : 0);
+ }
+ 
+ int bit_and0(int a,int b) __attribute__((noipa));
+ 
+ int bit_and0(int a,int b){
+   return (b!=0 ? (a/b)&b : 0);
+ }
+ 
+ int main() {
+   if (mult0(3, 0) != 0)
+     __builtin_abort();
+   if (bit_and0(3, 0) != 0)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260130/gcc/testsuite/gcc.dg/torture/pr123887.c gcc-14-20260206/gcc/testsuite/gcc.dg/torture/pr123887.c
*** gcc-14-20260130/gcc/testsuite/gcc.dg/torture/pr123887.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/gcc/testsuite/gcc.dg/torture/pr123887.c	Fri Feb  6 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do run } */
+ 
+ typedef struct {
+     unsigned s;
+ } struct_t;
+ 
+ struct_t *p;
+ _Bool cond;
+ int v = 1;
+ int main()
+ {
+   int u = 1 + (cond ? p->s : 0);
+   return u - v;
+ }
diff -Nrcpad gcc-14-20260130/gcc/testsuite/gcc.target/aarch64/pr123548.c gcc-14-20260206/gcc/testsuite/gcc.target/aarch64/pr123548.c
*** gcc-14-20260130/gcc/testsuite/gcc.target/aarch64/pr123548.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/gcc/testsuite/gcc.target/aarch64/pr123548.c	Fri Feb  6 22:32:11 2026
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
+ 
+ #include <arm_acle.h>
+ 
+ void
+ test (void *a)
+ {
+   __pldx (1, 1, 1, a);
+ }
+ /*
+ ** test:
+ **...
+ **	prfm\tPSTL2STRM, \[x[0-9]+\]
+ **...
+ **	ret
+ */
diff -Nrcpad gcc-14-20260130/libstdc++-v3/ChangeLog gcc-14-20260206/libstdc++-v3/ChangeLog
*** gcc-14-20260130/libstdc++-v3/ChangeLog	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/ChangeLog	Fri Feb  6 22:32:15 2026
***************
*** 1,3 ****
--- 1,27 ----
+ 2026-02-05  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-19  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/114153
+ 	* include/bits/ranges_cmp.h (__detail::__less_builtin_ptr_cmp):
+ 	Add __not_overloaded_spaceship spaceship check.
+ 	* include/bits/stl_function.h (greater<void>::operator())
+ 	(less<void>::operator(), greater_equal<void>::operator())
+ 	(less_equal<void>::operator()): Implement using if constexpr.
+ 	(greater<void>::__S_cmp, less<void>::__S_cmp)
+ 	(greater_equal<void>::__ptr_comp, less_equal<void>::S_cmp):
+ 	Remove.
+ 	(greater<void>::__ptr_cmp, less<void>::__ptr_cmp)
+ 	(greater_equal<void>::__ptr_comp, less_equal<void>::ptr_cmp): Change
+ 	tostatic constexpr variable. Define in terms of requires expressions
+ 	and __not_overloaded_spaceship check.
+ 	* include/std/concepts: (__detail::__not_overloaded_spaceship):
+ 	Define.
+ 	* libsupc++/compare: (__detail::__3way_builtin_ptr_cmp): Use
+ 	__not_overloaded_spaceship concept.
+ 	* testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc: New test.
+ 
  2026-01-26  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260130/libstdc++-v3/include/bits/ranges_cmp.h gcc-14-20260206/libstdc++-v3/include/bits/ranges_cmp.h
*** gcc-14-20260130/libstdc++-v3/include/bits/ranges_cmp.h	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/include/bits/ranges_cmp.h	Fri Feb  6 22:32:15 2026
*************** namespace ranges
*** 68,77 ****
  	= requires (_Tp&& __t, _Up&& __u) { { __t < __u } -> same_as<bool>; }
  	  && convertible_to<_Tp, const volatile void*>
  	  && convertible_to<_Up, const volatile void*>
! 	  && (! requires(_Tp&& __t, _Up&& __u)
  	      { operator<(std::forward<_Tp>(__t), std::forward<_Up>(__u)); }
! 	      && ! requires(_Tp&& __t, _Up&& __u)
! 	      { std::forward<_Tp>(__t).operator<(std::forward<_Up>(__u)); });
    } // namespace __detail
  
    // [range.cmp] Concept-constrained comparisons
--- 68,78 ----
  	= requires (_Tp&& __t, _Up&& __u) { { __t < __u } -> same_as<bool>; }
  	  && convertible_to<_Tp, const volatile void*>
  	  && convertible_to<_Up, const volatile void*>
! 	  && ! requires(_Tp&& __t, _Up&& __u)
  	      { operator<(std::forward<_Tp>(__t), std::forward<_Up>(__u)); }
! 	  && ! requires(_Tp&& __t, _Up&& __u)
! 	      { std::forward<_Tp>(__t).operator<(std::forward<_Up>(__u)); }
! 	  && std::__detail::__not_overloaded_spaceship<_Tp, _Up>;
    } // namespace __detail
  
    // [range.cmp] Concept-constrained comparisons
diff -Nrcpad gcc-14-20260130/libstdc++-v3/include/bits/stl_function.h gcc-14-20260206/libstdc++-v3/include/bits/stl_function.h
*** gcc-14-20260130/libstdc++-v3/include/bits/stl_function.h	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/include/bits/stl_function.h	Fri Feb  6 22:32:15 2026
***************
*** 59,64 ****
--- 59,67 ----
  #if __cplusplus > 201103L
  #include <bits/move.h>
  #endif
+ #if __cplusplus >= 202002L
+ #include <concepts>
+ #endif
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 525,532 ****
  	noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u))
  	{
! 	  return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
! 			__ptr_cmp<_Tp, _Up>{});
  	}
  
        template<typename _Tp, typename _Up>
--- 528,542 ----
  	noexcept(noexcept(std::forward<_Tp>(__t) > std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) > std::forward<_Up>(__u))
  	{
! #pragma GCC diagnostic push
! #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
! 	  if constexpr (__ptr_cmp<_Tp, _Up>)
! 	    return greater<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	  else
! 	    return std::forward<_Tp>(__t) > std::forward<_Up>(__u);
! #pragma GCC diagnostic pop
  	}
  
        template<typename _Tp, typename _Up>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 537,556 ****
        typedef __is_transparent is_transparent;
  
      private:
!       template <typename _Tp, typename _Up>
! 	static constexpr decltype(auto)
! 	_S_cmp(_Tp&& __t, _Up&& __u, false_type)
! 	{ return std::forward<_Tp>(__t) > std::forward<_Up>(__u); }
! 
!       template <typename _Tp, typename _Up>
! 	static constexpr bool
! 	_S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  	{
! 	  return greater<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	}
! 
        // True if there is no viable operator> member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
--- 547,566 ----
        typedef __is_transparent is_transparent;
  
      private:
! #if __cplusplus >= 202002L
!       template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = requires
  	{
! 	  requires
! 	       ! requires
! 		{ operator>(std::declval<_Tp>(), std::declval<_Up>()); }
! 	    && ! requires
! 		{ std::declval<_Tp>().operator>(std::declval<_Up>()); }
! 	    && __detail::__not_overloaded_spaceship<_Tp, _Up>
! 	    && is_convertible_v<_Tp, const volatile void*>
! 	    && is_convertible_v<_Up, const volatile void*>;
! 	};
! #else
        // True if there is no viable operator> member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 572,580 ****
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
! 	      is_convertible<_Tp, const volatile void*>,
! 	      is_convertible<_Up, const volatile void*>>;
      };
  
    /// One of the @link comparison_functors comparison functors@endlink.
--- 582,592 ----
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = __and_<
! 	  __not_overloaded<_Tp, _Up>,
! 	  is_convertible<_Tp, const volatile void*>,
! 	  is_convertible<_Up, const volatile void*>>::value;
! #endif
      };
  
    /// One of the @link comparison_functors comparison functors@endlink.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 587,594 ****
  	noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u))
  	{
! 	  return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
! 			__ptr_cmp<_Tp, _Up>{});
  	}
  
        template<typename _Tp, typename _Up>
--- 599,613 ----
  	noexcept(noexcept(std::forward<_Tp>(__t) < std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) < std::forward<_Up>(__u))
  	{
! #pragma GCC diagnostic push
! #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
! 	  if constexpr (__ptr_cmp<_Tp, _Up>)
! 	    return less<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	  else
! 	    return std::forward<_Tp>(__t) < std::forward<_Up>(__u);
! #pragma GCC diagnostic pop
  	}
  
        template<typename _Tp, typename _Up>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 599,618 ****
        typedef __is_transparent is_transparent;
  
      private:
!       template <typename _Tp, typename _Up>
! 	static constexpr decltype(auto)
! 	_S_cmp(_Tp&& __t, _Up&& __u, false_type)
! 	{ return std::forward<_Tp>(__t) < std::forward<_Up>(__u); }
! 
!       template <typename _Tp, typename _Up>
! 	static constexpr bool
! 	_S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  	{
! 	  return less<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	}
! 
        // True if there is no viable operator< member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
--- 618,637 ----
        typedef __is_transparent is_transparent;
  
      private:
! #if __cplusplus >= 202002L
!       template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = requires
  	{
! 	  requires
! 	       ! requires
! 		{ operator<(std::declval<_Tp>(), std::declval<_Up>()); }
! 	    && ! requires
! 		{ std::declval<_Tp>().operator<(std::declval<_Up>()); }
! 	    && __detail::__not_overloaded_spaceship<_Tp, _Up>
! 	    && is_convertible_v<_Tp, const volatile void*>
! 	    && is_convertible_v<_Up, const volatile void*>;
! 	};
! #else
        // True if there is no viable operator< member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 634,642 ****
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
! 	      is_convertible<_Tp, const volatile void*>,
! 	      is_convertible<_Up, const volatile void*>>;
      };
  
    /// One of the @link comparison_functors comparison functors@endlink.
--- 653,663 ----
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = __and_<
! 	  __not_overloaded<_Tp, _Up>,
! 	  is_convertible<_Tp, const volatile void*>,
! 	  is_convertible<_Up, const volatile void*>>::value;
! #endif
      };
  
    /// One of the @link comparison_functors comparison functors@endlink.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 649,656 ****
  	noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))
  	{
! 	  return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
! 			__ptr_cmp<_Tp, _Up>{});
  	}
  
        template<typename _Tp, typename _Up>
--- 670,684 ----
  	noexcept(noexcept(std::forward<_Tp>(__t) >= std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) >= std::forward<_Up>(__u))
  	{
! #pragma GCC diagnostic push
! #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
! 	  if constexpr (__ptr_cmp<_Tp, _Up>)
! 	    return greater_equal<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	  else
! 	    return std::forward<_Tp>(__t) >= std::forward<_Up>(__u);
! #pragma GCC diagnostic pop
  	}
  
        template<typename _Tp, typename _Up>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 661,680 ****
        typedef __is_transparent is_transparent;
  
      private:
!       template <typename _Tp, typename _Up>
! 	static constexpr decltype(auto)
! 	_S_cmp(_Tp&& __t, _Up&& __u, false_type)
! 	{ return std::forward<_Tp>(__t) >= std::forward<_Up>(__u); }
! 
!       template <typename _Tp, typename _Up>
! 	static constexpr bool
! 	_S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  	{
! 	  return greater_equal<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	}
! 
        // True if there is no viable operator>= member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
--- 689,708 ----
        typedef __is_transparent is_transparent;
  
      private:
! #if __cplusplus >= 202002L
!       template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = requires
  	{
! 	  requires
! 	       ! requires
! 		{ operator>=(std::declval<_Tp>(), std::declval<_Up>()); }
! 	    && ! requires
! 		{ std::declval<_Tp>().operator>=(std::declval<_Up>()); }
! 	    && __detail::__not_overloaded_spaceship<_Tp, _Up>
! 	    && is_convertible_v<_Tp, const volatile void*>
! 	    && is_convertible_v<_Up, const volatile void*>;
! 	};
! #else
        // True if there is no viable operator>= member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 696,704 ****
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
! 	      is_convertible<_Tp, const volatile void*>,
! 	      is_convertible<_Up, const volatile void*>>;
      };
  
    /// One of the @link comparison_functors comparison functors@endlink.
--- 724,734 ----
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = __and_<
! 	  __not_overloaded<_Tp, _Up>,
! 	  is_convertible<_Tp, const volatile void*>,
! 	  is_convertible<_Up, const volatile void*>>::value;
! #endif
      };
  
    /// One of the @link comparison_functors comparison functors@endlink.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 711,718 ****
  	noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))
  	{
! 	  return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
! 			__ptr_cmp<_Tp, _Up>{});
  	}
  
        template<typename _Tp, typename _Up>
--- 741,755 ----
  	noexcept(noexcept(std::forward<_Tp>(__t) <= std::forward<_Up>(__u)))
  	-> decltype(std::forward<_Tp>(__t) <= std::forward<_Up>(__u))
  	{
! #pragma GCC diagnostic push
! #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
! 	  if constexpr (__ptr_cmp<_Tp, _Up>)
! 	    return less_equal<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	  else
! 	    return std::forward<_Tp>(__t) <= std::forward<_Up>(__u);
! #pragma GCC diagnostic pop
  	}
  
        template<typename _Tp, typename _Up>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 723,742 ****
        typedef __is_transparent is_transparent;
  
      private:
!       template <typename _Tp, typename _Up>
! 	static constexpr decltype(auto)
! 	_S_cmp(_Tp&& __t, _Up&& __u, false_type)
! 	{ return std::forward<_Tp>(__t) <= std::forward<_Up>(__u); }
! 
!       template <typename _Tp, typename _Up>
! 	static constexpr bool
! 	_S_cmp(_Tp&& __t, _Up&& __u, true_type) noexcept
  	{
! 	  return less_equal<const volatile void*>{}(
! 	      static_cast<const volatile void*>(std::forward<_Tp>(__t)),
! 	      static_cast<const volatile void*>(std::forward<_Up>(__u)));
! 	}
! 
        // True if there is no viable operator<= member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
--- 760,779 ----
        typedef __is_transparent is_transparent;
  
      private:
! #if __cplusplus >= 202002L
!       template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = requires
  	{
! 	  requires
! 	       ! requires
! 		{ operator<=(std::declval<_Tp>(), std::declval<_Up>()); }
! 	    && ! requires
! 		{ std::declval<_Tp>().operator<=(std::declval<_Up>()); }
! 	    && __detail::__not_overloaded_spaceship<_Tp, _Up>
! 	    && is_convertible_v<_Tp, const volatile void*>
! 	    && is_convertible_v<_Up, const volatile void*>;
! 	};
! #else
        // True if there is no viable operator<= member function.
        template<typename _Tp, typename _Up, typename = void>
  	struct __not_overloaded2 : true_type { };
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 758,766 ****
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	using __ptr_cmp = __and_<__not_overloaded<_Tp, _Up>,
! 	      is_convertible<_Tp, const volatile void*>,
! 	      is_convertible<_Up, const volatile void*>>;
      };
  #endif // __glibcxx_transparent_operators
    /** @}  */
--- 795,805 ----
  	: false_type { };
  
        template<typename _Tp, typename _Up>
! 	static constexpr bool __ptr_cmp = __and_<
! 	  __not_overloaded<_Tp, _Up>,
! 	  is_convertible<_Tp, const volatile void*>,
! 	  is_convertible<_Up, const volatile void*>>::value;
! #endif
      };
  #endif // __glibcxx_transparent_operators
    /** @}  */
diff -Nrcpad gcc-14-20260130/libstdc++-v3/include/bits/stl_vector.h gcc-14-20260206/libstdc++-v3/include/bits/stl_vector.h
*** gcc-14-20260130/libstdc++-v3/include/bits/stl_vector.h	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/include/bits/stl_vector.h	Fri Feb  6 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 1047,1053 ****
        resize(size_type __new_size, const value_type& __x)
        {
  	if (__new_size > size())
! 	  _M_fill_insert(end(), __new_size - size(), __x);
  	else if (__new_size < size())
  	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
        }
--- 1047,1053 ----
        resize(size_type __new_size, const value_type& __x)
        {
  	if (__new_size > size())
! 	  _M_fill_append(__new_size - size(), __x);
  	else if (__new_size < size())
  	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
        }
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 1068,1074 ****
        resize(size_type __new_size, value_type __x = value_type())
        {
  	if (__new_size > size())
! 	  _M_fill_insert(end(), __new_size - size(), __x);
  	else if (__new_size < size())
  	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
        }
--- 1068,1074 ----
        resize(size_type __new_size, value_type __x = value_type())
        {
  	if (__new_size > size())
! 	  _M_fill_append(__new_size - size(), __x);
  	else if (__new_size < size())
  	  _M_erase_at_end(this->_M_impl._M_start + __new_size);
        }
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 1828,1833 ****
--- 1828,1838 ----
        void
        _M_fill_insert(iterator __pos, size_type __n, const value_type& __x);
  
+       // Called by resize(n,x), and the _M_fill_insert(end(), n, x)
+       _GLIBCXX20_CONSTEXPR
+       void
+       _M_fill_append(size_type __n, const value_type& __x);
+ 
  #if __cplusplus >= 201103L
        // Called by resize(n).
        _GLIBCXX20_CONSTEXPR
diff -Nrcpad gcc-14-20260130/libstdc++-v3/include/bits/vector.tcc gcc-14-20260206/libstdc++-v3/include/bits/vector.tcc
*** gcc-14-20260130/libstdc++-v3/include/bits/vector.tcc	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/include/bits/vector.tcc	Fri Feb  6 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 702,709 ****
      {
        if (__n != 0)
  	{
! 	  if (size_type(this->_M_impl._M_end_of_storage
! 			- this->_M_impl._M_finish) >= __n)
  	    {
  #if __cplusplus < 201103L
  	      value_type __x_copy = __x;
--- 702,711 ----
      {
        if (__n != 0)
  	{
! 	  if (__position.base() == this->_M_impl._M_finish)
! 	    _M_fill_append(__n, __x);
! 	  else if (size_type(this->_M_impl._M_end_of_storage
! 			       - this->_M_impl._M_finish) >= __n)
  	    {
  #if __cplusplus < 201103L
  	      value_type __x_copy = __x;
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 798,803 ****
--- 800,859 ----
  	}
      }
  
+   template<typename _Tp, typename _Alloc>
+     _GLIBCXX20_CONSTEXPR
+     void
+     vector<_Tp, _Alloc>::
+     _M_fill_append(size_type __n, const value_type& __x)
+     {
+        if (size_type(this->_M_impl._M_end_of_storage
+ 		     - this->_M_impl._M_finish) >= __n)
+ 	 {
+ 	   _GLIBCXX_ASAN_ANNOTATE_GROW(__n);
+ 	   this->_M_impl._M_finish =
+ 	     std::__uninitialized_fill_n_a(this->_M_impl._M_finish, __n, __x,
+ 					   _M_get_Tp_allocator());
+ 	   _GLIBCXX_ASAN_ANNOTATE_GREW(__n);
+ 	 }
+        else
+ 	 {
+ 	   // Make local copies of these members because the compiler thinks
+ 	   // the allocator can alter them if 'this' is globally reachable.
+ 	   pointer __old_start = this->_M_impl._M_start;
+ 	   pointer __old_finish = this->_M_impl._M_finish;
+ 	   const size_type __old_size = __old_finish - __old_start;
+ 
+ 	   const size_type __len =
+ 	     _M_check_len(__n, "vector::_M_fill_append");
+ 	   pointer __new_start(this->_M_allocate(__len));
+ 	   pointer __new_finish(__new_start + __old_size);
+ 	   __try
+ 	     {
+ 	       // See _M_realloc_insert above.
+ 	       __new_finish = std::__uninitialized_fill_n_a(
+ 				__new_finish, __n, __x,
+ 				_M_get_Tp_allocator());
+ 	       std::__uninitialized_move_if_noexcept_a(
+ 		 __old_start, __old_finish, __new_start,
+ 		 _M_get_Tp_allocator());
+ 	     }
+ 	   __catch(...)
+ 	     {
+ 		std::_Destroy(__new_start + __old_size, __new_finish,
+ 			      _M_get_Tp_allocator());
+ 		_M_deallocate(__new_start, __len);
+ 		__throw_exception_again;
+ 	      }
+ 	   std::_Destroy(__old_start, __old_finish, _M_get_Tp_allocator());
+ 	   _GLIBCXX_ASAN_ANNOTATE_REINIT;
+ 	   _M_deallocate(__old_start,
+ 			 this->_M_impl._M_end_of_storage - __old_start);
+ 	   this->_M_impl._M_start = __new_start;
+ 	   this->_M_impl._M_finish = __new_finish;
+ 	   this->_M_impl._M_end_of_storage = __new_start + __len;
+ 	 }
+     }
+ 
  #if __cplusplus >= 201103L
    template<typename _Tp, typename _Alloc>
      _GLIBCXX20_CONSTEXPR
diff -Nrcpad gcc-14-20260130/libstdc++-v3/include/std/concepts gcc-14-20260206/libstdc++-v3/include/std/concepts
*** gcc-14-20260130/libstdc++-v3/include/std/concepts	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/include/std/concepts	Fri Feb  6 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 382,387 ****
--- 382,403 ----
    template<typename _Rel, typename _Tp, typename _Up>
      concept strict_weak_order = relation<_Rel, _Tp, _Up>;
  
+   namespace __detail
+   {
+     // operator<=> are automatically reversed, so we need to consider
+     // both directions if types are different.
+     template<typename _Tp, typename _Up>
+       concept __not_overloaded_spaceship
+         =  ! requires(_Tp&& __t, _Up&& __u)
+ 	    { operator<=>(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); }
+ 	&& ! requires(_Tp&& __t, _Up&& __u)
+ 	    { static_cast<_Tp&&>(__t).operator<=>(static_cast<_Up&&>(__u)); }
+ 	&& (is_same_v<_Tp, _Up>
+ 	    || (! requires(_Tp&& __t, _Up&& __u)
+ 	         { operator<=>(static_cast<_Up&&>(__u), static_cast<_Tp&&>(__t)); }
+ 	       && ! requires(_Tp&& __t, _Up&& __u)
+ 	         { static_cast<_Up&&>(__u).operator<=>(static_cast<_Tp&&>(__t)); }));
+   }
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
  #endif // __cpp_lib_concepts
diff -Nrcpad gcc-14-20260130/libstdc++-v3/libsupc++/compare gcc-14-20260206/libstdc++-v3/libsupc++/compare
*** gcc-14-20260130/libstdc++-v3/libsupc++/compare	Fri Jan 30 22:32:16 2026
--- gcc-14-20260206/libstdc++-v3/libsupc++/compare	Fri Feb  6 22:32:15 2026
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 531,540 ****
  	  { static_cast<_Tp&&>(__t) <=> static_cast<_Up&&>(__u); }
  	  && convertible_to<_Tp, const volatile void*>
  	  && convertible_to<_Up, const volatile void*>
! 	  && ! requires(_Tp&& __t, _Up&& __u)
! 	  { operator<=>(static_cast<_Tp&&>(__t), static_cast<_Up&&>(__u)); }
! 	  && ! requires(_Tp&& __t, _Up&& __u)
! 	  { static_cast<_Tp&&>(__t).operator<=>(static_cast<_Up&&>(__u)); };
    } // namespace __detail
  
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
--- 531,537 ----
  	  { static_cast<_Tp&&>(__t) <=> static_cast<_Up&&>(__u); }
  	  && convertible_to<_Tp, const volatile void*>
  	  && convertible_to<_Up, const volatile void*>
! 	  && __not_overloaded_spaceship<_Tp, _Up>;
    } // namespace __detail
  
    // _GLIBCXX_RESOLVE_LIB_DEFECTS
diff -Nrcpad gcc-14-20260130/libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc gcc-14-20260206/libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc
*** gcc-14-20260130/libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc	Fri Feb  6 22:32:15 2026
***************
*** 0 ****
--- 1,336 ----
+ // { dg-do run { target c++20 } }
+ 
+ #include <compare>
+ #include <cstring>
+ #include <functional>
+ #include <testsuite_hooks.h>
+ 
+ constexpr const char arr[] = "efgh\0abcd\0ijkl";
+ constexpr const char* s1 = arr;
+ constexpr const char* s2 = arr+5;
+ constexpr const char* s3 = arr+6;
+ 
+ struct CStrNone
+ {
+   const char* str;
+ 
+   constexpr
+   operator const char*() const
+   { return str; }
+ };
+ 
+ template<typename ResultCreator>
+ struct CStrMem
+ {
+   const char* str;
+ 
+   constexpr
+   operator const char*() const
+   { return str; }
+ 
+   auto operator<=>(CStrMem const& rhs) const
+   { return ResultCreator::create(std::strcmp(this->str, rhs.str)); }
+ 
+   auto operator<=>(const char* rhs) const
+   { return ResultCreator::create(std::strcmp(this->str, rhs)); }
+ };
+ 
+ template<typename ResultCreator>
+ struct CStrFriend
+ {
+   const char* str;
+ 
+   constexpr
+   operator const char*() const
+   { return str; }
+ 
+   friend auto operator<=>(CStrFriend lhs, CStrFriend rhs)
+   { return ResultCreator::create(std::strcmp(lhs.str, rhs.str)); }
+ 
+   friend auto operator<=>(CStrFriend lhs, const char* rhs)
+   { return ResultCreator::create(std::strcmp(lhs.str, rhs)); }
+ };
+ 
+ template<typename ResultCreator>
+ struct CStrFree
+ {
+   const char* str;
+ 
+   constexpr
+   operator const char*() const
+   { return str; }
+ };
+ 
+ template<typename RC>
+ auto operator<=>(CStrFree<RC> lhs, CStrFree<RC> rhs)
+ { return RC::create(std::strcmp(lhs.str, rhs.str)); }
+ 
+ template<typename RC>
+ auto operator<=>(CStrFree<RC> lhs, const char* rhs)
+ { return RC::create(std::strcmp(lhs.str, rhs)); }
+ 
+ template<typename ResultCreator>
+ struct CStrMixed
+ {
+   const char* str;
+ 
+   constexpr
+   operator const char*() const
+   { return str; }
+ };
+ 
+ template<typename RC>
+ auto operator<=>(CStrMixed<RC> lhs, CStrMixed<RC> rhs)
+ { return RC::create(std::strcmp(lhs.str, rhs.str)); }
+ 
+ template<typename RC>
+ auto operator<=>(CStrMixed<RC> lhs, CStrFree<RC> rhs)
+ { return RC::create(std::strcmp(lhs.str, rhs.str)); }
+ 
+ // If the type returned from shapeship does not support relational
+ // operators, then synthesized operators are ill-formed, SFINAEable.
+ struct ReturnVoid
+ {
+   constexpr static void
+   create(int) { }
+ };
+ 
+ struct NoOperators
+ {
+   constexpr static NoOperators
+   create(int)
+   { return NoOperators(); }
+ };
+ 
+ // std defined ordering types are expected
+ template<typename Ord = std::strong_ordering>
+ struct ReturnOrd
+ {
+   constexpr static Ord
+   create(int cmp)
+   { return cmp <=> 0; }
+ };
+ 
+ // However, other types that provide required
+ // operators are supported.
+ struct ReturnInt
+ {
+   constexpr static int
+   create(int cmp)
+   { return cmp; }
+ };
+ 
+ struct CustomOrd
+ {
+   constexpr static CustomOrd
+   create(int cmp)
+   { return CustomOrd(cmp); }
+ 
+   CustomOrd() = default;
+ 
+   explicit constexpr
+   CustomOrd(int cmp)
+   : v(cmp) {}
+ 
+   friend constexpr bool
+   operator<(CustomOrd c, std::nullptr_t)
+   { return c.v < 0; }
+ 
+   friend constexpr bool
+   operator<(std::nullptr_t, CustomOrd c)
+   { return 0 < c.v; }
+ 
+   friend constexpr bool
+   operator>(CustomOrd c, std::nullptr_t)
+   { return c.v > 0; }
+ 
+   friend constexpr bool
+   operator>(std::nullptr_t, CustomOrd c)
+   { return 0 > c.v; }
+ 
+   friend constexpr bool
+   operator<=(CustomOrd c, std::nullptr_t)
+   { return c.v <= 0; }
+ 
+   friend constexpr bool
+   operator<=(std::nullptr_t, CustomOrd c)
+   { return 0 <= c.v; }
+ 
+   friend constexpr bool
+   operator>=(CustomOrd c, std::nullptr_t)
+   { return c.v >= 0; }
+ 
+   friend constexpr bool
+   operator>=(std::nullptr_t, CustomOrd c)
+   { return 0 >= c.v; }
+ 
+   friend constexpr CustomOrd
+   operator<=>(CustomOrd c, std::nullptr_t)
+   { return c; }
+ 
+   friend constexpr CustomOrd
+   operator<=>(std::nullptr_t, CustomOrd c)
+   { return CustomOrd(-c.v); }
+ 
+ private:
+   int v = 0;
+ };
+ 
+ template<typename CStr1, typename CStr2>
+ void
+ test_relational(bool use_overloaded)
+ {
+   CStr1 cs1{s1}; CStr2 cs2{s2};
+ 
+   if (use_overloaded)
+   {
+     // Overloaded operaetors compare content of the string,
+     // and cs1 > cs2;
+ 
+     VERIFY( !(cs1 < cs2) );
+     VERIFY( !std::less<>{}(cs1, cs2) );
+     VERIFY( !std::ranges::less{}(cs1, cs2) );
+ 
+     VERIFY( (cs1 > cs2) );
+     VERIFY( std::greater<>{}(cs1, cs2) );
+     VERIFY( std::ranges::greater{}(cs1, cs2) );
+ 
+     VERIFY( !(cs1 < cs2) );
+     VERIFY( !std::less_equal<>{}(cs1, cs2) );
+     VERIFY( !std::ranges::less_equal{}(cs1, cs2) );
+ 
+     VERIFY( (cs1 > cs2) );
+     VERIFY( std::greater_equal<>{}(cs1, cs2) );
+     VERIFY( std::ranges::greater_equal{}(cs1, cs2) );
+   }
+   else
+   {
+     // Without overloaded operators, we comapre pointers,
+     // and cs1 < cs2;
+ 
+     VERIFY( (cs1 < cs2) );
+     VERIFY( std::less<>{}(cs1, cs2) );
+     VERIFY( std::ranges::less{}(cs1, cs2) );
+ 
+     VERIFY( !(cs1 > cs2) );
+     VERIFY( !std::greater<>{}(cs1, cs2) );
+     VERIFY( !std::ranges::greater{}(cs1, cs2) );
+ 
+     VERIFY( (cs1 < cs2) );
+     VERIFY( std::less_equal<>{}(cs1, cs2) );
+     VERIFY( std::ranges::less_equal{}(cs1, cs2) );
+ 
+     VERIFY( !(cs1 > cs2) );
+     VERIFY( !std::greater_equal<>{}(cs1, cs2) );
+     VERIFY( !std::ranges::greater_equal{}(cs1, cs2) );
+   }
+ }
+ 
+ template<typename CStr>
+ void
+ test_relational_type(bool use_overloaded)
+ {
+   test_relational<CStr, CStr>(use_overloaded);
+   test_relational<CStr, const char*>(use_overloaded);
+   test_relational<const char*, CStr>(use_overloaded);
+ }
+ 
+ template<typename RC>
+ void
+ test_relational_return()
+ {
+   test_relational_type<CStrMem<RC>>(true);
+   test_relational_type<CStrFriend<RC>>(true);
+   test_relational_type<CStrFree<RC>>(true);
+   test_relational<CStrMixed<RC>, CStrFree<RC>>(true);
+   test_relational<CStrFree<RC>, CStrMixed<RC>>(true);
+ }
+ 
+ template<typename CStr1, typename CStr2>
+ void
+ test_spaceship(bool use_overloaded)
+ {
+   CStr1 cs1{s1}; CStr2 cs2{s2};
+ 
+   if (use_overloaded)
+   {
+     // Overloaded operaetors compare content of the string,
+     // and cs1 > cs2;
+     VERIFY( (cs1 <=> cs2) > 0 );
+     VERIFY( std::compare_three_way{}(cs1, cs2) > 0 );
+   }
+   else
+   {
+     // Without overloaded operators, we comapre pointers,
+     // and cs1 < cs2;
+     VERIFY( (cs1 <=> cs2) < 0 );
+     VERIFY( std::compare_three_way{}(cs1, cs2) < 0 );
+   }
+ }
+ 
+ template<typename CStr>
+ void
+ test_spaceship_type(bool use_overloaded)
+ {
+   test_spaceship<CStr, CStr>(use_overloaded);
+   test_spaceship<CStr, const char*>(use_overloaded);
+   test_spaceship<const char*, CStr>(use_overloaded);
+ }
+ 
+ template<typename Ordering>
+ void
+ test_std_ordering()
+ {
+   using RC = ReturnOrd<Ordering>;
+   test_relational_return<RC>();
+   test_spaceship_type<CStrMem<RC>>(true);
+   test_spaceship_type<CStrFriend<RC>>(true);
+   test_spaceship_type<CStrFree<RC>>(true);
+   test_spaceship<CStrMixed<RC>, CStrFree<RC>>(true);
+   test_spaceship<CStrFree<RC>, CStrMixed<RC>>(true);
+ }
+ 
+ template<typename CStr1, typename CStr2>
+ void
+ test_no_relational()
+ {
+   CStr1 c1{}; CStr2 c2{};
+   static_assert(!requires { c1 < c2; });
+   static_assert(!requires { c1 > c2; });
+   static_assert(!requires { c1 <= c2; });
+   static_assert(!requires { c1 >= c2; });
+ }
+ 
+ template<typename CStr>
+ void
+ test_no_relational_type()
+ {
+   test_no_relational<CStr, CStr>();
+   test_no_relational<CStr, const char*>();
+   test_no_relational<const char*, CStr>();
+ }
+ 
+ template<typename RC>
+ void
+ test_no_relational_return()
+ {
+   test_no_relational_type<CStrMem<RC>>();
+   test_no_relational_type<CStrFriend<RC>>();
+   test_no_relational_type<CStrFree<RC>>();
+   test_no_relational<CStrMixed<RC>, CStrFree<RC>>();
+   test_no_relational<CStrFree<RC>, CStrMixed<RC>>();
+ }
+ 
+ int main()
+ {
+   test_std_ordering<std::strong_ordering>();
+   test_std_ordering<std::weak_ordering>();
+   test_std_ordering<std::partial_ordering>();
+ 
+   test_relational_type<CStrNone>(false);
+   test_relational_return<ReturnInt>();
+   test_relational_return<CustomOrd>();
+ 
+   test_no_relational_return<ReturnVoid>();
+   test_no_relational_return<NoOperators>();
+ }
diff -Nrcpad gcc-14-20260130/libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc gcc-14-20260206/libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
*** gcc-14-20260130/libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc	Fri Jan 30 22:32:17 2026
--- gcc-14-20260206/libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc	Fri Feb  6 22:32:15 2026
*************** test05()
*** 109,117 ****
    // when it doesn't reallocate the buffer.
    VERIFY(copycounter::copycount == 20 + 1);
    a.insert(a.end(), 50, c);
!   VERIFY(copycounter::copycount == 70 + 2);
    a.insert(a.begin() + 50, 100, c);
!   VERIFY(copycounter::copycount == 170 + 3);
  }
  
  
--- 109,119 ----
    // when it doesn't reallocate the buffer.
    VERIFY(copycounter::copycount == 20 + 1);
    a.insert(a.end(), 50, c);
!   // expect when inserting at the end (appending), where existing
!   // elements are not modified
!   VERIFY(copycounter::copycount == 70 + 1);
    a.insert(a.begin() + 50, 100, c);
!   VERIFY(copycounter::copycount == 170 + 2);
  }
  
  
diff -Nrcpad gcc-14-20260130/libstdc++-v3/testsuite/23_containers/vector/modifiers/resize.cc gcc-14-20260206/libstdc++-v3/testsuite/23_containers/vector/modifiers/resize.cc
*** gcc-14-20260130/libstdc++-v3/testsuite/23_containers/vector/modifiers/resize.cc	Thu Jan  1 00:00:00 1970
--- gcc-14-20260206/libstdc++-v3/testsuite/23_containers/vector/modifiers/resize.cc	Fri Feb  6 22:32:15 2026
***************
*** 0 ****
--- 1,69 ----
+ // { dg-do run }
+ 
+ #include <vector>
+ #include <testsuite_hooks.h>
+ 
+ struct NoAssign
+ {
+   NoAssign(int p) : val(p) {}
+   const int val;
+ };
+ 
+ struct PrivateAssign
+ {
+   PrivateAssign(int p) : val(p) {}
+   PrivateAssign(const PrivateAssign& rhs) : val(rhs.val) {}
+ 
+   int val;
+ 
+ private:
+   PrivateAssign& operator=(const PrivateAssign&);
+ };
+ 
+ #if __cplusplus >= 201102L
+ struct DeletedAssign
+ {
+   DeletedAssign(int p) : val(p) {}
+   DeletedAssign(const DeletedAssign& rhs) : val(rhs.val) {}
+ 
+   DeletedAssign& operator=(const DeletedAssign&) = delete;
+ 
+   int val;
+ };
+ #endif
+ 
+ template<typename T>
+ void
+ testPR90129()
+ {
+   std::vector<T> v;
+   v.resize(5, T(5));
+   VERIFY( v.size() == 5 );
+   VERIFY( v.front().val == 5 );
+   VERIFY( v.back().val == 5 );
+ 
+   v.resize(10, T(10));
+   VERIFY( v.size() == 10 );
+   VERIFY( v.front().val == 5 );
+   VERIFY( v.back().val == 10 );
+ 
+   v.resize(7, T(7));
+   VERIFY( v.size() == 7 );
+   VERIFY( v.front().val == 5 );
+   VERIFY( v.back().val == 10 );
+ 
+   v.resize(3, T(3));
+   VERIFY( v.size() == 3 );
+   VERIFY( v.front().val == 5 );
+   VERIFY( v.back().val == 5 );
+ }
+ 
+ int main()
+ {
+   testPR90129<NoAssign>();
+   testPR90129<PrivateAssign>();
+ #if __cplusplus >= 201102L
+   testPR90129<DeletedAssign>();
+ #endif
+   return 0;
+ }
diff -Nrcpad gcc-14-20260130/libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc gcc-14-20260206/libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
*** gcc-14-20260130/libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc	Fri Jan 30 22:32:17 2026
--- gcc-14-20260206/libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc	Fri Feb  6 22:32:16 2026
*************** int main()
*** 39,88 ****
  
    int buckets;
  
-   // For C++11 and later add 1 to all counts, because the std::vector used
-   // internally by the hashtable creates and destroys a temporary object
-   // using its allocator.
-   const int extra = __cplusplus >= 201102L ? 1 : 0;
- 
    tracker_allocator_counter::reset();
    {
      Container c;
      buckets = c.bucket_count();
!     ok = check_construct_destroy("empty container", buckets+extra, extra) && ok;
    }
!   ok = check_construct_destroy("empty container", buckets+extra, buckets+extra) && ok;
  
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
!     ok = check_construct_destroy("Construct from range", buckets+10+extra, extra) && ok;
    }
!   ok = check_construct_destroy("Construct from range", buckets+10+extra, buckets+10+extra) && ok;
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
      c.insert(arr10a[0]);
!     ok = check_construct_destroy("Insert element", buckets+11+extra, extra) && ok;
    }
!   ok = check_construct_destroy("Insert element", buckets+11+extra, buckets+11+extra) && ok;
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
      c.insert(arr10a, arr10a+3);
!     ok = check_construct_destroy("Insert short range", buckets+13+extra, extra) && ok;
    }
!   ok = check_construct_destroy("Insert short range", buckets+13+extra, buckets+13+extra) && ok;
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
      c.insert(arr10a, arr10a+10);
!     ok = check_construct_destroy("Insert long range", buckets+20+extra, extra) && ok;
    }
!   ok = check_construct_destroy("Insert long range", buckets+20+extra, buckets+20+extra) && ok;
  
    return ok ? 0 : 1;
  }
--- 39,83 ----
  
    int buckets;
  
    tracker_allocator_counter::reset();
    {
      Container c;
      buckets = c.bucket_count();
!     ok = check_construct_destroy("empty container", buckets, 0) && ok;
    }
!   ok = check_construct_destroy("empty container", buckets, buckets) && ok;
  
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
!     ok = check_construct_destroy("Construct from range", buckets+10, 0) && ok;
    }
!   ok = check_construct_destroy("Construct from range", buckets+10, buckets+10) && ok;
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
      c.insert(arr10a[0]);
!     ok = check_construct_destroy("Insert element", buckets+11, 0) && ok;
    }
!   ok = check_construct_destroy("Insert element", buckets+11, buckets+11) && ok;
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
      c.insert(arr10a, arr10a+3);
!     ok = check_construct_destroy("Insert short range", buckets+13, 0) && ok;
    }
!   ok = check_construct_destroy("Insert short range", buckets+13, buckets+13) && ok;
  
    tracker_allocator_counter::reset();
    {
      Container c(arr10, arr10 + 10);
      c.insert(arr10a, arr10a+10);
!     ok = check_construct_destroy("Insert long range", buckets+20, 0) && ok;
    }
!   ok = check_construct_destroy("Insert long range", buckets+20, buckets+20) && ok;
  
    return ok ? 0 : 1;
  }
