Does exact widening omit rm?
rm remains encoded and may be explicit in assembly or omitted for dyn. Software should select rne; legal modes leave finite results unchanged, and reserved encoding rules still apply.
Convert half-precision FP to quad-precision FP. RV32/RV64 Q + Zfhmin (also included in Zfh with Q).
rd selects FP f0–f31, including writable f0; rs1 selects FP f0–f31; rs2 is a format selector, not a second source register.
32-bit OP-FP: funct5=01000, fmt=11, rs2=00010, opcode=1010011; no immediate.
RV32/RV64 Q+Zfhmin (also included in Zfh with Q); enable required extensions and FP state. Optional rm defaults to dyn, using frm; static 101/110 and dynamic frm=101–111 have reserved behavior. Finite widening is exact; software should select rne, and legal modes leave the value unchanged.
Check NaN-boxing for a H source narrower than FLEN; an invalid box becomes a canonical source-format NaN. The Q target is full width; overlapping registers read the original source. Exceptions accrue in fflags; setting a flag does not itself cause an FP exception trap.
Extension condition: Requires Q and half-precision support from either Zfh or Zfhmin; Q depends on D, and D depends on F. Extension filters find related instructions and do not by themselves describe a complete executable configuration.
fcvt.q.h reads a half-precision value from FP register rs1, widens it exactly to Q, and writes FP register rd; legal rounding modes do not change finite results.
Shows the Q + (Zfh or Zfhmin)-extension FCVT flow: decode OP-FP fields, fmt/rs2 conversion selection, the rm rounding field, read the floating-point source, then write the floating-point destination.
Leave rm empty for the assembly default dyn (111); this DYN example fixes frm=RNE. Use lowercase rne/rtz/rdn/rup/rmm/dyn only.
Assume required extensions and FP state are enabled, applicable source NaN-boxing is valid, and initial fflags=0. Results preview the current input; Writeback represents commit.
The word is split as an R-type OP-FP instruction; FCVT uses opcode 1010011.
H-to-Q is a floating-point widening conversion; the current finite example is exact, does not need rm rounding, and leaves example fflags at 0.
H-to-Q is a floating-point widening conversion; the current finite example is exact, does not need rm rounding, and leaves example fflags at 0.
This animation shows only Q + (Zfh or Zfhmin)-extension FCVT ISA-visible encoding, source/destination register direction, rounding field, and example fflags; it does not model FPU pipelines, exception handling, NaN payloads, or microarchitecture.
fcvt.q.h reads a half-precision value from FP register rs1, widens it exactly to Q, and writes FP register rd; legal rounding modes do not change finite results.
Understand this scenario with real code like «# f1=1.25; valid H NaN-boxing; fflags=0 fcvt.q.h f0, f1, rne # f0=1.25 (Q); fflags=0».
rm remains encoded and may be explicit in assembly or omitted for dyn. Software should select rne; legal modes leave finite results unchanged, and reserved encoding rules still apply.
No. rs1 is the FP source register; rs2=00010 selects source format H.