diff -Nrcpad gcc-13-20260115/LAST_UPDATED gcc-13-20260122/LAST_UPDATED
*** gcc-13-20260115/LAST_UPDATED	Thu Jan 15 22:32:19 2026
--- gcc-13-20260122/LAST_UPDATED	Thu Jan 22 22:32:20 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-13 revision 74d2113178601433f73cd3b4bdb0e67d652154e7
--- 1 ----
! Obtained from git: releases/gcc-13 revision 43d6afb4711adee7e8b1d7f67c2b028d04841326
diff -Nrcpad gcc-13-20260115/MD5SUMS gcc-13-20260122/MD5SUMS
*** gcc-13-20260115/MD5SUMS	Thu Jan 15 22:32:23 2026
--- gcc-13-20260122/MD5SUMS	Thu Jan 22 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260115.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-13-20260122.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! b5daaf604781b8f8bfe450095d1f6e50  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! ceefdd0ed3d0d74fa5fe8c86c71c0681  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 475,481 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 19fb8437aafe86558e4831e2d41ae37b  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 475,481 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 8f0d413fec59f4cb97783ab44006ed41  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 510,516 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 7461c6f74d5f0dde36ec6a213c4b039a  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 510,516 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! e2cac1f4c3bf6684abdbf4bffba28fdd  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** bbb86dc26326c9e21536b29093ef0ccd  gcc/co
*** 3253,3259 ****
  08b08b7d10f25136197b98ebe582137e  gcc/compare-elim.cc
  c29a5051809c4038f65af7557c1e9fcd  gcc/conditions.h
  d343cb4b75d4bf1ab6e7001d3ce082eb  gcc/config.build
! 641499d4e856c6f34bd062593ad33ad8  gcc/config.gcc
  0d31f9eb11863dd34b34981d3e4acb3f  gcc/config.host
  5ce7c19d80c83cb13de5fb0dfe3cbca1  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
--- 3253,3259 ----
  08b08b7d10f25136197b98ebe582137e  gcc/compare-elim.cc
  c29a5051809c4038f65af7557c1e9fcd  gcc/conditions.h
  d343cb4b75d4bf1ab6e7001d3ce082eb  gcc/config.build
! 9ce873f4539722bd7cba6114e172a9fe  gcc/config.gcc
  0d31f9eb11863dd34b34981d3e4acb3f  gcc/config.host
  5ce7c19d80c83cb13de5fb0dfe3cbca1  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
*************** e92e6092340e3f2f41fe23e91d749ca0  gcc/co
*** 3892,3898 ****
  362075d5c55c01a58a8688d152965d39  gcc/config/i386/haswell.md
  519fbd902e6476af80fccdd9c3ddf609  gcc/config/i386/host-cygwin.cc
  6e90fcf8b884d9635ab934026d3f144e  gcc/config/i386/host-i386-darwin.cc
! 43ba62e2c05246010d29bc459f648c78  gcc/config/i386/host-mingw32.cc
  c712f75327bcb8b5d026dfb3dea205df  gcc/config/i386/hresetintrin.h
  05b81cca7926b1d1ab6ed9ad1de53cf0  gcc/config/i386/i386-builtin-types.awk
  3d2082f02d6f85c1c7931b78a04b1f0e  gcc/config/i386/i386-builtin-types.def
--- 3892,3898 ----
  362075d5c55c01a58a8688d152965d39  gcc/config/i386/haswell.md
  519fbd902e6476af80fccdd9c3ddf609  gcc/config/i386/host-cygwin.cc
  6e90fcf8b884d9635ab934026d3f144e  gcc/config/i386/host-i386-darwin.cc
! 1123075e817d3b43f7b97c0cca2f0607  gcc/config/i386/host-mingw32.cc
  c712f75327bcb8b5d026dfb3dea205df  gcc/config/i386/hresetintrin.h
  05b81cca7926b1d1ab6ed9ad1de53cf0  gcc/config/i386/i386-builtin-types.awk
  3d2082f02d6f85c1c7931b78a04b1f0e  gcc/config/i386/i386-builtin-types.def
*************** fdb910a61276129e6981a007c1cd94f6  gcc/lo
*** 6120,6126 ****
  770e42213cbcd993a445bee76524f8eb  gcc/lra-eliminations.cc
  7c8aeab71bcfacb356aecdcdb7762210  gcc/lra-int.h
  399337ad638584d9290158ea06d18de8  gcc/lra-lives.cc
