[SveEmitter] Add builtins to insert/extract subvectors from tuples (svget/svset)
authorSander de Smalen <sander.desmalen@arm.com>
Thu, 18 Jun 2020 09:08:25 +0000 (10:08 +0100)
committerSander de Smalen <sander.desmalen@arm.com>
Thu, 18 Jun 2020 10:06:16 +0000 (11:06 +0100)
commit4ea8e27a642c6f97ca69cd39bbe44f7366870f6c
tree9bc9b787a3bc318254c3666dc7d91b5ed8edbfe6
parent108560e58c41fc70341d763b941a0d6c24c4d3a9
[SveEmitter] Add builtins to insert/extract subvectors from tuples (svget/svset)

For example:
  svint32_t svget4(svint32x4_t tuple, uint64_t imm_index)

returns the subvector at `index`, which must be in range `0..3`.
  svint32x3_t svset3(svint32x3_t tuple, uint64_t index, svint32_t vec)

returns a tuple vector with `vec` inserted into `tuple` at `index`,
which must be in range `0..2`.

Reviewers: c-rhodes, efriedma

Reviewed By: c-rhodes

Tags: #clang

Differential Revision: https://reviews.llvm.org/D81464
16 files changed:
clang/include/clang/Basic/TargetBuiltins.h
clang/include/clang/Basic/arm_sve.td
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/Sema/SemaChecking.cpp
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_get2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_get3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_get4.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_set2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_set3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/negative/acle_sve_set4.c [new file with mode: 0644]