[AArch64] Basic demand elements for some intrinsics
authorDavid Green <david.green@arm.com>
Thu, 13 Jan 2022 11:53:12 +0000 (11:53 +0000)
committerDavid Green <david.green@arm.com>
Thu, 13 Jan 2022 11:53:12 +0000 (11:53 +0000)
commit61888d97f67d98afafc224620ee1f9ecc7d062d0
tree61096bbcf113cb4ea75de47ee570eaa957d9c564
parent4f19bb6f28d2fda01f098bc1e93c74fa1ffa24ae
[AArch64] Basic demand elements for some intrinsics

A lot of neon intrinsics work lane-wise, meaning that non-demanded
elements in and not demanded out. This teaches that to
AArch64TTIImpl::simplifyDemandedVectorEltsIntrinsic for some simple
single-input truncate intrinsics, which can help remove unnecessary
instructions.

Differential Revision: https://reviews.llvm.org/D117097
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/test/Transforms/InstCombine/AArch64/demandelts.ll