On 10/14/21 11:54 PM, frank.ch...@sifive.com wrote:
+ /* + * In IEEE 754-2019, minNum, maxNum, minNumMag and maxNumMag + * are removed and replaced with minimum, minimumNumber, maximum + * and maximumNumber. + * minimumNumber/maximumNumber behavior for SNaN is changed to: + * If both operands are NaNs, a QNaN is returned. + * If either operand is a SNaN, + * an invalid operation exception is signaled, + * but unless both operands are NaNs, + * the SNaN is otherwise ignored and not converted to a QNaN. + */ + if (!(~flags & (minmax_isnum | minmax_snan_noprop)) + && (ab_mask & float_cmask_snan) + && (ab_mask & ~float_cmask_anynan)) { + float_raise(float_flag_invalid, s); + return is_nan(a->cls) ? b : a; + }
This part looks ok.
+ MINMAX_1(type, maxnum_noprop, minmax_isnum | minmax_snan_noprop) \ + MINMAX_1(type, minnum_noprop, minmax_ismin | minmax_isnum | \ + minmax_snan_noprop) \
But here, you have been given names by 754-2019: minimumNumber, maximumNumber, so I think you should use them.
r~