Also, I don't think the call to perform_ibm_extended_fixups in is_subnormal is correct. Subnormal for IBM long double is *not* the same as subnormal double high part. Likewise it's incorrect in is_normal as well.
Generally, I don't see tests added that these new functions are correct for float, double and long double, which would detect such issues if run for a target with IBM long double. -- Joseph S. Myers jos...@codesourcery.com