You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 26, 2020. It is now read-only.
The language reference is not so clear on what happens when floating point arithmetic instructions produce a NaN. We should specify that.
Can instructions return a signaling NaN or only quiet NaNs?
When propagating a NaN input, can the payload bits change?
The specification should be tight enough that WebAssembly semantics are simple to represent, and loose enough that we don't need lots of NaN adjustment code emitted for fadd on common targets.
Copying the WebAssembly semantics is probably a good choice.
The text was updated successfully, but these errors were encountered:
Can Cretonne depend on the IEEE 754-2008-recommended encoding for signaling NaN? This would simplify some things in the NaN rules, with the only practical downside being incompatibility with older (though still in use) MIPS CPUs. For reference, WebAssembly has this dependency, though Rust doesn't.
Should Cretonne keep the non-associative minnum/maxnum operators?
On one hand, these map to instructions on ARM and Power.
I think we should follow WebAssembly on NaN representations for now. We can revisit if old MIPS chips become relevant for us.
I would be OK with removing fmaxnum and fminnum. We should add a note to the remaining fmin and fmax to make it clear that they are not the functions from IEEE 754-2008.
The language reference is not so clear on what happens when floating point arithmetic instructions produce a NaN. We should specify that.
The specification should be tight enough that WebAssembly semantics are simple to represent, and loose enough that we don't need lots of NaN adjustment code emitted for
fadd
on common targets.Copying the WebAssembly semantics is probably a good choice.
The text was updated successfully, but these errors were encountered: