On Wed, Nov 25, 2015 at 10:14:10AM +0000, Matthew Wahab wrote: > On 23/11/15 13:35, James Greenhalgh wrote: > >On Fri, Oct 23, 2015 at 01:26:11PM +0100, Matthew Wahab wrote: > >>The ARMv8.1 architecture extension adds two Adv.SIMD instructions, > >>sqrdmlah and sqrdmlsh. This patch adds the NEON intrinsics vqrdmlah and > >>vqrdmlsh for these instructions. The new intrinsics are of the form > >>vqrdml{as}h[q]_<type>. > >> > > >>diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h > >>index e186348..9e73809 100644 > >>--- a/gcc/config/aarch64/arm_neon.h > >>+++ b/gcc/config/aarch64/arm_neon.h > >>@@ -2649,6 +2649,59 @@ vqrdmulhq_s32 (int32x4_t __a, int32x4_t __b) > >> return (int32x4_t) __builtin_aarch64_sqrdmulhv4si (__a, __b); > >> } > >> > >>+#pragma GCC push_options > >>+#pragma GCC target ("arch=armv8.1-a") > > > >Can we please patch the documentation to make it clear that -march=armv8.1-a > >always implies -march=armv8.1-a+rdma ? The documentation around which > >feature modifiers are implied when leaves much to be desired. > > I'll rework the documentation as part of the (separate) command lines > clean-up patch. > > >>+ > >>+__extension__ static __inline int16x4_t __attribute__ ((__always_inline__)) > >>+vqrdmlah_s16 (int16x4_t __a, int16x4_t __b, int16x4_t __c) > >>+{ > >>+ return (int16x4_t) __builtin_aarch64_sqrdmlahv4hi (__a, __b, __c); > > > >We don't need this cast (likewise the other instances)? > > > > Attached, a reworked patch that removes the casts from the new > intrinsics. It also moves the new intrinsics to before the crypto > intrinsics. The intention is that the intrinsics added in this and the > next patch in the set are put in the same place and bracketed by a > single target pragma. > > Retested aarch64-none-elf with cross-compiled check-gcc on an ARMv8.1 > emulator. Also re-ran the cross-compiled > gcc.target/aarch64/advsimd-intrinsics tests for aarch64-none-elf on an > ARMv8 emulator.
OK. Thanks, James > gcc/ > 2015-11-24 Matthew Wahab <matthew.wa...@arm.com> > > * gcc/config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New. > (vqrdmlahq_s16, vqrdmlahq_s32): New. > (vqrdmlsh_s16, vqrdmlsh_s32): New. > (vqrdmlshq_s16, vqrdmlshq_s32): New. > > gcc/testsuite > 2015-11-24 Matthew Wahab <matthew.wa...@arm.com> > > * gcc.target/aarch64/advsimd-intrinsics/vqrdmlXh.inc: New file, > support code for vqrdml{as}h tests. > * gcc.target/aarch64/advsimd-intrinsics/vqrdmlah.c: New. > * gcc.target/aarch64/advsimd-intrinsics/vqrdmlsh.c: New.