[LangRef] Clarify that noimplicitfloat disables all implicit vectors not just floatin...
authorCraig Topper <craig.topper@sifive.com>
Mon, 19 Sep 2022 17:10:57 +0000 (10:10 -0700)
committerCraig Topper <craig.topper@sifive.com>
Mon, 19 Sep 2022 17:13:51 +0000 (10:13 -0700)
Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D134086

llvm/docs/LangRef.rst

index 93f30da..acace56 100644 (file)
@@ -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