On Tue, Dec 01, 2020 at 10:36:10PM +0000, Jonathan Wakely wrote: > I've attached a complete patch including those generated files, and > I've also pushed the branch to refs/users/redi/heads/ieee128-squash in > the gcc.gnu.org Git repo. That branch includes your patch for PR > libgcc/97543 which is required for some of the libstdc++ changes to > work properly.
This patch along with my posted patches allows me to build the Spec 2017 parest_r benchmark with a PowerPC compiler configured for IEEE 128-bit long doubles (that previously failed). Thanks for the hard work! In addition, I built a compiler where long double defaulted to 64-bit, and I could build all of the Spec 2017 rate benchmarks. I ran the two benchmarks that generate IEEE 128-bit instructions when long double is IEEE 128-bit (perlbench_r and parest_r) on a little endian power9 running Linux with all different long double formats. There was no difference in runtime between the benchmark compiled for the different long double formats. I have to imagine that while the code is built using long double, the actual benchmark does not use those functions in a significant way. I did bootstrap builds for three different compilers configured to use each of the long double formats. There were no differences in the C++ tests between the three compilers. In the C tests, the two tests that test the nanq and nansq built-in functions fail with IEEE 128-bit long double because I did not incorprate the patch for that in this run. There are 9 tests that fail with long double configured for 64-bits that I will look at adjusting in the future. In the Fortran tests, there were three benchmarks that fail with IBM 128-bit long double that now pass with IEEE 128-bit long double. There is one test that fails when long double is 64-bits. -- 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