[AArch64] Lower fixed-length vector_shuffle to SVE splat if possible
authorBenjamin Maxwell <benjamin.maxwell@arm.com>
Wed, 16 Nov 2022 11:20:48 +0000 (11:20 +0000)
committerCullen Rhodes <cullen.rhodes@arm.com>
Wed, 16 Nov 2022 11:47:27 +0000 (11:47 +0000)
commita95a8188e897df282b3cf1e79bd46ec095591a44
tree66924df13d6cc35a1a3ba1fa6566cdea7236b7ab
parent5d938eb6f79b16f55266dd23d5df831f552ea082
[AArch64] Lower fixed-length vector_shuffle to SVE splat if possible

This adds an extra case to check if a vector_shuffle for a fixed-length
vector that's being lowered to SVE, is just a splat. Doing this avoids
a round trip to the stack and back for a few cases.

Reviewed By: c-rhodes

Differential Revision: https://reviews.llvm.org/D137966
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/test/CodeGen/AArch64/sve-fixed-length-shuffles.ll
llvm/test/CodeGen/AArch64/sve-fixed-length-splat-vector.ll
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-extract-subvector.ll
llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-shuffle.ll