diff -Nrcpad gcc-14-20250711/LAST_UPDATED gcc-14-20250718/LAST_UPDATED
*** gcc-14-20250711/LAST_UPDATED	Fri Jul 11 22:33:12 2025
--- gcc-14-20250718/LAST_UPDATED	Fri Jul 18 22:32:48 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 4058ce097eae89ee86a9fbe4debe2cec2882d904
--- 1 ----
! Obtained from git: releases/gcc-14 revision d51d503af7db6e4d8ca40e29d9250850f25aee1a
diff -Nrcpad gcc-14-20250711/MD5SUMS gcc-14-20250718/MD5SUMS
*** gcc-14-20250711/MD5SUMS	Fri Jul 11 22:33:16 2025
--- gcc-14-20250718/MD5SUMS	Fri Jul 18 22:32:52 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20250711.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-20250718.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
! d00a834c5508224641c30dca98931115  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! d67b5a2f0b6b21e81cef21bd2b9503c9  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
! 25b51d976831fc4b490717d0807eb6f4  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
! e4c3b3745e895b4acebc069ef4ee887a  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
! 8d85955984a00c180b052548b120c8b3  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
! 4fedd2817f826ca6c5a984d269bc01f0  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** fccc6d65638a2ce66ebc6b06766912c2  gcc/co
*** 4063,4071 ****
  003684e9baa146f7b92f23ca01368094  gcc/config/i386/i386-protos.h
  89067df9b8c57e29603ffaca8dcc692b  gcc/config/i386/i386-rust.cc
  4f7ab8c57b3148a31d24838528313ef2  gcc/config/i386/i386-rust.h
! 3c0ce201253936cd590e6ebe94b5e2fd  gcc/config/i386/i386.cc
! 84933ced281ed6b480d35f31fa9d5d18  gcc/config/i386/i386.h
! 85951c0188bf68d8d09c05f13999a98b  gcc/config/i386/i386.md
  85b5302c87709e4b2325868fe370b441  gcc/config/i386/i386.opt
  fb32c950c45e643174eb7c58d7f4218f  gcc/config/i386/i386.opt.urls
  95e430a8a19e9226167376a9a7ca34d9  gcc/config/i386/i386elf.h
--- 4063,4071 ----
  003684e9baa146f7b92f23ca01368094  gcc/config/i386/i386-protos.h
  89067df9b8c57e29603ffaca8dcc692b  gcc/config/i386/i386-rust.cc
  4f7ab8c57b3148a31d24838528313ef2  gcc/config/i386/i386-rust.h
! c9b456638cda809a11990f10d4f1ca98  gcc/config/i386/i386.cc
! c5d023a9d27652aeae677f66b17978f7  gcc/config/i386/i386.h
! 0bc87764c5d348a89ee874acfac51881  gcc/config/i386/i386.md
  85b5302c87709e4b2325868fe370b441  gcc/config/i386/i386.opt
  fb32c950c45e643174eb7c58d7f4218f  gcc/config/i386/i386.opt.urls
  95e430a8a19e9226167376a9a7ca34d9  gcc/config/i386/i386elf.h
*************** e9b8122841fbfbbc30fee8ed6613c399  gcc/do
*** 5793,5799 ****
  aa4d93313f9b7a5aec5b09041fd796a0  gcc/doc/install.texi
  2ef5aff8fc8a7cedf6236f86835e2608  gcc/doc/install.texi2html
  26c53e1edece23eebf72e40881f20e46  gcc/doc/interface.texi
! 14517a863e196b284d6ec51e70d0f04b  gcc/doc/invoke.texi
  4eb965d8ead78f1e3757415ae4d7872f  gcc/doc/languages.texi
  d2687b47a74c0bb7a227308dc1e7ba84  gcc/doc/libgcc.texi
  1e7dce602334edeb2ec545b9da6e4206  gcc/doc/loop.texi
--- 5793,5799 ----
  aa4d93313f9b7a5aec5b09041fd796a0  gcc/doc/install.texi
  2ef5aff8fc8a7cedf6236f86835e2608  gcc/doc/install.texi2html
  26c53e1edece23eebf72e40881f20e46  gcc/doc/interface.texi
! dae79890bb8379f96bf809c55f5fbe52  gcc/doc/invoke.texi
  4eb965d8ead78f1e3757415ae4d7872f  gcc/doc/languages.texi
  d2687b47a74c0bb7a227308dc1e7ba84  gcc/doc/libgcc.texi
  1e7dce602334edeb2ec545b9da6e4206  gcc/doc/loop.texi
*************** dce7dac7e905ada28c6563d930b531eb  gcc/fo
*** 5872,5878 ****
  090850db6c719557b18e35fafc041a4c  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 6a49fb5048bbefebcd1f1fa72959c990  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5872,5878 ----
  090850db6c719557b18e35fafc041a4c  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 2d4d77e802cbfc2c1f47e23261ce6c3d  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** f12471f71a85ea43d5295d1190faf890  gcc/fo
*** 5924,5930 ****
  6cecb2157794589b129027cac8e94684  gcc/fortran/gfortran.h
  57ff50b64741422eb357b86659a8afc8  gcc/fortran/gfortran.texi
  cc84451cbcaa91ddd59babe04bda0b1a  gcc/fortran/gfortranspec.cc
! 9c8c57b6192579ff44b99b76811fe26b  gcc/fortran/interface.cc
  df46b68ac2bc3086485916347795a6e2  gcc/fortran/intrinsic.cc
  7c5c308109e781e905a4606be634b46f  gcc/fortran/intrinsic.h
  3f7081a11cbca781ba26400c16f44044  gcc/fortran/intrinsic.texi
--- 5924,5930 ----
  6cecb2157794589b129027cac8e94684  gcc/fortran/gfortran.h
  57ff50b64741422eb357b86659a8afc8  gcc/fortran/gfortran.texi
  cc84451cbcaa91ddd59babe04bda0b1a  gcc/fortran/gfortranspec.cc
! fcf2287a5b0a40d47a2049c4d9188644  gcc/fortran/interface.cc
  df46b68ac2bc3086485916347795a6e2  gcc/fortran/intrinsic.cc
  7c5c308109e781e905a4606be634b46f  gcc/fortran/intrinsic.h
  3f7081a11cbca781ba26400c16f44044  gcc/fortran/intrinsic.texi
*************** c234572876f75890cc99027aed682b90  gcc/gi
*** 6057,6063 ****
  422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
  1ece622a98fd5bd127baa4493d2fb983  gcc/gimple-expr.cc
  0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! 2a700df921835720f3e560c1fe77aeeb  gcc/gimple-fold.cc
  0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
  2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
  c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
--- 6057,6063 ----
  422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
  1ece622a98fd5bd127baa4493d2fb983  gcc/gimple-expr.cc
  0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! e9c4136d3b6d2c8a5db4605cca8d8ac9  gcc/gimple-fold.cc
  0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
  2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
  c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8060,8066 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! f41030d49126cf9b10ad615a66cef7d7  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8060,8066 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 5044e6cebaf885742855ae777479a611  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** f4f262de9adf968192a3da56a3c4adc1  gcc/te
*** 15497,15502 ****
--- 15497,15503 ----
  0a27a7a45bdad25c5a48b1f4e3bfcb8b  gcc/testsuite/g++.dg/cpp0x/constexpr-array26.C
  3100c3b4b2ec90a6762a56edc16076a1  gcc/testsuite/g++.dg/cpp0x/constexpr-array27.C
  216c8de64dd9752d2d84eb202e80c708  gcc/testsuite/g++.dg/cpp0x/constexpr-array28.C
+ 1c4a44e298a16b855d3f955b665c3dc6  gcc/testsuite/g++.dg/cpp0x/constexpr-array29.C
  8b7c8e7c1b64cfa0626f7f2311c9fef5  gcc/testsuite/g++.dg/cpp0x/constexpr-array3.C
  6451aa5bb5fa736dda3ebad1dc2e8336  gcc/testsuite/g++.dg/cpp0x/constexpr-array4.C
  1d46f32449f9e0292d662928246ec784  gcc/testsuite/g++.dg/cpp0x/constexpr-array5.C
*************** be147aec3abbd5b08f579a216734b619  gcc/te
*** 41175,41180 ****
--- 41176,41182 ----
  c18469175af3ebdf263d34347ebe2d40  gcc/testsuite/gcc.dg/bitint-12.c
  d217543f954eb3f31e246355824f653a  gcc/testsuite/gcc.dg/bitint-120.c
  7d02ff9539e664bbbcfc85b464d916c1  gcc/testsuite/gcc.dg/bitint-123.c
