Gcc46 and 128 Bit Floating Point
Steve Kargl
sgk at troutmask.apl.washington.edu
Tue Feb 21 15:23:43 UTC 2012
On Tue, Feb 21, 2012 at 12:12:32AM -0800, Thomas D. Dean wrote:
> On 02/20/12 23:20, Steve Kargl wrote:
>
> >float --------> 24 bit significand, 32 bit size.
> >double -------> 53 bit significand, 64 bit size.
> >long double --> 53 bit significand, 80 bit size, i386
> >long double --> 64 bit significand, 80 bit size, x86_64
> >long double --> 113 bit significand, 128 bit size, sparc64
> >__float128 ---> 113 bit significand, 128 bit size, i386, x86_64
> >
>
> Nice, if you are not working on my platform. In my initial message,
>
> From dmesg:
> CPU: Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz (4160.12-MHz K8-class CPU)
> Origin = "GenuineIntel" Id = 0x206d6 Family = 6 Model = 2d
> Stepping = 6
I saw your initial message, and yes, I noted that you are
using an x86_64 class cpu.
> And, I also said the __float128 is likely to leave me with some code
> that is orphaned.
As long as you use gcc 4.something or higher, you should have
access to __float128. So, code won't be orphaned. Now, if
you meant nonportable code, I agree. If you need more precision
that C99's long double and portability, then use mpfr.
--
Steve
More information about the freebsd-amd64
mailing list