8 libclc is an open source, BSD/MIT dual licensed
9 implementation of the library requirements of the
10 OpenCL C programming language, as specified by the
<a
11 href=
"https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf">OpenCL
12 1.1 Specification
</a>. The following sections of the specification
13 impose library requirements:
15 <li>6.1: Supported Data Types
16 <li>6.2.3: Explicit Conversions
17 <li>6.2.4.2: Reinterpreting Types Using as_type() and as_typen()
18 <li>6.9: Preprocessor Directives and Macros
19 <li>6.11: Built-in Functions
20 <li>9.3: Double Precision Floating-Point
21 <li>9.4:
64-bit Atomics
22 <li>9.5: Writing to
3D image memory objects
23 <li>9.6: Half Precision Floating-Point
28 libclc is intended to be used with the
<a href=
"https://clang.llvm.org/">Clang
</a>
29 compiler's OpenCL frontend.
33 libclc is designed to be portable and extensible. To this end,
34 it provides generic implementations of most library requirements,
35 allowing the target to override the generic implementation at the
36 granularity of individual functions.
40 libclc currently supports the AMDGCN, and R600 and NVPTX targets, but
41 support for more targets is welcome.
46 <tt>git clone https://github.com/llvm/llvm-project.git
</tt> (
<a href=
"https://github.com/llvm/llvm-project/tree/libclc">View sources
</a>)
48 <h2>Discourse forums
</h2>
50 <a href=
"https://discourse.llvm.org/c/runtimes/opencl/65">Runtimes - OpenCL category
</a>