[PATCH] D77593: [SveEmitter] Implement zeroing of false lanes

Sander de Smalen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 6 15:16:41 PDT 2020


sdesmalen created this revision.
sdesmalen added reviewers: SjoerdMeijer, efriedma, rovka.
Herald added a subscriber: tschuett.
Herald added a project: clang.
sdesmalen added a parent revision: D77591: [SveEmitter] Explicitly merge with zero/undef.
sdesmalen added a child revision: D77594: [SveEmitter] Add support for _n form builtins.

This implements zeroing of false lanes for binary operations,
where instead of merging into the first operand vector (_m)
a `select` is placed on the first input vector. This approach
easily translates to the use of the `zeroing movprfx` instruction.

This patch also adds builtins for svabd, svadd, svdiv, svdivr,
svmax, svmin, svmul, svmulh, svub and svsubr.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D77593

Files:
  clang/include/clang/Basic/arm_sve.td
  clang/lib/CodeGen/CGBuiltin.cpp
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abd.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_add.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_div.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_divr.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_max.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_min.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mul.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulh.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sub.c
  clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_subr.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77593.255503.patch
Type: text/x-patch
Size: 124171 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200406/26dceb7d/attachment-0001.bin>


More information about the cfe-commits mailing list