http://www.perlmonks.org?node_id=1057671


in reply to Re^3: powerpc double-double arithmetic
in thread powerpc double-double arithmetic

for PPC, I guess sizeof is returning 16 for alignment reasons

With PPC, it actually uses the 16 bytes (in the form of 2 8-byte doubles).
There are other processors that use 12 bytes but assign 16 bytes (for alignment purposes, as you said).

Cheers,
Rob

Replies are listed 'Best First'.
Re^5: powerpc double-double arithmetic
by bulk88 (Priest) on Oct 10, 2013 at 12:00 UTC
    So if its vector math op (SSE, etc), its really 2 64 bit doubles and not a "long double". Long double would mean over 64 bits of double/precision. You have "packed data" not a "long double". Does your CPU have 128 bit FP math (see also) or not? Does your compiler emulate 128 bit FP math (GCC yes as __float128)?
      The basics of its arithmetic is here.
      There's no 128 bit FP math with its gcc-4.6.3 compiler. I think the double-double technique precludes it. (Every other gcc-4.6.3 that I've seen has a quadmath.h that provides the __float128 type, but not this one - which is provided by Debian specifically for the PowerPC architecture.)

      Cheers,
      Rob