[all-commits] [llvm/llvm-project] 91a4a5: [SveEmitter] Add SVE tuple types and builtins for ...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Sun Jun 14 23:38:21 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 91a4a592edb01ca1968b5e5abe3da21709bb72d6
      https://github.com/llvm/llvm-project/commit/91a4a592edb01ca1968b5e5abe3da21709bb72d6
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2020-06-15 (Mon, 15 Jun 2020)

  Changed paths:
    M clang/include/clang/Basic/AArch64SVEACLETypes.def
    M clang/include/clang/Basic/TargetBuiltins.h
    M clang/include/clang/Basic/arm_sve.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CodeGenTypes.cpp
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4.c
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [SveEmitter] Add SVE tuple types and builtins for svundef.

This patch adds new SVE types to Clang that describe tuples of SVE
vectors. For example `svint32x2_t` which maps to the twice-as-wide
vector `<vscale x 8 x i32>`. Similarly, `svint32x3_t` will map to
`<vscale x 12 x i32>`.

It also adds builtins to return an `undef` vector for a given
SVE type.

Reviewers: c-rhodes, david-arm, ctetreau, efriedma, rengolin

Reviewed By: c-rhodes

Tags: #clang

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


  Commit: 98100353d784e599fca502a34490603942f1930c
      https://github.com/llvm/llvm-project/commit/98100353d784e599fca502a34490603942f1930c
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2020-06-15 (Mon, 15 Jun 2020)

  Changed paths:
    M clang/include/clang/Basic/AArch64SVEACLETypes.def
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [SVE] Ensure proper mangling of ACLE tuple types

The AAPCS specifies that the tuple types such as `svint32x2_t`
should use their `arm_sve.h` names when mangled instead of their
builtin names.

This patch also renames the internal types for the tuples to
be prefixed with `__clang_`, so they are not misinterpreted as
specified internal types like the non-tuple types which *are* defined
in the AAPCS. Using a builtin type for the tuples is a purely
a choice of the Clang implementation.

Reviewers: rsandifo-arm, c-rhodes, efriedma, rengolin

Reviewed By: efriedma

Tags: #clang

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


Compare: https://github.com/llvm/llvm-project/compare/ca2dcbd030ea...98100353d784


More information about the All-commits mailing list