On Sat, 17 Jul 2021 at 21:46, Richard Henderson <richard.hender...@linaro.org> wrote: > > On 7/13/21 6:37 AM, Peter Maydell wrote: > > +/* Max and min of absolute values */ > > +static int64_t do_maxa(int64_t n, int64_t m) > > +{ > > + if (n < 0) { > > + n = -n; > > + } > > + if (m < 0) { > > + m = -m; > > + } > > + return MAX(n, m); > > +} > > This doesn't look quite right. The n operand is extracted unsigned, and only > the m > operand is subjected to ABS.
Yes, you're right (this patch does always extract ra (here n) unsigned, so the only case where it makes a difference is VMINAV when the input ra is negative). I noticed this wrinkle when implementing the FP variant of this insn, but missed it here. -- PMM