[all-commits] [llvm/llvm-project] 48fb8e: [Clang][SME2] Add multi-vector add/sub builtins (#...

Kerry McLaughlin via All-commits all-commits at lists.llvm.org
Tue Nov 7 07:42:56 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 48fb8ee081587b4c8e96473d6c7db6b4a83c8dc1
      https://github.com/llvm/llvm-project/commit/48fb8ee081587b4c8e96473d6c7db6b4a83c8dc1
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    M clang/include/clang/Basic/arm_sve.td
    M clang/include/clang/Basic/arm_sve_sme_incl.td
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add.c
    A clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_sub.c
    A clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_vector_add.c
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [Clang][SME2] Add multi-vector add/sub builtins (#69725)

Adds the following SME2 builtins:
 - sv(add|sub)
 - sv(add|sub)_za32/za64,
 - sv(add|sub)_write_za32/za64

Other changes in this patch:
 - CGBuiltin.cpp: The GetAArch64SMEProcessedOperands function is created
    to avoid duplicating existing code from EmitAArch64SVEBuiltinExpr.
 - arm_sve.td: The add/sub SME2 builtins which do not operate on ZA have
been added to arm_sve.td, matching the corrosponding LLVM IR intrinsic
    names which start with @llvm.aarch64.sve for this reason.
- SveEmitter.cpp: Adds the createCoreHeaderIntrinsics function to remove
    duplicated code in createHeader & createSMEHeader. Uses a new enum
(ACLEKind) to choose either "__builtin_sme_" or "__builtin_sve_" when
    emitting the intrinsics.

See https://github.com/ARM-software/acle/pull/217/files




More information about the All-commits mailing list