https://gcc.gnu.org/g:309d3c344a47fc3fbc1f4e256fc2437dbbe7c323
commit r17-5786-g309d3c344a47fc3fbc1f4e256fc2437dbbe7c323 Author: Merlin Warner-Huish <[email protected]> Date: Sun Nov 1 10:55:31 2026 -0700 [PATCH] testsuite: Add -fno-signed-zeros to more FMA tests [PR124820] r17-5664 restricted the negated FMA folds in match.pd to !HONOR_SIGNED_ZEROS. These tests expect those folds to apply with the default options, so they started failing on aarch64. Add -fno-signed-zeros to them, as that commit did for the i386 FMA tests. --- These are the 65 aarch64 failures reported by the Linaro CI after r17-5664. Tested with an aarch64-linux-gnu cross compiler (they are all compile-only tests): all of them fail before this patch and pass after it. Also checked gcc.dg/fma-[567].c on x86_64-pc-linux-gnu. The unpacked_cond_* and vcond_* tests cover the IFN_COND_* folds the original patch changed, so those changes are tested after all. My write access request is still pending, so I'd be grateful if someone could commit this once approved. PR middle-end/124820 gcc/testsuite/ChangeLog: * gcc.dg/fma-5.c: Add -fno-signed-zeros. * gcc.dg/fma-6.c: Likewise. * gcc.dg/fma-7.c: Likewise. * gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c: Likewise. * gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c: Likewise. * gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c: Likewise. * gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c: Likewise. * gcc.target/aarch64/sve/unpacked_fnmla_1.c: Likewise. * gcc.target/aarch64/sve/unpacked_fnmla_2.c: Likewise. * gcc.target/aarch64/sve/unpacked_fnmls_1.c: Likewise. * gcc.target/aarch64/sve/unpacked_fnmls_2.c: Likewise. * gcc.target/aarch64/sve/vcond_13.c: Likewise. * gcc.target/aarch64/sve/vcond_14.c: Likewise. * gcc.target/aarch64/sve/vcond_15.c: Likewise. * gcc.target/aarch64/sve/vcond_16.c: Likewise. Diff: --- gcc/testsuite/gcc.dg/fma-5.c | 2 +- gcc/testsuite/gcc.dg/fma-6.c | 2 +- gcc/testsuite/gcc.dg/fma-7.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_1.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_2.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_1.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_2.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/gcc/testsuite/gcc.dg/fma-5.c b/gcc/testsuite/gcc.dg/fma-5.c index 68d75979fd5d..32cf5ebb73e1 100644 --- a/gcc/testsuite/gcc.dg/fma-5.c +++ b/gcc/testsuite/gcc.dg/fma-5.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-signed-zeros" } */ float f1 (float a, float b, float c) diff --git a/gcc/testsuite/gcc.dg/fma-6.c b/gcc/testsuite/gcc.dg/fma-6.c index 9e49b62b6de4..393b05feea44 100644 --- a/gcc/testsuite/gcc.dg/fma-6.c +++ b/gcc/testsuite/gcc.dg/fma-6.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-signed-zeros" } */ float f1 (float a, float b, float c) diff --git a/gcc/testsuite/gcc.dg/fma-7.c b/gcc/testsuite/gcc.dg/fma-7.c index 86aacad7b90c..559e0c5538c9 100644 --- a/gcc/testsuite/gcc.dg/fma-7.c +++ b/gcc/testsuite/gcc.dg/fma-7.c @@ -1,4 +1,4 @@ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-signed-zeros" } */ float f1 (float a, float b, float c) diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c index 07bab63d1503..2c8660cb204c 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math -fno-signed-zeros" } */ #include <stdint.h> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c index daef4e49fa90..651d0790a69d 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-signed-zeros" } */ #include "unpacked_cond_fnmla_1.c" diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c index 5526378c5216..f7356d4e2ec7 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math -fno-signed-zeros" } */ #include <stdint.h> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c index 8a8f34828fb7..76b195001105 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-signed-zeros" } */ #include "unpacked_cond_fnmls_1.c" diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_1.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_1.c index bf13ff57fe26..12a3bf6c7ef8 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-signed-zeros" } */ #include <stdint.h> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_2.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_2.c index 64130bacda6e..cb6acddd33eb 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_2.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math -fno-signed-zeros" } */ #include "unpacked_fnmla_1.c" diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_1.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_1.c index 399920a68fbc..3e7b747b1449 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-signed-zeros" } */ #include <stdint.h> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_2.c b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_2.c index 59fb7f93b131..b486f75f1204 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_2.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -moverride=sve_width=2048 -fno-trapping-math -fno-signed-zeros" } */ #include "unpacked_fnmls_1.c" diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c b/gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c index 701991946cb8..ca3c14ecf6e8 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math -fno-signed-zeros" } */ #define N 119 diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c b/gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c index a5aa85356c68..85e5a55c361c 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math -fno-signed-zeros" } */ #define N 119 diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c b/gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c index f8c5f3058320..ee557008d3c0 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math -fno-signed-zeros" } */ #define N 119 diff --git a/gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c b/gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c index 115c9903511c..7ac396212a7e 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math" } */ +/* { dg-options "-O2 -ftree-vectorize -fno-trapping-math -fno-signed-zeros" } */ #define N 119
