[llvm] [LV] Update forced epilogue VF options to allow different VFs than main. (PR #190393)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 8 04:51:21 PDT 2026


================
@@ -7183,6 +7198,18 @@ LoopVectorizationPlanner::computeBestVF() {
   if (VPlans.size() == 1 && size(FirstPlan.vectorFactors()) == 1)
     return {{*FirstPlan.vectorFactors().begin(), 0, 0}, &FirstPlan};
 
+  ElementCount UserVF = Hints.getWidth();
+  if (EpilogueVectorizationForceVF > 1 && UserVF && hasPlanWithVF(UserVF)) {
+    [[maybe_unused]] ElementCount EpilogueVF =
+        ElementCount::getFixed(EpilogueVectorizationForceVF);
+    assert(*VPlans[0]->vectorFactors().begin() == EpilogueVF &&
+           "expected first plan to be for the forced epilogue VF");
+    assert(*VPlans[1]->vectorFactors().begin() == UserVF &&
+           "expected second plan to be for the forced UserVF");
+    return {{UserVF, 0, 0}, &*VPlans[1]};
+  }
+
+  ElementCount ScalarVF = ElementCount::getFixed(1);
----------------
artagnon wrote:

Why was this moved?

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


More information about the llvm-commits mailing list