On Thu, Jun 14, 2018 at 08:15:51PM -0400, Michael Meissner wrote: > On Thu, Jun 14, 2018 at 07:00:52PM -0500, Segher Boessenkool wrote: > > Hi Mike, > > > > On Wed, Jun 13, 2018 at 05:16:37PM -0400, Michael Meissner wrote: > > > This fixes some of the PowerPC tests that had implicit assumptions about > > > the > > > long double format. The fixes involved: > > > > > > 1) Using long double __complex instead of using a KC attribute; > > > > Why? Does KC not work? It should work. > > No KC does not work if long double is IEEE, just like IC does not work if long > double is IBM extended double. This is part of the __float128/__ibm128 > changes > that eliminated using separate types all of the time.
But those aren't types, those are modes. Why would the modes not work? That makes no sense. Just like the __ieee128 and __ibm128 types work always, so should the IF, KF, IC and KC modes. So what happens if you try to use KC? > > > 2) Explicitly adding -mabi=ibmlongdouble; (or) > > > > What in these tests requires IBM long double? It is not clear. > > These are tests that test things like the format of IBM extended double > (things > like pack, unpack, making sure the various __builtin_is<xxx> work for > carefully > crafted numbers). Aha. > > > 3) Using __ibm128 instead of long double if long double is IEEE > > > 128-bit. > > > > Can't you do that *always*? Why not? > > Because __ibm128 is only defined if we have __float128 support. It is not > defined on non-VSX Linux systems. Please document this in the test, then. Segher