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