diff options
author | mtklein <mtklein@chromium.org> | 2015-03-23 12:01:45 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-23 12:01:46 -0700 |
commit | 92d04da38f03dfabd8cd9a7244588a49be9a2f41 (patch) | |
tree | 2acec1a590c4626774a2cc1927c59b116d39c848 /tests/Sk4xTest.cpp | |
parent | b8a1d30a42d13ae83690b2d854a024d9b56e7b71 (diff) |
Replace _mm_cvtps_epi32(x) with _mm_cvttps_epi32(_mm_add_ps(0.5f), x).
We don't have control over which way _mm_cvtps_epi32 rounds.
- This makes the SSE SkPMFloat rounding consistent with _neon and _none.
- Sk4f::cast<Sk4i>() is closer to (int)float's behavior. (Correct when >=0).
Add tests that would fail at head.
BUG=skia:
Review URL: https://codereview.chromium.org/1029163002
Diffstat (limited to 'tests/Sk4xTest.cpp')
-rw-r--r-- | tests/Sk4xTest.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tests/Sk4xTest.cpp b/tests/Sk4xTest.cpp index d7a016c3c2..8c3b977b5b 100644 --- a/tests/Sk4xTest.cpp +++ b/tests/Sk4xTest.cpp @@ -59,6 +59,9 @@ DEF_TEST(Sk4x_Conversions, r) { ASSERT_NE(twoi, twof.reinterpret<Sk4i>()); ASSERT_EQ(twof, twoi.cast<Sk4f>()); ASSERT_NE(twof, twoi.reinterpret<Sk4f>()); + + ASSERT_EQ(Sk4i(0,0,0,0), Sk4f(0.5f, 0.49f, 0.51f, 0.99f).cast<Sk4i>()); + ASSERT_EQ(Sk4i(1,1,1,1), Sk4f(1.5f, 1.49f, 1.51f, 1.99f).cast<Sk4i>()); } DEF_TEST(Sk4x_Bits, r) { |