This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch AArch64] Obvious - Fix return types for vaddvq_<su>64
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: richard dot earnshaw at arm dot com, marcus dot shawcroft at arm dot com
- Date: Wed, 4 Sep 2013 14:12:27 +0100
- Subject: [Patch AArch64] Obvious - Fix return types for vaddvq_<su>64
- Authentication-results: sourceware.org; auth=none
The vaddvq_s64 and vaddvq_u64 intrinsics are defined to return 32-bit
types. This is clearly wrong, so fix them to return int64_t and uint64_t
as expected.
Regression tested with a run through aarch64.exp and sanity checked.
OK for trunk?
Thanks,
James
---
gcc/
2013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h
index e289a0d..29d1378 100644
--- a/gcc/config/aarch64/arm_neon.h
+++ b/gcc/config/aarch64/arm_neon.h
@@ -17033,7 +17033,7 @@ vaddvq_s32 (int32x4_t __a)
return vgetq_lane_s32 (__builtin_aarch64_reduc_splus_v4si (__a), 0);
}
-__extension__ static __inline int32_t __attribute__ ((__always_inline__))
+__extension__ static __inline int64_t __attribute__ ((__always_inline__))
vaddvq_s64 (int64x2_t __a)
{
return vgetq_lane_s64 (__builtin_aarch64_reduc_splus_v2di (__a), 0);
@@ -17060,7 +17060,7 @@ vaddvq_u32 (uint32x4_t __a)
__builtin_aarch64_reduc_uplus_v4si ((int32x4_t) __a), 0);
}
-__extension__ static __inline uint32_t __attribute__ ((__always_inline__))
+__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
vaddvq_u64 (uint64x2_t __a)
{
return vgetq_lane_u64 ((uint64x2_t)