diff -Nrcpad gcc-12-20250521/LAST_UPDATED gcc-12-20250528/LAST_UPDATED
*** gcc-12-20250521/LAST_UPDATED	Wed May 21 22:32:26 2025
--- gcc-12-20250528/LAST_UPDATED	Wed May 28 22:33:48 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-12 revision 6ea460af8fbd0f6adeff54673688460e81711a57
--- 1 ----
! Obtained from git: releases/gcc-12 revision 9cd936038de231b5541ae150ef2d815fec28015a
diff -Nrcpad gcc-12-20250521/MD5SUMS gcc-12-20250528/MD5SUMS
*** gcc-12-20250521/MD5SUMS	Wed May 21 22:32:30 2025
--- gcc-12-20250528/MD5SUMS	Wed May 28 22:33:52 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-12-20250521.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-12-20250528.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
! b09e0bef4febd31a4c178a72f6a2f424  LAST_UPDATED
  e854cb1e639422e089031eba0c689e15  MAINTAINERS
  5b26d0dff99e7a528342ab4d77a284df  Makefile.def
  e2f1751d40a9663c173f048c1179539e  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! b1b382ddd7b71ef0e59a8a70af99eefe  LAST_UPDATED
  e854cb1e639422e089031eba0c689e15  MAINTAINERS
  5b26d0dff99e7a528342ab4d77a284df  Makefile.def
  e2f1751d40a9663c173f048c1179539e  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 471,477 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 7931acd381da38eaa6a273508813d349  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 471,477 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! b87c1146a417d0263485eb6efce4338f  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 505,511 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! be0a56bc3bdb6d0d6cd1a63608801f65  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 505,511 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! aafbdd4019c4c7d1c6217673b49744b5  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** b68ec35ec95b05aa6b0e84d90013d13b  gcc/co
*** 4775,4781 ****
  594de881b84d2f9fdf9eee00d90b8f2c  gcc/config/s390/s390-builtin-types.def
  03a2ec9d36d2a73872bd80f3f7148d44  gcc/config/s390/s390-builtins.def
  22357511e88799e5bfc88e5b20872bf3  gcc/config/s390/s390-builtins.h
! 516c46c6b49109c567bf1ebcf7ebce07  gcc/config/s390/s390-c.cc
  7650415e0f99d3f7df3c3b305ed32ae7  gcc/config/s390/s390-d.cc
  265d0f4c363ddd1d2980b9147c70ffe1  gcc/config/s390/s390-d.h
  8b80a6657af26d782f169c111c636dad  gcc/config/s390/s390-modes.def
--- 4775,4781 ----
  594de881b84d2f9fdf9eee00d90b8f2c  gcc/config/s390/s390-builtin-types.def
  03a2ec9d36d2a73872bd80f3f7148d44  gcc/config/s390/s390-builtins.def
  22357511e88799e5bfc88e5b20872bf3  gcc/config/s390/s390-builtins.h
! 913e1dee9c8e7735abf1abc649049659  gcc/config/s390/s390-c.cc
  7650415e0f99d3f7df3c3b305ed32ae7  gcc/config/s390/s390-d.cc
  265d0f4c363ddd1d2980b9147c70ffe1  gcc/config/s390/s390-d.h
  8b80a6657af26d782f169c111c636dad  gcc/config/s390/s390-modes.def
*************** dea694db96376a2d9908b267a5040c17  gcc/co
*** 4795,4801 ****
  47d557aa9caaa18246e98d2d9eddef04  gcc/config/s390/tpf.md
  18d4c6e4b3a1b1818fa4f2cd9ecc6f05  gcc/config/s390/tpf.opt
  c7b92ccab9bff5c85e9152a5010610f4  gcc/config/s390/vecintrin.h
! dbac627423d783e62b36c3eb8c7383d5  gcc/config/s390/vector.md
  1df8979d57854e3bcc36569a0839ba3e  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
  1f3d467f5460c18c2b65887f6efc41ef  gcc/config/sh/constraints.md
--- 4795,4801 ----
  47d557aa9caaa18246e98d2d9eddef04  gcc/config/s390/tpf.md
  18d4c6e4b3a1b1818fa4f2cd9ecc6f05  gcc/config/s390/tpf.opt
  c7b92ccab9bff5c85e9152a5010610f4  gcc/config/s390/vecintrin.h
