What is the main difference from the ordinary form?
The M form returns canonical NaN if either input is NaN; the ordinary form returns the other non-NaN operand when exactly one input is NaN.
Double-precision floating-point minimum: either NaN gives canonical NaN; otherwise select the smaller value, with -0.0 below +0.0.
FMINM.D is the Zfa double-precision IEEE 754-2019 minimum operation: if either input is NaN, the result is canonical NaN; otherwise it returns the numerically smaller operand and handles -0.0 versus +0.0 as specified.
Shows the Zfa + D-extension double-precision OP-FP flow: decode fields, read FP operands, perform FMINM semantics, then write rd.
The word is split as an R-type OP-FP instruction; double-precision OP-FP instructions use opcode 1010011.
The default example shows the official signed-zero ordering: -0.0 is less than +0.0. If either input is NaN, Zfa FMINM/FMAXM returns canonical NaN; a signaling NaN sets NV.
The default example shows the official signed-zero ordering: -0.0 is less than +0.0. If either input is NaN, Zfa FMINM/FMAXM returns canonical NaN; a signaling NaN sets NV.
Assumes required extensions and FS enabled, valid NaN-boxing, and initial fflags=0. Finite inputs use the exact whitelist; signed zeros, infinities, qNaN, and sNaN are supported. Other inputs stop execution. One source register has one initial value; rd may overlap a source and f0 accepts writes. Steps are teaching views.
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.
FMINM.D returns canonical NaN if either input is NaN; ordinary FMIN returns canonical NaN only when both inputs are NaNs.
Assume required extensions and FP state enabled, f1=-0.0 and f2=+0.0 in this format (validly NaN-boxed for wider FLEN), and initial fflags=0: the example writes f0=-0.0, with fflags still 0. Either NaN gives canonical NaN; sNaN also sets NV.
Assume required extensions and FP state enabled, f1=-0.0 and f2=+0.0 in this format (validly NaN-boxed for wider FLEN), and initial fflags=0: the example writes f0=-0.0, with fflags still 0. Either NaN gives canonical NaN; sNaN also sets NV.
The M form returns canonical NaN if either input is NaN; the ordinary form returns the other non-NaN operand when exactly one input is NaN.
It performs no arithmetic rounding and has no rm operand. Without NaNs it selects the smaller operand; either NaN instead produces canonical NaN.