gcc vector (SIMD) kiterjesztés kérdés

Fórumok

Van egy v4si (4 32 bites int-ből álló 128 bites) vektorom. Mi a bevett módja ellenőrizni, hogy 0-e? (azaz mind a négy int 0)

megjegyzések: Igazából csak a gyorsaság számít, hordozhatóság nem, és intel core 2-n futtatnám 32 bites módban. (intel kiterjesztések mmx-től sse3-ig használhatók, gcc 4.5.2)

Hozzászólások


movups xmm0, ...
xorps xmm1, xmm1

cmpeqps xmm0, xmm1
movmskps eax, xmm0

or eax, eax
jz zero
non_zero:

zero:

Meg olcsobb asm-ben kezelni simd utasitasokat, igy azt hasznalom a makrok helyett. gcc vector engine meg egy rakas szar sajnos, leginkabb a befejezetlen vacak jut rola eszembe.

---
pontscho / fresh!mindworkz