[all-commits] [llvm/llvm-project] 6dc94c: [Clang][AArch64][SME] Add vector read/write (mova)...

Bryan Chan via All-commits all-commits at lists.llvm.org
Thu Jul 20 02:57:48 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6dc94c54e51f416d03c42e7d61624419e03a3af6
      https://github.com/llvm/llvm-project/commit/6dc94c54e51f416d03c42e7d61624419e03a3af6
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/include/clang/Basic/TargetBuiltins.h
    M clang/include/clang/Basic/arm_sme.td
    M clang/include/clang/Basic/arm_sve_sme_incl.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_read.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_write.c
    M clang/test/Sema/aarch64-sme-intrinsics/acle_sme_imm.cpp
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [Clang][AArch64][SME] Add vector read/write (mova) intrinsics

This patch adds support for the following SME ACLE intrinsics (as defined
in https://arm-software.github.io/acle/main/acle.html):

  - svread_hor_za8[_s8]_m    // also for u8
  - svread_hor_za16[_s16]_m  // also for u16, f16, bf16
  - svread_hor_za32[_s32]_m  // also for u32, f32
  - svread_hor_za64[_s64]_m  // also for u64, f64
  - svread_hor_za128[_s8]_m  // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64
  - svread_ver_za8[_s8]_m    // also for u8
  - svread_ver_za16[_s16]_m  // also for u16, f16, bf16
  - svread_ver_za32[_s32]_m  // also for u32, f32
  - svread_ver_za64[_s64]_m  // also for u64, f64
  - svread_ver_za128[_s8]_m  // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64
  - svwrite_hor_za8[_s8]_m   // also for u8
  - svwrite_hor_za16[_s16]_m // also for u16, f16, bf16
  - svwrite_hor_za32[_s32]_m // also for u32, f32
  - svwrite_hor_za64[_s64]_m // also for u64, f64
  - svwrite_hor_za128[_s8]_m // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64
  - svwrite_ver_za8[_s8]_m   // also for u8
  - svwrite_ver_za16[_s16]_m // also for u16, f16, bf16
  - svwrite_ver_za32[_s32]_m // also for u32, f32
  - svwrite_ver_za64[_s64]_m // also for u64, f64
  - svwrite_ver_za128[_s8]_m // also for s16, s32, s64, u8, u16, u32, u64, bf16, f16, f32, f64

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1 at huawei.com>

Reviewed By: sdesmalen, kmclaughlin

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


  Commit: 578b0bd4e621304a1ce367e87a53e59e404dec9b
      https://github.com/llvm/llvm-project/commit/578b0bd4e621304a1ce367e87a53e59e404dec9b
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    M clang/include/clang/Basic/arm_sve_sme_incl.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_zero.c
    M clang/test/Sema/aarch64-sme-intrinsics/acle_sme_imm.cpp

  Log Message:
  -----------
  [Clang][AArch64][SME] Add ZA zeroing intrinsics

 This patch adds support for the following SME ACLE intrinsics (as defined
 in https://arm-software.github.io/acle/main/acle.html):

   - svzero_mask_za
   - svzero_za

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1 at huawei.com>

Reviewed By: sdesmalen

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


  Commit: f225898a7c6105aa34e64f9c7dbfed7ce3443331
      https://github.com/llvm/llvm-project/commit/f225898a7c6105aa34e64f9c7dbfed7ce3443331
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_ldr.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_str.c
    M clang/test/Sema/aarch64-sme-intrinsics/acle_sme_imm.cpp

  Log Message:
  -----------
  [Clang][AArch64][SME] Add intrinsics for ZA array load/store (LDR/STR)

This patch adds support for the following SME ACLE intrinsics (as defined
in https://arm-software.github.io/acle/main/acle.html):

  - svldr_vnum_za
  - svstr_vnum_za

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1 at huawei.com>

Reviewed By: sdesmalen

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


  Commit: 15d16a79a01f4fac718556809ecd00914dd7d7a2
      https://github.com/llvm/llvm-project/commit/15d16a79a01f4fac718556809ecd00914dd7d7a2
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_cnt.c

  Log Message:
  -----------
  [Clang][AArch64][SME] Add intrinsics for reading streaming vector length

This patch adds support for the following SME ACLE intrinsics (as defined
in https://arm-software.github.io/acle/main/acle.html):

  - svcntsb
  - svcntsh
  - svcntsw
  - svcntsd

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1 at huawei.com>

Reviewed By: sdesmalen

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


  Commit: 4ae900c063634e19346b88913e28204a3fc47825
      https://github.com/llvm/llvm-project/commit/4ae900c063634e19346b88913e28204a3fc47825
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i32.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_add-i64.c
    M clang/test/Sema/aarch64-sme-intrinsics/acle_sme_imm.cpp

  Log Message:
  -----------
  [Clang][AArch64][SME] Add intrinsics for adding vector elements to ZA tile

This patch adds support for the following SME ACLE intrinsics (as defined
in https://arm-software.github.io/acle/main/acle.html):

  - svaddha_za32[_u32]_m // also for s32
  - svaddva_za32[_u32]_m // also for s32
  - svaddha_za64[_u64]_m // also for s64
  - svaddva_za64[_u64]_m // also for s64

The _za64 versions are available only when the sme-i16i64 feature is enabled.

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1 at huawei.com>

Reviewed By: sdesmalen

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


  Commit: aebde82b29a80b2849e2b5b1b0030f598edee9a4
      https://github.com/llvm/llvm-project/commit/aebde82b29a80b2849e2b5b1b0030f598edee9a4
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za32.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mopa-za64.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za32.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_mops-za64.c
    M clang/test/Sema/aarch64-sme-intrinsics/acle_sme_imm.cpp

  Log Message:
  -----------
  [Clang][AArch64][SME] Add outer product intrinsics

This patch adds support for the following SME ACLE intrinsics (as defined
in https://arm-software.github.io/acle/main/acle.html):

  - svmopa_za32[_bf16]_m  // also for s8, u8, f16, f32
  - svmops_za32[_bf16]_m  // also for s8, u8, f16, f32
  - svsumopa_za32[_s8]_m
  - svsumops_za32[_s8]_m
  - svusmopa_za32[_u8]_m
  - svusmops_za32[_u8]_m

When the sme-f64f64 feature is enabled, the following intrinsics are supported:

  - svmopa_za64_f64_m
  - svmops_za64_f64_m

When the sme-i16i64 feature is enabled, the following intrinsics are supported:

  - svmopa_za64[_s16]_m   // also for u16
  - svmops_za64[_s16]_m   // also for u16
  - svsumopa_za64[_s16]_m
  - svsumops_za64[_s16]_m
  - svusmopa_za64[_u16]_m
  - svusmops_za64[_u16]_m

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1 at huawei.com>

Reviewed By: sdesmalen

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


  Commit: 2c38740ca661a10866a796db105752e15372ddce
      https://github.com/llvm/llvm-project/commit/2c38740ca661a10866a796db105752e15372ddce
  Author: Bryan Chan <bryan.chan at huawei.com>
  Date:   2023-07-20 (Thu, 20 Jul 2023)

  Changed paths:
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    A clang/test/Driver/aarch64-implied-sme-features.c

  Log Message:
  -----------
  [Clang][AArch64][SME] Generate target features from +(no)sme.* options

Reviewed By: sdesmalen

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


Compare: https://github.com/llvm/llvm-project/compare/697f60598ec3...2c38740ca661


More information about the All-commits mailing list