https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65837
chrbr at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |chrbr at gcc dot gnu.org
--- Comment #27 from chrbr at gcc dot gnu.org ---
>
> Should be reproducible without LTO with
>
> int __attribute__((target("fpu=neon"))) main()
> {
> ...
> }
>
> and compiling without -mfpu=neon.
>
note that #include "arm_neon.h" can't be preprocessed and that the builtins are
not recognized without a global flag:
"arm_neon.h:31:2: error: #error You must enable NEON instructions (e.g.
-mfloat-abi=softfp -mfpu=neon) to use arm_neon.h"
A further improvement for that might be to set the attribute for all the
functions defines in neon.h and remove the #error check.
e.g:
__extension__ static __inline float32x2_t
__attribute__ ((__always_inline__))
__attribute__((target("fpu=neon")))
vadd_f32 (float32x2_t __a, float32x2_t __b)
{
return (float32x2_t) __builtin_neon_vaddv2sf (__a, __b);
}
or use a #pragma target (("mfpu=neon")) region.