Hi Joseph, On Wed, Jan 17 2018, Joseph Myers wrote: > On Wed, 17 Jan 2018, Martin Jambor wrote: > >> 3?) Joseph Myers brought up idea to do "built-in functions for TS 18661 >> floating-point functions - which has the feature that there are a >> lot of similar built-in functions for C99/C11 functions to serve as >> a guide for how to implement things)" ...Joseph, would you be >> willing to mentor it? > > Yes, provided at least one other mentor is available as well as I may not > be around all the time during the GSoC period, including one of the > evaluation periods.
Thank you (but please think who that other mentor could be :-) > > (The outline I put on the wiki page is: > > GCC supports built-in functions for math.h and complex.h functions in > the C99/C11 standards (both folding calls for constant arguments, and > expanding inline when the processor supports appropriate functionality). > More such functions have been added in ISO/IEC TS 18661, supporting > features of IEEE 754-2008. It would be useful to have built-in functions > for those, both folding for constant arguments, and expanding inline > where appropriate (e.g. for roundeven and the functions rounding result > to narrower type, on some processors; roundeven can be inlined on x86 > for SSE4.1 and later, and the narrowing functions on IA64 and POWER8, > for example). Existing built-in functions would provide a guide for how > to do this. > > This project has the feature that there are lots of smaller subprojects > each of which would be a useful enhancement to GCC, so a student could > start off with e.g. roundeven built-in functions, closely following how > existing code handles round / floor / ceil / trunc, before going on to > more complicated functions such as the narrowing ones or the fromfp > functions - with scope for functions from TS 18661-3 and TS 18661-4 if > they run out of useful functions from TS 18661-1. If a student were > interested I could provide more detailed lists of possible subprojects.) That is a very nice feature indeed, Martin