Is FCVT.L.D available on RV32?
No. The official F/D conversion rules define the L/LU 64-bit integer forms as RV64-only.
RV64 double precision-to-signed 64-bit integer conversion, rounded by rm/frm and written to integer rd.
FCVT.L.D is an RV64-only floating-point-to-integer conversion. It rounds the double precision value in f[rs1] according to rm to a signed 64-bit integer and writes x[rd]; inexact conversion sets NX, while NaN, infinity, or out-of-range input sets NV by the official invalid-conversion rule.
Shows the D-extension FCVT flow: decode OP-FP fields, fmt/rs2 conversion selection, rm rounding, read the floating-point source, then write the integer destination.
The word is split as an R-type OP-FP instruction; FCVT conversion instructions use opcode 1010011.
The current example rounds to a 64-bit integer according to rm and shows NX because the source has a fractional part.
The current example rounds to a 64-bit integer according to rm and shows NX because the source has a fractional part.
This animation shows only D-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.l.d is an RV64-only FCVT.L.D form: it reads a double precision FP register, rounds according to rm/frm to a signed 64-bit integer, and writes integer rd.
Understand this scenario with real code like «fcvt.l.d x10, f0, rtz # x10 = (long)f0 (RV64)».
No. The official F/D conversion rules define the L/LU 64-bit integer forms as RV64-only.
This is an FP-to-integer conversion: rd is an integer register and rs1 is an FP register.
The rs2 field selects the L signed 64-bit integer format; it is not a second source operand in assembly syntax.