When does rm matter for fcvt.h.d?
When the destination format cannot exactly represent the source value, rm or dynamic frm selects the rounding direction.
Convert double-precision float to half-precision float
fcvt.h.d converts a double-precision source operand to a narrower half-precision result. If the destination format cannot represent the value exactly, the result is rounded according to rm.
fcvt.h.d converts a double-precision source operand to a narrower half-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.h.d f10, f11, rne ; f10 = (half)f11».
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.