From 852857eae99c1b5091806591c4c36029aed3bc32 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 20 Jun 2024 18:34:31 +0800 Subject: [PATCH] fix(util): change the load of __m128i value. --- source/util/src/tdecompress.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/util/src/tdecompress.c b/source/util/src/tdecompress.c index 046cba8686..63014d07b8 100644 --- a/source/util/src/tdecompress.c +++ b/source/util/src/tdecompress.c @@ -351,18 +351,18 @@ int32_t tsDecompressTimestampAvx2(const char *const input, const int32_t nelemen int8_t nbytes1 = flags & INT8MASK(4); // range of nbytes starts from 0 to 7 int8_t nbytes2 = (flags >> 4) & INT8MASK(4); - __m128i data1; - if (nbytes1 == 0) { - data1 = _mm_setzero_si128(); - } else { - memcpy(&data1, (const void*) (input + ipos), nbytes1); + __m128i data1 = _mm_setzero_si128(); + if (nbytes1 > 0) { + int64_t tmp = 0; + memcpy(&tmp, (const void*) (input + ipos), nbytes1); + data1 = _mm_set1_epi64x(tmp); } - __m128i data2; - if (nbytes2 == 0) { - data2 = _mm_setzero_si128(); - } else { - memcpy(&data2, (const void*) (input + ipos + nbytes1), nbytes2); + __m128i data2 = _mm_setzero_si128(); + if (nbytes2 > 0) { + int64_t tmp = 0; + memcpy(&tmp, (const void*) (input + ipos + nbytes1), nbytes2); + data2 = _mm_set1_epi64x(tmp); } data2 = _mm_broadcastq_epi64(data2);