Is rs1 in FLH an FP register?
No. rs1 is an integer register that provides the memory base address; rd is the FP destination register.
Load a 16-bit half-precision floating-point bit pattern from memory into an FP register.
FLH uses the I-type LOAD-FP encoding to load a 16-bit half-precision floating-point bit pattern from the effective address x[rs1] plus a signed 12-bit byte offset into floating-point register f[rd]. The transfer performs no FP rounding, format conversion, or NaN payload canonicalization; when written into a wider FLEN register, the half-precision value is stored using Zfh NaN-boxing rules. Atomicity of naturally aligned access follows the official Zfh rule, while misaligned access is constrained by the execution environment.
Shows the Zfh/Zfhmin-extension FP load flow: decode the I-type encoding, form the address from an integer base plus a 12-bit offset, and transfer a 16-bit FP bit pattern.
The word is split as a I-type instruction; FP memory access is not an OP-FP arithmetic encoding.
FLH transfers a 16-bit half-precision bit pattern and NaN-boxes the value written to rd under Zfh rules; the transfer preserves non-canonical NaN payloads.
Assumes the extension is available, FS enabled, FLEN=32, and readable memory with no faults except the selected misalignment outcome. The bit-pattern input is the complete 16-bit loaded value; the upper 16 bits are written as all 1s; f0 accepts writes and x0 supplies a zero base. Steps are teaching views.
This animation shows only Zfh/Zfhmin-extension FP load/store ISA-visible address calculation and bit-pattern transfer; it does not model caches, buses, trap handlers, FPU pipelines, or microarchitectural timing.
FLH is the Zfh/Zfhmin half-precision floating-point load. It forms the address from integer register rs1 plus a signed 12-bit byte offset, then loads a 16-bit half-precision bit pattern into FP register rd; this is not FP arithmetic and does not use rm rounding.
Understand this scenario with real code like «flh f10, 0(x11) # load the 16-bit pattern at x11; NaN-box into f10».
Understand this scenario with real code like «flh f10, 0(x11) # load the 16-bit pattern at x11; NaN-box into f10».
No. rs1 is an integer register that provides the memory base address; rd is the FP destination register.
No. FLH is a bit-pattern load, not FCVT; it moves the half-precision encoding and stores it in wider FLEN registers using NaN-boxing.