Chromium Code Reviews| Index: src/opts/SkColor_opts_SSE2.h |
| diff --git a/src/opts/SkColor_opts_SSE2.h b/src/opts/SkColor_opts_SSE2.h |
| index 960c48a023126ee304f0d0505d1b09054c542b46..3a4baf27d995905e2db12fe8378badc7e9f5d3b7 100644 |
| --- a/src/opts/SkColor_opts_SSE2.h |
| +++ b/src/opts/SkColor_opts_SSE2.h |
| @@ -10,6 +10,14 @@ |
| #include <emmintrin.h> |
| +static inline __m128i Multiply32_SSE2(const __m128i& a, const __m128i& b) { |
| + __m128i r1 = _mm_mul_epu32(a, b); |
| + __m128i r2 = _mm_mul_epu32(_mm_srli_si128(a, 4), _mm_srli_si128(b, 4)); |
|
mtklein
2014/04/22 15:18:21
Can you narrate this method a bit more, at least w
qiankun
2014/04/23 07:40:05
Done.
|
| + __m128i r = _mm_unpacklo_epi32(_mm_shuffle_epi32(r1, _MM_SHUFFLE(0,0,2,0)), |
| + _mm_shuffle_epi32(r2, _MM_SHUFFLE(0,0,2,0))); |
| + return r; |
| +} |
| + |
| static inline __m128i SkAlpha255To256_SSE2(const __m128i& alpha) { |
| return _mm_add_epi32(alpha, _mm_set1_epi32(1)); |
| } |