On Tue, Oct 27, 2020 at 09:30:03AM -0500, will schmidt wrote: > On Thu, 2020-10-22 at 18:10 -0400, Michael Meissner via Gcc-patches wrote: > > PowerPC: Use __builtin_pack_ieee128 if long double is IEEE 128-bit. > > > > I have split all of these patches into separate patches to hopefully get > > them > > into the tree. > > > > This patch changes the __ibm128 emulator to use __builtin_pack_ieee128 > > instead of __builtin_pack_longdouble if long double is IEEE 128-bit, and > > we need to use the __ibm128 type. The code will run without this patch, > > but this patch slightly optimizes it better. > > > > I have tested this patch with bootstrap builds on a little endian power9 > > system > > running Linux. With the other patches, I have built two full bootstrap > > builds > > using this patch and the patches after this patch. One build used the > > current > > default for long double (IBM extended double) and the other build switched > > the > > default to IEEE 128-bit. I used the Advance Toolchain AT 14.0 compiler as > > the > > library used by this compiler. There are no regressions between the tests. > > There are 3 fortran benchmarks (ieee/large_2.f90, default_format_2.f90, and > > default_format_denormal_2.f90) that now pass. > > good. :-) A quick search of gcc bugzilla shows there is an existing > PR 67531 that includes ieee rounding support for powerpc long double. > Does this (partially?) address that? > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67531
In theory, once the full system uses IEEE 128-bit floating point for long double, all of the various rounding issues will be fixed. However, we have to get to that step, and this is just one of a long line of intermediate steps to get to that goal. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797