softfloat: Remove assertion preventing silencing of NaN in default-NaN mode
commit2c8cb5888e998d7ba8e36c312644a11d832dbe9c
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 1 Sep 2021 08:02:37 +0000 (1 09:02 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 1 Sep 2021 10:08:17 +0000 (1 11:08 +0100)
treedb34dc7ee6185aed7938c8e44b065da1d8b4c9c5
parent4773e74e5f58dbf5637a27f37cd3b95b0ee33ac8
softfloat: Remove assertion preventing silencing of NaN in default-NaN mode

In commit a777d6033447a we added an assertion to parts_silence_nan() that
prohibits calling float*_silence_nan() when in default-NaN mode.
This ties together a property of the output ("do we generate a default
NaN when the result is a NaN?") with an operation on an input ("silence
this input NaN").

It's true that most of the time when in default-NaN mode you won't
need to silence an input NaN, because you can just produce the
default NaN as the result instead.  But some functions like
float*_maxnum() are defined to be able to work with quiet NaNs, so
silencing an input SNaN is still reasonable.  In particular, the
upcoming implementation of MVE VMAXNMV would fall over this assertion
if we didn't delete it.

Delete the assertion.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
fpu/softfloat-specialize.c.inc