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~