带有标量参数的Opencl select方法

时间:2015-01-12 04:06:58

标签: opencl

我有以下代码行,如果标量不为零,我希望a4的每个组件等于c4的相应组件,否则将其设置为b4的相应组件:

 uint4 a4 =       select(b4,   c4,   (uint4)(scalar != 0));

但是,阅读选择的文档,看起来必须为要选择的c4组件设置MSB。

上述行是否正确?我感觉不是。

2 个答案:

答案 0 :(得分:1)

这是一个讨厌的小家伙。标量的真值与矢量的真值不匹配。这是尝试在比较时有效支持altivec / SSE风格掩蔽的结果。这是一个已知但未广泛宣传的OpenCL怪癖。

答案 1 :(得分:0)

原来我只需要将第三个参数调整为:      (uint4)标量!= 0

这是正确的。