diff mbox

[ARM,PATCHv2,2/3] Add missing Poly64_t intrinsics to GCC

Message ID VI1PR0801MB2031AFBD56755EFE2501FCB1FFA70@VI1PR0801MB2031.eurprd08.prod.outlook.com
State New
Headers show

Commit Message

Tamar Christina Nov. 7, 2016, 1:55 p.m. UTC
Hi all,

This patch (2 of 3) adds the following NEON intrinsics to
the ARM back-end of GCC:

* vget_lane_p64

Added new tests for these and ran regression tests on aarch64-none-linux-gnu
and on arm-none-linux-gnueabihf.

Ok for trunk?

Thanks,
Tamar

gcc/
2016-11-04  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/arm_neon.h (vget_lane_p64): New.

Comments

Christophe Lyon Nov. 8, 2016, 9:41 a.m. UTC | #1
On 7 November 2016 at 14:55, Tamar Christina <Tamar.Christina@arm.com> wrote:
> Hi all,

>

> This patch (2 of 3) adds the following NEON intrinsics to

> the ARM back-end of GCC:

>

> * vget_lane_p64

>

> Added new tests for these and ran regression tests on aarch64-none-linux-gnu

> and on arm-none-linux-gnueabihf.

>

> Ok for trunk?

>

> Thanks,

> Tamar

>

> gcc/

> 2016-11-04  Tamar Christina  <tamar.christina@arm.com>

>

>         * config/arm/arm_neon.h (vget_lane_p64): New.


LGTM (but I can't approve)

Thanks
Kyrill Tkachov Nov. 8, 2016, 10:18 a.m. UTC | #2
On 07/11/16 13:55, Tamar Christina wrote:
> Hi all,

>

> This patch (2 of 3) adds the following NEON intrinsics to

> the ARM back-end of GCC:

>

> * vget_lane_p64

>

> Added new tests for these and ran regression tests on aarch64-none-linux-gnu

> and on arm-none-linux-gnueabihf.

>

> Ok for trunk?


Ok.
Thanks,
Kyrill

> Thanks,

> Tamar

>

> gcc/

> 2016-11-04  Tamar Christina  <tamar.christina@arm.com>

>

> 	* config/arm/arm_neon.h (vget_lane_p64): New.
diff mbox

Patch

diff --git a/gcc/config/arm/arm_neon.h b/gcc/config/arm/arm_neon.h
index 3898ff7302dc3f21e6b50a8a7b835033c1ae2021..ab29da74e0971cc09ee63b561ecc79e9762e3fb4 100644
--- a/gcc/config/arm/arm_neon.h
+++ b/gcc/config/arm/arm_neon.h
@@ -5411,6 +5411,15 @@  vget_lane_s64 (int64x1_t __a, const int __b)
   return (int64_t)__builtin_neon_vget_lanedi (__a, __b);
 }
 
+#pragma GCC push_options
+#pragma GCC target ("fpu=crypto-neon-fp-armv8")
+__extension__ static __inline poly64_t __attribute__ ((__always_inline__))
+vget_lane_p64 (poly64x1_t __a, const int __b)
+{
+  return (poly64_t)__builtin_neon_vget_lanedi ((int64x1_t) __a, __b);
+}
+
+#pragma GCC pop_options
 __extension__ static __inline uint64_t __attribute__ ((__always_inline__))
 vget_lane_u64 (uint64x1_t __a, const int __b)
 {