[gcc r14-9362] rs6000: Don't ICE when compiling the __builtin_vsx_splat_2di [PR113950]

2024-03-07 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:fa0468877869f52b05742de6deef582e4dd296fc

commit r14-9362-gfa0468877869f52b05742de6deef582e4dd296fc
Author: Jeevitha 
Date:   Thu Mar 7 07:41:38 2024 -0600

rs6000: Don't ICE when compiling the __builtin_vsx_splat_2di [PR113950]

When we expand the __builtin_vsx_splat_2di built-in, we were allowing 
immediate
value for second operand which causes an unrecognizable insn ICE. Even 
though
the immediate value was forced into a register, it wasn't correctly assigned
to the second operand. So corrected the assignment of op1 to operands[1].

2024-03-07  Jeevitha Palanisamy  

gcc/
PR target/113950
* config/rs6000/vsx.md (vsx_splat_): Correct assignment to 
operand1
and simplify else if with else.

gcc/testsuite/
PR target/113950
* gcc.target/powerpc/pr113950.c: New testcase.

Diff:
---
 gcc/config/rs6000/vsx.md|  4 ++--
 gcc/testsuite/gcc.target/powerpc/pr113950.c | 24 
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 6111cc90eb7..f135fa079bd 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -4666,8 +4666,8 @@
   rtx op1 = operands[1];
   if (MEM_P (op1))
 operands[1] = rs6000_force_indexed_or_indirect_mem (op1);
-  else if (!REG_P (op1))
-op1 = force_reg (mode, op1);
+  else
+operands[1] = force_reg (mode, op1);
 })
 
 (define_insn "vsx_splat__reg"
diff --git a/gcc/testsuite/gcc.target/powerpc/pr113950.c 
b/gcc/testsuite/gcc.target/powerpc/pr113950.c
new file mode 100644
index 000..359963d1041
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr113950.c
@@ -0,0 +1,24 @@
+/* PR target/113950 */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-O2 -mvsx" } */
+
+/* Verify we do not ICE on the following.  */
+
+void abort (void);
+
+int main ()
+{
+  int i;
+  vector signed long long vsll_result, vsll_expected_result;
+  signed long long sll_arg1;
+
+  sll_arg1 = 300;
+  vsll_expected_result = (vector signed long long) {300, 300};
+  vsll_result = __builtin_vsx_splat_2di (sll_arg1);  
+
+  for (i = 0; i < 2; i++)
+if (vsll_result[i] != vsll_expected_result[i])
+  abort();
+
+  return 0;
+}


[gcc r15-1895] rs6000: load high and low part of 128bit vector independently [PR110040]

2024-07-08 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:5be97039aa6c27fdf5d5bd43ef393b307c5ecedd

commit r15-1895-g5be97039aa6c27fdf5d5bd43ef393b307c5ecedd
Author: Jeevitha 
Date:   Mon Jul 8 06:09:49 2024 -0500

rs6000: load high and low part of 128bit vector independently [PR110040]

PR110040 exposes an issue concerning moves from vector registers to GPRs.
There are two moves, one for upper 64 bits and the other for the lower
64 bits.  In the problematic test case, we are only interested in storing
the lower 64 bits.  However, the instruction for copying the upper 64 bits
is still emitted and is dead code.  This patch adds a splitter that splits
apart the two move instructions so that DCE can remove the dead code after
splitting.

2024-07-08  Jeevitha Palanisamy  

gcc/
PR target/110040
* config/rs6000/vsx.md (split pattern for V1TI to DI move): New 
define.

gcc/testsuite/
PR target/110040
* gcc.target/powerpc/pr110040-1.c: New testcase.
* gcc.target/powerpc/pr110040-2.c: New testcase.

Diff:
---
 gcc/config/rs6000/vsx.md  | 17 +
 gcc/testsuite/gcc.target/powerpc/pr110040-1.c | 15 +++
 gcc/testsuite/gcc.target/powerpc/pr110040-2.c | 16 
 3 files changed, 48 insertions(+)

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 48ba262f7e48..23ce5c740510 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -6735,3 +6735,20 @@
   "vmsumcud %0,%1,%2,%3"
   [(set_attr "type" "veccomplex")]
 )
