From d8853ec0fd01ecd45c225aee1f22b3d342dcacd7 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Sat, 10 Mar 2018 11:34:53 -0500 Subject: exact divide by 255 with NEON Change-Id: Ib121eb0d5af1f22f48f517fe909112a77d92032e Reviewed-on: https://skia-review.googlesource.com/113666 Commit-Queue: Mike Klein Reviewed-by: Herb Derby --- tests/MathTest.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests') diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp index 94b15207f7..565f76f819 100644 --- a/tests/MathTest.cpp +++ b/tests/MathTest.cpp @@ -750,3 +750,23 @@ DEF_TEST(DoubleSaturate32, reporter) { REPORTER_ASSERT(reporter, r.fExpectedInt == i); } } + +#if defined(__ARM_NEON) + #include + + DEF_TEST(NeonU16Div255, r) { + + for (int v = 0; v <= 255*255; v++) { + int want = (v + 127)/255; + + uint16x8_t V = vdupq_n_u16(v); + int got = vrshrq_n_u16(vrsraq_n_u16(V, V, 8), 8)[0]; + + if (got != want) { + SkDebugf("%d -> %d, want %d\n", v, got, want); + } + REPORTER_ASSERT(r, got == want); + } + } + +#endif -- cgit v1.2.3