使用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”或类似的东西。在这个框架中是否有浮点选择?如果是这样,如何访问它?