+ 11e6d8eaf7b16f3f8aeaf1c2e626996f  gcc/testsuite/gcc.dg/bitint-124.c
  aa6e262f1d508ec048e76ac4af6675a4  gcc/testsuite/gcc.dg/bitint-13.c
  e6db29256563268a3c327706e78c79a4  gcc/testsuite/gcc.dg/bitint-14.c
  c748706240385773f27caba61cbbcbd8  gcc/testsuite/gcc.dg/bitint-15.c
*************** ef2cdb48cbe0dedfce0d7eb770a1f30f  gcc/te
*** 75198,75203 ****
--- 75200,75206 ----
  3cee806d4474b5711bc99a7abe73cadc  gcc/testsuite/gcc.target/i386/pr119549.c
  bb420ee68e25b3f2c223a9b99a8e7c79  gcc/testsuite/gcc.target/i386/pr119784a.c
  038406363ec46be9b531268d03546b94  gcc/testsuite/gcc.target/i386/pr119784b.c
+ e33b63cd8f6d60b286b2286424f25714  gcc/testsuite/gcc.target/i386/pr120908.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
*************** aa770fb17af427bac4bab1f165ac2792  gcc/te
*** 93480,93485 ****
--- 93483,93489 ----
  ac2154aefe0a4ce981b3fa252235e2dd  gcc/testsuite/gfortran.dg/associate_7.f03
  cbd20a2196505f5c05eaf4a0b2deb506  gcc/testsuite/gfortran.dg/associate_70.f90
  654126432f7002148884d08affd35699  gcc/testsuite/gfortran.dg/associate_72.f90
+ 9324e6abeab7018b1551e0a075cd2085  gcc/testsuite/gfortran.dg/associate_75.f90
  3c2206420bb8717914aa447789b5f079  gcc/testsuite/gfortran.dg/associate_8.f03
  0406413659a92c10d44ed1f1576987b9  gcc/testsuite/gfortran.dg/associate_9.f03
  51f82584276ab8f411b8d9d7e84fadc8  gcc/testsuite/gfortran.dg/associated_1.f90
diff -Nrcpad gcc-14-20250711/gcc/ChangeLog gcc-14-20250718/gcc/ChangeLog
*** gcc-14-20250711/gcc/ChangeLog	Fri Jul 11 22:32:06 2025
--- gcc-14-20250718/gcc/ChangeLog	Fri Jul 18 22:32:10 2025
***************
*** 1,3 ****
--- 1,35 ----
+ 2025-07-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-07-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120908
+ 	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
+ 	gen_tls_local_dynamic_64.
+ 	* config/i386/i386.md (*tls_global_dynamic_64_largepic): Add
+ 	RDI clobber and use it to generate LEA.
+ 	(*tls_local_dynamic_64_<mode>): Likewise.
+ 	(*tls_local_dynamic_base_64_largepic): Likewise.
+ 	(@tls_local_dynamic_64_<mode>): Add a clobber.
+ 
+ 2025-07-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-07-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120908
+ 	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
+ 	gen_tls_global_dynamic_64.
+ 	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Add RDI
+ 	clobber and use it to generate LEA.
+ 	(@tls_global_dynamic_64_<mode>): Add a clobber.
+ 
+ 2025-07-14  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h (PTA_PANTHERLAKE): Revmoe KL and WIDEKL.
+ 	(PTA_CLEARWATERFOREST): Ditto.
+ 	* doc/invoke.texi: Revise documentation.
+ 
  2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
  
  	* config/avr/avr-mcus.def (avr32da28s, avr32da32s, avr32da48s)
