[AArch64] Add additional extract-extend patterns for smov
authorMatthew Simpson <mssimpso@codeaurora.org>
Mon, 21 Dec 2015 18:31:25 +0000 (18:31 +0000)
committerMatthew Simpson <mssimpso@codeaurora.org>
Mon, 21 Dec 2015 18:31:25 +0000 (18:31 +0000)
commit11c4de6054501a4efa39583d0778ca7ad09fd6d5
treedb06e9abfd116297dfaae229396a07fe13b7ca14
parenteb65e912aaa0cb0bb7adf138495f3e25fb2ecdf6
[AArch64] Add additional extract-extend patterns for smov

This patch adds to the target description two additional patterns for matching
extract-extend operations to SMOV. The patterns catch the v16i8-to-i64 and
v8i16-to-i64 cases. The existing patterns miss these cases because the
extracted elements must first be legalized to i32, resulting in any_extend
nodes.

This was originally implemented as a DAG combine (r255895), but was reverted
due to failing out-of-tree tests.

llvm-svn: 256176
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/arm64-neon-copy.ll