When does rm matter for fcvt.d.q?
When the destination format cannot exactly represent the source value, rm or dynamic frm selects the rounding direction.
Convert quad FP to double: f[rd] = (double)f[rs1]. R-type, fmt=D(01), rs2=source Q(11).
fcvt.d.q converts a quad-precision source operand to a narrower double-precision result. If the destination format cannot represent the value exactly, the result is rounded according to rm.
fcvt.d.q converts a quad-precision source operand to a narrower double-precision result. If the destination format cannot represent the value exactly, the result is rounded according to rm.
Understand this scenario with real code like «fcvt.d.q f0, f1, rne # f0 = (double)(quad)f1».
Understand this scenario with real code like «fcvt.d.q f0, f1, rne # f0 = (double)(quad)f1».
When the destination format cannot exactly represent the source value, rm or dynamic frm selects the rounding direction.
It differs by source/destination format, integer signedness, RV64 restrictions, and whether rounding or invalid conversion can occur.