Underflow with an Exact Rounded Result

An exact subnormal result is not viewed as an Underflow condition by the IEEE 754-2008/2019 standard when operating with default exception handling. Consequently, FPU exceptions operate differently when the Underflow exception is disabled (enabling default exception handling for Underflow).

As summarized below, when operating with default exception handling (Underflow exception masked, FCR.UDFM = 1), the FPU will only signal Underflow (i.e., set FSR.UDF = 1) if the rounded subnormal result suffers from a loss of accuracy (such that the Inexact status will also be set). Otherwise, no status is affected. In both cases, the rounded (default) result will be delivered.

Note: If FTZ mode is active (FCR.FTZ && FCR.UDFM = 1), Inexact is signaled whenever a result is subnormal and not an exact zero.

When operating with alternate exception handling (Underflow exception is unmasked), Underflow will be signaled whenever a subnormal result is detected irrespective of whether it is exact or not. If the result also suffers from any loss of accuracy, Inexact will also be set.

Note: A zero result is not considered an Underflow condition, so will not signal Underflow irrespective of exception handling mode.
  • Default exceptions: UDF interrupt is masked (UDFM = 1)
    • If an inexact Underflow occurs, both UDF and INX (and sticky equivalents) are set.
    • If an exact Underflow occurs, no status is set.
    • In both cases, default (rounded) result is delivered, and no interrupts are generated.
  • Alternate exceptions: UDF interrupt is unmasked (UDFM = 0)
    • If any Underflow occurs, UDF (and sticky equivalent) is always set and an interrupt occurs. INX (and sticky equivalent) will also be set if it is inexact; it is cleared otherwise.
    • Default (rounded) result is delivered and interrupt is generated