Does FROUND.D write an integer register?
No. The result is written to floating-point register f[rd]; the floating-point value is integral.
Round a double-precision floating-point value to an integral value in the same FP format, without setting NX.
FROUND.D rounds the double-precision FP value in f[rs1] to an integral value according to rm and writes it in D format to f[rd]. Zero and infinity are copied unchanged; a signaling NaN sets NV and no other exception flags. Unlike FROUNDNX, FROUND does not set NX.
Shows the Zfa + D-extension double-precision OP-FP flow: decode fields, read FP operands, perform FROUND semantics, then write rd.
The word is split as an R-type OP-FP instruction; double-precision OP-FP instructions use opcode 1010011.
This bounded teaching model computes whitelisted finite examples plus zero, infinity, and NaN; FROUND.D writes the integral value in D format. Zero and infinity are copied. FROUND does not set NX and sets no exception flags other than NV.
This bounded teaching model computes whitelisted finite examples plus zero, infinity, and NaN; FROUND.D writes the integral value in D format. Zero and infinity are copied. FROUND does not set NX and sets no exception flags other than NV.
This animation shows only Zfa + D-extension ISA-visible OP-FP encoding, example numeric results, and fflags relationship; it does not model FPU pipelines, latency, every IEEE 754 corner case, or microarchitecture.
FROUND.D differs from FCVT by output type: FROUND.D still writes a floating-point register, with the value rounded to an integral value. FROUND deliberately does not report inexact NX.
Understand this scenario with real code like «fround.d f10, f11, rup ; round f11 toward +∞».
Understand this scenario with real code like «fround.d f10, f11, rup ; round f11 toward +∞».
No. The result is written to floating-point register f[rd]; the floating-point value is integral.
FROUND does not set NX; FROUNDNX sets NX only when the input differs from the rounded result and is not NaN.