diff --git a/uppsrc/Draw/Mify.cpp b/uppsrc/Draw/Mify.cpp index 8f7d5a7bb..72cde3585 100644 --- a/uppsrc/Draw/Mify.cpp +++ b/uppsrc/Draw/Mify.cpp @@ -27,13 +27,12 @@ Image Minify(const Image& img, int nx, int ny, bool co) __m128 *d = div; while(s < e) { __m128 px = _mm_setzero_ps(); - __m128 dv = _mm_setzero_ps(); - for(int n = nx; n--;) { + for(int n = nx; n--;) px = _mm_add_ps(px, LoadRGBAF(s++)); - dv = _mm_add_ps(dv, v1); - } - *t++ = px; - *d++ = dv; + *t = _mm_add_ps(*t, px); + *d = _mm_add_ps(*d, vnx); + t++; + d++; } if(s < e2) { __m128 px = _mm_setzero_ps(); @@ -42,8 +41,10 @@ Image Minify(const Image& img, int nx, int ny, bool co) px = _mm_add_ps(px, LoadRGBAF(s++)); dv = _mm_add_ps(px, v1); } - *t++ = px; - *d++ = dv; + *t = _mm_add_ps(*t, px); + *d = _mm_add_ps(*d, dv); + t++; + d++; } ASSERT(t == b + tsz.cx); } diff --git a/uppsrc/Painter/AlphaBlend.h b/uppsrc/Painter/AlphaBlend.h index 26551fb31..32d5f5ed7 100644 --- a/uppsrc/Painter/AlphaBlend.h +++ b/uppsrc/Painter/AlphaBlend.h @@ -22,7 +22,7 @@ __m128i BroadcastAlpha(__m128i x) force_inline __m128i Mul8(__m128i x, int alpha) { - return _mm_srli_epi16(_mm_mullo_epi16(_mm_set1_epi16(alpha), x), 8); // int a = c.a * cover >> 8; + return _mm_srli_epi16(_mm_mullo_epi16(_mm_set1_epi16(alpha), x), 8); // c.a * alpha >> 8; } force_inline