[PATCH] D79100: [LV][TTI] 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
Tue May 19 07:34:09 PDT 2020


SjoerdMeijer updated this revision to Diff 264890.
SjoerdMeijer retitled this revision from "[LV][TTI] Emit new IR intrinsic llvm.get.active.mask" to "[LV][TTI] Emit new IR intrinsic llvm.get.active.mask for tail-folded loops".
SjoerdMeijer added a comment.

Thanks all for your comments! I think this addresses all comments:

- I did a rename of `ActiveMask` to `ActiveLaneMask` because that describes it better I think,
- The intrinsic now takes 2 arguments: the induction step, and the backedge taken count. It indeed represents the IV <= BTC comparison, thus giving it semantics rather than let it only pass on a value, which I have also clarified with comments at different places,
- The VP instruction is now lowered using `Builder.CreateIntrinsic`, and have added a case to print it.


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

https://reviews.llvm.org/D79100

Files:
  llvm/include/llvm/Analysis/TargetTransformInfo.h
  llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
  llvm/include/llvm/CodeGen/BasicTTIImpl.h
  llvm/include/llvm/IR/Intrinsics.td
  llvm/lib/Analysis/TargetTransformInfo.cpp
  llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  llvm/lib/Target/ARM/ARMTargetTransformInfo.h
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/lib/Transforms/Vectorize/VPlan.cpp
  llvm/lib/Transforms/Vectorize/VPlan.h
  llvm/test/Transforms/LoopVectorize/ARM/tail-loop-folding.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79100.264890.patch
Type: text/x-patch
Size: 11797 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200519/c6214cc4/attachment.bin>


More information about the llvm-commits mailing list