Hi All,

This test was added back when builtins were being used instead of ACLE
intrinsics.  The test as far as I can tell is really testing vcombine,
however some of these builtins no longer exist and causes an ICE.

This fixes the testcase by changing it to use neon intrinsics.

Regtested on arm-none-eabi and no issues.

Ok for trunk?

Thanks,
Tamar

gcc/testsuite/ChangeLog:

2019-01-17  Tamar Christina  <tamar.christ...@arm.com>

        PR target/88850
        * gcc.target/arm/pr51968.c: Use neon intrinsics.

-- 
diff --git a/gcc/testsuite/gcc.target/arm/pr51968.c b/gcc/testsuite/gcc.target/arm/pr51968.c
index 99bdb961757bfa62aec5ef1426137425e57898b0..781470223db0d85214bced0b64fda68b4c43967f 100644
--- a/gcc/testsuite/gcc.target/arm/pr51968.c
+++ b/gcc/testsuite/gcc.target/arm/pr51968.c
@@ -1,14 +1,10 @@
 /* PR target/51968 */
 /* { dg-do compile } */
-/* { dg-options "-O2 -Wno-implicit-function-declaration -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
+/* { dg-options "-O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
 /* { dg-require-effective-target arm_neon_ok } */
+#include <arm_neon.h>
 
-typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
-typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8)));
-typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16)));
-typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16)));
-typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16)));
-struct T { int8x8_t val[2]; };
+struct T { int8x8x2_t val; };
 int y;
 
 void
@@ -17,16 +13,16 @@ foo (int8x8_t z, int8x8_t x, int16x8_t b, int8x8_t n)
   if (y)
     {
       struct T m;
-      __builtin_neon_vuzpv8qi (&m.val[0], z, x);
+      m.val = vuzp_s8 (z, x);
     }
   for (;;)
     {
       int8x16_t g;
       int8x8_t h, j, k;
       struct T m;
-      j = __builtin_neon_vqmovunv8hi (b);
-      g = __builtin_neon_vcombinev8qi (j, h);
-      k = __builtin_neon_vget_lowv16qi (g);
-      __builtin_neon_vuzpv8qi (&m.val[0], k, n);
+      j = vqmovn_s16 (b);
+      g = vcombine_s8 (j, h);
+      k = vget_low_s8 (g);
+      m.val = vuzp_s8 (k, n);
     }
 }

Reply via email to