[Bug libstdc++/81706] std::sin vectorization bug
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Aug 4 11:16:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81706
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to rguenther@suse.de from comment #5)
> True, but it removes the ability to avoid the vectorized variant with
> using the __builtin_ variant ;)
Do we ever want to generate less efficient code when using __builtin_* compared
to when not using it?
> I think we never move attributes on
> the C library header prototypes to our builtins, do we?
We don't right now, but a related precedent is set_builtin_user_assembler_name,
if you do:
double cos (double) __asm ("foobar");
then __builtin_cos will either be expanded inline, or, if calling the library
routine, will call foobar.
> > As for the libstdc++-v3 patch, why is it incomplete? I've just changed the
> > cases where glibc has
> > routines with simd attribute (which is only for float/double routines, not for
> > long double, and
> > only those changed in the patch).
>
> Oh, I was just looking for consistent handling -- where we have using ::X
> use ::X instead of a builtin.
The more we change, the more we risk something breaks, the __builtin_* calls
were there for a reason.
More information about the Gcc-bugs
mailing list