diff -Nrcpad gcc-14-20250711/gcc/DATESTAMP gcc-14-20250718/gcc/DATESTAMP
*** gcc-14-20250711/gcc/DATESTAMP	Fri Jul 11 22:32:06 2025
--- gcc-14-20250718/gcc/DATESTAMP	Fri Jul 18 22:32:10 2025
***************
*** 1 ****
! 20250711
--- 1 ----
! 20250718
diff -Nrcpad gcc-14-20250711/gcc/config/i386/i386.cc gcc-14-20250718/gcc/config/i386/i386.cc
*** gcc-14-20250711/gcc/config/i386/i386.cc	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/config/i386/i386.cc	Fri Jul 18 22:32:11 2025
*************** legitimize_tls_address (rtx x, enum tls_
*** 12218,12228 ****
  	  if (TARGET_64BIT)
  	    {
  	      rtx rax = gen_rtx_REG (Pmode, AX_REG);
  	      rtx_insn *insns;
  
  	      start_sequence ();
  	      emit_call_insn
! 		(gen_tls_global_dynamic_64 (Pmode, rax, x, caddr));
  	      insns = get_insns ();
  	      end_sequence ();
  
--- 12218,12229 ----
  	  if (TARGET_64BIT)
  	    {
  	      rtx rax = gen_rtx_REG (Pmode, AX_REG);
+ 	      rtx rdi = gen_rtx_REG (Pmode, DI_REG);
  	      rtx_insn *insns;
  
  	      start_sequence ();
  	      emit_call_insn
! 		(gen_tls_global_dynamic_64 (Pmode, rax, x, caddr, rdi));
  	      insns = get_insns ();
  	      end_sequence ();
  
*************** legitimize_tls_address (rtx x, enum tls_
*** 12272,12283 ****
  	  if (TARGET_64BIT)
  	    {
  	      rtx rax = gen_rtx_REG (Pmode, AX_REG);
  	      rtx_insn *insns;
  	      rtx eqv;
  
  	      start_sequence ();
  	      emit_call_insn
! 		(gen_tls_local_dynamic_base_64 (Pmode, rax, caddr));
  	      insns = get_insns ();
  	      end_sequence ();
  
--- 12273,12285 ----
  	  if (TARGET_64BIT)
  	    {
  	      rtx rax = gen_rtx_REG (Pmode, AX_REG);
+ 	      rtx rdi = gen_rtx_REG (Pmode, DI_REG);
  	      rtx_insn *insns;
  	      rtx eqv;
  
  	      start_sequence ();
  	      emit_call_insn
! 		(gen_tls_local_dynamic_base_64 (Pmode, rax, caddr, rdi));
  	      insns = get_insns ();
  	      end_sequence ();
  
diff -Nrcpad gcc-14-20250711/gcc/config/i386/i386.h gcc-14-20250718/gcc/config/i386/i386.h
*** gcc-14-20250711/gcc/config/i386/i386.h	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/config/i386/i386.h	Fri Jul 18 22:32:11 2025
*************** constexpr wide_int_bitmask PTA_ARROWLAKE
*** 2432,2441 ****
    | PTA_AVXVNNIINT8 | PTA_AVXNECONVERT | PTA_CMPCCXADD | PTA_UINTR;
  constexpr wide_int_bitmask PTA_ARROWLAKE_S = PTA_ARROWLAKE | PTA_AVXVNNIINT16
    | PTA_SHA512 | PTA_SM3 | PTA_SM4;
! constexpr wide_int_bitmask PTA_CLEARWATERFOREST = PTA_SIERRAFOREST
!   | PTA_AVXVNNIINT16 | PTA_SHA512 | PTA_SM3 | PTA_SM4 | PTA_USER_MSR
!   | PTA_PREFETCHI;
! constexpr wide_int_bitmask PTA_PANTHERLAKE = PTA_ARROWLAKE_S | PTA_PREFETCHI;
  constexpr wide_int_bitmask PTA_KNM = PTA_KNL | PTA_AVX5124VNNIW
    | PTA_AVX5124FMAPS | PTA_AVX512VPOPCNTDQ;
  
--- 2432,2442 ----
    | PTA_AVXVNNIINT8 | PTA_AVXNECONVERT | PTA_CMPCCXADD | PTA_UINTR;
  constexpr wide_int_bitmask PTA_ARROWLAKE_S = PTA_ARROWLAKE | PTA_AVXVNNIINT16
    | PTA_SHA512 | PTA_SM3 | PTA_SM4;
! constexpr wide_int_bitmask PTA_CLEARWATERFOREST =
!   (PTA_SIERRAFOREST & (~(PTA_KL | PTA_WIDEKL))) | PTA_AVXVNNIINT16 | PTA_SHA512
!   | PTA_SM3 | PTA_SM4 | PTA_USER_MSR | PTA_PREFETCHI;
! constexpr wide_int_bitmask PTA_PANTHERLAKE =
!   (PTA_ARROWLAKE_S & (~(PTA_KL | PTA_WIDEKL))) | PTA_PREFETCHI;
  constexpr wide_int_bitmask PTA_KNM = PTA_KNL | PTA_AVX5124VNNIW
    | PTA_AVX5124FMAPS | PTA_AVX512VPOPCNTDQ;
  
diff -Nrcpad gcc-14-20250711/gcc/config/i386/i386.md gcc-14-20250718/gcc/config/i386/i386.md
*** gcc-14-20250711/gcc/config/i386/i386.md	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/config/i386/i386.md	Fri Jul 18 22:32:11 2025
***************
*** 21114,21120 ****
  	 (match_operand 3)))
     (unspec:P [(match_operand 1 "tls_symbolic_operand")
  	      (reg:P SP_REG)]
! 	     UNSPEC_TLS_GD)]
    "TARGET_64BIT"
  {
    if (!TARGET_X32)
--- 21114,21121 ----
  	 (match_operand 3)))
     (unspec:P [(match_operand 1 "tls_symbolic_operand")
  	      (reg:P SP_REG)]
! 	     UNSPEC_TLS_GD)
!    (clobber (match_operand:P 4 "register_operand" "=D"))]
    "TARGET_64BIT"
  {
    if (!TARGET_X32)
***************
*** 21131,21137 ****
         Use data16 prefix instead, which doesn't have this problem.  */
      fputs ("\tdata16", asm_out_file);
    output_asm_insn
!     ("lea{q}\t{%E1@tlsgd(%%rip), %%rdi|rdi, %E1@tlsgd[rip]}", operands);
    if (TARGET_SUN_TLS || flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT)
      fputs (ASM_SHORT "0x6666\n", asm_out_file);
    else
--- 21132,21138 ----
         Use data16 prefix instead, which doesn't have this problem.  */
      fputs ("\tdata16", asm_out_file);
    output_asm_insn
!     ("lea{q}\t{%E1@tlsgd(%%rip), %q4|%q4, %E1@tlsgd[rip]}", operands);
    if (TARGET_SUN_TLS || flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT)
      fputs (ASM_SHORT "0x6666\n", asm_out_file);
    else
***************
*** 21155,21168 ****
  	 (match_operand 4)))
     (unspec:DI [(match_operand 1 "tls_symbolic_operand")
  	       (reg:DI SP_REG)]
! 	      UNSPEC_TLS_GD)]
    "TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
     && GET_CODE (operands[3]) == CONST
     && GET_CODE (XEXP (operands[3], 0)) == UNSPEC
     && XINT (XEXP (operands[3], 0), 1) == UNSPEC_PLTOFF"
  {
    output_asm_insn
!     ("lea{q}\t{%E1@tlsgd(%%rip), %%rdi|rdi, %E1@tlsgd[rip]}", operands);
    output_asm_insn ("movabs{q}\t{%3, %%rax|rax, %3}", operands);
    output_asm_insn ("add{q}\t{%2, %%rax|rax, %2}", operands);
    return "call\t{*%%rax|rax}";
--- 21156,21170 ----
  	 (match_operand 4)))
     (unspec:DI [(match_operand 1 "tls_symbolic_operand")
  	       (reg:DI SP_REG)]
! 	      UNSPEC_TLS_GD)
!    (clobber (match_operand:DI 5 "register_operand" "=D"))]
    "TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
     && GET_CODE (operands[3]) == CONST
     && GET_CODE (XEXP (operands[3], 0)) == UNSPEC
     && XINT (XEXP (operands[3], 0), 1) == UNSPEC_PLTOFF"
  {
    output_asm_insn
!     ("lea{q}\t{%E1@tlsgd(%%rip), %5|%5, %E1@tlsgd[rip]}", operands);
    output_asm_insn ("movabs{q}\t{%3, %%rax|rax, %3}", operands);
    output_asm_insn ("add{q}\t{%2, %%rax|rax, %2}", operands);
    return "call\t{*%%rax|rax}";
***************
*** 21178,21184 ****
  	   (const_int 0)))
       (unspec:P [(match_operand 1 "tls_symbolic_operand")
  		(reg:P SP_REG)]
! 	       UNSPEC_TLS_GD)])]
    "TARGET_64BIT"
    "ix86_tls_descriptor_calls_expanded_in_cfun = true;")
  
