The attached patch extends the IEEE modules to all floating-point kinds. Last 
time, when I added IEEE support, I restricted it to the float and double types 
(real kinds 4 and 8), to be extra safe. After discussion with Uros Bizjak and 
some reading, I’ve come to the conclusion that on most hardware where we 
support IEEE at all, we do support enough IEEE features on extended and quad 
prec (long double and __float128, on x86_64 hardware) to satisfy the Fortran 
standard.

So, this enables full IEEE support for all real kinds. Nothing changes to the 
underlying architecture, it’s almost exclusively mechanical changes (adding the 
necessary variants to the interfaces, etc.). 

Bootstrapped and regtested on x86_64-apple-darwin14 (with associated 
libquadmath patch: https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00124.html).
OK to commit to trunk?

FX


PS: Once this is in, I intend to focus on the next item: allowing all 
standard-mandated IEEE functions in constant expressions. Then, I believe our 
IEEE support will be entirely bug-free (in the sense that there will be no 
known bugs in it!).

Attachment: ieee.ChangeLog
Description: Binary data

Attachment: ieee.diff
Description: Binary data

Reply via email to