[SveEmitter] Add builtins for struct loads/stores (ld2/ld3/etc)
authorSander de Smalen <sander.desmalen@arm.com>
Fri, 19 Jun 2020 09:06:39 +0000 (10:06 +0100)
committerSander de Smalen <sander.desmalen@arm.com>
Fri, 19 Jun 2020 09:35:42 +0000 (10:35 +0100)
commitad828e3f4dbf9f2e25879f0e63f53fd09904b68c
tree1650e9f3ff9b91d49718aa2257a106b2406072c1
parent0dc28af219d3a5a0167f12d2cdecb5e6f60a5c07
[SveEmitter] Add builtins for struct loads/stores (ld2/ld3/etc)

The struct store intrinsics in LLVM IR take the individual parts
as arguments, so this patch uses the intrinsics used for `svget`
to break the tuples into individual parts.

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

Reviewed By: efriedma

Tags: #clang

Differential Revision: https://reviews.llvm.org/D81466
clang/include/clang/Basic/arm_sve.td
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld4.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st2.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st3.c [new file with mode: 0644]
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st4.c [new file with mode: 0644]