On Thu, Feb 09, 2012 at 04:59:55PM +0100, Richard Guenther wrote: > On Thu, Feb 9, 2012 at 4:57 PM, Andrew Haley <a...@redhat.com> wrote: > > On 02/09/2012 03:56 PM, Michael Matz wrote: > >> On Thu, 9 Feb 2012, Andrew Haley wrote: > >> > >>> On 02/09/2012 03:28 PM, Richard Guenther wrote: > >>>> So - do you have an idea what routines we can start off with to get > >>>> a full C99 set of routines for float, double and long double? The last > >>>> time I was exploring the idea again I was looking at the BSD libm. > >>> > >>> I'd start with INRIA's crlibm. > >> > >> Not complete. Too slow. > > > > Not complete, fair enough. But it's the fastest accurate one, > > isn't it? > > Maybe. Nothing would prevent us from composing from multiple sources > of course. crlibm also only provides double precision routines.
We don't want just a single libm, we need several different ones, one accurrate (crlibm/IBM ulp based for doubles, unclear what to base it on for the rest, if we don't have something 0.5ulp precise for float and long double (__float80/__float128/IBM double double formats), at least something as precise as possible, perhaps glibc sources), one or more faster/less precise variants, ideally ABI compatible with glibc and then vectorized variants. If it can't live in GCC tree, it could be a separate project, which then certainly could use glibc/crlibm/AMD vector library etc. sources. Jakub