Spec confusion regarding convert_ functions
Refer OpenCL Spec 1.2
Explicit conversions may be performed using the
suite of functions. These provide a full set of type conversions between supported types (see
sections 6.1.1, 6.1.2 and 6.1.3) except for the following types: bool, half, size_t,
ptrdiff_t, intptr_t, uintptr_t, and void
Conversions are available for the following scalar types: char, uchar, short, ushort,
int, uint, long, ulong, float, and built-in vector types derived therefrom.
There are datatypes like
Which are covered in section 6.2.3, but not in 220.127.116.11. What is expected of these datatypes?
double is handled like float.
The other data types (image, sampler, event) are neither scalar types nor vector types, so section 18.104.22.168 does not apply to them.
They can't be cast to another type. They are simply considered opaque types.