About GSOC.
Joseph Myers
joseph@codesourcery.com
Mon May 20 21:48:00 GMT 2019
On Mon, 20 May 2019, Martin Jambor wrote:
> in addition to the things already pointed out by Joseph, I have the
> following comments. But as Joseph has already pointed out, you should
> also test your patch on __float128 types, so please make sure your code
> gets invoked and works for something like:
>
> if (__builtin_roundevenf128 (0x1p64q+0.5) != (0x1p64q))
> link_error (__LINE__);
... but with the f128 constant suffix not q, so it works on more
architectures (all those with _Float128 support, not just those with older
__float128 support).
> > +DEF_EXT_LIB_BUILTIN (BUILT_IN_ROUNDEVEN, "roundeven", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
> > +DEF_EXT_LIB_BUILTIN (BUILT_IN_ROUNDEVENF, "roundevenf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
> > +DEF_EXT_LIB_BUILTIN (BUILT_IN_ROUNDEVENL, "roundevenl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
>
> ...and for the code to trigger for __builtin_roundevenf128 you have to
> define this builtin function too. The easiest way is to do it in the
> same way it is done for BUILTIN_ROUND and many other functions, i.e. use
> DEF_EXT_LIB_FLOATN_NX_BUILTINS.
Also note that TS 18661-1 has been merged into C2X. I haven't yet updated
glibc headers to reflect this, but this means a new DEF_C2X_BUILTIN should
be added similar to DEF_C11_BUILTIN, and used for those three new
functions, instead of DEF_EXT_LIB_BUILTIN. (And for the strdup and
strndup built-in functions, also added to C2X, but that's independent of
the present project.)
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc
mailing list