OSDN Git Service

DAGCombiner: Fold a shuffle on CONCAT_VECTORS into a new CONCAT_VECTORS if possible.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 9 Apr 2013 17:41:43 +0000 (17:41 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 9 Apr 2013 17:41:43 +0000 (17:41 +0000)
commit6fac1fbf30e41d33506b5bc66aa480ac7de7531d
tree06895775cfcc45ba673b55c942a1187434d4d37e
parentf6f8198d85f278ff03aaf32c9db6ae0b3826395c
DAGCombiner: Fold a shuffle on CONCAT_VECTORS into a new CONCAT_VECTORS if possible.

This pattern occurs in SROA output due to the way vector arguments are lowered
on ARM.

The testcase from PR15525 now compiles into this, which is better than the code
we got with the old scalarrepl:
_Store:
ldr.w r9, [sp]
vmov d17, r3, r9
vmov d16, r1, r2
vst1.8 {d16, d17}, [r0]
bx lr

Differential Revision: http://llvm-reviews.chandlerc.com/D647

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179106 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/ARM/dagcombine-concatvector.ll [new file with mode: 0644]