This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available
- From: "chrbr at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 19 May 2015 13:44:02 +0000
- Subject: [Bug target/65837] [arm-linux-gnueabihf] lto1 target specific builtin not available
- Auto-submitted: auto-generated
- References: <bug-65837-4 at http dot gcc dot gnu dot org/bugzilla/>
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.