diff options
| author | Kevin P. Neal <kevin.neal@sas.com> | 2019-05-13 13:23:30 +0000 |
|---|---|---|
| committer | Kevin P. Neal <kevin.neal@sas.com> | 2019-05-13 13:23:30 +0000 |
| commit | 5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf (patch) | |
| tree | 2f62678e66e88a512fab9be089c691a38db0a5c7 /llvm/docs | |
| parent | d5fb162563986951ddc4d20dccd735b8257605e0 (diff) | |
| download | bcm5719-llvm-5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf.tar.gz bcm5719-llvm-5987749e33bbe4d8dd43b26f39165fcfd9cdcfdf.zip | |
Add constrained fptrunc and fpext intrinsics.
The new fptrunc and fpext intrinsics are constrained versions of the
regular fptrunc and fpext instructions.
Reviewed by: Andrew Kaylor, Craig Topper, Cameron McInally, Conner Abbot
Approved by: Craig Topper
Differential Revision: https://reviews.llvm.org/D55897
llvm-svn: 360581
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/LangRef.rst | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 66490b85834..0c1d87bc915 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -14823,6 +14823,77 @@ The result produced is the product of the first two operands added to the third operand computed with infinite precision, and then rounded to the target precision. +'``llvm.experimental.constrained.fptrunc``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" + +:: + + declare <ty2> + @llvm.experimental.constrained.fptrunc(<type> <value>, + metadata <rounding mode>, + metadata <exception behavior>) + +Overview: +""""""""" + +The '``llvm.experimental.constrained.fptrunc``' intrinsic truncates ``value`` +to type ``ty2``. + +Arguments: +"""""""""" + +The first argument to the '``llvm.experimental.constrained.fptrunc``' +intrinsic must be :ref:`floating point <t_floating>` or :ref:`vector +<t_vector>` of floating point values. This argument must be larger in size +than the result. + +The second and third arguments specify the rounding mode and exception +behavior as described above. + +Semantics: +"""""""""" + +The result produced is a floating point value truncated to be smaller in size +than the operand. + +'``llvm.experimental.constrained.fpext``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" + +:: + + declare <ty2> + @llvm.experimental.constrained.fpext(<type> <value>, + metadata <exception behavior>) + +Overview: +""""""""" + +The '``llvm.experimental.constrained.fpext``' intrinsic extends a +floating-point ``value`` to a larger floating-point value. + +Arguments: +"""""""""" + +The first argument to the '``llvm.experimental.constrained.fpext``' +intrinsic must be :ref:`floating point <t_floating>` or :ref:`vector +<t_vector>` of floating point values. This argument must be smaller in size +than the result. + +The second argument specifies the exception behavior as described above. + +Semantics: +"""""""""" + +The result produced is a floating point value extended to be larger in size +than the operand. All restrictions that apply to the fpext instruction also +apply to this intrinsic. + Constrained libm-equivalent Intrinsics -------------------------------------- |

