xref: /llvm-project/libclc/www/index.html (revision 44f81dfba407c82589abbb5867714ad030d1b80c)
1d5395fbfSPeter Collingbourne<html>
2d5395fbfSPeter Collingbourne<head>
3d5395fbfSPeter Collingbourne<title>libclc</title>
4d5395fbfSPeter Collingbourne</head>
5d5395fbfSPeter Collingbourne<body>
6d5395fbfSPeter Collingbourne<h1>libclc</h1>
7d5395fbfSPeter Collingbourne<p>
874790d6cSPeter Collingbournelibclc is an open source, BSD/MIT dual licensed
9d5395fbfSPeter Collingbourneimplementation of the library requirements of the
10d5395fbfSPeter CollingbourneOpenCL C programming language, as specified by the <a
112e4f1e11SStephan T. Lavavejhref="https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf">OpenCL
12d5395fbfSPeter Collingbourne1.1 Specification</a>.  The following sections of the specification
13d5395fbfSPeter Collingbourneimpose library requirements:
14d5395fbfSPeter Collingbourne<ul>
15d5395fbfSPeter Collingbourne<li>6.1: Supported Data Types
16d5395fbfSPeter Collingbourne<li>6.2.3: Explicit Conversions
17d5395fbfSPeter Collingbourne<li>6.2.4.2: Reinterpreting Types Using as_type() and as_typen()
18d5395fbfSPeter Collingbourne<li>6.9: Preprocessor Directives and Macros
19d5395fbfSPeter Collingbourne<li>6.11: Built-in Functions
20d5395fbfSPeter Collingbourne<li>9.3: Double Precision Floating-Point
21d5395fbfSPeter Collingbourne<li>9.4: 64-bit Atomics
22d5395fbfSPeter Collingbourne<li>9.5: Writing to 3D image memory objects
23d5395fbfSPeter Collingbourne<li>9.6: Half Precision Floating-Point
24d5395fbfSPeter Collingbourne</ul>
25d5395fbfSPeter Collingbourne</p>
26d5395fbfSPeter Collingbourne
27d5395fbfSPeter Collingbourne<p>
282e4f1e11SStephan T. Lavavejlibclc is intended to be used with the <a href="https://clang.llvm.org/">Clang</a>
29d5395fbfSPeter Collingbournecompiler's OpenCL frontend.
30d5395fbfSPeter Collingbourne</p>
31d5395fbfSPeter Collingbourne
32d5395fbfSPeter Collingbourne<p>
33d5395fbfSPeter Collingbournelibclc is designed to be portable and extensible.  To this end,
34d5395fbfSPeter Collingbourneit provides generic implementations of most library requirements,
35d5395fbfSPeter Collingbourneallowing the target to override the generic implementation at the
36d5395fbfSPeter Collingbournegranularity of individual functions.
37d5395fbfSPeter Collingbourne</p>
38d5395fbfSPeter Collingbourne
39d5395fbfSPeter Collingbourne<p>
40d4cd67abSMatt Arsenaultlibclc currently supports the AMDGCN, and R600 and NVPTX targets, but
41d4cd67abSMatt Arsenaultsupport for more targets is welcome.
42d5395fbfSPeter Collingbourne</p>
43d5395fbfSPeter Collingbourne
44d5395fbfSPeter Collingbourne<h2>Download</h2>
45d5395fbfSPeter Collingbourne
465d71fc5dSJames Y Knight<tt>git clone https://github.com/llvm/llvm-project.git</tt> (<a href="https://github.com/llvm/llvm-project/tree/libclc">View sources</a>)
47d5395fbfSPeter Collingbourne
48*44f81dfbStlattner<h2>Discourse forums</h2>
49d5395fbfSPeter Collingbourne
50*44f81dfbStlattner<a href="https://discourse.llvm.org/c/runtimes/opencl/65">Runtimes - OpenCL category</a>
51d5395fbfSPeter Collingbourne
52d5395fbfSPeter Collingbourne</body>
53d5395fbfSPeter Collingbourne</html>
54