对于我的OpenCL内核中的语句
uint4 checkCoord; // assign some value
if(checkCoord==(uint4)(0,0,0,0)){
; // do something
}
我在OpenCL编译器中收到以下错误
statement requires expression of scalar type ('int __attribute__((ext_vector_type(4,4)))' invalid)
将uint4类型的变量转换为bool(或标量)值的最简单方法是什么?
答案 0 :(得分:5)
您应该使用all
来测试在向量的所有组件上验证的条件。 checkCoord == (uint4)(0,0,0,0)
是一个int4,其组件为0
(false)或(uint)-1
(true)。
if ( all( checkCoord == (uint4)(0,0,0,0) ) ) { ... }
根据OpenCL规范(6.3.e),你也可以写
if ( all( checkCoord == 0 ) ) { ... }