+
+(define_split
+  [(set (match_operand:V1TI 0 "gpc_reg_operand")
+   (match_operand:V1TI 1 "vsx_register_operand"))]
+  "reload_completed
+   && TARGET_DIRECT_MOVE_64BIT
+   && int_reg_operand (operands[0], V1TImode)
+   && vsx_register_operand (operands[1], V1TImode)"
+   [(pc)]
+{
+  rtx src_op = gen_rtx_REG (V2DImode, REGNO (operands[1]));
+  rtx dest_op0 = gen_rtx_REG (DImode, REGNO (operands[0]));
+  rtx dest_op1 = gen_rtx_REG (DImode, REGNO (operands[0]) + 1);
+  emit_insn (gen_vsx_extract_v2di (dest_op0, src_op, const0_rtx));
+  emit_insn (gen_vsx_extract_v2di (dest_op1, src_op, const1_rtx));
+  DONE;
+})
diff --git a/gcc/testsuite/gcc.target/powerpc/pr110040-1.c 
b/gcc/testsuite/gcc.target/powerpc/pr110040-1.c
new file mode 100644
index ..0a521e9e51d2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr110040-1.c
@@ -0,0 +1,15 @@
+/* PR target/110040 */
+/* { dg-do compile } */
+/* { dg-require-effective-target int128 } */
+/* { dg-require-effective-target powerpc_vsx } */
+/* { dg-options "-O2 -mdejagnu-cpu=power9" } */
+/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */
+
+#include 
+
+void
+foo (signed long *dst, vector signed __int128 src)
+{
+  *dst = (signed long) src[0];
+}
+
diff --git a/gcc/testsuite/gcc.target/powerpc/pr110040-2.c 
b/gcc/testsuite/gcc.target/powerpc/pr110040-2.c
new file mode 100644
index ..8236f3cbe223
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr110040-2.c
@@ -0,0 +1,16 @@
+/* PR target/110040 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mdejagnu-cpu=power10" } */
+/* { dg-require-effective-target int128 } */
+/* { dg-require-effective-target powerpc_vsx } */
+/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */
+
+/* builtin vec_xst_trunc requires power10.  */
+
+#include 
+
+void
+foo (signed int *dst, vector signed __int128 src)
+{
+  __builtin_vec_xst_trunc (src, 0, dst);
+}


[gcc r13-8474] rs6000: Don't ICE when compiling the __builtin_vsx_splat_2di [PR113950]

2024-03-21 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:27eb6e81e6e578da9f9947d3f96c0fa58971fe7f

commit r13-8474-g27eb6e81e6e578da9f9947d3f96c0fa58971fe7f
Author: Jeevitha 
Date:   Wed Mar 20 23:34:46 2024 -0500

rs6000: Don't ICE when compiling the __builtin_vsx_splat_2di [PR113950]

When we expand the __builtin_vsx_splat_2di built-in, we were allowing 
immediate
value for second operand which causes an unrecognizable insn ICE. Even 
though
the immediate value was forced into a register, it wasn't correctly assigned
to the second operand. So corrected the assignment of op1 to operands[1].

2024-03-07  Jeevitha Palanisamy  

gcc/
PR target/113950
* config/rs6000/vsx.md (vsx_splat_): Correct assignment to 
operand1
and simplify else if with else.

gcc/testsuite/
PR target/113950
* gcc.target/powerpc/pr113950.c: New testcase.

(cherry picked from commit fa0468877869f52b05742de6deef582e4dd296fc)

Diff:
---
 gcc/config/rs6000/vsx.md|  4 ++--
 gcc/testsuite/gcc.target/powerpc/pr113950.c | 24 
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 3506913bd02..f70d69ee4b9 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -4551,8 +4551,8 @@
   rtx op1 = operands[1];
   if (MEM_P (op1))
 operands[1] = rs6000_force_indexed_or_indirect_mem (op1);
