[AArch64][SVE] Convert svdup(vec, SV_VL1, elm) to insertelement(vec, elm, 0)
authorBradley Smith <bradley.smith@arm.com>
Fri, 23 Apr 2021 12:55:42 +0000 (13:55 +0100)
committerBradley Smith <bradley.smith@arm.com>
Thu, 29 Apr 2021 11:17:42 +0000 (12:17 +0100)
commit89085bcc86d4dad5cac1601f3c54b776e53eeaa4
tree814d5abfad9db39b4dd43a2d6255279e11c17fa1
parentc8f20ed44888f3a09c077690480d1d978c881b0d
[AArch64][SVE] Convert svdup(vec, SV_VL1, elm) to insertelement(vec, elm, 0)

By converting the SVE intrinsic to a normal LLVM insertelement we give
the code generator a better chance to remove transitions between GPRs
and VPRs

Co-authored-by: Paul Walker <paul.walker@arm.com>
Depends on D101302

Differential Revision: https://reviews.llvm.org/D101167
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-opts-dup.ll [new file with mode: 0644]