这不仅仅适用于SSE(甚至是x86).在大多数体系结构中,加载和存储需要自然对齐,否则它们(a)生成异常或(b)需要两个或更多个循环加上一些修复以便透明地处理未对齐的加载/存储.在x86(b)上,对于<16字节的数据类型是正确的,但是(a)对于SSE数据类型是正确的,除非您明确使用可以处理未对齐数据的加载/存储指令的未对齐版本.
您可能想知道:为什么不使用这些SSE加载/存储指令的未对齐版本而不管对齐?答案是这些指令通常比它们的对齐指令要慢得多,因为它们通常表现为上面的(b),这使得它们通常比2x或更慢,除了最近的Intel CPU,如Core i7,其中惩罚要小得多,但不是微不足道的.