From ad828e3f4dbf9f2e25879f0e63f53fd09904b68c Mon Sep 17 00:00:00 2001 From: Sander de Smalen Date: Fri, 19 Jun 2020 10:06:39 +0100 Subject: [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/lib/CodeGen/CodeGenFunction.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'clang/lib/CodeGen/CodeGenFunction.h') diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 4296253..d52fb52 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -3990,6 +3990,11 @@ public: llvm::Value *EmitSVEGatherPrefetch(SVETypeFlags TypeFlags, SmallVectorImpl &Ops, unsigned IntID); + llvm::Value *EmitSVEStructLoad(SVETypeFlags TypeFlags, + SmallVectorImpl &Ops, unsigned IntID); + llvm::Value *EmitSVEStructStore(SVETypeFlags TypeFlags, + SmallVectorImpl &Ops, + unsigned IntID); llvm::Value *EmitAArch64SVEBuiltinExpr(unsigned BuiltinID, const CallExpr *E); llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E, -- cgit v1.1