If FLT_HAS_SUBNORM is 0 and if during execution of the FP operation (add, mul, div, etc.) a subnormal value arises (or if a subnormal value is given as input to these FP operations), then the FP engine's implementation (i.e. HW implementation [FPU], SW implementation [SW FP library], mixed HW-SW implementation [SW FP library using HW instructions followed by additional SW post-processing]) can:
- detect such subnormal values and set them to zeros (i.e.
flash-to-zeropolicy / logic); - do nothing [special] (leading to unpredictable output result values).
Question: can someone provide a correct argumentation (better if strengthened by references to C / IEEE 754 standards) convincing that the behavior of this case does fall into unspecified behavior category?
Note: ISO/IEC 9899:202x (E) working draft — February 5, 2020 N2479:
3.4.4 unspecified behavior
behavior, that results from the use of an unspecified value, or other behavior upon which this document provides two or more possibilities and imposes no further requirements on which is chosen in any instance
Replying to myself.
In this case:
XXX_HAS_SUBNORMis 0), then the output result is indeterminate.XXX_HAS_SUBNORM is 0).