From 0fe55bbaee526ba675c86364d3158f3d4512d9c9 Mon Sep 17 00:00:00 2001 From: ktkachov Date: Tue, 5 Aug 2014 10:46:31 +0000 Subject: [PATCH] [AArch64] Fix types for vqdmlals_lane_s32 and vqdmlsls_lane_s32 intrinsics. * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types rather than singleton vectors. (vqdmlsls_lane_s32): Likewise. * gcc.target/aarch64/scalar_intrinsics.c (test_vqdmlals_lane_s32): Fix types. (test_vqdmlsls_lane_s32): Likewise. * gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213636 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/config/aarch64/arm_neon.h | 13 ++++++------- gcc/testsuite/ChangeLog | 8 ++++++++ gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c | 8 ++++---- gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c | 4 ++-- gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_lane_s32.c | 4 ++-- 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 491ff3870bb..560f6e43ecd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2014-08-05 Kyrylo Tkachov + * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types + rather than singleton vectors. + (vqdmlsls_lane_s32): Likewise. + +2014-08-05 Kyrylo Tkachov + * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq): Use VSDQ_HSI mode iterator. (aarch64_sqrdmulh_laneq): Likewise. diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 1289ce170fd..0a86172ccb9 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -19457,11 +19457,10 @@ vqdmlals_s32 (int64_t __a, int32x1_t __b, int32x1_t __c) return __builtin_aarch64_sqdmlalsi (__a, __b, __c); } -__extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) -vqdmlals_lane_s32 (int64x1_t __a, int32x1_t __b, int32x2_t __c, const int __d) +__extension__ static __inline int64_t __attribute__ ((__always_inline__)) +vqdmlals_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d) { - return (int64x1_t) - {__builtin_aarch64_sqdmlal_lanesi (__a[0], __b, __c, __d)}; + return __builtin_aarch64_sqdmlal_lanesi (__a, __b, __c, __d); } __extension__ static __inline int64_t __attribute__ ((__always_inline__)) @@ -19596,10 +19595,10 @@ vqdmlsls_s32 (int64_t __a, int32x1_t __b, int32x1_t __c) return __builtin_aarch64_sqdmlslsi (__a, __b, __c); } -__extension__ static __inline int64x1_t __attribute__ ((__always_inline__)) -vqdmlsls_lane_s32 (int64x1_t __a, int32x1_t __b, int32x2_t __c, const int __d) +__extension__ static __inline int64_t __attribute__ ((__always_inline__)) +vqdmlsls_lane_s32 (int64_t __a, int32_t __b, int32x2_t __c, const int __d) { - return (int64x1_t) {__builtin_aarch64_sqdmlsl_lanesi (__a[0], __b, __c, __d)}; + return __builtin_aarch64_sqdmlsl_lanesi (__a, __b, __c, __d); } __extension__ static __inline int64_t __attribute__ ((__always_inline__)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b218b0bda59..dbe59e58471 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2014-08-05 Kyrylo Tkachov + * gcc.target/aarch64/scalar_intrinsics.c (test_vqdmlals_lane_s32): + Fix types. + (test_vqdmlsls_lane_s32): Likewise. + * gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise. + * gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise. + +2014-08-05 Kyrylo Tkachov + * gcc.target/aarch64/simd/vqdmlalh_laneq_s16_1.c: New test. * gcc.target/aarch64/simd/vqdmlals_laneq_s32_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlslh_laneq_s16_1.c: Likewise. diff --git a/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c b/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c index 0e288f292e4..2bd762cdcb8 100644 --- a/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c +++ b/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c @@ -405,8 +405,8 @@ test_vqdmlals_s32 (int64_t a, int32x1_t b, int32x1_t c) /* { dg-final { scan-assembler-times "\\tsqdmlal\\td\[0-9\]+, s\[0-9\]+, v" 1 } } */ -int64x1_t -test_vqdmlals_lane_s32 (int64x1_t a, int32x1_t b, int32x2_t c) +int64_t +test_vqdmlals_lane_s32 (int64_t a, int32_t b, int32x2_t c) { return vqdmlals_lane_s32 (a, b, c, 1); } @@ -437,8 +437,8 @@ test_vqdmlsls_s32 (int64_t a, int32x1_t b, int32x1_t c) /* { dg-final { scan-assembler-times "\\tsqdmlsl\\td\[0-9\]+, s\[0-9\]+, v" 1 } } */ -int64x1_t -test_vqdmlsls_lane_s32 (int64x1_t a, int32x1_t b, int32x2_t c) +int64_t +test_vqdmlsls_lane_s32 (int64_t a, int32_t b, int32x2_t c) { return vqdmlsls_lane_s32 (a, b, c, 1); } diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c b/gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c index ef94e95d971..38352c54dca 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c +++ b/gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c @@ -5,8 +5,8 @@ #include "arm_neon.h" -int64x1_t -t_vqdmlals_lane_s32 (int64x1_t a, int32x1_t b, int32x2_t c) +int64_t +t_vqdmlals_lane_s32 (int64_t a, int32_t b, int32x2_t c) { return vqdmlals_lane_s32 (a, b, c, 0); } diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_lane_s32.c b/gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_lane_s32.c index 9e351bc360f..3c6089887d0 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_lane_s32.c +++ b/gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_lane_s32.c @@ -5,8 +5,8 @@ #include "arm_neon.h" -int64x1_t -t_vqdmlsls_lane_s32 (int64x1_t a, int32x1_t b, int32x2_t c) +int64_t +t_vqdmlsls_lane_s32 (int64_t a, int32_t b, int32x2_t c) { return vqdmlsls_lane_s32 (a, b, c, 0); } -- 2.11.4.GIT