Dies gilt nicht nur für SSE (oder auch x86). Auf den meisten Architekturen müssen Lade- und Speicherzugriffe natürlich ausgerichtet sein, da sie sonst entweder (a) eine Ausnahme auslösen oder (b) zwei oder mehr Zyklen plus einige Korrekturen benötigen, um den nicht ausgerichteten Lade-/Speichervorgang transparent zu verarbeiten. Bei x86 trifft (b) auf Datentypen < 16 Bytes zu, aber (a) gilt für SSE-Datentypen, es sei denn, Sie verwenden explizit nicht ausgerichtete Versionen der Lade-/Speicheranweisungen, die nicht ausgerichtete Daten verarbeiten können.
Sie könnten sich fragen: Warum nicht einfach die nicht ausgerichteten Versionen dieser SSE Lade-/Speicheranweisungen verwenden, unabhängig von der Ausrichtung? Die Antwort ist, dass diese Anweisungen in der Regel viel langsamer sind als ihre ausgerichteten Gegenstücke, da sie sich im Allgemeinen wie in (b) oben verhalten, was sie typischerweise um den Faktor 2 oder mehr langsamer macht, abgesehen von neueren Intel-CPUs wie dem Core i7, wo die Strafe viel kleiner ist, aber nicht unbedeutend.