[X86][AVX] Add combineConcatVectors support to improve subvector handling
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 13 Mar 2019 16:37:30 +0000 (16:37 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 13 Mar 2019 16:37:30 +0000 (16:37 +0000)
commitd9aa879b67ed1ed4667072b7365c52142a68b8f5
tree1b38e2915841446b48fee7363dca0999fe9aca97
parent8a70468a2700b28d96199551710a68c92515ce3a
[X86][AVX] Add combineConcatVectors support to improve subvector handling

Attempt to combine CONCAT_VECTORS nodes, which we only really have pre-legalization.

This encourages a lot of X86ISD::SUBV_BROADCAST generation, so I've added SimplifyDemandedVectorEltsForTargetNode handling for this at the same time.

The X86ISD::VTRUNC regression in shuffle-vs-trunc-256-widen.ll will be handled in a future commit.

llvm-svn: 356064
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/oddshuffles.ll
llvm/test/CodeGen/X86/pr34657.ll
llvm/test/CodeGen/X86/shuffle-vs-trunc-256-widen.ll
llvm/test/CodeGen/X86/subvector-broadcast.ll