HomePhabricator

[CodeGen] Add support for extracting elements of scalable vectors

Authored by david-arm on May 6 2020, 9:14 AM.

Description

[CodeGen] Add support for extracting elements of scalable vectors

I have tried to ensure that SelectionDAG and DAGCombiner do
sensible things for scalable vectors, and added support for a
limited number of simple folds. Codegen support for the vector
extract patterns have also been added to the AArch64 backend.

New vector extract tests have been added here:

CodeGen/AArch64/sve-extract-element.ll

and I have also added new folds using inserts and extracts here:

CodeGen/AArch64/sve-insert-element.ll

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