[all-commits] [llvm/llvm-project] 9b3bb7: [AArch64] Implement reinterpret builtins for SVE v...

Momchil Velikov via All-commits all-commits at lists.llvm.org
Fri Nov 3 04:45:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9b3bb7a066c407f908cb1896abfa4fb4a8ea6588
      https://github.com/llvm/llvm-project/commit/9b3bb7a066c407f908cb1896abfa4fb4a8ea6588
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2023-11-03 (Fri, 03 Nov 2023)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret.c
    M clang/utils/TableGen/SveEmitter.cpp

  Log Message:
  -----------
  [AArch64] Implement reinterpret builtins for SVE vector tuples (#69598)

This patch adds reinterpret builtins as proposed here:
https://github.com/ARM-software/acle/pull/275.

The builtins take the form:

    sv<dst>x<N>_t svreinterpret_<dst>_<src>_x<N>(sv<src>x<N>_t op)

where
- <src> and <dst> designate the source and the destination type,
respectively, all pairs chosen from {s8, u8, s16, u8, s32, u32, s64,
u64, bf16, f16, f32, f64}
  - <N> designated the number of tuple elements, 2, 3 or 4

A short (overloaded) for is also provided, where the destination type is
explicitly designated and the source type is deduced from the parameter
type. These take the form

    sv<dst>x<N>_t svreinterpret_<dst>(sv<src>x<N>_t op)

For example:

    svuin16x2_t svreinterpret_u16_s32_x2(svint32x2_t op);
    svuin16x2_t svreinterpret_u16(svint32x2_t op);




More information about the All-commits mailing list