I'm writing some code that should utilize some type of vectorized instructions in order to compare two arrays consisting of 64-bit integers. I'm thinking of utilizing the SSE2 variant for cmpeq
. The term I am getting stuck on is the term 'packed'.
Reading this post, I get the sense that packed simply means that there is no space between variables. This makes sense for me. However, reading assembly code for memcmp
, they talk about alignment (note that the function compares bytes, and not 64-bit integers).
So, if I would like to compare the register xmm0
to something in the memory, does the memory address have to be 128-bit aligned, or is it okay for it to be only 64-bit aligned?