HomePhabricator

[RISCV] Support EXTRACT_SUBVECTOR on vector masks

Authored by frasercrmck on Feb 25 2021, 12:15 AM.

Description

[RISCV] Support EXTRACT_SUBVECTOR on vector masks

This patch adds support for extracting subvectors from vector masks.
This can be either extracting a scalable vector from another, or a fixed-length
vector from a fixed-length or scalable vector.

Since RVV lacks a way to slide vector masks down on an element-wise
basis and we don't know the true length of the vector registers, in many
cases we must resort to using equivalently-sized i8 vectors to perform
the operation. When this is not possible we fall back and extend to a
suitable i8 vector.

Support was also added for fixed-length truncation to mask types.

Reviewed By: craig.topper

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

Details

Committed
frasercrmckMar 1 2021, 3:20 AM
Reviewer
craig.topper
Differential Revision
D97475: [RISCV] Support EXTRACT_SUBVECTOR on vector masks
Parents
rG1b04bdc2f3ff: [SEH] capture 'this'
Branches
Unknown
Tags
Unknown