[AArch64][GlobalISel][Legalizer] Legalize G_SHUFFLE_VECTOR with different lengths
authorVladislav Dzhidzhoev <vdzhidzhoev@accesssoftek.com>
Mon, 15 Aug 2022 18:51:13 +0000 (21:51 +0300)
committerVladislav Dzhidzhoev <vdzhidzhoev@accesssoftek.com>
Thu, 15 Dec 2022 12:03:34 +0000 (15:03 +0300)
commit4c52fb1a5ee20846627d16e38f5dec08c08f8884
treecb93cfdc0963336339b305250fd854b378273923
parent84b4ff24e94bee91ff35f7f29bd748e0432e52ac
[AArch64][GlobalISel][Legalizer] Legalize G_SHUFFLE_VECTOR with different lengths

Legalize G_SHUFFLE_VECTOR having destination vector length greater than
source vector length by reshaping source vectors.

Partial implementation of SelectionDAGBuilder::visitShuffleVector.

Differential Revision: https://reviews.llvm.org/D132190
llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.h
llvm/test/CodeGen/AArch64/GlobalISel/legalize-shuffle-vector.mir