--- 21180,21187 ----
  	   (const_int 0)))
       (unspec:P [(match_operand 1 "tls_symbolic_operand")
  		(reg:P SP_REG)]
! 	       UNSPEC_TLS_GD)
!      (clobber (match_operand:P 3 "register_operand"))])]
    "TARGET_64BIT"
    "ix86_tls_descriptor_calls_expanded_in_cfun = true;")
  
***************
*** 21229,21239 ****
  	(call:P
  	 (mem:QI (match_operand 1 "constant_call_address_operand" "Bz"))
  	 (match_operand 2)))
!    (unspec:P [(reg:P SP_REG)] UNSPEC_TLS_LD_BASE)]
    "TARGET_64BIT"
  {
    output_asm_insn
!     ("lea{q}\t{%&@tlsld(%%rip), %%rdi|rdi, %&@tlsld[rip]}", operands);
    if (TARGET_SUN_TLS)
      return "call\t%p1@plt";
    if (flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT)
--- 21232,21243 ----
  	(call:P
  	 (mem:QI (match_operand 1 "constant_call_address_operand" "Bz"))
  	 (match_operand 2)))
!    (unspec:P [(reg:P SP_REG)] UNSPEC_TLS_LD_BASE)
!    (clobber (match_operand:P 3 "register_operand" "=D"))]
    "TARGET_64BIT"
  {
    output_asm_insn
!     ("lea{q}\t{%&@tlsld(%%rip), %q3|%q3, %&@tlsld[rip]}", operands);
    if (TARGET_SUN_TLS)
      return "call\t%p1@plt";
    if (flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT)
***************
*** 21249,21262 ****
  	 (mem:QI (plus:DI (match_operand:DI 1 "register_operand" "b")
  			  (match_operand:DI 2 "immediate_operand" "i")))
  	 (match_operand 3)))
!    (unspec:DI [(reg:DI SP_REG)] UNSPEC_TLS_LD_BASE)]
    "TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
     && GET_CODE (operands[2]) == CONST
     && GET_CODE (XEXP (operands[2], 0)) == UNSPEC
     && XINT (XEXP (operands[2], 0), 1) == UNSPEC_PLTOFF"
  {
    output_asm_insn
!     ("lea{q}\t{%&@tlsld(%%rip), %%rdi|rdi, %&@tlsld[rip]}", operands);
    output_asm_insn ("movabs{q}\t{%2, %%rax|rax, %2}", operands);
    output_asm_insn ("add{q}\t{%1, %%rax|rax, %1}", operands);
    return "call\t{*%%rax|rax}";
--- 21253,21267 ----
  	 (mem:QI (plus:DI (match_operand:DI 1 "register_operand" "b")
  			  (match_operand:DI 2 "immediate_operand" "i")))
  	 (match_operand 3)))
!    (unspec:DI [(reg:DI SP_REG)] UNSPEC_TLS_LD_BASE)
!    (clobber (match_operand:DI 4 "register_operand" "=D"))]
    "TARGET_64BIT && ix86_cmodel == CM_LARGE_PIC && !TARGET_PECOFF
     && GET_CODE (operands[2]) == CONST
     && GET_CODE (XEXP (operands[2], 0)) == UNSPEC
     && XINT (XEXP (operands[2], 0), 1) == UNSPEC_PLTOFF"
  {
    output_asm_insn
!     ("lea{q}\t{%&@tlsld(%%rip), %4|%4, %&@tlsld[rip]}", operands);
    output_asm_insn ("movabs{q}\t{%2, %%rax|rax, %2}", operands);
    output_asm_insn ("add{q}\t{%1, %%rax|rax, %1}", operands);
    return "call\t{*%%rax|rax}";
***************
*** 21270,21276 ****
  	   (call:P
  	    (mem:QI (match_operand 1))
  	    (const_int 0)))
!       (unspec:P [(reg:P SP_REG)] UNSPEC_TLS_LD_BASE)])]
    "TARGET_64BIT"
    "ix86_tls_descriptor_calls_expanded_in_cfun = true;")
  
--- 21275,21282 ----
  	   (call:P
  	    (mem:QI (match_operand 1))
  	    (const_int 0)))
!       (unspec:P [(reg:P SP_REG)] UNSPEC_TLS_LD_BASE)
!       (clobber (match_operand:P 2 "register_operand"))])]
    "TARGET_64BIT"
    "ix86_tls_descriptor_calls_expanded_in_cfun = true;")
  
diff -Nrcpad gcc-14-20250711/gcc/doc/invoke.texi gcc-14-20250718/gcc/doc/invoke.texi
*** gcc-14-20250711/gcc/doc/invoke.texi	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/doc/invoke.texi	Fri Jul 18 22:32:11 2025
*************** Intel Panther Lake CPU with 64-bit exten
*** 34541,34549 ****
  SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
  XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
  MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU,
! VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA,
! AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4 and
! PREFETCHI instruction set support.
  
  @item sapphirerapids
  @itemx emeraldrapids
--- 34541,34549 ----
  SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
  XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
  MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU,
! VAES, VPCLMULQDQ, SERIALIZE, HRESET, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8,
! AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4 and PREFETCHI
! instruction set support.
  
  @item sapphirerapids
  @itemx emeraldrapids
*************** Intel Clearwater Forest CPU with 64-bit
*** 34632,34640 ****
  SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
  XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
  MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
! LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
! ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16,
! SHA512, SM3, SM4, USER_MSR and PREFETCHI instruction set support.
  
  @item knl
  Intel Knights Landing CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
--- 34632,34640 ----
  SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
  XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
  MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
! LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, AVX-VNNI, ENQCMD,
! UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
! SM3, SM4, USER_MSR and PREFETCHI instruction set support.
  
  @item knl
  Intel Knights Landing CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
diff -Nrcpad gcc-14-20250711/gcc/fortran/ChangeLog gcc-14-20250718/gcc/fortran/ChangeLog
*** gcc-14-20250711/gcc/fortran/ChangeLog	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/fortran/ChangeLog	Fri Jul 18 22:32:11 2025
***************
*** 1,3 ****
--- 1,12 ----
+ 2025-07-16  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-07-16  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/121060
+ 	* interface.cc (matching_typebound_op): Defer determination of
+ 	specific procedure until resolution by returning NULL.
+ 
  2025-05-25  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-14-20250711/gcc/fortran/interface.cc gcc-14-20250718/gcc/fortran/interface.cc
