xref: /llvm-project/libclc/www/index.html (revision 44f81dfba407c82589abbb5867714ad030d1b80c)
1<html>
2<head>
3<title>libclc</title>
4</head>
5<body>
6<h1>libclc</h1>
7<p>
8libclc is an open source, BSD/MIT dual licensed
9implementation of the library requirements of the
10OpenCL C programming language, as specified by the <a
11href="https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf">OpenCL
121.1 Specification</a>.  The following sections of the specification
13impose library requirements:
14<ul>
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
24</ul>
25</p>
26
27<p>
28libclc is intended to be used with the <a href="https://clang.llvm.org/">Clang</a>
29compiler's OpenCL frontend.
30</p>
31
32<p>
33libclc is designed to be portable and extensible.  To this end,
34it provides generic implementations of most library requirements,
35allowing the target to override the generic implementation at the
36granularity of individual functions.
37</p>
38
39<p>
40libclc currently supports the AMDGCN, and R600 and NVPTX targets, but
41support for more targets is welcome.
42</p>
43
44<h2>Download</h2>
45
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>)
47
48<h2>Discourse forums</h2>
49
50<a href="https://discourse.llvm.org/c/runtimes/opencl/65">Runtimes - OpenCL category</a>
51
52</body>
53</html>
54