Message ID | 562A2519.3020102@foss.arm.com |
---|---|
State | New |
Headers | show |
On Fri, Oct 23, 2015 at 01:16:25PM +0100, Matthew Wahab wrote: > The ARMv8.1 architecture extension adds two Adv.SIMD instructions, > sqrdmlah and sqrdmlsh. This patch series adds the instructions to the > AArch64 backend together with the ACLE feature macro and NEON intrinsics > to make use of them. The instructions are enabled when -march=armv8.1-a > is selected. > > To support execution tests for the instructions, code is also added to > the testsuite to check the target capabilities and to specify required > compiler options. > > This patch adds target feature macros for the instructions. Subsequent > patches: > - add the instructions to the aarch64-simd patterns, > - add GCC builtins to generate the instructions, > - add the ACLE feature macro __ARM_FEATURE_QRDMX, > - add support for ARMv8.1-A Adv.SIMD tests to the dejagnu support code, > - add NEON intrinsics for the basic form of the instructions. > - add NEON intrinsics for the *_lane forms of the instructions. > > Tested the series for aarch64-none-linux-gnu with native bootstrap and > make check on an ARMv8 architecture. Also tested aarch64-none-elf with > cross-compiled check-gcc on an ARMv8.1 emulator. > > Ok for trunk? > Matthew OK. Thanks, James > > gcc/ > 2015-10-23 Matthew Wahab <matthew.wahab@arm.com> > > * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New. > (TARGET_SIMD_RDMA): New. >
From 4933ff4839406cdff2d2ec87920cab257a90474d Mon Sep 17 00:00:00 2001 From: Matthew Wahab <matthew.wahab@arm.com> Date: Thu, 27 Aug 2015 13:31:17 +0100 Subject: [PATCH 1/7] Add RDMA target feature. Change-Id: Ic22d5ae4c8dc012bd8e63dfd82a21935f44be50c --- gcc/config/aarch64/aarch64.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index b041a1e..c67eac9 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -157,6 +157,7 @@ extern unsigned aarch64_architecture_version; #define AARCH64_ISA_FP (aarch64_isa_flags & AARCH64_FL_FP) #define AARCH64_ISA_SIMD (aarch64_isa_flags & AARCH64_FL_SIMD) #define AARCH64_ISA_LSE (aarch64_isa_flags & AARCH64_FL_LSE) +#define AARCH64_ISA_RDMA (aarch64_isa_flags & AARCH64_FL_RDMA) /* Crypto is an optional extension to AdvSIMD. */ #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO) @@ -181,6 +182,9 @@ extern unsigned aarch64_architecture_version; ((aarch64_fix_a53_err835769 == 2) \ ? TARGET_FIX_ERR_A53_835769_DEFAULT : aarch64_fix_a53_err835769) +/* ARMv8.1 Adv.SIMD support. */ +#define TARGET_SIMD_RDMA (TARGET_SIMD && AARCH64_ISA_RDMA) + /* Standard register usage. */ /* 31 64-bit general purpose registers R0-R30: -- 2.1.4