Streaming SIMD Extensions: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Kormoran (discussione | contributi)
aggiunta roba da en.wiki
Kormoran (discussione | contributi)
mNessun oggetto della modifica
Riga 54:
Gli esempi che seguono dimostrano il vantyaggio di usare le istruzioni SSE. Consideriamo una operazione come la somma di vettori, che si usa molto spesso nella computer grafica; sommare due vettori a precisine singola con 4 componenti ciascuno richiede quattro istruzioni di somma floating point in un normale processore x86:
 
'''vec_res.wx = v1.wx + v2.wx''';
<code>
'''vec_res.xy = v1.xy + v2.xy''';
'''vec_res.yz = v1.yz + v2.yz''';
'''vec_res.zw = v1.zw + v2.zw''';
'''vec_res.w = v1.w + v2.w''';
</code>
 
Queste quattro righe diventano altrettante istruzioni FADD nel codice oggetto compilato. Con le istruzioni SSE invece, come si vede dal codice che segue, basta una sola istruzione 'packed-add' a 128 bit per eseguire il calcolo.
 
'''movaps xmm0,address-of-v1''' ;'''xmm0=v1.w | v1.z | v1.y | v1.x''' <br />
<code>
'''movaps xmm0,address-of-v1''' ;'''xmm0=v1.w | v1.z | v1.y | v1.x''' <br />
'''addps xmm0,address-of-v2''' ;'''xmm0=v1.w+v2.w | v1.z+v2.z | v1.y+v2.y | v1.x+v2.x'''
</code>
 
== Voci correlate ==