The following patches add support for doing built-in function overloading between the two 128-bit IEEE types (i.e. _Float182/__float128 using KFmode and when long double uses the IEEE 128-bit encoding with TFmode).
These patches lay the foundation for a set of follow-on patches that will change the internal handling of 128-bit floating point types in GCC. In the future patches, I hope to change the compiler to always use KFmode for the explicit _Float128/__float128 types, to always use TFmode for the long double type, no matter which 128-bit floating point type is used, and IFmode for the explicit __ibm128 type. But before I can submit those patches to change the internal type structure, I need to make sure that the built-in functions can handle both sets of types, and the overload mechanism automatically switches between the two. There are 5 patches in the series. The first patch adds the infrastructure to the built-in mechanism to deal with long doubles that use the IEEE 128-bit encoding. The second patch adds overload support to the IEEE 128-bit round to odd built-in functions. The third patch adds overload support to the IEEE 128-bit comparason built-in functions. The fourth patch adds overload support to the IEEE 128-bit scalar extract field and insert field built-in functions. The fifth patch adds overload support to the IEEE 128-bit test data and test data negate built-in functions. I have tested these patches on a power10 that is running Fedora 36, which defaults to using long doubles that are IEEE 128-bit. I have built two parallel GCC compilers, one that defaults to using IEEE 128-bit long doubles and one that defaults to using IBM 128-bit long doubles. I have compared the test results to the original compiler results, comparing a modified GCC to the original compiler using an IEEE 128-bit long double default, and also comparing a modified GCC to the original compiler using an IBM 128-bit long double default. In both cases, the results are the same. I have also compared the compilers with the future patch in progress that does switch the internal type handling. Once those patches are installed, the overload mechanism will insure the correct built-in is used. Can I install these patches to the trunk? -- Michael Meissner, IBM PO Box 98, Ayer, Massachusetts, USA, 01432 email: meiss...@linux.ibm.com