aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2014-08-05 10:46:31 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2014-08-05 10:46:31 +0000
commitb8a5fbd280e516d914b41b80132210c6549814cd (patch)
tree01eba8a168c7d899cc4044ef12df2093ef87c06c
parentd2937a2e3f9d5e3e69f7ef71da685f6583ebf924 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/aarch64/arm_neon.h13
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c8
-rw-r--r--gcc/testsuite/gcc.target/aarch64/simd/vqdmlals_lane_s32.c4
-rw-r--r--gcc/testsuite/gcc.target/aarch64/simd/vqdmlsls_lane_s32.c4
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);
}