[X86][AVX2] vpslldq/vpsrldq byte shifts for AVX2
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 15 Feb 2015 13:19:52 +0000 (13:19 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 15 Feb 2015 13:19:52 +0000 (13:19 +0000)
commit00bd79d794b1fbfe5dc069180974c6c2089f2c13
treea35fd1356c5153fb0b91d06a00ed7fcf0cd6f561
parent6a61efdce501f47f617e1fa7015392a4a35e5c7c
[X86][AVX2] vpslldq/vpsrldq byte shifts for AVX2

This patch refactors the existing lowerVectorShuffleAsByteShift function to add support for 256-bit vectors on AVX2 targets.

It also fixes a tablegen issue that prevented the lowering of vpslldq/vpsrldq vec256 instructions.

Differential Revision: http://reviews.llvm.org/D7596

llvm-svn: 229311
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll