HomePhabricator

[IAI,LV] Add support for vectorizing predicated strided accesses using masked…

Authored by dorit on Oct 14 2018, 12:06 AM.

Description

[IAI,LV] Add support for vectorizing predicated strided accesses using masked interleave-group

The vectorizer currently does not attempt to create interleave-groups that
contain predicated loads/stores; predicated strided accesses can currently be
vectorized only using masked gather/scatter or scalarization. This patch makes
predicated loads/stores candidates for forming interleave-groups during the
Loop-Vectorizer's analysis, and adds the proper support for masked-interleave-
groups to the Loop-Vectorizer's planning and transformation stages. The patch
also extends the TTI API to allow querying the cost of masked interleave groups
(which each target can control); Targets that support masked vector loads/
stores may choose to enable this feature and allow vectorizing predicated
strided loads/stores using masked wide loads/stores and shuffles.

Reviewers: Ayal, hsaito, dcaballe, fhahn, javed.absar

Reviewed By: Ayal

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

llvm-svn: 344472

Details

Committed
doritOct 14 2018, 12:06 AM
Reviewer
Ayal
Differential Revision
D53011: [LV] Add support for vectorizing predicated strided accesses using masked interleave-group
Parents
rG20fa085d7433: [X86] Fix bad indentation. NFC
Branches
Unknown
Tags
Unknown