From d3a308789eaa0f878bc3a254917ae89efdbd3096 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Tue, 17 Jul 2018 20:31:42 +0000 Subject: [PATCH] [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 --- llvm/docs/LangRef.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 -- 2.7.4