[PATCH] D74331: [ARM,MVE] Add intrinsics for abs, neg and not operations.

Simon Tatham via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 10 08:56:03 PST 2020


simon_tatham created this revision.
simon_tatham added reviewers: dmgreen, miyuki, MarkMurrayARM, ostannard.
Herald added subscribers: cfe-commits, kristof.beyls.
Herald added a project: clang.

This commit adds the unpredicated intrinsics for the unary operations
vabsq (absolute value), vnegq (arithmetic negation), vmvnq (bitwise
complement), vqabsq and vqnegq (saturating versions of abs and neg for
signed integers, in the sense that they give INT_MAX if an input lane
is INT_MIN).

This is done entirely in clang: all of these operations have existing
isel patterns and existing tests for them on the LLVM side, so I've
just made clang emit the same IR that those patterns already match.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74331

Files:
  clang/include/clang/Basic/arm_mve.td
  clang/include/clang/Basic/arm_mve_defs.td
  clang/lib/CodeGen/CGBuiltin.cpp
  clang/test/CodeGen/arm-mve-intrinsics/absneg.c

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74331.243580.patch
Type: text/x-patch
Size: 15552 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200210/e5b76fb2/attachment.bin>


More information about the cfe-commits mailing list