On Thu, 19 Dec 2024 at 13:17, Christophe Lyon
<christophe.l...@linaro.org> 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)
>

Actually, as Linaro CI shows, this is not quite true: the CI configures GCC
--with-float=hard --with-fpu=neon-fp-armv8 --with-mode=thumb --with-arch=armv8-a
and the test passes.

In my manual testing I'm using
--with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb
--with-tune=cortex-a9 --with-arch=armv7-a

and fast-math-complex-mls-half-float.c is compiled with:
-mfpu=neon -mfloat-abi=hard -mfpu=auto -mcpu=unset -march=armv8.3-a+simd

I'm not sure where the difference comes from...

Christophe

> 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"
> --
> 2.34.1
>

Reply via email to