[llvm] [LV][EVL] Disable fixed-order recurrence idiom with EVL tail folding. (PR #122458)

Mel Chen via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 01:35:27 PST 2025


================
@@ -1447,9 +1447,11 @@ class LoopVectorizationCostModel {
     // Override forced styles if needed.
     // FIXME: use actual opcode/data type for analysis here.
     // FIXME: Investigate opportunity for fixed vector factor.
-    bool EVLIsLegal = UserIC <= 1 &&
-                      TTI.hasActiveVectorLength(0, nullptr, Align()) &&
-                      !EnableVPlanNativePath;
+    bool EVLIsLegal =
+        UserIC <= 1 && TTI.hasActiveVectorLength(0, nullptr, Align()) &&
+        !EnableVPlanNativePath &&
+        // FIXME: remove this once fixed-ordered recurrence is supported.
+        Legal->getFixedOrderRecurrences().empty();
----------------
Mel-Chen wrote:

We could block at the EVL lowering phase as well, but it should be clearer to block here, as we also blocked the reduction idiom before.

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


More information about the llvm-commits mailing list