When does rm matter for fcvt.s.q?
When the destination format cannot exactly represent the source value, rm or dynamic frm selects the rounding direction.
Convert quad to single FP. May round/overflow/underflow. R-type, fmt=S(00), rs2=source Q(11).
fcvt.s.q converts a quad-precision source operand to a narrower single-precision result. If the destination format cannot represent the value exactly, the result is rounded according to rm.
fcvt.s.q converts a quad-precision source operand to a narrower single-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.s.q f0, f1, rne # f0 = (float)(quad)f1».
Understand this scenario with real code like «fcvt.s.q f0, f1, rne # f0 = (float)(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.