aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-05-13 08:02:14 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-05-13 08:02:14 -0700
commit04d24a3f86b6f2382e5c6ffaf161ffc734a4d02a (patch)
tree2b6817c3791914f3ca2339d59a510ba2908448ce /src/opts
parent4c977868bbe100d6d95f9e53cf176d611eceb3dc (diff)
Turn on Sk4px xfermodes when we have NEON too.
For SSE, Sk4px is better than Sk4f is better than SkXfermodes_opts_SSE2 (where implemented). For NEON, Sk4px is better than SkXfermodes_opts_arm_neon is better than Sk4f (where implemented). This is a 1.6-1.9x speedup for Plus,Modulate, and Screen for NEON. BUG=skia: Review URL: https://codereview.chromium.org/1128053004
Diffstat (limited to 'src/opts')
-rw-r--r--src/opts/SkNx_neon.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/opts/SkNx_neon.h b/src/opts/SkNx_neon.h
index b9d4357e5a..e4dbec9083 100644
--- a/src/opts/SkNx_neon.h
+++ b/src/opts/SkNx_neon.h
@@ -355,6 +355,8 @@ public:
void store(uint8_t vals[16]) const { vst1q_u8(vals, fVec); }
+ SkNi saturatedAdd(const SkNi& o) const { return vqaddq_u8(fVec, o.fVec); }
+
SkNi operator + (const SkNi& o) const { return vaddq_u8(fVec, o.fVec); }
SkNi operator - (const SkNi& o) const { return vsubq_u8(fVec, o.fVec); }
SkNi operator * (const SkNi& o) const { return vmulq_u8(fVec, o.fVec); }