llvm-project/clang/lib/Headers
Sander de Smalen 5087ace651 [Clang][SVE] Parse builtin type string for scalable vectors
This patch adds 'q' to mean 'scalable vector' in the builtin
type string, and for SVE will return the matching builtin
type as defined in the C/C++ language extensions for SVE.

This patch also adds some scaffolding to generate the arm_sve.h
header file, and some builtin definitions (+CodeGen) to be able
to implement some simple masked load intrinsics that use the
ACLE types, such as:

 svint8_t test_svld1_s8(svbool_t pg, const int8_t *base) {
   return svld1_s8(pg, base);
 }

Reviewers: efriedma, rjmccall, rovka, rsandifo-arm, rengolin

Reviewed By: efriedma

Tags: #clang

Differential Revision: https://reviews.llvm.org/D75298
2020-03-15 14:34:52 +00:00
..
cuda_wrappers [CUDA] Added missing 'inline' for functions defined in a header. 2018-12-07 22:20:53 +00:00
openmp_wrappers [OPENMP][NVPTX]Add NVPTX specific definitions for new/delete operators. 2020-02-05 09:57:53 -05:00
ppc_wrappers Work around PR43337: don't try to use the vec_sel overloads for vector long long, since clang's <altivec.h> doesn't provide it yet! 2020-01-15 13:14:57 -08:00
CMakeLists.txt [Clang][SVE] Parse builtin type string for scalable vectors 2020-03-15 14:34:52 +00:00
__clang_cuda_builtin_vars.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__clang_cuda_cmath.h [OpenMP][bugfix] Add missing math functions variants for log and abs. 2019-05-17 19:15:53 +00:00
__clang_cuda_complex_builtins.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__clang_cuda_device_functions.h [OpenMP][bugfix] Fix issues with C++ 17 compilation when handling math functions 2019-05-15 20:18:21 +00:00
__clang_cuda_intrinsics.h [CUDA] Fix order of memcpy arguments in __shfl_*(<64-bit type>). 2020-01-23 13:17:52 -08:00
__clang_cuda_libdevice_declares.h [OpenMP][Clang] Support for target math functions 2019-05-08 15:52:33 +00:00
__clang_cuda_math_forward_declares.h [OpenMP][bugfix] Add missing math functions variants for log and abs. 2019-05-17 19:15:53 +00:00
__clang_cuda_runtime_wrapper.h [CUDA] Assume the latest known CUDA version if we've found an unknown one. 2020-01-28 10:11:42 -08:00
__stddef_max_align_t.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__wmmintrin_aes.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__wmmintrin_pclmul.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
adxintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
altivec.h [PowerPC][Altivec] Fix offsets for vec_xl and vec_xst 2019-11-07 20:58:11 -06:00
ammintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
arm64intr.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
arm_acle.h [clang][Headers] Use __has_builtin instead of _MSC_VER. 2020-03-06 13:48:09 -08:00
arm_cmse.h [ARM][CMSE] Add CMSE header and builtins 2019-12-12 15:01:14 +00:00
armintr.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx2intrin.h [X86] Support intrinsic _mm_broadcastsi128_si256 2020-03-12 10:56:39 +08:00
avx512bf16intrin.h [X86] Enable intrinsics that convert float and bf16 data to each other 2019-06-11 01:17:28 +00:00
avx512bitalgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512bwintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512cdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512dqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512erintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512fintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512ifmaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512ifmavlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512pfintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmiintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmivlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlbf16intrin.h [X86] Enable intrinsics that convert float and bf16 data to each other 2019-06-11 01:17:28 +00:00
avx512vlbitalgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlbwintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512vlcdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vldqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
avx512vlvbmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlvnniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlvp2intersectintrin.h [X86] Add VP2INTERSECT instructions 2019-05-31 06:09:35 +00:00
avx512vnniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vp2intersectintrin.h [X86] Add VP2INTERSECT instructions 2019-05-31 06:09:35 +00:00
avx512vpopcntdqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vpopcntdqvlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avxintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
bmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
bmiintrin.h [X86] Support intrinsics _bextr2* 2020-03-12 09:26:51 +08:00
cetintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
cldemoteintrin.h [X86] Support intrinsic _mm_cldemote 2020-03-12 10:03:41 +08:00
clflushoptintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clwbintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clzerointrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
cpuid.h [clang] Fixed x86 cpuid NSC signature 2019-08-10 10:14:01 +00:00
emmintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
enqcmdintrin.h [X86] Add ENQCMD instructions 2019-06-06 08:28:42 +00:00
f16cintrin.h [X86] Remove semicolons at the end of intrinsics implemented as macros so they can be used as arguments to other intrinsics. 2019-05-19 01:01:52 +00:00
float.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fma4intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fmaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fxsrintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
gfniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
htmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
htmxlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
ia32intrin.h [x86] Adding support for some missing intrinsics: _castf32_u32, _castf64_u64, _castu32_f32, _castu64_f64 2019-09-25 02:24:05 +00:00
immintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
intrin.h [X86] Remove forward declaration of _invpcid from intrin.h. Rely on inline version from immintrin.h 2019-11-25 16:27:39 -08:00
inttypes.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
invpcidintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
iso646.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
limits.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
lwpintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
lzcntintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mm3dnow.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mm_malloc.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
module.modulemap [Clang][SVE] Parse builtin type string for scalable vectors 2020-03-15 14:34:52 +00:00
movdirintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
msa.h [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores. 2020-02-11 11:47:30 +01:00
mwaitxintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
nmmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
opencl-c-base.h [OpenCL] Fix lang mode predefined macros for C++ mode. 2019-08-12 10:44:07 +00:00
opencl-c.h [OpenCL] Remove spurious atomic_fetch_min/max builtins 2020-03-02 15:56:48 +00:00
pconfigintrin.h [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
pkuintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
pmmintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
popcntintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
prfchwintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
ptwriteintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
rdseedintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
rtmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
s390intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
sgxintrin.h [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
shaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
smmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdalign.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdarg.h Revert Include corecrt.h in stddef.h and vcruntime.h in stdarg.h to improve MS compatibility. 2019-05-08 22:01:20 +00:00
stdatomic.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdbool.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stddef.h Revert Include corecrt.h in stddef.h and vcruntime.h in stdarg.h to improve MS compatibility. 2019-05-08 22:01:20 +00:00
stdint.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
stdnoreturn.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tbmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tgmath.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tmmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
unwind.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vadefs.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vaesintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
varargs.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vecintrin.h [SystemZ] Avoid unnecessary conversions in vecintrin.h 2020-01-16 18:58:14 +01:00
vpclmulqdqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
waitpkgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
wbnoinvdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
wmmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
x86intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xmmintrin.h [X86] Cast to __v4hi instead of __m64 in the implementation of _mm_extract_pi16 and _mm_insert_pi16. 2020-01-22 16:00:23 -06:00
xopintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsavecintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsaveintrin.h [X86] Remove semicolons at the end of intrinsics implemented as macros so they can be used as arguments to other intrinsics. 2019-05-19 01:01:52 +00:00
xsaveoptintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsavesintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xtestintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00