! 387be75d967e94176cc05251c28fd6c8  gcc/config/s390/vector.md
  1df8979d57854e3bcc36569a0839ba3e  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
  1f3d467f5460c18c2b65887f6efc41ef  gcc/config/sh/constraints.md
*************** c388e8e709c00e2cb14b83a7bcb1db96  gcc/te
*** 73669,73674 ****
--- 73669,73675 ----
  35e87e60957f9b00691107426abfa992  gcc/testsuite/gcc.target/s390/zvector/get-element-bswap-3.c
  4abdf0afcb959d37baa8b81d5308c265  gcc/testsuite/gcc.target/s390/zvector/get-element-bswap-4.c
  13199189797f1cfdb8952aba604e6159  gcc/testsuite/gcc.target/s390/zvector/imm-range-error-1.c
+ d1469ef79e7de046a5a0d7120bc3edf4  gcc/testsuite/gcc.target/s390/zvector/pr114676.c
  7d0eb00954092ab19d710323c872dd2a  gcc/testsuite/gcc.target/s390/zvector/pr79893.c
  8bc7e55288af53eddbd5437d08f5f9a1  gcc/testsuite/gcc.target/s390/zvector/pr82317.c
  c5f2f4df3f7c11977663ad182d69c2a7  gcc/testsuite/gcc.target/s390/zvector/pr82322.c
*************** f7d079de49740a9b78907a3d673d7233  libgcc
*** 93406,93412 ****
  2e213af1dd13f68b1515d6340fcb540b  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  8d7abef73a8c40e4840ea410d4b4ac9b  libgcc/config/avr/lib2funcs.c
! 2a73ae67f5c7021af1aa6e8f63375628  libgcc/config/avr/libf7/ChangeLog
  a2d046f165da6bb14e927d322fc2d5f4  libgcc/config/avr/libf7/asm-defs.h
  0b54a2cbfebb93a4e1bddfa3600d6f0b  libgcc/config/avr/libf7/f7-renames.h
  2effcc1c274d5f459695fb6d7d330053  libgcc/config/avr/libf7/f7-wraps.h
--- 93407,93413 ----
  2e213af1dd13f68b1515d6340fcb540b  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  8d7abef73a8c40e4840ea410d4b4ac9b  libgcc/config/avr/lib2funcs.c
! e0756655f06cc1d52fe4c70a8c555fe6  libgcc/config/avr/libf7/ChangeLog
  a2d046f165da6bb14e927d322fc2d5f4  libgcc/config/avr/libf7/asm-defs.h
  0b54a2cbfebb93a4e1bddfa3600d6f0b  libgcc/config/avr/libf7/f7-renames.h
  2effcc1c274d5f459695fb6d7d330053  libgcc/config/avr/libf7/f7-wraps.h
*************** a4fb890339e45be0d3595d7e27665a67  libgcc
*** 93419,93425 ****
  9e2660f882f79c124c85b8732a55464e  libgcc/config/avr/libf7/libf7-common.mk
  89bdf85b85b7719b781bd239bbf53606  libgcc/config/avr/libf7/libf7-const.def
  3cc1eb81c98c5373281b90186181f4f3  libgcc/config/avr/libf7/libf7-constdef.h
! 984130f6f824dc1ad11221397250acf9  libgcc/config/avr/libf7/libf7.c
  d08db7b445998cee32eb93b1f367c543  libgcc/config/avr/libf7/libf7.h
  d8d51231243f1139dbb6a828e2340c67  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
--- 93420,93426 ----
  9e2660f882f79c124c85b8732a55464e  libgcc/config/avr/libf7/libf7-common.mk
  89bdf85b85b7719b781bd239bbf53606  libgcc/config/avr/libf7/libf7-const.def
  3cc1eb81c98c5373281b90186181f4f3  libgcc/config/avr/libf7/libf7-constdef.h
! 402d2b459f18c33b71f8d883e14ba6e9  libgcc/config/avr/libf7/libf7.c
  d08db7b445998cee32eb93b1f367c543  libgcc/config/avr/libf7/libf7.h
  d8d51231243f1139dbb6a828e2340c67  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
diff -Nrcpad gcc-12-20250521/gcc/ChangeLog gcc-12-20250528/gcc/ChangeLog
*** gcc-12-20250521/gcc/ChangeLog	Wed May 21 22:32:11 2025
--- gcc-12-20250528/gcc/ChangeLog	Wed May 28 22:32:12 2025
***************
*** 1,3 ****
--- 1,11 ----
+ 2025-05-27  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-05-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md: Fix tf_to_fprx2 by using vlr instead of
+ 	ldr.
+ 
  2025-05-12  Andrew Pinski  <quic_apinski@quicinc.com>
  
  	Backported from master:
diff -Nrcpad gcc-12-20250521/gcc/DATESTAMP gcc-12-20250528/gcc/DATESTAMP
*** gcc-12-20250521/gcc/DATESTAMP	Wed May 21 22:32:11 2025
--- gcc-12-20250528/gcc/DATESTAMP	Wed May 28 22:32:12 2025
***************
*** 1 ****
! 20250521
--- 1 ----
! 20250528
diff -Nrcpad gcc-12-20250521/gcc/config/s390/s390-c.cc gcc-12-20250528/gcc/config/s390/s390-c.cc
*** gcc-12-20250521/gcc/config/s390/s390-c.cc	Wed May 21 22:32:12 2025
--- gcc-12-20250528/gcc/config/s390/s390-c.cc	Wed May 28 22:32:14 2025
*************** s390_expand_overloaded_builtin (location
*** 497,507 ****
  	/* Build a vector type with the alignment of the source
  	   location in order to enable correct alignment hints to be
  	   generated for vl.  */
! 	tree mem_type = build_aligned_type (return_type,
! 					    TYPE_ALIGN (TREE_TYPE (TREE_TYPE ((*arglist)[1]))));
  	return build2 (MEM_REF, mem_type,
  		       fold_build_pointer_plus ((*arglist)[1], (*arglist)[0]),
! 		       build_int_cst (TREE_TYPE ((*arglist)[1]), 0));
        }
      case S390_OVERLOADED_BUILTIN_s390_vec_xst:
      case S390_OVERLOADED_BUILTIN_s390_vec_xstd2:
--- 497,507 ----
  	/* Build a vector type with the alignment of the source
  	   location in order to enable correct alignment hints to be
  	   generated for vl.  */
! 	unsigned align = TYPE_ALIGN (TREE_TYPE (TREE_TYPE ((*arglist)[1])));
! 	tree mem_type = build_aligned_type (return_type, align);
  	return build2 (MEM_REF, mem_type,
  		       fold_build_pointer_plus ((*arglist)[1], (*arglist)[0]),
! 		       build_int_cst (ptr_type_node, 0));
        }
      case S390_OVERLOADED_BUILTIN_s390_vec_xst:
      case S390_OVERLOADED_BUILTIN_s390_vec_xstd2:
*************** s390_expand_overloaded_builtin (location
*** 510,520 ****
  	/* Build a vector type with the alignment of the target
  	   location in order to enable correct alignment hints to be
  	   generated for vst.  */
! 	tree mem_type = build_aligned_type (TREE_TYPE((*arglist)[0]),
! 					    TYPE_ALIGN (TREE_TYPE (TREE_TYPE ((*arglist)[2]))));
  	return build2 (MODIFY_EXPR, mem_type,
! 		       build1 (INDIRECT_REF, mem_type,
! 			       fold_build_pointer_plus ((*arglist)[2], (*arglist)[1])),
  		       (*arglist)[0]);
        }
      case S390_OVERLOADED_BUILTIN_s390_vec_load_pair:
--- 510,522 ----
  	/* Build a vector type with the alignment of the target
  	   location in order to enable correct alignment hints to be
  	   generated for vst.  */
! 	unsigned align = TYPE_ALIGN (TREE_TYPE (TREE_TYPE ((*arglist)[2])));
! 	tree mem_type = build_aligned_type (TREE_TYPE ((*arglist)[0]), align);
  	return build2 (MODIFY_EXPR, mem_type,
! 		       build2 (MEM_REF, mem_type,
! 			       fold_build_pointer_plus ((*arglist)[2],
! 							(*arglist)[1]),
! 			       build_int_cst (ptr_type_node, 0)),
  		       (*arglist)[0]);
        }
      case S390_OVERLOADED_BUILTIN_s390_vec_load_pair:
