The below bitcast instruction is throwing me an Illegal Bitcast error, can someone point what the problem is?
%opencl.image1d_ro_t = type opaque
%struct.dev_image_t = type { i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%astype = bitcast %opencl.image1d_ro_t addrspace(1)* %image to %struct.dev_image_t*
You're casting from address space 1 to the default address space, 0. That won't work, as the documentation says. Each address space is independent.
Address spaces are meant for things like programs that have some garbage-collected and some manually managed memory. The pointer points to two profoundly different kinds of memory.