]> gcc.gnu.org Git - gcc.git/commit
PowerPC: Use __builtin_pack_ieee128 if long double is IEEE 128-bit.
authorMichael Meissner <meissner@linux.ibm.com>
Wed, 4 Nov 2020 18:09:08 +0000 (13:09 -0500)
committerMichael Meissner <meissner@linux.ibm.com>
Wed, 4 Nov 2020 18:09:08 +0000 (13:09 -0500)
commit82b79c91f72aee806cbba074da980d63465bab25
treec63ca565e84cd3c73be35a57d68b9fa56f30e95c
parentf2bbbd669d9ef358fb39f2901e75ab02c291b3d8
PowerPC: Use __builtin_pack_ieee128 if long double is IEEE 128-bit.

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.

Can I install this into the trunk?

We have gotten some requests to back port these changes to GCC 10.x.  At the
moment, I am not planning to do the back port, but I may need to in the future.

libgcc/
2020-11-04  Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/ibm-ldouble.c (pack_ldouble): Use
__builtin_pack_ieee128 if long double is IEEE 128-bit.
libgcc/config/rs6000/ibm-ldouble.c
This page took 0.059092 seconds and 5 git commands to generate.