[ARM] Teach DemandedVectorElts about VMOVN lanes
authorDavid Green <david.green@arm.com>
Tue, 14 Sep 2021 10:05:31 +0000 (11:05 +0100)
committerDavid Green <david.green@arm.com>
Tue, 14 Sep 2021 10:05:31 +0000 (11:05 +0100)
commit5a6dfbb8cd26376120e16ceae650f6c9b7a00950
treec348b40632ae16168829ae1da70e50f9ccd1a240
parenta91cfd1990255aea545683083329c2ad3fee4518
[ARM] Teach DemandedVectorElts about VMOVN lanes

The class of instructions that write to narrow top/bottom lanes only
demand the even or odd elements of the input lanes. Which means that a
pair of VMOVNT; VMOVNB demands no lanes from the original input. This
teaches that to instcombine from the target hooks available through
ARMTTIImpl.

Differential Revision: https://reviews.llvm.org/D109325
llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
llvm/lib/Target/ARM/ARMTargetTransformInfo.h
llvm/test/Transforms/InstCombine/ARM/mve-narrow.ll