[DAG] Extend visitSCALAR_TO_VECTOR optimization to truncated vector.
authorNirav Dave <niravd@google.com>
Mon, 7 Aug 2017 14:07:49 +0000 (14:07 +0000)
committerNirav Dave <niravd@google.com>
Mon, 7 Aug 2017 14:07:49 +0000 (14:07 +0000)
commit3d3bde7682eb73d3d520376a8272abab1cb3c064
treea2a2361f5d9fde8aaa854b390e3c14cc09dca311
parentfaace8f1f16503d2167b8c227e5eaab43390f6b5
[DAG] Extend visitSCALAR_TO_VECTOR optimization to truncated vector.

Relanding after case to insert explicit truncation as necessary.

Allow SCALAR_TO_VECTOR of EXTRACT_VECTOR_ELT to reduce to
EXTRACT_SUBVECTOR of vector shuffle when output is smaller. Marginally
improves vector shuffle computations.

Reviewers: efriedma, RKSimon, spatel

Subscribers: javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D35566

llvm-svn: 310256
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
llvm/test/CodeGen/AArch64/neon-scalar-copy.ll