[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)
commit28f299b62df4f9f5ee2d4cf19826ff420dc68dd5
tree637f41365c6fe14051c991c8e25aacd6fdb385bc
parent3e9391617569307453910ee01188a9cac38067ab
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229311 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/vector-shuffle-256-v16.ll
test/CodeGen/X86/vector-shuffle-256-v32.ll
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-256-v8.ll