From: Eli Friedman Date: Tue, 17 Jul 2018 20:31:42 +0000 (+0000) Subject: [LangRef] nnan and ninf produce poison. X-Git-Tag: llvmorg-7.0.0-rc1~1206 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d3a308789eaa0f878bc3a254917ae89efdbd3096;p=platform%2Fupstream%2Fllvm.git [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 --- diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 1f4641c..4dc010d 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -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 ` 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 ` instead. ``nsz`` No Signed Zeros - Allow optimizations to treat the sign of a zero