Skip to content

Commit

Permalink
[LV] Introduce VPBlendRecipe, VPWidenMemoryInstructionRecipe
Browse files Browse the repository at this point in the history
This patch is part of D38676.

The patch introduces two new Recipes to handle instructions whose vectorization
involves masking. These Recipes take VPlan-level masks in 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().

Differential Revision: https://reviews.llvm.org/D39068

llvm-svn: 318149
  • Loading branch information
aniragil committed Nov 14, 2017
1 parent 5cdc4f9 commit 848581c
Show file tree
Hide file tree
Showing 3 changed files with 281 additions and 124 deletions.

0 comments on commit 848581c

Please sign in to comment.