[X86][SSE] Use bitmasks instead of shuffles where possible.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 28 Jul 2015 08:54:41 +0000 (08:54 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 28 Jul 2015 08:54:41 +0000 (08:54 +0000)
commite4eb76cebd5ee21a37399af94607f7be47cc580e
tree8cc1403e9e7515a4cdc1eab3f379d5820d39caf4
parentec6000afc456f601e7363a8fb1018efa36837fab
[X86][SSE] Use bitmasks instead of shuffles where possible.

VPAND is a lot faster than VPSHUFB and VPBLENDVB - this patch ensures we attempt to lower to a basic bitmask before lowering to the slower byte shuffle/blend instructions.

Split off from D11518.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243395 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
test/CodeGen/X86/vector-zext.ll