Skip to content

chencha3/vc-intrinsics

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VC Intrinsics

Introduction

VC Intrinsics project contains a set of new intrinsics on top of core LLVM IR instructions that represent SIMD semantics of a program targeting GPU. This set is now used by

frontend compilers and

License

VC Intrinsics are distributed under the MIT license.

You may obtain a copy of the License at:

https://opensource.org/licenses/MIT

Dependencies

Source code

Tools

To build libraries:

To build documentation:

Building

VC Intrinsics can be built in two major modes: in-tree and external. All major LLVM versions starting from LLVM 8 are supported.

LLVM ToT can be used too, but there is no guarantee that it will always work (because of sudden breaking changes in LLVM C++ API). However, maintainers are trying to fix such issues as fast as possible.

In-tree build

For in-tree build VC Intrinsics can be considered as an external LLVM project. Put VC Intrinsics source directory inside llvm/projects directory or add -DLLVM_EXTERNAL_PROJECTS="vc-intrinsics" -DLLVM_EXTERNAL_VC_INTRINSICS_SOURCE_DIR=<vc-intrinsics> to cmake command arguments when configuring LLVM.

External build

To configure VC Intrinsics with prebuilt LLVM run cmake as follows:

$ cmake -DLLVM_DIR=<llvm install>/lib/cmake/llvm <vc-intrinsics>

Documentation

VC Intrinsics documentation is inside docs subdirectory and can be built using Sphinx. To build html version do the following:

$ cd docs
$ make -f Makefile.sphinx html

This will extract comments from main intrinsics description and generate readable html output in _build/html subdirectory.

Testing

VC Intrinsics repository contains lit tests that are enabled when -DVC_INTR_ENABLE_LIT_TESTS=ON is passed to cmake command. Lit tests use LLVM plugins and currently are supported only with dynamic LLVM (when LLVM is configured with -DLLVM_LINK_LLVM_DYLIB=ON). In external build path to lit utility should be specified as follows: -DLLVM_EXTERNAL_LIT=<lit>. Full example with external build:

$ cmake -DLLVM_DIR=<llvm install>/lib/cmake/llvm -DVC_INTR_ENABLE_LIT_TESTS=ON -DLLVM_EXTERNAL_LIT=<lit> <vc-intrinsics>

Target check-vc-intrinsics will run lit tests.

How to provide feedback

Please submit an issue using native github.com interface: https://github.com/intel/vc-intrinsics/issues.

How to contribute

Create a pull request on github.com with your patch. A maintainer will contact you if there are questions or concerns.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 43.2%
  • C++ 42.7%
  • LLVM 11.7%
  • CMake 2.4%