Does FROUNDNX.H write an integer register?
No. The result is written to floating-point register f[rd]; the floating-point value is integral.
Round a half-precision floating-point value to an integral value in the same FP format; set NX only when the input differs from the rounded result and is not NaN.
FROUNDNX.H rounds the half-precision floating-point value in f[rs1] to an integral value according to rm, but writes the result back to f[rd] in the same half-precision floating-point format. FROUNDNX sets NX when the input differs from the rounded result and is not NaN. A signaling NaN sets NV; quiet NaNs follow the floating-point NaN result rules.
Shows the Zfa + Zfh-extension half-precision OP-FP flow: decode fields, read FP operands, perform FROUNDNX semantics, then write rd.
The word is split as an R-type OP-FP instruction; half-precision OP-FP instructions use opcode 1010011.
This bounded teaching model computes whitelisted finite examples plus zero, infinity, and NaN; FROUNDNX.H writes the integral value in H format. Zero and infinity are copied. NX is set when the input differs from the rounded result and is not NaN.
This bounded teaching model computes whitelisted finite examples plus zero, infinity, and NaN; FROUNDNX.H writes the integral value in H format. Zero and infinity are copied. NX is set when the input differs from the rounded result and is not NaN.
This animation shows only Zfa + Zfh-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.
FROUNDNX.H differs from FCVT by output type: FROUNDNX.H still writes a floating-point register, with the value rounded to an integral value. FROUNDNX reports NX only when the input differs from the rounded result and is not NaN.
Understand this scenario with real code like «froundnx.h f0, f1, rne # f0 = round(f1) with inexact flag».
Understand this scenario with real code like «froundnx.h f0, f1, rne # f0 = round(f1) with inexact flag».
No. The result is written to floating-point register f[rd]; the floating-point value is integral.
FROUNDNX sets NX only when the input differs from the rounded result and is not NaN; FROUND does not set NX.