sizeof(long double) vs. std::numeric_limits and x86-64 vs x86

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I wanted to check how many bits long double takes. So I checked sizeof(long double) which, naturally, may account for padding. On x86-64 it takes 16 bytes and only 12 on x86, a difference of 4 bytes. This supported my hope that on x86-64 we would have "long double"= |__float128|.


But this difference does not exist in std::numeric_limits<long double>. Does it really mean that only the padding is different between the architectures, but the type is still the same?

If "long double" != |__float128|, then is there any chance to have a correct definition of std::numeric_limits<__float128> in the near future? If not, where can I find macro names such as __LDBL_MANT_DIG__ for __float128?
Running
gcc -g -E -dM t.cpp | grep MANT_DIG__
gives only

   #define __FLT_MANT_DIG__ 24
   #define __DEC64_MANT_DIG__ 16
   #define __LDBL_MANT_DIG__ 64
   #define __DBL_MANT_DIG__ 53
   #define __DEC32_MANT_DIG__ 7
   #define __DEC128_MANT_DIG__ 34

no mention of anything like FLT128

Thanks

--
  Michael





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux