¿Qué significa la alineación al límite de 16 bytes en x86?
Guía de optimización oficial de Intel tiene un capítulo sobre la conversión de comandos MMX a SSE donde se indica la siguiente declaración:
Las instrucciones de cálculo que utilizan un operando de memoria que puede no estar alineado con un límite de 16 bytes deben reemplazarse con una carga de 128 bits no alineada (MOVDQU) seguida de la misma operación de cálculo que utiliza operandos de registro.
(capítulo 5.8 Conversión de enteros SIMD de 64 bits a 128 bits, pág. 5-43)
No entiendo lo que quieren decir con "puede que no esté alineado con un límite de 16 bytes", ¿podría aclararlo y dar algunos ejemplos?