[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