gcc/gcc/config/aarch64
Andre Simoes Dias Vieira 28a7b5df3b 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 eb966d393d)
2022-08-11 16:18:08 +01:00
..
aarch64-arches.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-bti-insert.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
aarch64-builtins.cc aarch64: Implement ACLE Data Intrinsics 2022-08-11 16:18:08 +01:00
aarch64-c.cc AArch64: fix ls64 intrinsics expansion [PR104409] 2022-04-07 16:48:05 +01:00
aarch64-cc-fusion.cc Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-cores.def aarch64: Update Neoverse N2 core definition 2022-03-28 09:27:01 +01:00
aarch64-cost-tables.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-d.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
aarch64-elf-raw.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-elf.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-errata.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-freebsd.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-fusion-pairs.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-ldpstp.md Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-linux.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-modes.def arm: Implement MVE predicates as vectors of booleans 2022-02-22 15:55:07 +00:00
aarch64-netbsd.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-option-extensions.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-opts.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-passes.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-protos.h [AArch64] add barriers to ool __sync builtins 2022-05-16 14:43:20 +00:00
aarch64-simd-builtin-types.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-simd-builtins.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-simd.md AArch64: Fix left fold sum reduction RTL patterns [PR104049] 2022-04-07 08:27:53 +01:00
aarch64-speculation.cc Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-base.cc Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-base.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-base.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-functions.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-shapes.cc Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-shapes.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-sve2.cc Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-sve2.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins-sve2.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins.cc aarch64: Fix -fpack-struct + <arm_neon.h> [PR103147] 2022-04-05 17:31:35 +01:00
aarch64-sve-builtins.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-sve-builtins.h aarch64: Fix -fpack-struct + <arm_neon.h> [PR103147] 2022-04-05 17:31:35 +01:00
aarch64-sve.md AArch64: use canonical ordering for complex mul, fma and fms 2022-02-02 10:51:38 +00:00
aarch64-sve2.md Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-tune.md aarch64: Fix aarch64-tune.md (re)generation [PR105144] 2022-04-04 12:09:26 +02:00
aarch64-tuning-flags.def Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64-vxworks.h Update copyright years. 2022-01-03 10:42:10 +01:00
aarch64.cc aarch64: Revert bogus fix for PR105254 2022-06-22 21:23:59 -05:00
aarch64.h aarch64: PR target/105157 Increase number of cores TARGET_CPU_DEFAULT can encode 2022-04-08 15:12:23 +01:00
aarch64.md aarch64: Implement ACLE Data Intrinsics 2022-08-11 16:18:08 +01:00
aarch64.opt aarch64: Implement determine_suggested_unroll_factor 2022-03-31 17:11:32 +01:00
arm_acle.h aarch64: Implement ACLE Data Intrinsics 2022-08-11 16:18:08 +01:00
arm_bf16.h Update copyright years. 2022-01-03 10:42:10 +01:00
arm_fp16.h Update copyright years. 2022-01-03 10:42:10 +01:00
arm_neon.h Update copyright years. 2022-01-03 10:42:10 +01:00
arm_sve.h Update copyright years. 2022-01-03 10:42:10 +01:00
atomics.md Update copyright years. 2022-01-03 10:42:10 +01:00
biarchilp32.h Update copyright years. 2022-01-03 10:42:10 +01:00
biarchlp64.h Update copyright years. 2022-01-03 10:42:10 +01:00
check-sve-md.awk Update copyright years. 2022-01-03 10:42:10 +01:00
constraints.md Update copyright years. 2022-01-03 10:42:10 +01:00
cortex-a57-fma-steering.cc Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
driver-aarch64.cc Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
falkor-tag-collision-avoidance.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
falkor.md Update copyright years. 2022-01-03 10:42:10 +01:00
fractional-cost.h Fix up duplicated duplicated words in comments 2022-03-07 15:00:20 +01:00
geniterators.sh Update copyright years. 2022-01-03 10:42:10 +01:00
gentune.sh Update copyright years. 2022-01-03 10:42:10 +01:00
host-aarch64-darwin.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
iterators.md aarch64: Extend PR100056 patterns to + 2022-02-16 10:21:13 +00:00
predicates.md aarch64: Add more vec_combine patterns 2022-02-09 16:57:05 +00:00
rtems.h Update copyright years. 2022-01-03 10:42:10 +01:00
saphira.md Update copyright years. 2022-01-03 10:42:10 +01:00
t-aarch64 aarch64: Restrict aarch64-tune.md regeneration to --enable-maintainer-mode [PR105144] 2022-04-04 13:56:32 +02:00
t-aarch64-freebsd Update copyright years. 2022-01-03 10:42:10 +01:00
t-aarch64-linux Update copyright years. 2022-01-03 10:42:10 +01:00
t-aarch64-netbsd Update copyright years. 2022-01-03 10:42:10 +01:00
t-aarch64-vxworks Update copyright years. 2022-01-03 10:42:10 +01:00
thunderx.md Update copyright years. 2022-01-03 10:42:10 +01:00
thunderx2t99.md Update copyright years. 2022-01-03 10:42:10 +01:00
thunderx3t110.md Fix up duplicated duplicated words in comments 2022-03-07 15:00:20 +01:00
tsv110.md Update copyright years. 2022-01-03 10:42:10 +01:00
x-aarch64 Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
x-darwin Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00