SSE Befehl zum aufsummieren der 32Bit Werte in einem 128Bit Register
-
Hi,
wie der Titel schon sagt suche ich einen SSE Befehl zum aufsummieren von vier 32Bit single precision Werten in einem 128Bit Register. Falls ein solcher Befehl nicht existiert, gibt es eine performantere Methode als mit extractps die Werte rauszuziehen und einzeln aufzusummieren?
-
SSE3:
;xmm0 = 4xFloat haddps xmm0,xmm0 haddps xmm0,xmm0
SSE2:
pshufd xmm1,xmm0,01110y addps xmm0,xmm1 pshufd xmm1,xmm0,1 addss xmm0,xmm1
SSE1: denk dir was aus
-
movhlps xmm1,xmm0 ;movlhps xmm1,xmm0 ; ggf. falls xmm1 uninitialisiert ist addps xmm0,xmm1 shufps xmm1,xmm0,1 addss xmm0,xmm1