[ARM] Selection for MVE VMOVN
authorDavid Green <david.green@arm.com>
Mon, 14 Oct 2019 15:19:33 +0000 (15:19 +0000)
committerDavid Green <david.green@arm.com>
Mon, 14 Oct 2019 15:19:33 +0000 (15:19 +0000)
commit543236232c79221c4da261246e49888844697539
tree1077e27c39a226920cde9f4b764330957c17e94d
parent961c34d5f452b07ccd289fe54a8aff8404c9bc59
[ARM] Selection for MVE VMOVN

The adds both VMOVNt and VMOVNb instruction selection from the appropriate
shuffles. We detect shuffle masks of the form:
0, N, 2, N+2, 4, N+4, ...
or
0, N+1, 2, N+3, 4, N+5, ...
ISel will also try the opposite patterns, with inputs reversed. These are
selected to VMOVNt and VMOVNb respectively.

Differential Revision: https://reviews.llvm.org/D68283

llvm-svn: 374781
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.h
llvm/lib/Target/ARM/ARMInstrMVE.td
llvm/test/CodeGen/Thumb2/mve-vmovn.ll