[libclc] [libclc] Move several integer functions to CLC library (PR #116786)

Romaric Jodin via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 5 09:52:15 PST 2024


================
@@ -0,0 +1,21 @@
+#ifndef __CLC_INTEGER_CLC_CLZ_H__
+#define __CLC_INTEGER_CLC_CLZ_H__
+
+#if defined(CLC_CLSPV) || defined(CLC_SPIRV)
+// clspv and spir-v targets provide their own OpenCL-compatible clz
+#define __clc_clz clz
----------------
rjodinchr wrote:

On the `clspv` side, we only care about functions that we are not capable of translating with the correct precision using a few Vulkan SPIR-V operators.
- rhadd: https://github.com/google/clspv/blob/fea65392ea282dec9a43c3ab86fb63b890f6354e/lib/ReplaceOpenCLBuiltinPass.cpp#L3691
- popcount: https://github.com/google/clspv/blob/fea65392ea282dec9a43c3ab86fb63b890f6354e/lib/SPIRVProducerPass.cpp#L4332

So what `clspv` relies on is math functions that are easy to translate with a maintainable number of Vulkan operators.

https://github.com/llvm/llvm-project/pull/116786


More information about the cfe-commits mailing list