> -----Original Message-----
> From: Artemiy Volkov <[email protected]>
> Sent: 08 January 2026 11:51
> To: [email protected]
> Cc: Tamar Christina <[email protected]>; Richard Earnshaw
> <[email protected]>; Christophe Lyon
> <[email protected]>; Artemiy Volkov <[email protected]>
> Subject: [PATCH 1/2] 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.

OK.

Thanks,
Tamar

> ---
>  .../complex/fast-math-bb-slp-complex-add-half-float.c     | 2 +-
>  .../fast-math-bb-slp-complex-add-pattern-half-float.c     | 2 +-
>  .../complex/fast-math-bb-slp-complex-mla-half-float.c     | 2 +-
>  .../complex/fast-math-bb-slp-complex-mls-half-float.c     | 2 +-
>  .../complex/fast-math-bb-slp-complex-mul-half-float.c     | 2 +-
>  .../vect/complex/fast-math-complex-add-half-float.c       | 2 +-
>  .../complex/fast-math-complex-add-pattern-half-float.c    | 2 +-
>  .../vect/complex/fast-math-complex-mla-half-float.c       | 4 ++--
>  .../vect/complex/fast-math-complex-mls-half-float.c       | 2 +-
>  .../vect/complex/fast-math-complex-mul-half-float.c       | 2 +-
>  .../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 c486fba13d7..3f1cce56955 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 ae1e02e301e..3f0092f773c 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 38158b97d15..33e500f3f4c 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 fb1e02c7fa5..7dbe8200351 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 8df4f2cba81..259dd6b2e06 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 1c8625b0e19..e9d13e3c527 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" } */
>  /* { 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 18e0800eb85..0bf97e53e40 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 b4236988f44..9c1424e52d4 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 fb7e9a5619e..5a700c091d4 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 0bc8951371f..8793eff0aff 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 53442492b3b..17277c14d32 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>
> 
> --
> 2.43.0

Reply via email to