[all-commits] [llvm/llvm-project] 3ebbe3: [AArch64][SVE] Implement vector tuple intrinsics

Cullen Rhodes via All-commits all-commits at lists.llvm.org
Mon Jun 8 04:11:05 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3ebbe3536386da9fcf2edfab794a090c572b0d3c
      https://github.com/llvm/llvm-project/commit/3ebbe3536386da9fcf2edfab794a090c572b0d3c
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2020-06-08 (Mon, 08 Jun 2020)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve-calling-convention-tuple-types.ll
    A llvm/test/CodeGen/AArch64/sve-intrinsics-create-tuple.ll
    A llvm/test/CodeGen/AArch64/sve-intrinsics-insert-extract-tuple.ll

  Log Message:
  -----------
  [AArch64][SVE] Implement vector tuple intrinsics

Summary:
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.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D75674




More information about the All-commits mailing list