[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