mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
clarify NaN propagation in fptrunc (#68554)
Follow-up to #66579: while implementing those semantics in Miri I realized there's a special case to be considered in truncating float casts.
This commit is contained in:
@@ -11332,7 +11332,10 @@ environment <floatenv>`.
|
||||
NaN values follow the usual :ref:`NaN behaviors <floatnan>`, except that _if_ a
|
||||
NaN payload is propagated from the input ("Quieting NaN propagation" or
|
||||
"Unchanged NaN propagation" cases), then the low order bits of the NaN payload
|
||||
which cannot fit in the resulting type are discarded.
|
||||
which cannot fit in the resulting type are discarded. Note that if discarding
|
||||
the low order bits leads to an all-0 payload, this cannot be represented as a
|
||||
signaling NaN (it would represent an infinity instead), so in that case
|
||||
"Unchanged NaN propagation" is not possible.
|
||||
|
||||
Example:
|
||||
""""""""
|
||||
|
||||
Reference in New Issue
Block a user