*** gcc-14-20250711/gcc/fortran/interface.cc	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/fortran/interface.cc	Fri Jul 18 22:32:11 2025
*************** matching_typebound_op (gfc_expr** tb_bas
*** 4622,4627 ****
--- 4622,4634 ----
  		gfc_actual_arglist* argcopy;
  		bool matches;
  
+ 		/* If expression matching comes here during parsing, eg. when
+ 		   parsing ASSOCIATE, generic TBPs have not yet been resolved
+ 		   and g->specific will not have been set. Wait for expression
+ 		   resolution by returning NULL.  */
+ 		if (!g->specific && !gfc_current_ns->resolved)
+ 		  return NULL;
+ 
  		gcc_assert (g->specific);
  		if (g->specific->error)
  		  continue;
diff -Nrcpad gcc-14-20250711/gcc/gimple-fold.cc gcc-14-20250718/gcc/gimple-fold.cc
*** gcc-14-20250711/gcc/gimple-fold.cc	Fri Jul 11 22:32:07 2025
--- gcc-14-20250718/gcc/gimple-fold.cc	Fri Jul 18 22:32:11 2025
*************** fold_nonarray_ctor_reference (tree type,
*** 8243,8252 ****
  	    {
  	      if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
  		return NULL_TREE;
- 	      const unsigned int encoding_size
- 		= GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (TREE_TYPE (cfield)));
  	      if (BYTES_BIG_ENDIAN)
! 		inner_offset += encoding_size - wi::to_offset (field_size);
  	    }
  
  	  return fold_ctor_reference (type, cval,
--- 8243,8259 ----
  	    {
  	      if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN)
  		return NULL_TREE;
  	      if (BYTES_BIG_ENDIAN)
! 		{
! 		  tree ctype = TREE_TYPE (cfield);
! 		  unsigned int encoding_size;
! 		  if (TYPE_MODE (ctype) != BLKmode)
! 		    encoding_size
! 		      = GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (ctype));
! 		  else
! 		    encoding_size = TREE_INT_CST_LOW (TYPE_SIZE (ctype));
! 		  inner_offset += encoding_size - wi::to_offset (field_size);
! 		}
  	    }
  
  	  return fold_ctor_reference (type, cval,
diff -Nrcpad gcc-14-20250711/gcc/testsuite/ChangeLog gcc-14-20250718/gcc/testsuite/ChangeLog
*** gcc-14-20250711/gcc/testsuite/ChangeLog	Fri Jul 11 22:32:08 2025
--- gcc-14-20250718/gcc/testsuite/ChangeLog	Fri Jul 18 22:32:12 2025
***************
*** 1,3 ****
--- 1,24 ----
+ 2025-07-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-07-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120908
+ 	* gcc.target/i386/pr120908.c: New test.
+ 
+ 2025-07-17  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/87097
+ 	* g++.dg/cpp0x/constexpr-array29.C: New test.
+ 
+ 2025-07-16  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-07-16  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/121060
+ 	* gfortran.dg/associate_75.f90: New test.
+ 
  2025-07-03  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20250711/gcc/testsuite/g++.dg/cpp0x/constexpr-array29.C gcc-14-20250718/gcc/testsuite/g++.dg/cpp0x/constexpr-array29.C
*** gcc-14-20250711/gcc/testsuite/g++.dg/cpp0x/constexpr-array29.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20250718/gcc/testsuite/g++.dg/cpp0x/constexpr-array29.C	Fri Jul 18 22:32:13 2025
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/87097
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {
+   constexpr A() : data() {}
+   struct X { int n; };
+   X data[2];
+ };
+ 
+ static_assert((A(), true), "");
+ static_assert(A().data[0].n == 0, "");
+ static_assert(A().data[1].n == 0, "");
+ constexpr A x;
diff -Nrcpad gcc-14-20250711/gcc/testsuite/gcc.dg/bitint-124.c gcc-14-20250718/gcc/testsuite/gcc.dg/bitint-124.c
*** gcc-14-20250711/gcc/testsuite/gcc.dg/bitint-124.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250718/gcc/testsuite/gcc.dg/bitint-124.c	Fri Jul 18 22:32:17 2025
***************
*** 0 ****
--- 1,30 ----
+ /* PR tree-optimization/121131 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-O2" } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 156
+ struct A { _BitInt(156) b : 135; };
+ 
+ static inline _BitInt(156)
+ foo (struct A *x)
+ {
+   return x[1].b;
+ }
+ 
+ __attribute__((noipa)) _BitInt(156)
+ bar (void)
+ {
+   struct A a[] = { 1, 1, -13055525270329736316393717310914023773847wb,
+ 		   1, 1, 1, 1, 1, 1, 1, 1, 1 };
+   return foo (&a[1]);
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 156
+   if (bar () != -13055525270329736316393717310914023773847wb)
+     __builtin_abort ();
+ #endif
+ }
diff -Nrcpad gcc-14-20250711/gcc/testsuite/gcc.target/i386/pr120908.c gcc-14-20250718/gcc/testsuite/gcc.target/i386/pr120908.c
*** gcc-14-20250711/gcc/testsuite/gcc.target/i386/pr120908.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250718/gcc/testsuite/gcc.target/i386/pr120908.c	Fri Jul 18 22:32:21 2025
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile { target { lp64 && fpic } } } */
+ /* { dg-options "-O2 -fpic -mtls-dialect=gnu -mcmodel=large" } */
+ 
+ extern __thread long bar1;
+ long *
+ foo1 (void)
+ {
+   return &bar1;
+ }
+ 
+ static __thread long bar2;
+ long *
+ foo2 (void)
+ {
+   return &bar2;
+ }
diff -Nrcpad gcc-14-20250711/gcc/testsuite/gfortran.dg/associate_75.f90 gcc-14-20250718/gcc/testsuite/gfortran.dg/associate_75.f90
*** gcc-14-20250711/gcc/testsuite/gfortran.dg/associate_75.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20250718/gcc/testsuite/gfortran.dg/associate_75.f90	Fri Jul 18 22:32:23 2025
***************
*** 0 ****
--- 1,50 ----
+ ! { dg-do run }
+ !
+ ! Test fix for PR121060.
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module subdomain_m
+   implicit none
+ 
+   type subdomain_t 
+     real :: s_ = 99.
+   contains
+     generic :: operator(.laplacian.) => laplacian
+     procedure laplacian
+   end type
+ 
+ contains
+ 
+   function laplacian(rhs)
+     class(subdomain_t), intent(in) :: rhs
+     type(subdomain_t) laplacian
+     laplacian%s_ = rhs%s_ + 42
+   end function
+ 
+ end module
+ 
+   use subdomain_m
+   implicit none
+ 
+   type operands_t
+     real :: s_
+   end type
+ 
+   type(subdomain_t) phi
+   type(operands_t) operands
+ 
+   associate(laplacian_phi => .laplacian. phi) ! ICE because specific not found.
+     operands = approximates(laplacian_phi%s_)
+   end associate
+ 
+   if (int (operands%s_) /= 42) stop 1
+ contains
+ 
+   function approximates(actual)
+     real actual 
+     type(operands_t) approximates
+     approximates%s_ = actual - 99
+   end function
+ 
+ end
