[all-commits] [llvm/llvm-project] f81da7: [Clang][AArch64] Use __clang_arm_builtin_alias for...

Sander de Smalen via All-commits all-commits at lists.llvm.org
Thu May 23 02:42:33 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f81da75693fff6c2ffefbb3883e08f11b21ee643
      https://github.com/llvm/llvm-project/commit/f81da75693fff6c2ffefbb3883e08f11b21ee643
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-05-23 (Thu, 23 May 2024)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_reinterpret_svcount_svbool.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret.c
    R clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret_from_streaming_mode.c
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [Clang][AArch64] Use __clang_arm_builtin_alias for overloaded svreinterpret's (#92427)

The intrinsics are currently defined as:

```
  __aio __attribute__((target("sve")))
  svint8_t svreinterpret_s8(svuint8_t op) __arm_streaming_compatible {
    return __builtin_sve_reinterpret_s8_u8(op);
  }
```

which doesn't work when calling it from an __arm_streaming function when
only +sme is available. By defining it in the same way as we've defined
all the other intrinsics, we can leave it to the code in SemaChecking to
verify that either +sve or +sme is available.

This PR also fixes the target guards for the svreinterpret_c and
svreinterpret_b intrinsics, that convert between svcount_t and svbool_t,
as these are available both in SME2 and SVE2p1.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list