使用OSX的Accelerate framework,您可以訪問4路SIMD功能,您可以在其中操作矢量浮點數,矢量整數和矢量布爾值。它爲您提供4路分區,例如並且還有4路正弦,餘弦,棕褐等。什麼是OSX Accelerate框架的浮點選擇的4路SIMD版本?
對於4個浮點數的矢量浮點數,框架提供了vFloat。 對於4個布爾矢量布爾,該框架提供了vBool32。
我試圖做到的是這行代碼的4路SIMD版本:
float a = ...;
float b = ...;
bool condition = ...;
float selected = condition ? a : b;
在Cell處理器例如,你可以使用內建的「spu_sel(VAL1,VAL2,有條件的) 」。
我試着寫下來選擇4路爲:「?」
vFloat a = { ... };
vFloat b = { ... };
vBool32 condition = { ... };
vFloat selected = condition ? a : b;
...這不是由LLVM編譯器所接受,作爲運算符不接受vBool32。 此外,在上述網頁上沒有運營商稱爲「vsel」或「vself」或類似的東西。在這個框架中是否有浮點選擇?如果是這樣,如何訪問它?