1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-02-01 05:01:59 +01:00

[LangRef] nnan and ninf produce poison.

Clarify that violating nnan and ninf can lead to undefined behavior.
This allows more aggressive optimizations based on those assumptions.

Differential Revision: https://reviews.llvm.org/D47963

llvm-svn: 337323
This commit is contained in:
Eli Friedman 2018-07-17 20:31:42 +00:00
parent 0e00c7e30d
commit 1caf103655

View File

@ -2350,13 +2350,13 @@ floating-point transformations.
``nnan``
No NaNs - Allow optimizations to assume the arguments and result are not
NaN. Such optimizations are required to retain defined behavior over
NaNs, but the value of the result is undefined.
NaN. If an argument is a nan, or the result would be a nan, it produces
a :ref:`poison value <poisonvalues>` instead.
``ninf``
No Infs - Allow optimizations to assume the arguments and result are not
+/-Inf. Such optimizations are required to retain defined behavior over
+/-Inf, but the value of the result is undefined.
+/-Inf. If an argument is +/-Inf, or the result would be +/-Inf, it
produces a :ref:`poison value <poisonvalues>` instead.
``nsz``
No Signed Zeros - Allow optimizations to treat the sign of a zero