On Thu, 23 Jun 2016, Bill Schmidt wrote:

> After discussing with the glibc folks, I'd like to propose that this patch
> be altered to use the 'q' suffix for the builtin names.  That way we won't
> have a naming conflict with Joseph's patch in the short term, and we'll
> be able to stage the movement on trunk to the f128 support.
> 
> I've been informed that there are other packages/libraries that assume 
> the 'q' suffix, so we will need both anyway.  For the time being, we can
> use #defines for glibc using GCC 6 to define the f128 functions to be
> the q functions.  We'll plan to normalize to use the arch-neutral f128
> builtins after the 6.2 push completes.

Those #defines in glibc would be needed anyway for __float128 functions in 
glibc for x86 to support GCC versions before GCC 7 (which x86 support I'm 
minded to look at adding once the __float128 functions for powerpc64le are 
in; adding them for a new architecture shouldn't be hard once the first 
architecture is done).

The 'q' suffix should be considered legacy (just like the __float128 
name!), but if it doesn't conflict with the generic support it's 
essentially a target maintainer matter.  As I said in my patch submission 
for the generic functions, I don't know if target built-in functions can 
be made into aliases for generic ones, but that's what's desirable in 
optimization terms once the generic ones are in, so that optimizations 
apply equally to both.

(I'm presuming that eventually we *will* enable all built-in function and 
other optimizations, that currently are just for float / double / long 
double, for the new types and their corresponding TS 18661-3 functions as 
well - that's just lower priority since it's not at all on the critical 
path for enabling support for the new type, unlike this minimal set of 
functions.)

Do those packages assuming 'q' expect more than the minimal built-in 
functions (i.e., do they want libquadmath)?  I've noted before that while 
libquadmath is not the way forward for libm support for __float128 (that's 
*f128 functions in glibc), and while libquadmath is missing the past few 
years' improvements to glibc libm, enabling it for powerpc64le (once 
you've got built-in functions and complex arithmetic functions in libgcc) 
would allow you to test that the back-end __float128 support works for a 
substantial body of code with __float128 arithmetic....  (While there is 
no libquadmath testsuite, Paul Murphy's recent work should make it much 
easier to run the glibc libm-test with libquadmath than it was when 
libquadmath was first added.)

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to