[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