x86 vector shuffle lowering now relies only on target specific
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 8 Sep 2010 17:43:25 +0000 (17:43 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Wed, 8 Sep 2010 17:43:25 +0000 (17:43 +0000)
commit1485cc2bb386aa07c2598f65e4cc10edd2f0a065
tree6260629d85752a32d66433f7f2b74ac61d032af5
parent30c93e1cd3e43e174994834900325fcff3322288
x86 vector shuffle lowering now relies only on target specific
nodes to emit shuffles and don't do isel mask matching anymore.
- Add the selection of the remaining shuffle opcode (movddup)
- Introduce two new functions to "recognize" where we may get
potential folds and add several comments to them explaining why
they are not yet in the desidered shape.
- Add more patterns to fallback the case where we select
a specific shuffle opcode as if it could fold a load, but it
can't, so remap to a valid instruction.
- Add a couple of FIXMEs to address in the following days once
there's a good solution to the current folding problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113369 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrSSE.td