[PATCH] D132458: [LoopVectorize] Support masked function vectorization

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 26 08:21:45 PDT 2022


reames added a comment.
Herald added a subscriber: pcwang-thead.

I recommend you split this patch into the following patches:

- First, add support for calling the predicated call version when masking is not required for correctness.  This requires all the plumbing for costing both versions of the call (if both are available), and let's you test those bits.
- Second, add support for predicated calls via scalar-with-predication.  This requires speculation reasoning (which you don't appear to have), and is complicated enough to need testing on it's own.  (This may partially exist already, but some of the code at least is incomplete since e.g. isPredicatedInst always returns false for calls.)
- Third, come back and add support for predication of calls via masking (as opposed to replication.)

The first and second step are independent, and could be done in either order.



================
Comment at: llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll:1
 ; RUN: opt < %s -loop-vectorize -force-vector-interleave=1 -instsimplify -S | FileCheck %s --check-prefixes=CHECK,LV
 ; RUN: opt < %s -loop-vectorize -force-vector-interleave=1 -prefer-predicate-over-epilogue=predicate-dont-vectorize -instsimplify -S | FileCheck %s --check-prefixes=CHECK,TFALWAYS
----------------
Please autogenerate these tests for readability.  


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D132458



More information about the llvm-commits mailing list