Hi!

In r16-3414 libstdc++ changed ABI for (still experimental C++20) and uses
unordered value -128 instead of 2.  Generally the change improved code
generation on all targets tested, see
https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693534.html
for details.
In r16-3474 I've adjusted the middle-end and backends to use that value.
This apparently broke the gcc.target/s390/spaceship-fp-2.c test,
with -ffast-math the 2 value is unreachable and so the .SPACESHIP last
argument in that case is the default, which changed from 2 to -128.
But spaceship-fp-1.c test also doesn't test what libstdc++ uses anymore,
so the following patch uses -128 in all the spots.

Ok for trunk?

2025-09-02  Jakub Jelinek  <ja...@redhat.com>

        * gcc.target/s390/spaceship-fp-1.c: Expect .SPACESHIP call with
        -128 as last argument instead of 2.
        (TEST): Use -128 instead of 2.
        * gcc.target/s390/spaceship-fp-2.c: Expect .SPACESHIP call with
        -128 as last argument instead of 2.
        (TEST): Use -128 instead of 2.

--- gcc/testsuite/gcc.target/s390/spaceship-fp-1.c.jj   2025-07-31 
10:40:49.502385835 +0200
+++ gcc/testsuite/gcc.target/s390/spaceship-fp-1.c      2025-09-01 
17:12:19.745031835 +0200
@@ -1,6 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O2 -mzarch -march=z13 -fdump-tree-optimized" } */
-/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, 2\)} 3 
optimized } } */
+/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, -128\)} 3 
optimized } } */
 /* { dg-final { scan-assembler-times {\tk[edx]br\t} 3 } } */
 /* { dg-final { scan-assembler-not {\tbrc} } } */
 /* { dg-final { scan-assembler-not {\tc[edx]br\t} } } */
@@ -15,7 +15,7 @@
     else if (x > y)            \
       return 1;                        \
     else                       \
-      return 2;                        \
+      return -128;             \
   }
 
 TEST (float, float)
--- gcc/testsuite/gcc.target/s390/spaceship-fp-2.c.jj   2025-07-31 
10:40:49.502385835 +0200
+++ gcc/testsuite/gcc.target/s390/spaceship-fp-2.c      2025-09-01 
17:12:56.829551310 +0200
@@ -1,6 +1,6 @@
 /* { dg-do compile { target lp64 } } */
 /* { dg-options "-O2 -mzarch -march=z13 -ffinite-math-only 
-fdump-tree-optimized" } */
-/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, 2\)} 3 
optimized } } */
+/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, -128\)} 3 
optimized } } */
 /* { dg-final { scan-assembler-times {\tc[edx]br\t} 3 } } */
 /* { dg-final { scan-assembler-not {\tbrc} } } */
 /* { dg-final { scan-assembler-not {\tk[edx]br\t} } } */
@@ -15,7 +15,7 @@
     else if (x > y)            \
       return 1;                        \
     else                       \
-      return 2;                        \
+      return -128;             \
   }
 
 TEST (float, float)


        Jakub

Reply via email to