Index: docs/LangRef.rst =================================================================== --- docs/LangRef.rst +++ docs/LangRef.rst @@ -7567,10 +7567,13 @@ The '``fptrunc``' instruction casts a ``value`` from a larger :ref:`floating point ` type to a smaller :ref:`floating -point ` type. If the value cannot fit (i.e. overflows) within the -destination type, ``ty2``, then the results are undefined. If the cast produces -an inexact result, how rounding is performed (e.g. truncation, also known as -round to zero) is undefined. +point ` type. If the real number (``R``) represented by ``value`` cannot be +exactly represented using the :ref:`floating point ` type ``ty2``, then the +value returned must be either ``R`` truncated to fit in ``ty2`` (i.e. round to +zero), or the successor to ``R`` in ``ty2`` (i.e. round up), or the predecesor +to ``R`` (i.e. round down) in ``ty2``, or any of the special values in ``ty2`` +(i.e. +/- infinity, +/- zero and NaN). The method for choosing which of these +values to return is undefined. Example: """"""""