punpcklqdq
is defined as :
PUNPCKLQDQ xmm1, xmm2/m128
__m128i _mm_unpacklo_epi64(__m128i a, __m128i b)
Description Unpack and interleave 64-bit integers from the low half of a and b, and store the results in dst.
Here the useful data are low half of a and b, which is __m128i itself, and this command support the second operation parameter as accessed by memory address directly, like:
punpcklqdq xmm0, [r0+2*r1]
.
Here come one question, if the reserved memory has the boundary of low half of b, but not high half of b, it will trigger valgrind error, like: Invalid read of size 16.
My question is: what kind of issue could be caused further by this invalid read (we do not use it after read)? Does it need fix?