HomePhabricator

[IAI,LV] Avoid creating interleave-groups for predicated accesse

Description

[IAI,LV] Avoid creating interleave-groups for predicated accesse

This patch fixes PR39099.

When strided loads are predicated, each of them will form an interleaved-group
(with gaps). However, subsequent stages of vectorization (planning and
transformation) assume that if a load is part of an Interleave-Group it is not
predicated, resulting in wrong code - unmasked wide loads are created.

The Interleaving Analysis does take care not to have conditional interleave
groups of size > 1, but until we extend the planning and transformation stages
to support masked-interleave-groups we should also avoid having them for
size == 1.

Reviewers: Ayal, hsaito, dcaballe, fhahn

Reviewed By: Ayal

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

Details

Committed
doritOct 6 2018, 11:57 PM
Reviewer
Ayal
Differential Revision
D52682: [IAI,LV] Avoid creating interleave-groups for predicated accesses
Parents
rL343930: [RISCV] Introduce alu8.ll and alu16.ll tests
Branches
Unknown
Tags
Unknown