[AArch64] Fix a pattern match failure caused by creating improper CONCAT_VECTOR.
authorKevin Qin <Kevin.Qin@arm.com>
Wed, 18 Jun 2014 05:54:42 +0000 (05:54 +0000)
committerKevin Qin <Kevin.Qin@arm.com>
Wed, 18 Jun 2014 05:54:42 +0000 (05:54 +0000)
commit74287ec34c1443e462aba573c6e8f7d7f9defa35
tree8b967c714bd45e4ee587cefcdfb9ea407b41fbd2
parent10d664fee72917960c8bf38cc2ec8e3b84924044
[AArch64] Fix a pattern match failure caused by creating improper CONCAT_VECTOR.

ReconstructShuffle() may wrongly creat a CONCAT_VECTOR trying to
concat 2 of v2i32 into v4i16. This commit is to fix this issue and
try to generate UZP1 instead of lots of MOV and INS.
Patch is initalized by Kevin Qin, and refactored by Tim Northover.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211144 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
test/CodeGen/AArch64/arm64-convert-v4f64.ll [new file with mode: 0644]