On 01/24/2018 05:13 AM, Alex Bennée wrote: > + if (a.cls >= float_class_qnan > + || > + b.cls >= float_class_qnan) > + { > + if (ieee) { > + /* Takes two floating-point values `a' and `b', one of > + * which is a NaN, and returns the appropriate NaN > + * result. If either `a' or `b' is a signaling NaN, > + * the invalid exception is raised. > + */ > + if (a.cls == float_class_snan || b.cls == float_class_snan) { > + return pick_nan_parts(a, b, s); > + } else if (a.cls >= float_class_qnan > + && > + b.cls < float_class_qnan) { > + return b; > + } else if (b.cls >= float_class_qnan > + && > + a.cls < float_class_qnan) { > + return a; > + } > + }
is_nan. r~