diff options
| author | Kevin P. Neal <kevin.neal@sas.com> | 2019-08-28 16:33:36 +0000 |
|---|---|---|
| committer | Kevin P. Neal <kevin.neal@sas.com> | 2019-08-28 16:33:36 +0000 |
| commit | ddf13c00edf146ba0436af2b749039fc74783e00 (patch) | |
| tree | 5db9b2f7cbccf417d76d67caff46412716c42168 /llvm/docs/LangRef.rst | |
| parent | f48ebacfcc94a358272b8ec9e99bc65294647401 (diff) | |
| download | bcm5719-llvm-ddf13c00edf146ba0436af2b749039fc74783e00.tar.gz bcm5719-llvm-ddf13c00edf146ba0436af2b749039fc74783e00.zip | |
[FPEnv] Add fptosi and fptoui constrained intrinsics.
This implements constrained floating point intrinsics for FP to signed and
unsigned integers.
Quoting from D32319:
The purpose of the constrained intrinsics is to force the optimizer to
respect the restrictions that will be necessary to support things like the
STDC FENV_ACCESS ON pragma without interfering with optimizations when
these restrictions are not needed.
Reviewed by: Andrew Kaylor, Craig Topper, Hal Finkel, Cameron McInally, Roman Lebedev, Kit Barton
Approved by: Craig Topper
Differential Revision: http://reviews.llvm.org/D63782
llvm-svn: 370228
Diffstat (limited to 'llvm/docs/LangRef.rst')
| -rw-r--r-- | llvm/docs/LangRef.rst | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 55ba443dddf..39095303361 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -15280,6 +15280,72 @@ 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.fptoui``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" + +:: + + declare <ty2> + @llvm.experimental.constrained.fptoui(<type> <value>, + metadata <exception behavior>) + +Overview: +""""""""" + +The '``llvm.experimental.constrained.fptoui``' intrinsic converts a +floating-point ``value`` to its unsigned integer equivalent of type ``ty2``. + +Arguments: +"""""""""" + +The first argument to the '``llvm.experimental.constrained.fptoui``' +intrinsic must be :ref:`floating point <t_floating>` or :ref:`vector +<t_vector>` of floating point values. + +The second argument specifies the exception behavior as described above. + +Semantics: +"""""""""" + +The result produced is an unsigned integer converted from the floating +point operand. The value is truncated, so it is rounded towards zero. + +'``llvm.experimental.constrained.fptosi``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" + +:: + + declare <ty2> + @llvm.experimental.constrained.fptosi(<type> <value>, + metadata <exception behavior>) + +Overview: +""""""""" + +The '``llvm.experimental.constrained.fptosi``' intrinsic converts +:ref:`floating-point <t_floating>` ``value`` to type ``ty2``. + +Arguments: +"""""""""" + +The first argument to the '``llvm.experimental.constrained.fptosi``' +intrinsic must be :ref:`floating point <t_floating>` or :ref:`vector +<t_vector>` of floating point values. + +The second argument specifies the exception behavior as described above. + +Semantics: +"""""""""" + +The result produced is a signed integer converted from the floating +point operand. The value is truncated, so it is rounded towards zero. + '``llvm.experimental.constrained.fptrunc``' Intrinsic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |

