mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-07 13:39:55 +00:00
With f32 denormals flushed, every f32 multiply and fma checks whether the exact product is below 2^-126 (#1850): two exponent extracts, a 32-bit significand multiply-high and a chain of compares and selects. When a factor is a literal or inline constant, its exponent settles the check during translation: - a factor that is zero (after the input flush), infinite, NaN or at least 1 in magnitude never gives a tiny product, so the check is not emitted; - a power-of-two factor never carries out of the significand product, so the multiply-high is not emitted. Constant sources are folded with their abs, neg and denormal flush, so the factor reaches the check as a constant.