! a8f3bbbd00b9de205b710a6cb7112517  gcc/lra-remat.cc
  f29a4612195d306e5b22fd456cfb2a91  gcc/lra-spills.cc
  292ab755fb0b9a22616cefeb10633fff  gcc/lra.cc
  e39f5642047f20c01157ff09360cf476  gcc/lra.h
--- 6120,6126 ----
  770e42213cbcd993a445bee76524f8eb  gcc/lra-eliminations.cc
  7c8aeab71bcfacb356aecdcdb7762210  gcc/lra-int.h
  399337ad638584d9290158ea06d18de8  gcc/lra-lives.cc
! 5a047d5b34101580c863ac3dc4532998  gcc/lra-remat.cc
  f29a4612195d306e5b22fd456cfb2a91  gcc/lra-spills.cc
  292ab755fb0b9a22616cefeb10633fff  gcc/lra.cc
  e39f5642047f20c01157ff09360cf476  gcc/lra.h
*************** b829ed0032c899e107be2db349c913f3  gcc/ta
*** 7637,7643 ****
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 82d8dfb8111da5214c07321214564d2b  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 7637,7643 ----
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 41971f0738631bca6642c651c968c893  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** d7bb5368ed41a3ee6fb312a80c99d313  gcc/te
*** 70307,70312 ****
--- 70307,70313 ----
  26d68c5cba57817989670af4634fe936  gcc/testsuite/gcc.target/i386/pr121208-2b.c
  d4ebe08b4cb963582547d8bb5712e712  gcc/testsuite/gcc.target/i386/pr121208-3a.c
  5064c3ab2b92e2f20dcd604d557d738c  gcc/testsuite/gcc.target/i386/pr121208-3b.c
+ dc0ac30205a49a37f80c833e996ed4d2  gcc/testsuite/gcc.target/i386/pr123121.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
diff -Nrcpad gcc-13-20260115/gcc/ChangeLog gcc-13-20260122/gcc/ChangeLog
*** gcc-13-20260115/gcc/ChangeLog	Thu Jan 15 22:32:06 2026
--- gcc-13-20260122/gcc/ChangeLog	Thu Jan 22 22:32:06 2026
***************
*** 1,3 ****
--- 1,25 ----
+ 2026-01-16  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	PR target/123460
+ 	* config.gcc: Accept hyphens in aarch64 --with-arch extensions.
+ 
+ 2026-01-16  LIU Hao  <lh_mouse@126.com>
+ 
+ 	Backported from master:
+ 	2025-05-06  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR pch/14940
+ 	* config/i386/host-mingw32.cc (mingw32_gt_pch_use_address):
+ 	Replace the loop that attempted to map the PCH only to its
+ 	original address with more adaptive operations
+ 
+ 2026-01-16  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/123121
+ 	* lra-remat.cc (bad_for_rematerialization_p): Consider div/mod ops.
+ 	(operand_to_remat): Exclude rematerialization of insns with
+ 	multiple sets.
+ 
  2026-01-06  Avinash Jayakar  <avinashd@linux.ibm.com>
  
  	PR tree-optimization/122126
diff -Nrcpad gcc-13-20260115/gcc/DATESTAMP gcc-13-20260122/gcc/DATESTAMP
*** gcc-13-20260115/gcc/DATESTAMP	Thu Jan 15 22:32:06 2026
--- gcc-13-20260122/gcc/DATESTAMP	Thu Jan 22 22:32:06 2026
***************
*** 1 ****
! 20260115
--- 1 ----
! 20260122
diff -Nrcpad gcc-13-20260115/gcc/config/i386/host-mingw32.cc gcc-13-20260122/gcc/config/i386/host-mingw32.cc
*** gcc-13-20260115/gcc/config/i386/host-mingw32.cc	Thu Jan 15 22:32:07 2026
--- gcc-13-20260122/gcc/config/i386/host-mingw32.cc	Thu Jan 22 22:32:07 2026
*************** mingw32_gt_pch_use_address (void *&addr,
*** 135,141 ****
       and earlier, backslashes are invalid in object name.  So, we need
       to check if we are on Windows2000 or higher.  */
    OSVERSIONINFO version_info;
-   int r;
  
    version_info.dwOSVersionInfoSize = sizeof (version_info);
  
--- 135,140 ----
*************** mingw32_gt_pch_use_address (void *&addr,
*** 169,193 ****
        return -1; 
      }
  
!   /* Retry five times, as here might occure a race with multiple gcc's
!      instances at same time.  */
!   for (r = 0; r < 5; r++)
!    {
!       mmap_addr = MapViewOfFileEx (mmap_handle, FILE_MAP_COPY, 0, offset,
! 				   size, addr);
!       if (mmap_addr == addr)
! 	break;
!       if (r != 4)
!         Sleep (500);
!    }
!       
!   if (mmap_addr != addr)
      {
!       w32_error (__FUNCTION__, __FILE__, __LINE__, "MapViewOfFileEx");
!       CloseHandle(mmap_handle);
!       return  -1;
      }
  
    return 1;
  }
  
