[X86][AVX] Attempt to share broadcasts of different widths (PR39454)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 5 Feb 2019 10:58:43 +0000 (10:58 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 5 Feb 2019 10:58:43 +0000 (10:58 +0000)
commit9e595e366348ea340746cf0849b5f4cae42e1ff5
tree716c74dc3ae38cc6c3f9a2c029b5c6629b54acdf
parentfbb3086fc8c48b9bc9540db48fc2ae2f740793af
[X86][AVX] Attempt to share broadcasts of different widths (PR39454)

If we have broadcasts of different vector widths, keep the longest vector width and extract subvectors for the shorter vectors (which should be free).

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

llvm-svn: 353154
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/broadcast-elm-cross-splat-vec.ll
llvm/test/CodeGen/X86/oddshuffles.ll