From: Kyrylo Tkachov Date: Tue, 5 Aug 2014 10:46:31 +0000 (+0000) Subject: [AArch64] Fix types for vqdmlals_lane_s32 and vqdmlsls_lane_s32 intrinsics. X-Git-Tag: releases/gcc-5.1.0~5647 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8a5fbd280e516d914b41b80132210c6549814cd;p=thirdparty%2Fgcc.git [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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 491ff3870bba..560f6e43ecdc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +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): diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index 1289ce170fd1..0a86172ccb9a 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 b218b0bda59f..dbe59e58471d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +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. diff --git a/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c b/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c index 0e288f292e44..2bd762cdcb86 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 ef94e95d9714..38352c54dcab 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 9e351bc360fd..3c6089887d02 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); }