[PATCH] D39068: [LV] Introduce VPBlendRecipe, VPWidenMemoryInstructionRecipe
Gil Rapaport via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 18 13:01:43 PDT 2017
gilr created this revision.
This patch is part of D38676 <https://reviews.llvm.org/D38676>.
The patch introduces two new Recipes to handle instructions whose vectorization involves masking. These Recipes take VPlan-level masks in D38676 <https://reviews.llvm.org/D38676>, but still rely on ILV's existing createEdgeMask(), createBlockInMask() in this patch.
- VPBlendRecipe handles intra-loop phi nodes, which are vectorized as a sequence of SELECTs. Its execute() code is refactored out of ILV::widenPHIInstruction(), which now handles only loop-header phi nodes.
- VPWidenMemoryInstructionRecipe handles load/store which are to be widened (but are not part of an Interleave Group). In this patch it simply calls ILV::vectorizeMemoryInstruction on execute().
Note that ILV methods called by these Recipes were made public.
https://reviews.llvm.org/D39068
Files:
lib/Transforms/Vectorize/LoopVectorize.cpp
lib/Transforms/Vectorize/VPlan.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39068.119472.patch
Type: text/x-patch
Size: 12943 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171018/f1556734/attachment.bin>
More information about the llvm-commits
mailing list