[SveEmitter] Add SVE tuple types and builtins for svundef.
authorSander de Smalen <sander.desmalen@arm.com>
Mon, 15 Jun 2020 06:20:43 +0000 (07:20 +0100)
committerSander de Smalen <sander.desmalen@arm.com>
Mon, 15 Jun 2020 06:36:01 +0000 (07:36 +0100)
commit91a4a592edb01ca1968b5e5abe3da21709bb72d6
tree19ad3219a1552c1f3646f6ec586e1f1bcf3dfc92
parentca2dcbd030eadbf0aa9b660efe864ff08af6e18b
[SveEmitter] Add SVE tuple types and builtins for svundef.

This patch adds new SVE types to Clang that describe tuples of SVE
vectors. For example `svint32x2_t` which maps to the twice-as-wide
vector `<vscale x 8 x i32>`. Similarly, `svint32x3_t` will map to
`<vscale x 12 x i32>`.

It also adds builtins to return an `undef` vector for a given
SVE type.

Reviewers: c-rhodes, david-arm, ctetreau, efriedma, rengolin

Reviewed By: c-rhodes

Tags: #clang

Differential Revision: https://reviews.llvm.org/D81459
clang/include/clang/Basic/AArch64SVEACLETypes.def
clang/include/clang/Basic/TargetBuiltins.h
clang/include/clang/Basic/arm_sve.td
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/CodeGenTypes.cpp
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4.c [new file with mode: 0644]
clang/utils/TableGen/SveEmitter.cpp