https://gcc.gnu.org/g:31875b910c70dd1e65d4da67562ac02b9b108c68

commit r16-7154-g31875b910c70dd1e65d4da67562ac02b9b108c68
Author: Artemiy Volkov <[email protected]>
Date:   Thu Jan 8 11:51:06 2026 +0000

    testsuite: require arm_v8_3a_fp16_complex_neon for complex fp16 tests
    
    Changes to target-supports.exp from r16-6519-g56dd47c073cabf introduced
    some new failures for complex fp16 tests with some arm-eabi targets
    configured with -mfpu=auto.  This patch fixes those by (a) requiring the
    full arm_v8_3a_fp16_complex_neon_ok target instead of just float16 in
    vect/complex fp16 tests, and (b) simplifying down to one
    dg-require-effective-target and one dg-add-options and removing the
    explicit -march in advsimd-intrinsics/vector-complex_f16.c.
    
    Regtested on aarch64, and the Linaro CI also delivers a positive verdict
    for the relevant cortex-m33/-m3/-m55/-m7 configurations (after the
    accompanying patch to target-supports.exp that follows).  Huge thanks to
    Christophe for testing this on arm.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c:
            Adjust testcase.
            * 
gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c:
            Likewise.
            * gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c:
            Likewise.

Diff:
---
 .../gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c | 2 +-
 .../complex/fast-math-bb-slp-complex-add-pattern-half-float.c     | 2 +-
 .../gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c | 2 +-
 .../gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c | 2 +-
 .../gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c | 2 +-
 .../gcc.dg/vect/complex/fast-math-complex-add-half-float.c        | 2 +-
 .../vect/complex/fast-math-complex-add-pattern-half-float.c       | 2 +-
 .../gcc.dg/vect/complex/fast-math-complex-mla-half-float.c        | 4 ++--
 .../gcc.dg/vect/complex/fast-math-complex-mls-half-float.c        | 2 +-
 .../gcc.dg/vect/complex/fast-math-complex-mul-half-float.c        | 2 +-
 .../gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c    | 8 +++-----
 11 files changed, 14 insertions(+), 16 deletions(-)

diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
index c486fba13d75..3f1cce569558 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
index ae1e02e301e3..3f0092f773c7 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
index 38158b97d15e..33e500f3f4cd 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
index fb1e02c7fa5d..7dbe82003517 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
index 8df4f2cba813..259dd6b2e067 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
index 1cafb4f1c3a6..9f1888425443 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-additional-options "-ffast-math --param vect-epilogues-nomask=0" } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
index 18e0800eb85a..0bf97e53e40f 100644
--- 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
+++ 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
index b4236988f448..9c1424e52d42 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-additional-options "-ffast-math" } */
-/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
 #define N 200
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
index fb7e9a5619e9..5a700c091d43 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git 
a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c 
b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
index 0bc8951371f2..8793eff0aff9 100644
--- a/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
+++ b/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
@@ -1,7 +1,7 @@
 /* { dg-do compile } */
 /* { dg-additional-options "-ffast-math" } */
 /* { dg-require-effective-target vect_complex_add_half } */
-/* { dg-require-effective-target float16 } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
 /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
 
 #define TYPE _Float16
diff --git 
a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c 
b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c
index 53442492b3b7..17277c14d326 100644
--- a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c
@@ -1,9 +1,7 @@
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_v8_3a_complex_neon_ok } */
-/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */
-/* { dg-add-options arm_v8_3a_complex_neon } */
-/* { dg-add-options arm_v8_2a_fp16_neon } */
-/* { dg-additional-options "-O2 -march=armv8.3-a+fp16 -save-temps" } */
+/* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+/* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+/* { dg-additional-options "-O2 -save-temps" } */
 
 #include <arm_neon.h>

Reply via email to