-  else if (!REG_P (op1))
-op1 = force_reg (mode, op1);
+  else
+operands[1] = force_reg (mode, op1);
 })
 
 (define_insn "vsx_splat__reg"
diff --git a/gcc/testsuite/gcc.target/powerpc/pr113950.c 
b/gcc/testsuite/gcc.target/powerpc/pr113950.c
new file mode 100644
index 000..359963d1041
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr113950.c
@@ -0,0 +1,24 @@
+/* PR target/113950 */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-O2 -mvsx" } */
+
+/* Verify we do not ICE on the following.  */
+
+void abort (void);
+
+int main ()
+{
+  int i;
+  vector signed long long vsll_result, vsll_expected_result;
+  signed long long sll_arg1;
+
+  sll_arg1 = 300;
+  vsll_expected_result = (vector signed long long) {300, 300};
+  vsll_result = __builtin_vsx_splat_2di (sll_arg1);  
+
+  for (i = 0; i < 2; i++)
+if (vsll_result[i] != vsll_expected_result[i])
+  abort();
+
+  return 0;
+}


[gcc r12-10406] rs6000: Don't ICE when compiling the __builtin_vsx_splat_2di [PR113950]

2024-04-30 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:1b91818e47119863f827b19ae4c6c91af3962cd6

commit r12-10406-g1b91818e47119863f827b19ae4c6c91af3962cd6
Author: Jeevitha 
Date:   Sun Apr 28 23:38:41 2024 -0500

rs6000: Don't ICE when compiling the __builtin_vsx_splat_2di [PR113950]

When we expand the __builtin_vsx_splat_2di built-in, we were allowing 
immediate
value for second operand which causes an unrecognizable insn ICE. Even 
though
the immediate value was forced into a register, it wasn't correctly assigned
to the second operand. So corrected the assignment of op1 to operands[1].

2024-03-07  Jeevitha Palanisamy  

gcc/
PR target/113950
* config/rs6000/vsx.md (vsx_splat_): Correct assignment to 
operand1
and simplify else if with else.

gcc/testsuite/
PR target/113950
* gcc.target/powerpc/pr113950.c: New testcase.

(cherry picked from commit fa0468877869f52b05742de6deef582e4dd296fc)

Diff:
---
 gcc/config/rs6000/vsx.md|  4 ++--
 gcc/testsuite/gcc.target/powerpc/pr113950.c | 24 
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index c45794fb9ed..e16f893c073 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -4562,8 +4562,8 @@
   rtx op1 = operands[1];
   if (MEM_P (op1))
 operands[1] = rs6000_force_indexed_or_indirect_mem (op1);
-  else if (!REG_P (op1))
-op1 = force_reg (mode, op1);
+  else
+operands[1] = force_reg (mode, op1);
 })
 
 (define_insn "vsx_splat__reg"
diff --git a/gcc/testsuite/gcc.target/powerpc/pr113950.c 
b/gcc/testsuite/gcc.target/powerpc/pr113950.c
new file mode 100644
index 000..359963d1041
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr113950.c
@@ -0,0 +1,24 @@
+/* PR target/113950 */
+/* { dg-require-effective-target powerpc_vsx_ok } */
+/* { dg-options "-O2 -mvsx" } */
+
+/* Verify we do not ICE on the following.  */
+
+void abort (void);
+
+int main ()
+{
+  int i;
+  vector signed long long vsll_result, vsll_expected_result;
+  signed long long sll_arg1;
+
+  sll_arg1 = 300;
+  vsll_expected_result = (vector signed long long) {300, 300};
+  vsll_result = __builtin_vsx_splat_2di (sll_arg1);  
+
+  for (i = 0; i < 2; i++)
+if (vsll_result[i] != vsll_expected_result[i])
+  abort();
+
+  return 0;
+}


[gcc r15-4514] rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

2024-10-21 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:1a4c5643a5911d130dfab9a064222baeeb7f9be7

commit r15-4514-g1a4c5643a5911d130dfab9a064222baeeb7f9be7
Author: Jeevitha 
Date:   Thu Oct 10 14:42:45 2024 -0500

rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

Corrected the function code for the Atomic Memory Operation "Fetch and 
Decrement
Bounded", changing it from 0x1A to 0x1C.

2024-10-11 Jeevitha Palanisamy 

gcc/

* config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
_AMO_LD_DEC_BOUNDED.

Diff:
---
 gcc/config/rs6000/amo.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/amo.h b/gcc/config/rs6000/amo.h
index 6b9e4e088b97..1303c9d9dab2 100644
--- a/gcc/config/rs6000/amo.h
+++ b/gcc/config/rs6000/amo.h
@@ -46,7 +46,7 @@ enum _AMO_LD {
   _AMO_LD_CS_NE= 0x10, /* Compare and Swap Not Equal.  
*/
   _AMO_LD_INC_BOUNDED  = 0x18, /* Fetch and Increment Bounded.  */
   _AMO_LD_INC_EQUAL= 0x19, /* Fetch and Increment Equal.  */
-  _AMO_LD_DEC_BOUNDED  = 0x1A  /* Fetch and Decrement Bounded.  */
+  _AMO_LD_DEC_BOUNDED  = 0x1C  /* Fetch and Decrement Bounded.  */
 };
 
 /* Implementation of the simple LWAT/LDAT operations that take one register and


[gcc r12-10779] rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

2024-10-21 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:41377d0f4e791bcdd848e11eac172b8e81ecb6ec

commit r12-10779-g41377d0f4e791bcdd848e11eac172b8e81ecb6ec
Author: Jeevitha 
Date:   Mon Oct 21 04:01:46 2024 -0500

rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

Corrected the function code for the Atomic Memory Operation "Fetch and 
Decrement
Bounded", changing it from 0x1A to 0x1C.

2024-10-11 Jeevitha Palanisamy 

gcc/

* config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
_AMO_LD_DEC_BOUNDED.

(cherry picked from commit 1a4c5643a5911d130dfab9a064222baeeb7f9be7)

Diff:
---
 gcc/config/rs6000/amo.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/amo.h b/gcc/config/rs6000/amo.h
index ea4668e0547f..47d19ee181c2 100644
--- a/gcc/config/rs6000/amo.h
+++ b/gcc/config/rs6000/amo.h
@@ -46,7 +46,7 @@ enum _AMO_LD {
   _AMO_LD_CS_NE= 0x10, /* Compare and Swap Not Equal.  
*/
   _AMO_LD_INC_BOUNDED  = 0x18, /* Fetch and Increment Bounded.  */
   _AMO_LD_INC_EQUAL= 0x19, /* Fetch and Increment Equal.  */
-  _AMO_LD_DEC_BOUNDED  = 0x1A  /* Fetch and Decrement Bounded.  */
+  _AMO_LD_DEC_BOUNDED  = 0x1C  /* Fetch and Decrement Bounded.  */
 };
 
 /* Implementation of the simple LWAT/LDAT operations that take one register and


[gcc r13-9140] rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

2024-10-21 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:5be7a44c7a7f86dc2fe82dafcb76603a718dedbc

commit r13-9140-g5be7a44c7a7f86dc2fe82dafcb76603a718dedbc
Author: Jeevitha 
Date:   Mon Oct 21 03:58:28 2024 -0500

rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

Corrected the function code for the Atomic Memory Operation "Fetch and 
Decrement
Bounded", changing it from 0x1A to 0x1C.

2024-10-11 Jeevitha Palanisamy 

gcc/

* config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
_AMO_LD_DEC_BOUNDED.

(cherry picked from commit 1a4c5643a5911d130dfab9a064222baeeb7f9be7)

Diff:
---
 gcc/config/rs6000/amo.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/amo.h b/gcc/config/rs6000/amo.h
index fa31bef9e935..e03fd7c71bb8 100644
--- a/gcc/config/rs6000/amo.h
+++ b/gcc/config/rs6000/amo.h
@@ -46,7 +46,7 @@ enum _AMO_LD {
   _AMO_LD_CS_NE= 0x10, /* Compare and Swap Not Equal.  
*/
   _AMO_LD_INC_BOUNDED  = 0x18, /* Fetch and Increment Bounded.  */
   _AMO_LD_INC_EQUAL= 0x19, /* Fetch and Increment Equal.  */
