]> granicus.if.org Git - clang/commit
[SystemZ] Add support for vecintrin.h vector built-in functions
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 30 Jul 2015 14:10:43 +0000 (14:10 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 30 Jul 2015 14:10:43 +0000 (14:10 +0000)
commitf7debb1f085ea668b8d28837cc9e6b96dfceb08b
treeee3dbb8269debae358e2f9a344d86273022eb25c
parent8b1a0203ececc14d030e2889f597c0c0dd6d00bc
[SystemZ] Add support for vecintrin.h vector built-in functions

This patch adds support for the System Z vector built-in functions.
The API-defined header file has the name vecintrin.h.

The user-level functions are defined in the same style as the clang
version of altivec.h, making heavy use of the __overloadable__ and
__always_inline__ attributes.  Where possible the functions expand to
generic operations rather than specific built-in functions, in the hope
that that form can be optimised better.

Where a built-in routine is specified to require an immediate integer
argument, the __enable_if__ attribute is used to verify the argument is
in fact constant and in the appropriate range.

Based on a patch by Richard Sandiford.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243643 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Headers/CMakeLists.txt
lib/Headers/module.modulemap
lib/Headers/s390intrin.h
lib/Headers/vecintrin.h [new file with mode: 0644]
test/CodeGen/builtins-systemz-zvector-error.c [new file with mode: 0644]
test/CodeGen/builtins-systemz-zvector.c [new file with mode: 0644]