> -----Original Message-----
> From: Richard Earnshaw (lists) <richard.earns...@arm.com>
> Sent: Wednesday, January 8, 2025 1:18 PM
> To: Christophe Lyon <christophe.l...@linaro.org>; gcc-patches@gcc.gnu.org;
> Richard Sandiford <richard.sandif...@arm.com>; Tamar Christina
> <tamar.christ...@arm.com>; Andre Simoes Dias Vieira
> <andre.simoesdiasvie...@arm.com>; ktkac...@nvidia.com;
> raman...@nvidia.com
> Subject: Re: [PATCH 3/4] arm, testsuite: fix arm_v8_3a_fp16_complex_neon_ok
> 
> On 19/12/2024 12:17, Christophe Lyon wrote:
> > Without this patch, testcases using arm_v8_3a_fp16_complex_neon fail
> > to compile on arm-linux-gnueabihf with
> > fatal error: gnu/stubs-soft.h: No such file or directory
> > because they are actually compiled with
> > -mfloat-abi=softfp -mfpu=auto -mcpu=unset -march=armv8.3-a+fp16
> >
> > Fix this by including stdint.h in the sample code for the effective-target.
> >
> > This makes these tests PASS instead of being UNRESOLVED:
> > fast-math-bb-slp-complex-add-half-float.c
> > fast-math-bb-slp-complex-mla-half-float.c
> > fast-math-bb-slp-complex-mls-half-float.c
> > fast-math-bb-slp-complex-mul-half-float.c
> > fast-math-complex-add-half-float.c
> > fast-math-complex-mla-half-float.c
> > fast-math-complex-mls-half-float.c
> > fast-math-complex-mul-half-float.c
> >
> > except for two new
> > FAIL: gcc.dg/vect/complex/fast-math-complex-mls-half-float.c scan-tree-dump
> vect "Found COMPLEX_ADD_ROT270"
> > (and the same with -flto -ffat-lto-objects)
> >
> > gcc/testsuite/ChangeLog:
> >
> >     * lib/target-supports.exp
> >     (check_effective_target_arm_v8_3a_fp16_complex_neon_ok_nocache):
> >     Include stdint.h.
> > ---
> >  gcc/testsuite/lib/target-supports.exp | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/gcc/testsuite/lib/target-supports.exp 
> > b/gcc/testsuite/lib/target-
> supports.exp
> > index a16e9534ccd..9f4e2700dd2 100644
> > --- a/gcc/testsuite/lib/target-supports.exp
> > +++ b/gcc/testsuite/lib/target-supports.exp
> > @@ -13298,6 +13298,7 @@ proc
> check_effective_target_arm_v8_3a_fp16_complex_neon_ok_nocache { } {
> >         #if !defined (__ARM_FEATURE_COMPLEX)
> >         #error "__ARM_FEATURE_COMPLEX not defined"
> >         #endif
> > +       #include <stdint.h>
> >     } "$flags -mcpu=unset -march=armv8.3-a+fp16"] } {
> >         set et_arm_v8_3a_fp16_complex_neon_flags \
> >                     "$flags -mcpu=unset -march=armv8.3-a+fp16"
> 
> I'm somewhat surprised that a test in gcc.dg/vect/complex is using an 
> unguarded
> arm_... set of options.  Tamar, I think this test is one of yours: how is 
> this supposed
> to work on non-arm platforms?

On non-arm platforms et_arm_v8_3a_complex_neon_flags will be "" and so the
options adding expands to adding no options.

That's the reason the directive contains a check if it's arm or aarch64 before 
processing
further.  It avoids having to repeated guard the dg-add-options by a target 
check.

Tamar.

> 
> R.

Reply via email to