SSE - Streaming SIMD Extension
Operacje warunkowe
- Chcemy wykonać różne operacje dla różnych elementów wektora w zależnośći od
spełnienia dla danych elementów pewnego warunku.
- Chcemy uniknąć instrukcji if która znacznie spowalnia.
Rozwiązanie:
- Wektorowe operacje logiczne zwracają maski bitowe M
(dla elementów dla których warunek był spełniony na odpowiednim miejscu są same jedynki).
- obliczamy dwie możliwe wartości wyniku : Vt - dla przypadku spełnienia warunku
i Vf dla niespełnienia.
- Wykonujemy iloczyn logiczny Vt z maską M i odpowiedznio Vf z ~M
- Ostateczny wyniki jest sumą logiczna tych wyników
(Vt & M) | (Vf & ~M)

Tomasz Kapela, Kraków 2011-2020