[clang] [clang] Also disable scalable vectorisation for vectorize(disable) (PR #227254)

Gaƫtan Bossu via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 29 03:33:01 PDT 2026


================
@@ -651,9 +651,10 @@ void LoopInfoStack::push(BasicBlock *Header, clang::ASTContext &Ctx,
     case LoopHintAttr::Disable:
       switch (Option) {
       case LoopHintAttr::Vectorize:
-        // Disable vectorization by specifying a width of 1.
+        // Disable vectorization by specifying a width of 1 and disabling
+        // scalable vectorization explicitly.
         setVectorizeWidth(1);
-        setVectorizeScalable(LoopAttributes::Unspecified);
+        setVectorizeScalable(LoopAttributes::Disable);
----------------
gbossu wrote:

Note that a `#pragma clang loop vectorize_width(4)` pragma does generate a `!{!"llvm.loop.vectorize.scalable.disable"}` MDNode, so I think it makes sense to do the same for `vectorize(disable)` pragmas regardless.

https://github.com/llvm/llvm-project/pull/227254


More information about the cfe-commits mailing list