[PATCH] D129501: Redefine get.active.lane.mask to allow a more scalar lowering

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 12 03:41:09 PDT 2022


SjoerdMeijer added a comment.

In D129501#3643942 <https://reviews.llvm.org/D129501#3643942>, @efriedma wrote:

>> As an aside, I am wondering if we need this intrinsic at all. The lowering chosen here could be used by the vectorizer directly, and the AArch64 whillelo pattern match for the EVL form would seem straight forward. Maybe we'd have trouble folding the SUB back in, but has anyone played with this?
>
> The intrinsic was originally designed to be pattern-matched by MVE loop optimizations (llvm/lib/Target/ARM/MVETailPredication.cpp).  I think there were issues with making the pattern-matching work reliably without the intrinsic.

Yes, exactly, just wanted to confirm this. Pattern matching without the intrinsic was our first approach. That worked well for simple examples, but became a mess and very fragile pretty quickly. The intrinsic was the best way to communicate this from middle end to backend.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129501/new/

https://reviews.llvm.org/D129501



More information about the llvm-commits mailing list