On 4/18/21 10:56 PM, [email protected] 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~