diff options
author | David Green <david.green@arm.com> | 2023-08-22 14:25:31 +0100 |
---|---|---|
committer | David Green <david.green@arm.com> | 2023-08-22 14:25:31 +0100 |
commit | 8f6a1a07cb85980013c70d5af6d28f5fcf75e732 (patch) | |
tree | 8fe36b1aa83796e1f6f86747979c146f01a5d0fc /llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp | |
parent | 4a68c2794941a4f43f1b353d3e19e3dc896773cb (diff) | |
download | llvm-8f6a1a07cb85980013c70d5af6d28f5fcf75e732.zip llvm-8f6a1a07cb85980013c70d5af6d28f5fcf75e732.tar.gz llvm-8f6a1a07cb85980013c70d5af6d28f5fcf75e732.tar.bz2 |
[GISel][AArch64] Combine G_BUILD_VECTOR(G_UNMERGE) with undef elements
This extends the existing legalization combine to fold G_BUILD_VECTOR where the
sources are all from the same G_UNMERGE, to handle cases where some of the
lanes are undef. This comes up in the legalization of <3 x ..> vectors in
AArch64, where they are padded with undef.
There are two choices for what to create. This patch just removes the
G_BUILD_VECTOR/G_UNMERGE, losing the information about which lanes are undef.
The alternative would be to generate an identity G_SHUFFLE_VECTOR with undef
lanes marked as undef. I think both have advantages and disadvantages.
Differential Revision: https://reviews.llvm.org/D158063
Diffstat (limited to 'llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp')
0 files changed, 0 insertions, 0 deletions