]> granicus.if.org Git - llvm/commit
[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)
commit17d355768ce4c65c78260b3d3f1b54cb085e7ae2
treeb36b929cd3edb60344a388852a688fc9a4d74de0
parented761d68673372e6405a73e08e375ac0219fad82
[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356064 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
test/CodeGen/X86/oddshuffles.ll
test/CodeGen/X86/pr34657.ll
test/CodeGen/X86/shuffle-vs-trunc-256-widen.ll
test/CodeGen/X86/subvector-broadcast.ll