[LV][AArch64] Allow (limited) interleaving for scalable vectors
authorGraham Hunter <graham.hunter@arm.com>
Tue, 21 Mar 2023 11:48:49 +0000 (11:48 +0000)
committerGraham Hunter <graham.hunter@arm.com>
Fri, 9 Jun 2023 10:42:10 +0000 (11:42 +0100)
commit95bfb1902db98dab846e62dae4d501459691223b
tree47e883461ce5f9525478d4dddceaa7afda7580a6
parent40052b08de6f73d7fb9b5e53c32ee21ba4d35fbc
[LV][AArch64] Allow (limited) interleaving for scalable vectors

This patch uses the (de)interleaving intrinsics introduced in
D141924 to handle vectorization of interleaving groups with a
factor of 2 for scalable vectors.

Reviewed By: fhahn, reames

Differential Revision: https://reviews.llvm.org/D145163
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll