diff --git a/rawimage_sse.cpp b/rawimage_sse.cpp index cf9c8dd..3f0fe84 100644 --- a/rawimage_sse.cpp +++ b/rawimage_sse.cpp @@ -21,7 +21,7 @@ void fromPlanarSSE(const void *in, void *out, size_t count) __m128i r = _mm_loadu_si128(_in[0] + i); __m128i g = _mm_loadu_si128(_in[1] + i); __m128i b = _mm_loadu_si128(_in[2] + i); - if constexpr(ch==4)a = _mm_loadu_si128(_in[3]); + if constexpr(ch==4)a = _mm_loadu_si128(_in[3] + i); __m128i d1 = _mm_unpacklo_epi8(r, b); __m128i d2 = _mm_unpacklo_epi8(g, a); @@ -43,7 +43,7 @@ void fromPlanarSSE(const void *in, void *out, size_t count) __m128i r = _mm_loadu_si128(_in[0] + i); __m128i g = _mm_loadu_si128(_in[1] + i); __m128i b = _mm_loadu_si128(_in[2] + i); - if constexpr(ch==4)a = _mm_loadu_si128(_in[3]); + if constexpr(ch==4)a = _mm_loadu_si128(_in[3] + i); __m128i d1 = _mm_unpacklo_epi16(r, b); __m128i d2 = _mm_unpacklo_epi16(g, a); @@ -66,7 +66,7 @@ void fromPlanarSSE(const void *in, void *out, size_t count) __m128i r = _mm_loadu_si128(_in[0] + i); __m128i g = _mm_loadu_si128(_in[1] + i); __m128i b = _mm_loadu_si128(_in[2] + i); - if constexpr(ch==4)a = _mm_loadu_si128(_in[3]); + if constexpr(ch==4)a = _mm_loadu_si128(_in[3] + i); __m128i d1 = _mm_unpacklo_epi32(r, b); __m128i d2 = _mm_unpacklo_epi32(g, a);