|
From: | Richard Henderson |
Subject: | Re: [PATCH] fpu/softfloat: set invalid excp flag for RISC-V muladd instructions |
Date: | Mon, 19 Apr 2021 08:28:40 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 |
On 4/18/21 10:56 PM, frank.chang@sifive.com wrote:
+#elif defined(TARGET_RISCV) + /* + * For RISC-V, InvalidOp is set when multiplicands are Inf and zero + * and returns default NaN. + */ + if (infzero) { + float_raise(float_flag_invalid, status); + return 3; + } + + if (is_nan(a_cls)) { + return 0; + } else if (is_nan(b_cls)) { + return 1; + } else { + return 2; + }
This second half of the function made me go look into the spec to make sure you had got that selection right. But RISCV is always in default_nan mode, so all this is unused (and overridden in pick_nan_muladd).
I think for avoidance of confusion, you should use if (infzero) { float_raise(float_flag_invalid, status); } return 3; /* default nan */ r~
[Prev in Thread] | Current Thread | [Next in Thread] |