Runtime CPU detection for rsqrt().
authormtklein <mtklein@chromium.org>
Thu, 30 Jul 2015 16:29:37 +0000 (09:29 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 30 Jul 2015 16:29:37 +0000 (09:29 -0700)
commitf684a78d9ea988883c9b2c7bcc4ea4d5e68bd998
treebe6bdcaa7d6a16c09f61ba94dd7e03739f78673c
parent4f19ca325e8d0122e0a04345272d17e674460806
Runtime CPU detection for rsqrt().

This enables the NEON sk_float_rsqrt() code for configurations that have NEON at run-time but not compile-time.

These devices will see about a 2x (1.26 -> 2.33) slowdown in sk_float_rsqrt(), but it should be more precise than our portable fallback.

(When inlined, the portable fallback and the NEON code are almost identical in speed.  The only difference is precision.  Going through a function pointer is causing all this slowdown.  This is a good example of a place where Skia really benefits from compile-time NEON.)

BUG=skia:4117,skia:4114

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1264893002
include/core/SkFloatingPoint.h
src/core/SkOpts.cpp
src/core/SkOpts.h
src/opts/SkOpts_neon.cpp