[llvm] [LV] Enable auto-vectorisation of loops with uncountable exits (PR #133099)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 26 01:18:11 PDT 2025
david-arm wrote:
> I ran into some additional mis-compiles when testing, in case interleaving is forced (e.g. via pragmas).
>
> AnyOf (#145340), FirstActiveLane (#145394) and ExtractElement vec (FirstActiveLane)) need to be handled when unrolling.
>
> End-to-end tests are here: [llvm/llvm-test-suite#264](https://github.com/llvm/llvm-test-suite/pull/264)
OK but it's only possible to break if the user forces interleaving with a pragma, since the vectoriser chooses to never interleave. It was already held up for a long time on https://github.com/llvm/llvm-project/pull/128061 and I'm worried about having what is basically dead code in the compiler for too long. It sounds like it could take quite a while to support interleaving with early exits (I assume later than the branch point anyway), and during that time we'll be missing out defending it by enabling it for post-commit testing. Is there a way to proceed with this patch without making it dependent on interleave pragma support. Given the pragma is really just a hint, we could just ignore the hint?
https://github.com/llvm/llvm-project/pull/133099
More information about the llvm-commits
mailing list