This patch adds the following intrinsics for creating two-tuple,
three-tuple and four-tuple scalable vectors:
- llvm.aarch64.sve.tuple.create2
- llvm.aarch64.sve.tuple.create3
- llvm.aarch64.sve.tuple.create4
As well as:
- llvm.aarch64.sve.tuple.get
- llvm.aarch64.sve.tuple.set
For extracting and inserting scalable vectors from vector tuples. These
intrinsics are intended to be used by the ACLE functions svcreate<n>,
svget and svset.
This patch also includes calling convention support for passing and
returning tuples of scalable vectors to/from functions.
Sorry for digging up an old patch here. Why is this IntrArgMemOnly? And why are any of these IntrReadMem? We're working on similar intrinsics for RISCV vector support and were wondering if we were missing something.