02-Apr-2014 20:52, Daniel N пишет:
On Tuesday, 1 April 2014 at 18:35:50 UTC, Walter Bright wrote:
Try this benchmark comparing various classification schemes:
bool isIdentifierChar1(ubyte c)
{
return ((c >= '0' || c == '$') &&
(c <= '9' || c >= 'A') &&
(c <= 'Z' || c >= 'a' || c == '_') &&
(c <= 'z'));
}
Considering SSE4.2 was released already back in 2008 and was designed to
accelerate this very use-case...
Maybe it's more beneficial to add a few new code-paths... SSE4.2, NEON,
etc.
Ideally we'd need:
a) A collection of meaningful (high-level compared to std.simd)
primitives that can be accelerated by SIMD, in Phobos. Such as
searching, bit-counting etc.
b) A way to automatically use whatever is best and supported by the
hardware. GCC got a zero-overhead stuff for that since around 4.6 (?).
--
Dmitry Olshansky