[PATCH] PR11706, optimize std::pow(T, int)
Richard Guenther
rguenth@tat.physik.uni-tuebingen.de
Wed Jan 12 16:17:00 GMT 2005
On Wed, 12 Jan 2005, Paolo Carlini wrote:
> Gabriel Dos Reis wrote:
>
> >Richard Guenther <rguenth@tat.physik.uni-tuebingen.de> writes:
> >
> >| else if (__builtin_types_compatible_p(_Tp, double))
> >
> >Dispatching on types is done is C++ with template specializations.
> >
> >
> Please correct me if I'm wrong: probably the optimal solution (besides
> generically improving the treatment of loops with constant bounds) would
> involve dispatching integer powers of float, double, long double to
> appropriate builtins (using template specializations), otherwise, using
> the generic loop.
>
> Unfortunately, the above builtins are still missing :-( Is there a PR open
> tracking this issue? Shall I open one?
The __builtin_pow variants handle constant integer exponents specially
- they only do not dispatch to special integer versions for non-constant
exponents. But these integer versions may be dubious for -fno-fast-math
anyway (though maybe the std::pow(T, int) overloads are special cases
regarding snans, infs, etc.).
Richard.
--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
More information about the Libstdc++
mailing list