From a6aacdd5607437f13866aff7e0869a7c5f508f00 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 31 Jan 2019 11:27:04 +0100 Subject: [PATCH] Fix convertARGBToARGB32PM_avx2 and convertARGBToRGBA64PM_avx2 The tails was off since f370410097f8cb8d8fdf6174b799497fe7fe0adf Fixes: QTBUG-73440 Change-Id: If86178c6cad3f87d9b5f0f89e90354d49cd386a4 Reviewed-by: Thiago Macieira --- src/gui/painting/qdrawhelper_avx2.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/painting/qdrawhelper_avx2.cpp b/src/gui/painting/qdrawhelper_avx2.cpp index 8c69e21569..4a3e24d6d5 100644 --- a/src/gui/painting/qdrawhelper_avx2.cpp +++ b/src/gui/painting/qdrawhelper_avx2.cpp @@ -1054,7 +1054,7 @@ static void convertARGBToARGB32PM_avx2(uint *buffer, const uint *src, qsizetype __m128i maskedAlphaMask = _mm256_castsi256_si128(alphaMask); __m128i mask = maskFromCount((count - i) * sizeof(*src)); maskedAlphaMask = _mm_and_si128(mask, maskedAlphaMask); - __m128i srcVector = _mm_maskload_epi32(reinterpret_cast(src), mask); + __m128i srcVector = _mm_maskload_epi32(reinterpret_cast(src + i), mask); if (!_mm_testz_si128(srcVector, maskedAlphaMask)) { // keep the two _mm_test[zc]_siXXX next to each other @@ -1166,7 +1166,7 @@ static void convertARGBToRGBA64PM_avx2(QRgba64 *buffer, const uint *src, qsizety __m128i maskedAlphaMask = _mm256_castsi256_si128(alphaMask); __m128i mask = maskFromCount((count - i) * sizeof(*src)); maskedAlphaMask = _mm_and_si128(mask, maskedAlphaMask); - __m128i srcVector = _mm_maskload_epi32(reinterpret_cast(src), mask); + __m128i srcVector = _mm_maskload_epi32(reinterpret_cast(src + i), mask); __m256i src; if (!_mm_testz_si128(srcVector, maskedAlphaMask)) {