--- 168,191 ----
        return -1; 
      }
  
!   /* Try mapping the file at `addr`.  */
!   mmap_addr = MapViewOfFileEx (mmap_handle, FILE_MAP_COPY, 0, offset,
! 			       size, addr);
!   if (mmap_addr == NULL)
      {
!       /* We could not map the file at its original address, so let the
! 	 system choose a different one. The PCH can be relocated later.  */
!       mmap_addr = MapViewOfFileEx (mmap_handle, FILE_MAP_COPY, 0, offset,
! 				   size, NULL);
!       if (mmap_addr == NULL)
! 	{
! 	  w32_error (__FUNCTION__, __FILE__, __LINE__, "MapViewOfFileEx");
! 	  CloseHandle(mmap_handle);
! 	  return  -1;
! 	}
      }
  
+   addr = mmap_addr;
    return 1;
  }
  
diff -Nrcpad gcc-13-20260115/gcc/config.gcc gcc-13-20260122/gcc/config.gcc
*** gcc-13-20260115/gcc/config.gcc	Thu Jan 15 22:32:07 2026
--- gcc-13-20260122/gcc/config.gcc	Thu Jan 22 22:32:07 2026
*************** case "${target}" in
*** 4179,4185 ****
  				  echo "Unknown extension used in --with-$which=$val" 1>&2
  				  exit 1
  				fi
! 				ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
  			  done
  
  			  true
--- 4179,4185 ----
  				  echo "Unknown extension used in --with-$which=$val" 1>&2
  				  exit 1
  				fi
! 				ext_val=`echo $ext_val | sed -e 's/[a-z0-9-]\+//'`
  			  done
  
  			  true
diff -Nrcpad gcc-13-20260115/gcc/lra-remat.cc gcc-13-20260122/gcc/lra-remat.cc
*** gcc-13-20260115/gcc/lra-remat.cc	Thu Jan 15 22:32:08 2026
--- gcc-13-20260122/gcc/lra-remat.cc	Thu Jan 22 22:32:08 2026
*************** typedef const struct cand *const_cand_t;
*** 81,88 ****
  
  /* Insn candidates for rematerialization.  The candidate insn should
     have the following properies:
!    o no any memory (as access to memory is non-profitable)
     o no INOUT regs (it means no non-paradoxical subreg of output reg)
     o one output spilled pseudo (or reload pseudo of a spilled pseudo)
     o all other pseudos are with assigned hard regs.  */
  struct cand
--- 81,90 ----
  
  /* Insn candidates for rematerialization.  The candidate insn should
     have the following properies:
!    o no any memory (as access to memory is non-profitable) or
!      div/mod operations (as they are usually more expensive than loads)
     o no INOUT regs (it means no non-paradoxical subreg of output reg)
+    o no multiple output pseudos
     o one output spilled pseudo (or reload pseudo of a spilled pseudo)
     o all other pseudos are with assigned hard regs.  */
  struct cand
*************** finish_cand_table (void)
*** 249,260 ****
  
  
  
