summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/FormatString.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-12-01 19:26:31 +0000
committerCraig Topper <craig.topper@intel.com>2018-12-01 19:26:31 +0000
commitf4b13927e7700b5dde7984e4b470bfcfafad5e59 (patch)
treed1ad6b4cc15787361ae62e3bde72dd69e428b4a3 /clang/lib/AST/FormatString.cpp
parent8bffb634970ce0ffc1f979d8399f1d415f60a688 (diff)
downloadbcm5719-llvm-f4b13927e7700b5dde7984e4b470bfcfafad5e59.tar.gz
bcm5719-llvm-f4b13927e7700b5dde7984e4b470bfcfafad5e59.zip
[X86] Don't use zero_extend_vector_inreg for mulhu lowering with sse 4.1
Summary: With sse4.1 we use two zero_extend_vector_inreg and a pshufd to expand the v16i8 input into two v8i16 vectors for the multiply. That's 3 shuffles to extend one operand. The other operand is usually constant as this is mostly used by division by constant optimization. Pre sse4.1 we use a punpckhbw and a punpcklbw with a zero vector. That's two shuffles and an xor and a copy due to tied register constraints. That seems maybe better than the 3 shuffles. With AVX we avoid the copy so that's obviously better. Reviewers: spatel, RKSimon Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D55138 llvm-svn: 348079
Diffstat (limited to 'clang/lib/AST/FormatString.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud