aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c
new file mode 100644
index 000000000..f0506c267
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/arm/pr51968.c
@@ -0,0 +1,32 @@
+/* PR target/51968 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
+/* { dg-require-effective-target arm_neon_ok } */
+
+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]; };
+int y;
+
+void
+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);
+ }
+ for (;;)
+ {
+ int8x16_t g;
+ int8x8_t h, j, k;
+ struct T m;
+ j = __builtin_neon_vqmovunv8hi (b, 1);
+ g = __builtin_neon_vcombinev8qi (j, h);
+ k = __builtin_neon_vget_lowv16qi (g);
+ __builtin_neon_vuzpv8qi (&m.val[0], k, n);
+ }
+}