! /* Return true if X contains memory or some UNSPEC.  We cannot just
!    check insn operands as memory or unspec might be not an operand
!    itself but contain an operand.  Insn with memory access is not
!    profitable for rematerialization.  Rematerialization of UNSPEC
!    might result in wrong code generation as the UNPEC effect is
!    unknown (e.g. generating a label).  */
  static bool
  bad_for_rematerialization_p (rtx x)
  {
--- 251,262 ----
  
  
  
! /* Return true if X contains memory, some UNSPEC, or expensive operations.  We
!    cannot just check insn operands as memory or unspec might be not an operand
!    itself but contain an operand.  Insns with memory access or expensive ones
!    are not profitable for rematerialization.  Rematerialization of UNSPEC might
!    result in wrong code generation as the UNPEC effect is unknown
!    (e.g. generating a label).  */
  static bool
  bad_for_rematerialization_p (rtx x)
  {
*************** bad_for_rematerialization_p (rtx x)
*** 262,268 ****
    const char *fmt;
    enum rtx_code code;
  
!   if (MEM_P (x) || GET_CODE (x) == UNSPEC || GET_CODE (x) == UNSPEC_VOLATILE)
      return true;
    code = GET_CODE (x);
    fmt = GET_RTX_FORMAT (code);
--- 264,274 ----
    const char *fmt;
    enum rtx_code code;
  
!   if (MEM_P (x) || GET_CODE (x) == UNSPEC || GET_CODE (x) == UNSPEC_VOLATILE
!       /* Usually the following operations are expensive and does not worth to
! 	 rematerialize: */
!       || GET_CODE(x) == DIV || GET_CODE(x) == UDIV
!       || GET_CODE(x) == MOD || GET_CODE(x) == UMOD)
      return true;
    code = GET_CODE (x);
    fmt = GET_RTX_FORMAT (code);
*************** operand_to_remat (rtx_insn *insn)
*** 308,315 ****
  	 cannot know sp offset at a rematerialization place.  */
        if (reg->regno == STACK_POINTER_REGNUM && frame_pointer_needed)
  	return -1;
!       else if (reg->type == OP_OUT && ! reg->subreg_p
! 	       && find_regno_note (insn, REG_UNUSED, reg->regno) == NULL)
  	{
  	  /* We permits only one spilled reg.  */
  	  if (found_reg != NULL)
--- 314,320 ----
  	 cannot know sp offset at a rematerialization place.  */
        if (reg->regno == STACK_POINTER_REGNUM && frame_pointer_needed)
  	return -1;
!       else if (reg->type == OP_OUT)
  	{
  	  /* We permits only one spilled reg.  */
  	  if (found_reg != NULL)
diff -Nrcpad gcc-13-20260115/gcc/testsuite/ChangeLog gcc-13-20260122/gcc/testsuite/ChangeLog
*** gcc-13-20260115/gcc/testsuite/ChangeLog	Thu Jan 15 22:32:08 2026
--- gcc-13-20260122/gcc/testsuite/ChangeLog	Thu Jan 22 22:32:09 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-01-16  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/123121
+ 	* gcc.target/i386/pr123121.c: New.
+ 
  2026-01-06  Avinash Jayakar  <avinashd@linux.ibm.com>
  
  	PR tree-optimization/122126
diff -Nrcpad gcc-13-20260115/gcc/testsuite/gcc.target/i386/pr123121.c gcc-13-20260122/gcc/testsuite/gcc.target/i386/pr123121.c
*** gcc-13-20260115/gcc/testsuite/gcc.target/i386/pr123121.c	Thu Jan  1 00:00:00 1970
--- gcc-13-20260122/gcc/testsuite/gcc.target/i386/pr123121.c	Thu Jan 22 22:32:12 2026
***************
*** 0 ****
--- 1,57 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O3 -fno-ipa-cp -fschedule-insns" } */
+ 
+ int a[256], d, e, f, g, h, j, v[] = {0, -6, 0};;
+ unsigned c;
+ unsigned k(int l, unsigned m) { return (l & 6777215) ^ a[(l ^ m) & 55]; }
+ int n(int l, int m[]) {
+   int i = 0;
+   for (; i < l; ++i) {
+     e = c >> 8 ^ a[m[i] & 255];
+     d = e;
+     d = k(d, m[i] >> 8 & 255);
+     d = k(d, m[i] >> 6);
+     f = (d & 6777215) ^ a[d & 5];
+     c = f;
+   }
+   return f;
+ }
+ int o() {
+   n(8, (int[]){g});
+   return n(6, (int[]){h});
+ }
+ int p(int l, int m[], int q, int r) {
+   int s = r = j + 1;
+   s = -(4 % q - 1);
+   if (r)
+     goto t;
+  ad:
+   l = 6 - l;
+   if (l)
+     goto ae;
+  t:
+   m[0] = s;
+   j = r;
+   goto af;
+  ae:
+   if (o())
+     goto ad;
+  af:
+   r = -s - m[1] - 8;
+   s = 1 % m[0] - s;
+   m[1] = 1 / r;
+   int a[] = {l, m[0], m[1], m[2], q, r, r, s};
+   return n(8, a);
+ }
+ int main() {
+   for (int i = 0; i < 256; i++) {
+     unsigned b = i;
+     if (i & 1)
+       b = b >> 1 ^ 3988292384;
+     a[i] = b;
+   }
+   if (p(1, v, 5, 0) / 100000)
+     p(1, 0, 5, 0);
+   return 0;
+ }
