[quote]jyknight
17h
I do not believe this is correct.
IEEE 754-2019 “5.5 Quiet-computational operations” states:
“Implementations shall provide the following homogeneous quiet-computational sign bit operations for all supported arithmetic interchange formats; they only affect the sign bit. The operations treat floating-point numbers and NaNs alike, and signal no exception.”
It seems to pretty clearly state the opposite of what you’re claiming.[/quote]
IEEE 754-2019 5.5 indicates copySign is allows not to copy the sign-bit on a NaN source
IEEE 754-2019 5.8 pp 3 talks about NaN conversions and raising exceptions. If the exception
is suppressed, the standard takes no position on the integer value of
a NaN or of an infinity. Thus it becomes implementation defined. In
any event, NaN payload propagation is not guaranteed.
IEEE 754-2019 5.12.1 allows for conversion of NaNs to ASCII and back without payloads;
but suggests (should) that the implementation provide a means to
convert payloads to ASCII and back.
IEEE 754-2019 6.2 pp 1 last sentence uses the word should
pp 2 indicates quieting of signaling NaNs
pp 3 indicates payload can decay when converting to and back from ASCII
pp 3 sentence 2 indicates a NaN payload can be discarded
“shall result in a canonical quiet NaN”
sentence 3 "Recognize that format conversions, including conversions
between supported formats and external representations
as character sequences, might be unable to deliver the
same NaN
allows for calculations to discard the payload (on lower quality
implementations.
IEEE 754-2019 6.2.3 Every sentence uses the word should instead of shall (excepting the last sentence that uses shall and points back at 5.5.
So, there are lots of loopholes in the [processing of NaNs.
[quote][quote=“Mitch_Alsup, post:42, topic:66729”]
IEEE 754 allows signaling NaNs to become quiet NaNs when “copied” and to lose their payload when copied.
[/quote]
I also don’t see this; AFAICT, it’s prohibited by the same section (since “copy” is considered a “quiet-computational sign bit operation”).
If you disagree, can you quote text that leads to your opposite conclusion?[/quote]
Consider a other-wise IEEE compliant implementation that performs MOV FPregister,FPregister
By performing FADD FPregister,FPregister,#0.0; This certainly moves the FPregister to another.
Does the required suppression of Signaling NaN in FADD now make the entire implementation
non-compliant ??? The above paragraphs indicates there is leeway in NaN propagation here.