}
if (ab_mask == float_cmask_zero) {
+ /* 0 - 0 */
a.sign = s->float_rounding_mode == float_round_down;
return a;
}
}
if (ab_mask == float_cmask_zero) {
+ /* 0 + 0 */
return a;
}
if (ab_mask & float_cmask_inf) {
+ /* N + Inf or Inf + N */
a.cls = float_class_inf;
return a;
}
}
- if (b.cls == float_class_zero) {
- g_assert(is_anynorm(a.cls));
- return a;
- }
-
- g_assert(a.cls == float_class_zero);
- g_assert(is_anynorm(b.cls));
- return b;
+ /* 0 +/- N or N +/- 0 */
+ assert((ab_mask & float_cmask_zero) && (ab_mask & float_cmask_anynorm));
+ return b.cls == float_class_zero ? a : b;
}
/*