[AArch64] Change the type of i64 neon shifts to v1i64
authorDavid Green <david.green@arm.com>
Tue, 16 May 2023 13:03:15 +0000 (14:03 +0100)
committerDavid Green <david.green@arm.com>
Tue, 16 May 2023 13:03:15 +0000 (14:03 +0100)
commit8178de3273148bc0382c591c189f787e6025da61
treee0aeefb79c92b42beff7aae6f0f145a6c73e6ce2
parenta7752e85cf714aa759216e2254633a3dead2f218
[AArch64] Change the type of i64 neon shifts to v1i64

This alters the lowering of shifts by a constant, so that the type is lowered
to a v1i64 instead of a i64. This helps communicate that the type will live in
a neon register, and can help clean up surrounding code. Note this is only
currently for the scalar shifts of a constant that go through the nodes in
tryCombineShiftImm.

ssra instructions are no longer being recognized in places, but that can be
cleaned up in a followup patch that combines the i64 add into a v1i64 add.

Differential Revision: https://reviews.llvm.org/D148309
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/arm64-vshift.ll