diff options
author | Sander de Smalen <sander.desmalen@arm.com> | 2020-06-19 10:06:39 +0100 |
---|---|---|
committer | Sander de Smalen <sander.desmalen@arm.com> | 2020-06-19 10:35:42 +0100 |
commit | ad828e3f4dbf9f2e25879f0e63f53fd09904b68c (patch) | |
tree | 1650e9f3ff9b91d49718aa2257a106b2406072c1 /clang/lib/CodeGen/CodeGenFunction.h | |
parent | 0dc28af219d3a5a0167f12d2cdecb5e6f60a5c07 (diff) | |
download | llvm-ad828e3f4dbf9f2e25879f0e63f53fd09904b68c.zip llvm-ad828e3f4dbf9f2e25879f0e63f53fd09904b68c.tar.gz llvm-ad828e3f4dbf9f2e25879f0e63f53fd09904b68c.tar.bz2 |
[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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 5 |
1 files changed, 5 insertions, 0 deletions
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<llvm::Value *> &Ops, unsigned IntID); + llvm::Value *EmitSVEStructLoad(SVETypeFlags TypeFlags, + SmallVectorImpl<llvm::Value *> &Ops, unsigned IntID); + llvm::Value *EmitSVEStructStore(SVETypeFlags TypeFlags, + SmallVectorImpl<llvm::Value *> &Ops, + unsigned IntID); llvm::Value *EmitAArch64SVEBuiltinExpr(unsigned BuiltinID, const CallExpr *E); llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E, |