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.