}
static force_inline __m64
+load (const uint32_t *v)
+{
+ return _mm_cvtsi32_si64 (*v);
+}
+
+static force_inline __m64
load8888 (const uint32_t *v)
{
- return _mm_unpacklo_pi8 (_mm_cvtsi32_si64 (*v), _mm_setzero_si64 ());
+ return _mm_unpacklo_pi8 (load (v), _mm_setzero_si64 ());
}
static force_inline __m64
while (w && (unsigned long)dst & 7)
{
- store (dst, _mm_adds_pu8 (_mm_cvtsi32_si64 (*src),
- _mm_cvtsi32_si64 (*dst)));
+ store (dst, _mm_adds_pu8 (load ((const uint32_t *)src),
+ load ((const uint32_t *)dst)));
dst++;
src++;
w--;
if (w)
{
- store (dst, _mm_adds_pu8 (_mm_cvtsi32_si64 (*src),
- _mm_cvtsi32_si64 (*dst)));
+ store (dst, _mm_adds_pu8 (load ((const uint32_t *)src),
+ load ((const uint32_t *)dst)));
}
}