+ union ieee754_double f;
+
+ f.d = d;
+ if (f.ieee.exponent == 0x7FF &&
+ (f.ieee.mantissa0 != 0 ||
+ f.ieee.mantissa1 != 0))
+ return 1;
+
+ return 0;
+}
+
+static int __isnanl(long double d)
+{
+ union ieee854_long_double f;
+
+ f.d = d;
+ if (f.ieee_nan.exponent == 0x7FFF &&
+ (f.ieee_nan.quiet_nan ||
+ f.ieee_nan.mantissa1 ||
+ f.ieee_nan.mantissa0))
+ return 1;