This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 13/13] Use GCC builtins for copysign functions if desired.


On 12/2/19 10:00 PM, Joseph Myers wrote:
On Mon, 2 Dec 2019, Stefan Liebler wrote:

This patch is using the corresponding GCC builtin for copysignf, copysign,
copysignl and copysignf128 if the USE_FUNCTION_BUILTIN macros are defined to one
in math-use-builtins.h.

I believe this is always safe for these implementations (the only case
where GCC might not expand copysign functions inline is copysignl for IBM
long double, in the soft-float case).

Thus you mean we can do the following preset in sysdeps/generic/math-use-builtins.h?
#define USE_COPYSIGN_BUILTIN 1
#define USE_COPYSIGNF_BUILTIN 1
#define USE_COPYSIGNL_BUILTIN 0
#define USE_COPYSIGNF128_BUILTIN 0

Or even also set USE_COPYSIGNL_BUILTIN to one as IBM long double has its own implementation in ./sysdeps/ieee754/ldbl-128ibm/s_copysignl.c.

On the other hand, I'm not able to run tests on the different architectures. Thus the safest way would be to leave all those macros set to zero and let the architectures decide.

In each case, I would prefer to set those macros to one in a separate patch. Then this patch could be reverted in case of failing on one architecture.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]