The FPRoundBase
[1] uses "tininess before rounding" logic if FPCR.AH != '1'
:
// Underflow occurs if exponent is too small before rounding, and result is inexact or
// the Underflow exception is trapped. This applies before rounding if FPCR.AH != '1'.
boolean trapped_UF = fpcr.UFE == '1' && (!InStreamingMode() || IsFullA64Enabled());
if !altfp && biased_exp == 0 && (error != 0.0 || trapped_UF) then
if fpexc then FPProcessException(FPExc_Underflow, fpcr);
https://en.wikipedia.org/wiki/IEEE_754-2008_revision (empasis added):
Annex U of 754r recommended that only tininess after rounding and inexact as loss of accuracy be a cause for underflow signal.
In case of FPCR.AH != '1'
: what is the rationale for tininess "before rounding" (instead of "after rounding")?
[1] Arm Architecture Reference Manual for A-profile architecture (issue J.a), shared/functions/float/fpround/FPRoundBase
on page J1-12437