Error: unimplemented function(s) used:

Error: unimplemented function(s) used:

First of all I wish to say that Intel's alpha release of OpenCL 1.1 is currently among the best out there. However despite this it seems some features have slipped trough the cracks.

If vector indexing is used with select it simply does not work.
uchar3 xx,yy,zz;
select(min(zz.x, max(xx.z,yy.y)), zz.x, zz.x < min(xx.z,yy.y));


Error: unimplemented function(s) used:
_Z6selecthhi in function foo

Obviously I use ?: notation for scalars now, but it's 'cleaner' to use select everywhere.

p.s I wonder if using an unimplemented function is a valid error according to the spec ;)

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Your code is perfect, it looks like a bug. We will fix it in future releases.
In the mean while, I suggest to avoid this statement
Thanks, Shiri


There is an ambiguity in select() function defintion in OCL 1.1. spec. It doesn't mention explicitely that exp3 must be of the same vector size and element size (in bits) as exp1 and exp2. That means that the folowing usages are valid:

select( double, double, long)
select( char, char, char)

while the following usages are invalid:
select( double, double, int)
select( char, char, int)

In the future, the spec will be updated with the "refined" definition (adding explicit same-sizeconstraint).

Consequently, the behaviour of Intel SDK w.r.t. select parameter type scope is correct.


Login to leave a comment.