[llvm] [LV] Use llvm::all_off in LoopVectorizationCostModel::getMaximizedVFForTarget. NFC (PR #99585)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 18 16:47:15 PDT 2024


https://github.com/topperc created https://github.com/llvm/llvm-project/pull/99585

None

>From cae3f1daba9c358737745c42e6d9860f0697fc5d Mon Sep 17 00:00:00 2001
From: Craig Topper <craig.topper at sifive.com>
Date: Thu, 18 Jul 2024 16:45:12 -0700
Subject: [PATCH] [LV] Use llvm::all_off in
 LoopVectorizationCostModel::getMaximizedVFForTarget. NFC

---
 llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index fbca4cdcbcfcd..cf5b55191527b 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -4589,15 +4589,12 @@ ElementCount LoopVectorizationCostModel::getMaximizedVFForTarget(
 
     // Select the largest VF which doesn't require more registers than existing
     // ones.
-    for (int i = RUs.size() - 1; i >= 0; --i) {
-      bool Selected = true;
-      for (auto &pair : RUs[i].MaxLocalUsers) {
-        unsigned TargetNumRegisters = TTI.getNumberOfRegisters(pair.first);
-        if (pair.second > TargetNumRegisters)
-          Selected = false;
-      }
-      if (Selected) {
-        MaxVF = VFs[i];
+    for (int I = RUs.size() - 1; I >= 0; --I) {
+      const auto &MLU = RUs[I].MaxLocalUsers;
+      if (llvm::all_of(MLU, [&](decltype(MLU.front()) &LU) {
+            return LU.second <= TTI.getNumberOfRegisters(LU.first);
+          })) {
+        MaxVF = VFs[I];
         break;
       }
     }



More information about the llvm-commits mailing list