Index: docs/LangRef.rst =================================================================== --- docs/LangRef.rst +++ docs/LangRef.rst @@ -7565,12 +7565,14 @@ Semantics: """""""""" -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. +The '``fptrunc``' instruction casts a ``value`` from a larger :ref:`floating +point ` type to a smaller :ref:`floating 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 any of the +special values in ``ty2`` (e.g. +/- infinity, +/- zero and NaN). The method for +choosing which of these values to return is undefined. Example: """"""""