Compiling any OpenCL source for Arm CPU is pointless because when the kernel is used the compilation will fail due to unsupported calling convention SPIR_KERNEL.
The backend can't handle this and it probably doesn't make much sense to use SPIR-specific logic for Arm considering that it has been discontinued. At the same time, there is no special calling convention added for C++ threads. For now, I added regular C calling conversions by default for all OpenCL kernels in Arm CPU. This prevents the crash and allows to start using the functionality in some projects i.e. https://github.com/compiler-explorer/compiler-explorer/issues/2741.
In a long term, we might need to do something more than this to provide fully functional support.