Hi,
I've two Intel CPU only platforms installed on my (Windows 10 64 bit) development machine:
1) Intel OpenCL 1.2 (build 25), version 6.4.0.25 (the one available as standalone installer version 16.1.1)
2) Experimental OpenCL 2.1 CPU Only Platform (build 10), version 7.0.0.2519 (the one available through the Intel OpenCL SDK)
When within one same process I iterate through the available platforms/devices to check their specs and I create a context to run a simple kernel (just to make sure the platform/device really works), the Experimental OpenCL 2.1 platform fails during the clBuildProgram() method, complaining about non-sense things such as "use of undeclared identified 'size_t'; did you mean 'sizeof'?", "implicit declaration of get_global_id() is invalid in OpenCL" and so on.
It looks like the compiler of the Experimental OpenCL 2.1 runtime goes nuts if I previously initialized a context and used the Intel OpenCL 1.2 runtime. Maybe some per-process state that is not properly cleaned or managed across the two runtime versions.
If I comment out the portion of code initializing the first context (the one on the Intel OpenCL 1.2 runtime), the Experimental OpenCL 2.1 runtime works as expected.
This issue can be easily replicated by installing the two aforementioned runtime versions on one same machine and by running "clinfo".