[LangRef] nnan and ninf produce poison.
authorEli Friedman <efriedma@codeaurora.org>
Tue, 17 Jul 2018 20:31:42 +0000 (20:31 +0000)
committerEli Friedman <efriedma@codeaurora.org>
Tue, 17 Jul 2018 20:31:42 +0000 (20:31 +0000)
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

llvm/docs/LangRef.rst

index 1f4641c..4dc010d 100644 (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