On Mon, Jun 11, 2018 at 07:31:44PM -0400, Michael Meissner wrote: > This patch is a complete rework of the previous patch. Previously I used new > target hooks to provide IFmode (__ibm128) from being widened by default to > TFmode (long double) on power9 systems when long double is IEEE 128-bit. > > This patch reorganizes the 3 128-bit floating point types, so that IFmode is > numerically higher than TFmode/KFmode. This means IFmode is considered the > widest type. Since we do not define arithmetic insns for IFmode, other than > negate/absolute value (that we define for the other types), we will not have > undesirable widening. I needed to change long double size so that lookup of > size would get the TFmode type and not the IFmode. > > Since I reorganized the modes, the compiler now uses truncif{kf,tf}2 instead > of > extend{tf,kf}if2. It turns out I had the argument modes backwards for trunc. > I have included a fix for this thinko. > > I have built this on the following systems, and they bootstrapped and had no > regressions. Can I check this into the trunk, and after a burn-in period > check > it into GCC 8.2, assuming the last build on power6 has no regressions? > > 1) Little endian power8 system (64-bit), --with-cpu=power8; > 2) Big endian power8 system (64/32-bit), --with-cpu=power8; > 3) Big endian power8 system (64/32-bit), no --with-cpu; > > I'm currently building it on: > > 4) Big endian power6 system (64/32-bit), no --with-cpu.
Whoops, I forgot I also did the following and it had no regressions: 5) Little endian power9 system (64-bit), --with-cpu=power9 -- 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