diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -10394,6 +10394,16 @@ type is matched against the return type, it does not require its own name suffix. +For target developers who are defining intrinsics for back-end code +generation, any intrinsic overloads based solely the distinction between +integer or floating point types should not be relied upon for correct +code generation. In such cases, the recommended approach for target +maintainers when defining intrinsics is to create separate integer and +FP intrinsics rather than rely on overloading. For example, if different +codegen is required for ``llvm.target.foo(<4 x i32>)`` and +``llvm.target.foo(<4 x float>)`` then these should be split into +different intrinsics. + To learn how to add an intrinsic function, please see the `Extending LLVM Guide `_.