summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-12-29 14:41:50 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-12-29 14:41:50 +0000
commitc701596e8613f5083ada201c3c658623c9b4f234 (patch)
tree5d3c5389b55bca139c9558e90d3958a72d7b9ee7 /clang/lib/Frontend/CompilerInvocation.cpp
parent414e05383f802d1ca81eabd0e31b165ebe7abb21 (diff)
downloadbcm5719-llvm-c701596e8613f5083ada201c3c658623c9b4f234.tar.gz
bcm5719-llvm-c701596e8613f5083ada201c3c658623c9b4f234.zip
[X86][SSE] Match PSHUFLW/PSHUFHW + PSHUFD vXi16 shuffle patterns (PR34686)
As noted in PR34686, we are relying on a PSHUFD+PSHUFLW+PSHUFHW shuffle chain for most general vXi16 unary shuffles. This patch checks for simpler PSHUFLW+PSHUFD and PSHUFHW+PSHUFD cases beforehand, building on some existing code that just handled splat shuffles. By doing so we also prevent premature use of PSHUFB shuffles which can be slower and require the creation/loading of constant shuffle masks. We now have the 'fast-variable-shuffle' option for hardware that prefers combining 2 or more shuffles to VPSHUFB etc. Differential Revision: https://reviews.llvm.org/D38318 llvm-svn: 321553
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud