We considered supporting payloads but frankly could not find any example of this being used portably in practice.
The whole concept does seem a little brittle to us, and there is a non-zero hardware cost to propagating NaN payloads for many FP operations.
7.3 NaN Generation and Propagation
Except when otherwise stated, if the result of a floating-point operation is NaN, it is the canonical NaN. The canonical NaN has a positive sign and all significand bits clear except the MSB, a.k.a. the quiet bit. For single-precision floating-point, this corresponds to the pattern 0x7fc00000.
For FMIN and FMAX, if at least one input is a signaling NaN, or if both inputs are quiet NaNs, the result is the canonical NaN. If one operand is a quiet NaN and the other is not a NaN, the result is the non-NaN operand.
The sign-injection instructions (FSGNJ, FSGNJN, FSGNJX) do not canonicalize NaNs; they manipulate the underlying bit patterns directly.
We considered propagating NaN payloads, as is recommended by the standard, but this decision would have increased hardware cost. Moreover, since this feature is optional in the standard, it cannot be used in portable code.
Implementors are free to provide a NaN payload propagation scheme as a nonstandard exten- sion enabled by a nonstandard operating mode. However, the canonical NaN scheme described above must always be supported and should be the default mode.