-  _AMO_LD_DEC_BOUNDED  = 0x1A  /* Fetch and Decrement Bounded.  */
+  _AMO_LD_DEC_BOUNDED  = 0x1C  /* Fetch and Decrement Bounded.  */
 };
 
 /* Implementation of the simple LWAT/LDAT operations that take one register and


[gcc r14-10808] rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

2024-10-21 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:17f1277d78c51d64a222ade218796837f9153f42

commit r14-10808-g17f1277d78c51d64a222ade218796837f9153f42
Author: Jeevitha 
Date:   Mon Oct 21 03:54:03 2024 -0500

rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED

Corrected the function code for the Atomic Memory Operation "Fetch and 
Decrement
Bounded", changing it from 0x1A to 0x1C.

2024-10-11 Jeevitha Palanisamy 

gcc/

* config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
_AMO_LD_DEC_BOUNDED.

(cherry picked from commit 1a4c5643a5911d130dfab9a064222baeeb7f9be7)

Diff:
---
 gcc/config/rs6000/amo.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/amo.h b/gcc/config/rs6000/amo.h
index 6b9e4e088b97..1303c9d9dab2 100644
--- a/gcc/config/rs6000/amo.h
+++ b/gcc/config/rs6000/amo.h
@@ -46,7 +46,7 @@ enum _AMO_LD {
   _AMO_LD_CS_NE= 0x10, /* Compare and Swap Not Equal.  
*/
   _AMO_LD_INC_BOUNDED  = 0x18, /* Fetch and Increment Bounded.  */
   _AMO_LD_INC_EQUAL= 0x19, /* Fetch and Increment Equal.  */
