On Wed, 13 Sep 2017, Michael Meissner wrote: > This patch adds support on PowerPC ISA 3.0 for the built-in function > __builtin_sqrtf128 generating the XSSQRTQP hardware square root instruction > and > the built-in function __builtin_fmaf128 generating XSMADDQP, XSMSUBQP, > XSNMADDQP, and XSNMSUBQP fused multiply-add instructions.
Is there a reason for these to be architecture-specific rather than generic everywhere _Float128 is supported? (With the fmaf128 / sqrtf128 names available as well as the __builtin_* variants of those.) Full support for _FloatN/_FloatNx variants of all the existing built-in functions might be complicated, and run into potential issues with startup cost of creating large numbers of extra built-in functions (it's desirable, but possibly hard, which is why I excluded it from the initial _FloatN / _FloatNx support patches). But adding just these two functions to builtins.def and making them fold / expand appropriately ought to be much simpler. (I realise sqrt goes through internal-fn.def and DEF_INTERNAL_FLT_FN expects a particular set of functions for standard types, so maybe some duplication would be involved to get the built-in function expanded appropriately, i.e. using an insn pattern or a call to an external sqrtf128 function according to whether such an insn pattern is available. fma ought not to involve much more than adding an extra case where CASE_FLT_FN (BUILT_IN_FMA) is used.) > While I was at it, I changed the documentation so that it no longer documents > the 'q' built-in functions (to mirror libquadmath) but instead just documented > the 'f128' functions that matches glibc 2.26 and the technical report that > added the _FloatF128 date. Those *f128 built-in functions (inf / huge_val / nan / nans / fabs / copysign) are not target-specific; they exist for all _FloatN / _FloatNx types for all targets with such types. So it doesn't seem appropriate to document them in a target-specific section of the manual, beyond a brief cross-reference to the documentation of the functions as target-independent. -- Joseph S. Myers jos...@codesourcery.com