[llvm] [LV] Use getFixedValue instead of getKnownMinValue when appropriate (PR #143526)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 15 02:04:18 PDT 2025


================
@@ -5342,6 +5342,10 @@ LoopVectorizationCostModel::getUniformMemOpCost(Instruction *I,
   StoreInst *SI = cast<StoreInst>(I);
 
   bool IsLoopInvariantStoreValue = Legal->isInvariant(SI->getValueOperand());
+  // TODO: We have tests that request the cost of extracting element
+  // VF.getKnownMinValue() - 1 from a scalable vector. This is actually
+  // meaningless, given what we actually want is the last lane and is likely
+  // to be more expensive.
----------------
fhahn wrote:

> I'm not sure what you were expecting the updated comment to contain? You said Might be good to adjust the comment a bit, we have tests to exercise this code, but might be clearer to just explain the problematic code path? and I thought my updated comment was explaining the problematic code path? Which is that asking for the cost of extracting lane VF.getKnownMinValue() - 1 does not represent the actual generated code, which for SVE at least would be whilelo + lastb instructions.

Ah yes fair enough, I was originally thinking about dropping the bit about the tests, but the current version is fine too.

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


More information about the llvm-commits mailing list