From e6f8a6b56e27b86b0563d3c6d547c2b14f0a1ced Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 19 Sep 2022 10:10:57 -0700 Subject: [PATCH] [LangRef] Clarify that noimplicitfloat disables all implicit vectors not just floating point. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D134086 --- llvm/docs/LangRef.rst | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 93f30da..acace56 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -1781,10 +1781,15 @@ example: function can return a pointer to a previously deallocated memory object. ``noimplicitfloat`` Disallows implicit floating-point code. This inhibits optimizations that - use floating-point code and floating-point/SIMD/vector registers for - operations that are not nominally floating-point. LLVM instructions that - perform floating-point operations or require access to floating-point - registers may still cause floating-point code to be generated. + use floating-point code and floating-point registers for operations that are + not nominally floating-point. LLVM instructions that perform floating-point + operations or require access to floating-point registers may still cause + floating-point code to be generated. + + Also inhibits optimizations that create SIMD/vector code and registers from + scalar code such as vectorization or memcpy/memset optimization. This + includes integer vectors. Vector instructions present in IR may still cause + vector code to be generated. ``noinline`` This attribute indicates that the inliner should never inline this function in any situation. This attribute may not be used together -- 2.7.4