diff options
author | Chris Dalton <csmartdalton@google.com> | 2017-12-01 13:23:05 -0700 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-01 21:12:49 +0000 |
commit | 0cb75879a5923ead28083face7618f44c6c8cbfb (patch) | |
tree | 9affddb5a210b1b9b696210f3a0b542cee250998 /src/core/SkNx.h | |
parent | 51b20f266fbfa9d074bca9ce949d35f10340a9b4 (diff) |
Add Store3 to Sk2f
Bug: skia:
Change-Id: I0377e6a1dd8259e944f7902a5c68af524fa588c7
Reviewed-on: https://skia-review.googlesource.com/79382
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/core/SkNx.h')
-rw-r--r-- | src/core/SkNx.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/SkNx.h b/src/core/SkNx.h index 91c978b70b..14af1186d4 100644 --- a/src/core/SkNx.h +++ b/src/core/SkNx.h @@ -92,6 +92,11 @@ struct SkNx { Half::Store4(ptr, a.fLo, b.fLo, c.fLo, d.fLo); Half::Store4(ptr + 4*N/2*sizeof(T), a.fHi, b.fHi, c.fHi, d.fHi); } + AI static void Store3(void* vptr, const SkNx& a, const SkNx& b, const SkNx& c) { + auto ptr = (char*)vptr; + Half::Store3(ptr, a.fLo, b.fLo, c.fLo); + Half::Store3(ptr + 3*N/2*sizeof(T), a.fHi, b.fHi, c.fHi); + } AI bool anyTrue() const { return fLo.anyTrue() || fHi.anyTrue(); } AI bool allTrue() const { return fLo.allTrue() && fHi.allTrue(); } @@ -189,6 +194,12 @@ struct SkNx<1,T> { c.store(ptr + 2*sizeof(T)); d.store(ptr + 3*sizeof(T)); } + AI static void Store3(void* vptr, const SkNx& a, const SkNx& b, const SkNx& c) { + auto ptr = (char*)vptr; + a.store(ptr + 0*sizeof(T)); + b.store(ptr + 1*sizeof(T)); + c.store(ptr + 2*sizeof(T)); + } AI bool anyTrue() const { return fVal != 0; } AI bool allTrue() const { return fVal != 0; } |