]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
AArch64 vabs_s64 intrinsic
authorIan Bolton <ian.bolton@arm.com>
Fri, 19 Jul 2013 18:41:22 +0000 (18:41 +0000)
committerIan Bolton <ibolton@gcc.gnu.org>
Fri, 19 Jul 2013 18:41:22 +0000 (18:41 +0000)
From-SVN: r201067

gcc/ChangeLog
gcc/config/aarch64/arm_neon.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c

index 1810dbeccb8a04dc48be1713ee0816089aa75fba..822639b076f7cf8682f9a07324683384e984f461 100644 (file)
@@ -1,3 +1,7 @@
+2013-07-19  Ian Bolton  <ian.bolton@arm.com>
+
+       * config/aarch64/arm_neon.h (vabs_s64): New function
+
 2013-07-19  Georg-Johann Lay  <avr@gjlay.de>
 
        PR target/57516
index 13ef11db3f6066931b249cb127d692a145bf54bb..122fd7daa021f33b7e2c08a76435d7fbf7002574 100644 (file)
@@ -17395,6 +17395,12 @@ vabs_f32 (float32x2_t __a)
   return __builtin_aarch64_absv2sf (__a);
 }
 
+__extension__ static __inline int64x1_t __attribute__ ((__always_inline__))
+vabs_s64 (int64x1_t __a)
+{
+  return __builtin_llabs (__a);
+}
+
 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
 vabsq_f32 (float32x4_t __a)
 {
index 584dd785457eabc142209f74f234f9c85bcbca59..2b2a39204c1ad16af6b10699cb47a729c326973b 100644 (file)
@@ -1,3 +1,8 @@
+2013-07-19  Ian Bolton  <ian.bolton@arm.com>
+
+       * gcc.target/aarch64/scalar_intrinsics.c (test_vabs_s64): Added
+       new testcase.
+
 2013-07-19  David Edelsohn  <dje.gcc@gmail.com>
 
        * gfortran.fortran-torture/execute/intrinsic_nearest.x: Skip on AIX.
index 46d34499b3f6873eeaad8f4063365c903d464334..3d902f6342d581e68e0bb82a10e12980ab8016a8 100644 (file)
@@ -32,6 +32,18 @@ test_vaddd_s64_2 (int64x1_t a, int64x1_t b, int64x1_t c, int64x1_t d)
                     vqaddd_s64 (a, d));
 }
 
+/* { dg-final { scan-assembler-times "\\tabs\\td\[0-9\]+, d\[0-9\]+" 1 } } */
+
+int64x1_t
+test_vabs_s64 (int64x1_t a)
+{
+  uint64x1_t res;
+  force_simd (a);
+  res = vabs_s64 (a);
+  force_simd (res);
+  return res;
+}
+
 /* { dg-final { scan-assembler-times "\\tcmeq\\td\[0-9\]+, d\[0-9\]+, d\[0-9\]+" 1 } } */
 
 uint64x1_t