diff options
Diffstat (limited to 'llvm/docs/LangRef.rst')
-rw-r--r-- | llvm/docs/LangRef.rst | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 7f1a97428ee..58198f7af7d 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -11217,68 +11217,6 @@ Examples: %r2 = call float @llvm.fmuladd.f32(float %a, float %b, float %c) ; yields float:r2 = (a * b) + c - -'``llvm.uabsdiff.*``' and '``llvm.sabsdiff.*``' Intrinsics -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Syntax: -""""""" -This is an overloaded intrinsic. The loaded data is a vector of any integer bit width. - -.. code-block:: llvm - - declare <4 x integer> @llvm.uabsdiff.v4i32(<4 x integer> %a, <4 x integer> %b) - - -Overview: -""""""""" - -The ``llvm.uabsdiff`` intrinsic returns a vector result of the absolute difference -of the two operands, treating them both as unsigned integers. The intermediate -calculations are computed using infinitely precise unsigned arithmetic. The final -result will be truncated to the given type. - -The ``llvm.sabsdiff`` intrinsic returns a vector result of the absolute difference of -the two operands, treating them both as signed integers. If the result overflows, the -behavior is undefined. - -.. note:: - - These intrinsics are primarily used during the code generation stage of compilation. - They are generated by compiler passes such as the Loop and SLP vectorizers. It is not - recommended for users to create them manually. - -Arguments: -"""""""""" - -Both intrinsics take two integer of the same bitwidth. - -Semantics: -"""""""""" - -The expression:: - - call <4 x i32> @llvm.uabsdiff.v4i32(<4 x i32> %a, <4 x i32> %b) - -is equivalent to:: - - %1 = zext <4 x i32> %a to <4 x i64> - %2 = zext <4 x i32> %b to <4 x i64> - %sub = sub <4 x i64> %1, %2 - %trunc = trunc <4 x i64> to <4 x i32> - -and the expression:: - - call <4 x i32> @llvm.sabsdiff.v4i32(<4 x i32> %a, <4 x i32> %b) - -is equivalent to:: - - %sub = sub nsw <4 x i32> %a, %b - %ispos = icmp sge <4 x i32> %sub, zeroinitializer - %neg = sub nsw <4 x i32> zeroinitializer, %sub - %1 = select <4 x i1> %ispos, <4 x i32> %sub, <4 x i32> %neg - - Half Precision Floating Point Intrinsics ---------------------------------------- |