From: Artemiy Volkov Date: Thu, 8 Jan 2026 11:51:06 +0000 (+0000) Subject: testsuite: require arm_v8_3a_fp16_complex_neon for complex fp16 tests X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31875b910c70dd1e65d4da67562ac02b9b108c68;p=thirdparty%2Fgcc.git 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 --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 1cafb4f1c3a..9f188842544 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 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