Обычно существует два типа SIMD-инструкций:
A. Те, которые работают с выровненными адресами памяти, вызовут исключение общей защиты (#GP), если адрес не выровнен по границе размера операнда:
movaps xmm0, xmmword ptr [rax]
vmovaps ymm0, ymmword ptr [rax]
vmovaps zmm0, zmmword ptr [rax]
B. А те, которые работают с невыровненными адресами памяти, не вызовут такого исключения:
movups xmm0, xmmword ptr [rax]
vmovups ymm0, ymmword ptr [rax]
vmovups zmm0, zmmword ptr [rax]
Но мне просто любопытно, зачем мне стрелять себе в ногу и вообще использовать выровненные инструкции памяти первой группы?