[AArch64] Don't force MVT::Untyped when selecting LD1LANEpost.
authorAhmed Bougacha <ahmed.bougacha@gmail.com>
Fri, 17 Apr 2015 23:43:33 +0000 (23:43 +0000)
committerAhmed Bougacha <ahmed.bougacha@gmail.com>
Fri, 17 Apr 2015 23:43:33 +0000 (23:43 +0000)
commit6b96a388eda37bc4e2ca71e029f483de53090868
treeab02b80a3d650f87da597540543e63f674513c24
parentab017cbc27422dad8968be504c472f34d656c833
[AArch64] Don't force MVT::Untyped when selecting LD1LANEpost.

The result is either an Untyped reg sequence, on ldN with N > 1, or
just the type of the input vector, on ld1.  Don't force Untyped.
Instead, just use the type of the reg sequence.

This mirrors the behavior of createTuple, which feeds the LD1*_POST.

The narrow code path wasn't actually covered by tests, because V64
insert_vector_elt are widened to V128 before the LD1LANEpost combine
has the chance to run, usually.

The only case where it does run on V64 vectors is if the vector ops
legalizer ran.  So, tickle the code with a ctpop.

Fixes PR23265.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235243 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll