[all-commits] [llvm/llvm-project] e1932f: [SveEmitter] Add builtins for ternary ops (fmla, f...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Tue Apr 28 03:14:02 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e1932ffbd91b861462f1e5d4fd18c95ac3e58bd5
      https://github.com/llvm/llvm-project/commit/e1932ffbd91b861462f1e5d4fd18c95ac3e58bd5
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2020-04-28 (Tue, 28 Apr 2020)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mad.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mla.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mls.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_msb.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmad.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmla.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmls.c
    A clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmsb.c

  Log Message:
  -----------
  [SveEmitter] Add builtins for ternary ops (fmla, fmad, etc)

This patch adds builtins for:
- svmad, svmla, svmls, svmsb
  svnmad, svnmla, svnmls, svnmsb
  svmla_lane, svmls_lane

These builtins come in several flavours:
- Merge into first source vector (`_m`)
- False lanes are undef (`_x`)
- False lanes are zeroed (`_z`)

And can also have `_n` to indicate the last operand is a scalar.

For example:

  svint32_t svmla[_n_s32]_z(svbool_t pg, svint32_t op1, svint32_t op2, int32_t op3)

Reviewed By: efriedma

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




More information about the All-commits mailing list