[PATCH] D79100: [LV] Emit new IR intrinsic llvm.get.active.mask for tail-folded loops

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 1 04:14:35 PDT 2020


SjoerdMeijer updated this revision to Diff 267578.
SjoerdMeijer added a comment.

> IIUC we want the first lanes of both the BTC and the IV, right?

Yep, exactly that.

> If that's the case, I think it would be more straight-forward to just request the specific lane when looking up the values, .e.g something like:
> 
>   <SNIP>
> 
> This should have the advantage of re-using some scalar values, if they have been requested already by other recipes.
> 
> (Note: this currently crashes unfortunately, as getting lanes for defs managed by VPTransformState does not work, but I put up D80787 <https://reviews.llvm.org/D80787> to fix that)

Thanks for that. I took D80787 <https://reviews.llvm.org/D80787>, and that worked like a charm, greatly simplifying things here: I have simplified lowering of `VPInstruction::ActiveLaneMask` as per your suggestion.


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

https://reviews.llvm.org/D79100

Files:
  llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/lib/Transforms/Vectorize/VPlan.cpp
  llvm/lib/Transforms/Vectorize/VPlan.h
  llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
  llvm/test/Transforms/LoopVectorize/ARM/tail-folding-counting-down.ll
  llvm/test/Transforms/LoopVectorize/ARM/tail-loop-folding.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79100.267578.patch
Type: text/x-patch
Size: 10091 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200601/4401a7a4/attachment-0001.bin>


More information about the llvm-commits mailing list