[X86][SSE] Add lowerVectorShuffleAsByteRotateAndPermute (PR39387)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 12 Nov 2018 21:12:38 +0000 (21:12 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Mon, 12 Nov 2018 21:12:38 +0000 (21:12 +0000)
commite565e5a9621de42e7b82ad50803fe03beafa0334
treeab5944465c43952aa2175632d4b8f8a74916aa6d
parenta946acd58534764267bc8e3f005f70f52a51c19e
[X86][SSE] Add lowerVectorShuffleAsByteRotateAndPermute (PR39387)

This patch adds the ability to use a PALIGNR to rotate a pair of inputs to select a range containing all the referenced elements, followed by a single input permute to put them in the right location.

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

llvm-svn: 346706
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/insertelement-ones.ll
llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
llvm/test/CodeGen/X86/x86-interleaved-access.ll