On 17/04/18 09:53 AM, Gabriel F. T. Gomes wrote:
Hi, Dennis.

On Tue, 17 Apr 2018, Dennis Clarke wrote:

nix$ cat pq.c

Where does this test case file come from?

nix$ grep "FLT128_DIG"
/usr/local/gcc7/lib/gcc/powerpc64-unknown-linux-gnu/7.3.0/include/float.h
#undef FLT128_DIG
#define FLT128_DIG              __FLT128_DIG__

Notice that FLT128_DIG comes from ISO/IEC TS 18661-3, and that standard
states that FLT128_DIG is only defined if you define
__STDC_WANT_IEC_60559_TYPES_EXT__ before including float.h:

   #define __STDC_WANT_IEC_60559_TYPES_EXT__
   #include <float.h>

However, also notice that the standard is about the _Float128 type, not
about __float128 (although these types are somewhat related to each other).

nix$ /usr/local/gcc7/bin/gcc -v -m64 -g -S -o pq.s pq.c

To get compiler support for the __float128 type, you also need to pass
-mfloat128 to the compiler.

That won't work either. At least not on anything non-IBM Power type :

    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85440


This has been beaten to death at this point. One can not actually add
one plus one on an old 970 powerpc64 processor unless I write my own
flavour of _q_add. The new IBM Power9 will do full 128-bit floating
point in hardware and just about everything else will do software
emulation.  Except for old old powerpc64 gear which can't really do
anything without a lot of work in glibc and who knows where else.

Dennis

Reply via email to