> -----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.