[llvm] [LV][EVL] Support interleaved access with tail folding by EVL (PR #152070)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 18 00:48:02 PDT 2025
================
@@ -3671,8 +3674,159 @@ void VPInterleaveRecipe::print(raw_ostream &O, const Twine &Indent,
}
#endif
-InstructionCost VPInterleaveRecipe::computeCost(ElementCount VF,
- VPCostContext &Ctx) const {
+void VPInterleaveEVLRecipe::execute(VPTransformState &State) {
+ assert(!State.Lane && "Interleave group being replicated.");
+ assert(State.VF.isScalable() &&
+ "Only support scalable VF for EVL tail-folding.");
+ assert(!NeedsMaskForGaps &&
----------------
lukel97 wrote:
Just to check my understanding, the reason as to why we won't hit this assert today is because in RISCVTargetTransformInfo.cpp we always return an invalid cost for a scalable vector with `UseMaskForGaps` in `getInterleavedMemoryOpCost`?
https://github.com/llvm/llvm-project/pull/152070
More information about the llvm-commits
mailing list