diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2014-08-05 10:46:31 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2014-08-05 10:46:31 +0000 |
commit | b8a5fbd280e516d914b41b80132210c6549814cd (patch) | |
tree | 01eba8a168c7d899cc4044ef12df2093ef87c06c | |
parent | d2937a2e3f9d5e3e69f7ef71da685f6583ebf924 (diff) | |
download | gcc-b8a5fbd280e516d914b41b80132210c6549814cd.zip gcc-b8a5fbd280e516d914b41b80132210c6549814cd.tar.gz gcc-b8a5fbd280e516d914b41b80132210c6549814cd.tar.bz2 |
[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.
From-SVN: r213636
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/arm_neon.h | 13 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c | 4 | ||||
-rw-r--r-- | 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 491ff38..560f6e4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types + rather than singleton vectors. + (vqdmlsls_lane_s32): Likewise. + +2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>): Use VSDQ_HSI mode iterator. (aarch64_sqrdmulh_laneq<mode>): Likewise. diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 1289ce1..0a86172 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 b218b0b..dbe59e5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * 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 <kyrylo.tkachov@arm.com> + * 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 0e288f2..2bd762c 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 ef94e95..38352c5 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 9e351bc3..3c60898 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); } |