[llvm] [VPlan] Add new VPInstruction ocpode for header mask. (PR #89603)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri May 3 06:19:42 PDT 2024
https://github.com/fhahn commented:
Updated the PR, and update the HeaderMask to has a suitable wide canonical IV as operand, if there is one, to avoid DCE and preserve original test behavior.
With the recent EVL changes, we also need to adjust `VPWidenCanonicalIVRecipe`; it now isn't just widening the canonical IV, it may also widen the EVL based counter. So we need to loosen the restriction on the start value (which I did in this patch, to be split off separately once we converge on a good name for the new recipe; it could also be a VPInstruction opcode instead of a recipe).
Widening the EVL based counter should be fine; we may execute an operation using the masked on more elements than necessary for the last 2 iterations. But as source and sink operations (loads/stores) are limited by EVL, it should not lead to correctness issues. At least I couldn't construct an example where it would be an issue.
https://github.com/llvm/llvm-project/pull/89603
More information about the llvm-commits
mailing list