On Mon, 28 Jun 2021 at 16:05, Richard Henderson <richard.hender...@linaro.org> wrote: > > On 6/28/21 7:54 AM, Peter Maydell wrote: > > Richard, Alex: what is the assertion trying to achieve ? It doesn't > > seem entirely obvious to me that because we're in default-NaN mode > > (which is a property of the *output* of FPU insns) that we should > > blow up on calling float*_silence_nan() (which is typically an action > > performed on the *input* of FPU insns). > > This was in response to e9e5534ff30. > > My assumption in adding the assert is that it was probably a configuration > error. If you > disagree, I suppose we can revert it, as it's not critical.
I just ran across this again, in a different context. For MVE VMAXNMV (which uses the "default FPSCR value"), I need to silence input SNaNs before performing the max/min operation. The logical way to do that is to call float*_silence_nan(). Except that that barfs on this assertion. So I think that having run into this assertion() twice now it's more awkward than helpful and I intend to put a patch deleting it in the appropriate part of my next MVE series. (In theory I could work around it by deliberately squashing the "use the default NaN value flag" in a local copy of the fp_status, but that seems like unnecessary work.) thanks -- PMM