Does FMUL.Q raise integer exceptions?
No. RISC-V floating-point exceptions are accrued in fflags; software reads floating-point status state to observe them.
Quad-precision floating-point multiplication: rd = rs1 * rs2.
FMUL.Q performs quad-precision floating-point multiplication for fmul.q, rounds the result according to rm or the dynamic rounding mode, and writes rd. Special values, NaNs, infinities, divide-by-zero cases, and exception flags follow the IEEE 754 rules adopted by the RISC-V floating-point extensions.
FMUL.Q is a Q-related quad-precision floating-point multiplication instruction. It produces a floating-register result, uses rm when rounding is required, and records floating-point exception flags such as NV, DZ, OF, UF, and NX in fflags.
Understand this scenario with real code like «fmul.q f0, f1, f2, rne # f0 = f1*f2».
Understand this scenario with real code like «fmul.q f0, f1, f2, rne # f0 = f1*f2».
No. RISC-V floating-point exceptions are accrued in fflags; software reads floating-point status state to observe them.
rm selects the rounding mode; the dynamic rounding mode comes from frm. For exact results it does not change the value, but the field is still part of the instruction encoding.