[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)
commit0ce5d69ee3fb6415ed625805b50ddedc2ee6964f
tree777bae92280897abb8bd65ffc583c3f60735c762
parent8c9c853ff4829cf9e532278d1a6e11987bcf2dbf
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256176 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64InstrInfo.td
test/CodeGen/AArch64/arm64-neon-copy.ll