[x86] Add initial basic support for forming blends of v16i8 vectors.
authorChandler Carruth <chandlerc@gmail.com>
Mon, 16 Feb 2015 10:58:23 +0000 (10:58 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 16 Feb 2015 10:58:23 +0000 (10:58 +0000)
commit29679ccc12f8b13bc92c7e4b1823a972cbc99483
tree83112e5f29ea6cf379ef6a1311eeefb1b2c1ea5e
parentab497238cb970f3bdbc6aa31f5cdef5fe866e648
[x86] Add initial basic support for forming blends of v16i8 vectors.

This blend instruction is ... really lame. The register usage is insane.
As a consequence this is probably only *barely* better than 2 pshufbs
followed by a por, and that mostly because it only has to read from
a single memory location.

However, this doesn't fix as much as I kind of expected, so more to go.
Pretty sure that the ordering and delegation of v16i8 is just really,
really bad.

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