-  _AMO_LD_DEC_BOUNDED  = 0x1A  /* Fetch and Decrement Bounded.  */
+  _AMO_LD_DEC_BOUNDED  = 0x1C  /* Fetch and Decrement Bounded.  */
 };
 
 /* Implementation of the simple LWAT/LDAT operations that take one register and


[gcc r15-6681] testsuite: Simplify target test and dg-options for AMO tests

2025-01-07 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:51708cbd751e3af0d147ceae4da5c74dae1519ce

commit r15-6681-g51708cbd751e3af0d147ceae4da5c74dae1519ce
Author: Jeevitha 
Date:   Wed Jan 8 01:03:12 2025 -0600

testsuite: Simplify target test and dg-options for AMO tests

Removed powerpc*-*-* from the target test as it is always true. Simplified
options by removing -mpower9-misc and -mvsx, which are enabled by default 
with
-mdejagnu-cpu=power9. The has_arch_pwr9 check is also true with
-mdejagnu-cpu=power9, so it has been removed.

2025-01-08 Jeevitha Palanisamy 

gcc/testsuite/

* gcc.target/powerpc/amo1.c: Removed powerpc*-*-* from the target 
and
simplified dg-options.
* gcc.target/powerpc/amo2.c: Simplified dg-options and added 
powerpc_vsx
target check.

Diff:
---
 gcc/testsuite/gcc.target/powerpc/amo1.c | 5 ++---
 gcc/testsuite/gcc.target/powerpc/amo2.c | 4 ++--
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/amo1.c 
b/gcc/testsuite/gcc.target/powerpc/amo1.c
index c5af373b4e99..9a981cd4219f 100644
--- a/gcc/testsuite/gcc.target/powerpc/amo1.c
+++ b/gcc/testsuite/gcc.target/powerpc/amo1.c
@@ -1,6 +1,5 @@
-/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
-/* { dg-options "-mvsx -mpower9-misc -O2" } */
-/* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
+/* { dg-do compile { target { lp64 } } } */
+/* { dg-options "-mdejagnu-cpu=power9 -O2" } */
 /* { dg-require-effective-target powerpc_vsx } */
 
 /* Verify P9 atomic memory operations.  */
diff --git a/gcc/testsuite/gcc.target/powerpc/amo2.c 
b/gcc/testsuite/gcc.target/powerpc/amo2.c
index 592f0fb3f92d..9e4ff0ce0645 100644
--- a/gcc/testsuite/gcc.target/powerpc/amo2.c
+++ b/gcc/testsuite/gcc.target/powerpc/amo2.c
@@ -1,6 +1,6 @@
 /* { dg-do run { target { powerpc*-*-linux* && { lp64 && p9vector_hw } } } } */
-/* { dg-options "-O2 -mvsx -mpower9-misc" } */
-/* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
+/* { dg-options "-mdejagnu-cpu=power9 -O2" } */
+/* { dg-require-effective-target powerpc_vsx } */
 
 #include 
 #include 


[gcc/ibm/heads/gcc-13-branch] (754 commits) ibm: Merge up to top of releases/gcc-13

2025-05-08 Thread jeevitha via Gcc-cvs
The branch 'ibm/heads/gcc-13-branch' was updated to point to:

 25cecef4a385... ibm: Merge up to top of releases/gcc-13

It previously pointed to:

 b7341a9059d7... ibm: Merge up to top of releases/gcc-13

Diff:

Summary of changes (added commits):
---

  25cecef... ibm: Merge up to top of releases/gcc-13
  999a602... Daily bump. (*)
  e665276... debug/101533 - ICE with variant typedef DIE generation (*)
  068aa9a... middle-end/101478 - ICE with degenerate address during gimp (*)
  da579a8... lto/91299 - weak definition inlined with LTO (*)
  f2d0fb2... tree-optimization/87984 - hard register assignments not pre (*)
  c0e3078... c++/79786 - bougs invocation of DATA_ABI_ALIGNMENT macro (*)
  a145eaf... middle-end/66279 - gimplification clobbers shared asm const (*)
  337d3cd... tree-optimization/25 - avoid BB vectorization in novect (*)
  209fbbc... Daily bump. (*)
  e0e85b6... Daily bump. (*)
  10b8d94... Enable generation of GNU stack notes on Linux (*)
  7e644ae... Daily bump. (*)
  3817827... Daily bump. (*)
  857f2c2... Daily bump. (*)
  61367fc... Daily bump. (*)
  5227f98... Daily bump. (*)
  2317297... Fix GNAT build failure for x86/FreeBSD (*)
  67d13d1... AVR: target/119989 - Add missing clobbers to xload__l (*)
  b1163a2... Daily bump. (*)
  85792c6... sra: Clear grp_same_access_path of acesses created by total (*)
  087d91f... sra: Avoid creating TBAA hazards (PR118924) (*)
  96040fd... Remove other processors from X86_TUNE_DEST_FALSE_DEP_FOR_GL (*)
  29608b0... Daily bump. (*)
  3aec5f3... Daily bump. (*)
  0880731... Daily bump. (*)
  0ec3743... Daily bump. (*)
  12ceee1... Daily bump. (*)
  261bcbf... Avoid using POINTER_DIFF_EXPR for overlap checks [PR119399] (*)
  cf40537... vect: Enforce dr_with_seg_len::align precondition [PR116125 (*)
  a6a66ec... s390: Accept only Pmode for registers AP/FP/RA [PR119235] (*)
  7495787... Fix a pasto in ao_compare::compare_ao_refs (*)
  a32919a... c++: templates, attributes, #pragma target [PR114772] (*)
  b14ae44... c++: constexpr, trivial, and non-alias target [PR111075] (*)
  7ac1a99... libatomic: Fix up libat_{,un}lock_n for mingw [PR119796] (*)
  1982540... libatomic: Fix up libat_{,un}lock_n [PR119796] (*)
  3abc678... expmed: Always use QImode for init_expmed set_zero_cost [PR (*)
  b00d87f... driver: On linux hosts disable ASLR during -freport-bug [PR (*)
  c3c451b... driver: Fix up -freport-bug for ASLR [PR119727] (*)
  b498814... libquadmath: Fix up THREEp96 constant in expq (*)
  622d171... lto: lto-opts fixes [PR119625] (*)
  d6988fa... c: Fix ICEs with -fsanitize=pointer-{subtract,compare} [PR1 (*)
  7c4b802... combine: Use reg_used_between_p rather than modified_betwee (*)
  6eb9f80... Fix up some further cases of missing or extraneous spaces i (*)
  997b3e9... builtins: Fix up strspn/strcspn folding [PR119219] (*)
  f82a279... middle-end/119204 - ICE with strcspn folding (*)
  34c76e5... tree: Improve skip_simple_arithmetic [PR119183] (*)
  bfdd0e6... libgcc: Fix up unwind-dw2-btree.h [PR119151] (*)
  1b6045c... c++: Update TYPE_FIELDS of variant types if cp_parser_late_ (*)
  3424985... c++: Fix cxx_eval_store_expression {REAL,IMAG}PART_EXPR han (*)
  7980ce5... c: stddef.h C23 fixes [PR114870] (*)
  048a90f... openmp: Mark OpenMP atomic write expression as read [PR1190 (*)
  9005efe... reassoc: Fix up optimize_range_tests_to_bit_test [PR118915] (*)
  301d5e2... i386: Fix ICE with conditional QI/HI vector maxmin [PR11877 (*)
  7cb4653... c++: Don't use CLEANUP_EH_ONLY for new expression cleanup [ (*)
  eb3e7de... c++: Allow constexpr reads from volatile std::nullptr_t obj (*)
  b4b559a... icf: Compare call argument types in certain cases and asm o (*)
  0691f75... niter: Make build_cltz_expr more robust [PR118689] (*)
  9e27bc5... d: give dependency files better filenames [PR118477] (*)
  c7f51dc... c++: Only destruct elts of array for new expression if exce (*)
  38f4559... builtins: Store unspecified value to *exp for inf/nan [PR11 (*)
  3d70d8b... c++: Wrap force_target_expr in get_member_function_from_ptr (*)
  e49c0a1... c++: Honor complain in cp_build_function_call_vec for check (*)
  28646ac... c++: Diagnose earlier non-static data members with cv conta (*)
  4bbd1ab... warn-access: Fix up matching_alloc_calls_p [PR118024] (*)
  e244beb... cse: Fix up record_jump_equiv checks [PR117095] (*)
  c71616c... docs: Clarify -fsanitize=hwaddress target support [PR117960 (*)
  4dc7a5e... docs: Fix up __sync_* documentation [PR117642] (*)
  ec1614b... c: Fix sizeof error recovery [PR117745] (*)
  1ec99f6... builtins: Fix up DFP ICEs on __builtin_fpclassify [PR102674 (*)
  c6a3fd5... builtins: Fix up DFP ICEs on __builtin_is{inf,finite,normal (*)
  5b82543... phiopt: Fix a pasto in spaceship_replacement [PR117612] (*)
  2911337... m2: Fix up dependencies some more (*)
  1784de4... c++: Fix ICE on constexpr virtual function [PR117317] (*)
  bf85c4d... store-merging: Don't use sub_byte_op_p mode for empty_ctor

[gcc(refs/vendors/ibm/heads/gcc-13-branch)] ibm: Merge up to top of releases/gcc-13

2025-05-08 Thread jeevitha via Gcc-cvs
https://gcc.gnu.org/g:25cecef4a385faf4d2e343498059b51bab266ba6

commit 25cecef4a385faf4d2e343498059b51bab266ba6
Merge: b7341a9059d7 999a60264a5c
Author: Jeevitha Palanisamy 
Date:   Thu May 8 02:31:19 2025 -0500

ibm: Merge up to top of releases/gcc-13

2025-05-08  Jeevitha Palanisamy  

Merge up to releases/gcc-13 999a60264a5c11f23771581aea783ca40d9c0c62

Diff:

 gcc/ChangeLog  | 2134 
 gcc/ChangeLog.ibm  |4 +
 gcc/DATESTAMP  |2 +-
 gcc/ada/ChangeLog  |  144 ++
 gcc/ada/Makefile.rtl   |1 +
 gcc/ada/checks.adb |   10 +-
 gcc/ada/exp_aggr.adb   |   54 +-
 gcc/ada/exp_aggr.ads   |4 +
 gcc/ada/exp_ch3.adb|   15 +-
 gcc/ada/exp_put_image.adb  |4 +-
 gcc/ada/exp_util.adb   |1 +
 gcc/ada/gcc-interface/decl.cc  |8 +
 gcc/ada/gcc-interface/trans.cc |   16 +-
 gcc/ada/gen_il-gen-gen_nodes.adb   |2 +-
 gcc/ada/gnatvsn.ads|3 +-
 gcc/ada/libgnarl/s-taprop__dummy.adb   |   11 +-
 gcc/ada/libgnat/a-ngcoar.adb   |   42 +-
 gcc/ada/libgnat/a-ngrear.adb   |  109 +-
 gcc/ada/libgnat/s-dorepr__freebsd.adb  |  172 ++
 gcc/ada/par-ch6.adb|1 +
 gcc/ada/sem_ch12.adb   |   37 +-
 gcc/ada/sem_res.adb|2 +-
 gcc/ada/sem_warn.adb   |4 +
 gcc/ada/version.c  |5 +-
 gcc/asan.cc|   51 +-
 gcc/auto-profile.cc|4 +-
 gcc/builtins.cc|   67 +-
 gcc/c-family/ChangeLog |   30 +
 gcc/c-family/c-ada-spec.cc |4 +-
 gcc/c-family/c-cppbuiltin.cc   |   19 +-
 gcc/c-family/c-warn.cc |   20 +-
 gcc/c/ChangeLog|   29 +
 gcc/c/c-parser.cc  |   34 +-
 gcc/c/c-typeck.cc  |8 +-
 gcc/cgraph.cc  |7 +-
 gcc/combine.cc |   31 +-
 gcc/common/config/i386/cpuinfo.h   |   16 +
 gcc/common/config/i386/i386-common.cc  |6 +-
 gcc/common/config/i386/i386-cpuinfo.h  |2 +
 gcc/config.gcc |   14 +-
 gcc/config.in  |7 +
 gcc/config/aarch64/aarch64-c.cc|5 +
 gcc/config/aarch64/aarch64-freebsd.h   |1 +
 gcc/config/aarch64/aarch64-sve-builtins-base.cc|   36 +-
 gcc/config/aarch64/aarch64-sve.md  |   20 +-
 gcc/config/aarch64/aarch64.cc  |   24 +-
 gcc/config/aarch64/aarch64.h   |2 +-
 gcc/config/aarch64/aarch64.md  |8 +-
 gcc/config/aarch64/driver-aarch64.cc   |   53 +-
 gcc/config/alpha/alpha.md  |   10 +-
 gcc/config/arm/arm.cc  |   16 +-
 gcc/config/arm/arm_mve.h   |4 +
 gcc/config/arm/arm_mve_types.h |4 +
 gcc/config/arm/freebsd.h   |1 +
 gcc/config/arm/mve.md  |2 +-
 gcc/config/arm/t-rtems |5 +-
 gcc/config/avr/avr-dimode.md   |   26 +-
 gcc/config/avr/avr-mcus.def|6 +
 gcc/config/avr/avr-protos.h|2 +-
 gcc/config/avr/avr.cc  |  191 +-
 gcc/config/avr/avr.md  |   35 +-
 gcc/config/freebsd-spec.h  |   18 +-
 gcc/config/i386/avx512dqintrin.h   |   16 +-
 gcc/config/i386/avx512fp16intrin.h |4 +-
 gcc/config/i386/avx512vlbwintrin.h |4 +-
 gcc/config/i386/avx512vlintrin.h   |2 +-
 gcc/config/i386/cmpccxaddintrin.h  |6 +-
 gcc/config/i386/constraints.md |2 +-
 gcc/config/i386/driver-i386.cc |5 +
 gcc/config/i386/freebsd.h  |1 +
 gcc/config/i386/freebsd64.h|1 +
 gcc/config/i386/i386-builtin.def   |   16 +-
 gcc/config/i386/i386-c.cc  |7 +
 gcc/config/i386/i386-expand.cc |   38 +-
 gcc/config/i386/i386-options