[polly] [Polly] Skip vectorize.enable for FP loops with dist=1 dependences (PR #205756)
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 13 06:14:27 PDT 2026
================
@@ -478,9 +508,19 @@ void IslNodeBuilder::createForSequential(isl::ast_node_for For,
// omit the GuardBB in front of the loop.
bool UseGuardBB = !GenSE->isKnownPredicate(Predicate, GenSE->getSCEV(ValueLB),
GenSE->getSCEV(ValueUB));
+
+ // Skip vectorize.enable for dist=1 FP loops; let the Loop Vectorizer decide.
+ // Note: llvm.loop.vectorize.enable=true has an additional property beyond
+ // requesting vectorization — it implicitly allows FP operation reordering
+ // (see https://github.com/llvm/llvm-project/issues/198726). This is a
+ // limitation of the metadata format: there is no way to separate the request
+ // for vectorization from the request for reassociating FP ops. We suppress
+ // the metadata here for loops where FP reordering would be harmful.
----------------
Meinersbur wrote:
I'd accept this PR as a workaround. Could you make that more explicit here? That is, explicitly say it's a workaround for #198726 and/or as a FIXME instead a "Note"?
https://github.com/llvm/llvm-project/pull/205756
More information about the llvm-commits
mailing list