nir/spirv: vec16, pointer bitcast and vstore, vload
In OpenCL we have 8 and 16 component vectors we have to support, which corresponds to the Vector16
SPIR-V capability.
In addition to that, we have vload and vstore in CL which are "packed" vector operations on arrays, aka vec3 values operations aren't vec4 aligned.
Also support we need to support bitcasts on pointers as well.