Implementation of the OpenCL C++ library
Switch branches/tags
Nothing to show
Clone or download
jszuppe and kepatil Rename some image_channel_type enums
Adjust names of some image_channel_type enums to
recent changes in OpenCL C++ spec.
Latest commit 96459f1 May 9, 2017

OpenCL C++ Standard Library Instructions

The instructions how to build SPIR-V generator/Clang can be found here:

Step 1: OpenCL C++ standard library

To clone the OpenCL C++ standard libary use the following cmdline:

  git clone master

Step 2: Creating SPIR-V binaries

To create a SPIR-V binary from a valid OpenCL-C file (.cl), use the following command lines:

  clang -cc1 -emit-spirv -triple <triple> -cl-std=c++ -I <libclcxx dir> -x cl -o <output> <input>


  • <triple>: for 32 bit SPIR-V use spir-unknown-unknown, for 64 bit SPIR-V use spir64-unknown-unknown.
  • -D: to enable support for extension. e.g. -Dcl_khr_mipmap_image compile option will enable mipmap support.
  • -cl-fp16-enable: to enable half support and define cl_khr_fp16
  • -cl-fp64-enable: to enable double support and define cl_khr_fp64
  • -O: -O0 (default) is the only tested option value at the moment. It's assumed by design that all optimizations are executed by SPIR-V consumer
  • <libclcxx dir>: path to include directory from libclcxx ( .
  clang -cc1 -emit-spirv -triple=spir-unknown-unknown -cl-std=c++ -I include -o kernel.spir

Reporting issues

Bugs/feature requests can be filed via github or Khronos Bugzilla bug tracker.