llvm
llvm copied to clipboard
Replaced __spirv_SubgroupShuffleINTEL, __spirv_SubgroupShuffleXorINTEL, __spirv_SubgroupShuffleDownINTEL and __spirv_SubgroupShuffleUpINT with __spirv_GroupNonUniformShuffle... generic versions.
Replaced __spirv_SubgroupShuffleINTEL, __spirv_SubgroupShuffleXorINTEL, __spirv_SubgroupShuffleDownINTEL and __spirv_SubgroupShuffleUpINT with __spirv_GroupNonUniformShuffle... generic versions.
Hi @al3x-jp! I took the liberty of rebasing this patch, applying clang-format, and fixing the test issues. Hope is that the CI should be green shortly.
Seems to be some unexpected failures on Gen12. I will look into this ASAP.
Seems that OpenCL doesn't allow vectors in SPIR-V shuffle operations. By scalarizing the vectors we can work around this, expecting the device-compiler to vectorize the operation if it sees fit.
The remaining failure in syclcompat om CPU seems like a bug in the CPU device compiler which shuffles in the wrong direction under certain circumstances. It has been reported to the CPU device-compiler team.