diff -Nrcpad gcc-12-20250521/gcc/config/s390/vector.md gcc-12-20250528/gcc/config/s390/vector.md
*** gcc-12-20250521/gcc/config/s390/vector.md	Wed May 21 22:32:12 2025
--- gcc-12-20250528/gcc/config/s390/vector.md	Wed May 28 22:32:14 2025
***************
*** 921,927 ****
        else
  	{
  	  reg_pair += 2;  // get rid of prefix %f
! 	  snprintf (buf, sizeof (buf), "ldr\t%%f0,%%f1;vpdi\t%%%%v%s,%%v1,%%%%v%s,5", reg_pair, reg_pair);
  	  output_asm_insn (buf, operands);
  	  return "";
  	}
--- 921,927 ----
        else
  	{
  	  reg_pair += 2;  // get rid of prefix %f
! 	  snprintf (buf, sizeof (buf), "vlr\t%%v0,%%v1;vpdi\t%%%%v%s,%%v1,%%%%v%s,5", reg_pair, reg_pair);
  	  output_asm_insn (buf, operands);
  	  return "";
  	}
diff -Nrcpad gcc-12-20250521/gcc/testsuite/gcc.target/s390/zvector/pr114676.c gcc-12-20250528/gcc/testsuite/gcc.target/s390/zvector/pr114676.c
*** gcc-12-20250521/gcc/testsuite/gcc.target/s390/zvector/pr114676.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250528/gcc/testsuite/gcc.target/s390/zvector/pr114676.c	Wed May 28 22:33:21 2025
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do run { target { s390*-*-* } } } */
+ /* { dg-options "-O3 -mzarch -march=z14 -mzvector" } */
+ 
+ #include <vecintrin.h>
+ 
+ void __attribute__((noinline)) foo (int *mem)
+ {
+   vec_xst ((vector float){ 1.0f, 2.0f, 3.0f, 4.0f }, 0, (float*)mem);
+ }
+ 
+ int
+ main ()
+ {
+   int m[4] = { 0 };
+   foo (m);
+   if (m[3] == 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-12-20250521/libgcc/config/avr/libf7/ChangeLog gcc-12-20250528/libgcc/config/avr/libf7/ChangeLog
*** gcc-12-20250521/libgcc/config/avr/libf7/ChangeLog	Wed May 21 22:32:20 2025
--- gcc-12-20250528/libgcc/config/avr/libf7/ChangeLog	Wed May 28 22:33:29 2025
***************
*** 1,3 ****
--- 1,11 ----
+ 2025-05-27  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2025-05-27  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/120441
+ 	* libf7.c (f7_exp): Limit aa->expo to 10 (not to 9).
+ 
  2024-06-20  Release Manager
  
  	* GCC 12.4.0 released.
diff -Nrcpad gcc-12-20250521/libgcc/config/avr/libf7/libf7.c gcc-12-20250528/libgcc/config/avr/libf7/libf7.c
*** gcc-12-20250521/libgcc/config/avr/libf7/libf7.c	Wed May 21 22:32:20 2025
--- gcc-12-20250528/libgcc/config/avr/libf7/libf7.c	Wed May 28 22:33:29 2025
*************** void f7_exp (f7_t *cc, const f7_t *aa)
*** 1670,1679 ****
      return f7_set_nan (cc);
  
    /* The maximal exponent of 2 for a double is 1023, hence we may limit
!      to  |A| < 1023 * ln2 ~ 709.  We limit to  1024 ~ 1.99 * 2^9  */
  
    if (f7_class_inf (a_class)
!       || (f7_class_nonzero (a_class) && aa->expo >= 9))
      {
        if (f7_class_sign (a_class))
  	return f7_clr (cc);
--- 1670,1679 ----
      return f7_set_nan (cc);
  
    /* The maximal exponent of 2 for a double is 1023, hence we may limit
!      to  |A| < 1023 * ln2 ~ 709.  We limit to  1024 = 2^10  */
  
    if (f7_class_inf (a_class)
!       || (f7_class_nonzero (a_class) && aa->expo >= 10))
      {
        if (f7_class_sign (a_class))
  	return f7_clr (cc);
