]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Implement ACLE Data Intrinsics
authorAndre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
Mon, 25 Jul 2022 09:27:13 +0000 (10:27 +0100)
committerAndre Vieira <andre.simoesdiasvieira@arm.com>
Thu, 11 Aug 2022 15:18:08 +0000 (16:18 +0100)
commit28a7b5df3b6937a4b069150e0abbd28e15f359e2
treefa6569675123dcb8e591d6304d1ed820d5a220c2
parentbc52af48171a56b4eb6e44789344ab89e0803beb
aarch64: Implement ACLE Data Intrinsics

This patch adds support for the ACLE Data Intrinsics to the AArch64 port.

gcc/ChangeLog:

2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
(@aarch64_rbit<mode>): ... to this and change it in...
(ffs<mode>2,ctz<mode>2): ... here.
(@aarch64_rev16<mode>): New.
* config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
Define the following enum AARCH64_REV16, AARCH64_REV16L,
AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
(aarch64_init_data_intrinsics): New.
(aarch64_general_init_builtins): Add call to
aarch64_init_data_intrinsics.
(aarch64_expand_builtin_data_intrinsic): New.
(aarch64_general_expand_builtin): Add call to
aarch64_expand_builtin_data_intrinsic.
* config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
__clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
__rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.

gcc/testsuite/ChangeLog:

2022-07-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/aarch64/acle/data-intrinsics.c: New test.

(cherry picked from commit eb966d393dfdfd2c80994e4bfcc0dddf85828a73)
gcc/config/aarch64/aarch64-builtins.cc
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/arm_acle.h
gcc/testsuite/gcc.target/aarch64/acle/data-intrinsics.c [new file with mode: 0644]