Does FMIN.S use the rm rounding mode?
No. The instruction uses funct3 to distinguish FMIN/FMAX and has no rm rounding operand in assembly syntax.
Return the minimum of two single-precision floating-point operands.
FMIN.S selects the numerically smaller single-precision operand. Ordinary FMIN/FMAX follows the official minimumNumber/maximumNumber rules: with exactly one NaN input it returns the non-NaN operand, with two NaNs it returns canonical NaN; signaling NaN sets NV, and -0.0 is less than +0.0.
Shows the F-extension single-precision OP-FP flow: decode fields, read FP operands, perform FMIN semantics, then write rd.
The word is split as an R-type OP-FP instruction; single-precision OP-FP instructions use opcode 1010011.
The default example shows the official signed-zero ordering: -0.0 is less than +0.0. With NaNs, ordinary FMIN/FMAX returns the non-NaN operand for a single NaN and canonical NaN for two NaNs; signaling NaN sets NV.
The default example shows the official signed-zero ordering: -0.0 is less than +0.0. With NaNs, ordinary FMIN/FMAX returns the non-NaN operand for a single NaN and canonical NaN for two NaNs; signaling NaN sets NV.
This animation shows only F-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.
FMIN.S is an F-extension OP-FP selection instruction, not rounded arithmetic. The key points are how funct5/fmt/funct3 identify FMIN.S, and how NaNs and -0.0/+0.0 affect the selected result.
Understand this scenario with real code like «fmin.s f0, f1, f2 # f0 = min(f1,f2)».
Understand this scenario with real code like «fmin.s f0, f1, f2 # f0 = min(f1,f2)».
No. The instruction uses funct3 to distinguish FMIN/FMAX and has no rm rounding operand in assembly syntax.
The ordinary form returns the other non-NaN operand when exactly one input is NaN; the Zfa M form returns canonical NaN if either input is NaN.