diff options
author | 2015-05-13 08:02:14 -0700 | |
---|---|---|
committer | 2015-05-13 08:02:14 -0700 | |
commit | 04d24a3f86b6f2382e5c6ffaf161ffc734a4d02a (patch) | |
tree | 2b6817c3791914f3ca2339d59a510ba2908448ce /src/opts | |
parent | 4c977868bbe100d6d95f9e53cf176d611eceb3dc (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.h | 2 |
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); } |