Currently, -fdeclare-opencl-builtins always adds the generic address
space overloads of e.g. the vload builtin functions in OpenCL 3.0
mode, even when the generic address space feature is disabled.
Guard the generic address space overloads by the
__opencl_c_generic_address_space feature instead of by OpenCL
version.
Guard the private, global, and local overloads using the internal
__opencl_c_named_address_space_builtins feature.
btw this is not correct for C++ for OpenCL 2021 but we are not testing this with C++ for OpenCL 2021 which we should.
However it doesn't belong to this patch, but would you be able to add a FIXME here to indicate the issue?