On Mon, Aug 3, 2015 at 11:14 PM, FX <fxcoud...@gmail.com> wrote: > 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?
Can you please also introduce tests for ieee exceptions for long double and __float128 types (as is done for real and double in gfortran.dg/ieee/ieee_1.F90) as well as test for supported rounding modes as done for real and double in gfortran.dg/ieee/rounding_1.f90 ? On x86_64, these new tests will exercise exceptions and rounding modes for __float128 soft-fp library, in addition to x87 long double tests. Uros.