]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vect-neg-store-1.c: New test.
authorBingfeng Mei <bmei@broadcom.com>
Mon, 23 Dec 2013 17:22:30 +0000 (17:22 +0000)
committerBingfeng Mei <meibf@gcc.gnu.org>
Mon, 23 Dec 2013 17:22:30 +0000 (17:22 +0000)
2013-12-23  Bingfeng Mei  <bmei@broadcom.com>

* gcc.dg/vect/vect-neg-store-1.c: New test.
* gcc.dg/vect/vect-neg-store-2.c: Ditto.

From-SVN: r206181

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c [new file with mode: 0644]

index c4fad36aa9eba1f15d241523a72895853dbd3eef..c0bba43dc395424e5a71f11901fed6afd01a86d8 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-23  Bingfeng Mei  <bmei@broadcom.com>
+
+       * gcc.dg/vect/vect-neg-store-1.c: New test.
+       * gcc.dg/vect/vect-neg-store-2.c: Ditto.
+
 2013-12-23  Bingfeng Mei  <bmei@broadcom.com>
 
        PR middle-end/59569
diff --git a/gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c b/gcc/testsuite/gcc.dg/vect/vect-neg-store-1.c
new file mode 100644 (file)
index 0000000..178f0a1
--- /dev/null
@@ -0,0 +1,39 @@
+/* { dg-require-effective-target vect_int } */
+#include <stdlib.h>
+
+__attribute__((noinline, noclone))
+void test1(short x[128])
+{
+    int i;
+    for (i=127; i>=0; i--) {
+       x[i] = 1234;
+    }
+}
+
+int main (void)
+{
+  short x[128 + 32];
+  int i;
+  
+  for (i = 0; i < 16; i ++)
+    {
+      asm ("");
+      x[i] = x[i + 144] = 5678;
+    }
+   
+  test1 (x + 16);
+  
+  for (i = 0; i < 128; i++)
+   if (x[i + 16] != 1234)
+     abort ();
+  
+  for (i = 0; i < 16; i++)
+    if (x[i] != 5678
+       || x[i + 144] != 5678)
+      abort ();
+         
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c b/gcc/testsuite/gcc.dg/vect/vect-neg-store-2.c
new file mode 100644 (file)
index 0000000..e97b9bf
--- /dev/null
@@ -0,0 +1,39 @@
+/* { dg-require-effective-target vect_int } */
+#include <stdlib.h>
+
+__attribute__((noinline, noclone))
+void test1(short x[128], short D)
+{
+    int i;
+    for (i=127; i>=0; i--) {
+       x[i] = D;
+    }
+}
+
+int main (void)
+{
+  short x[128 + 32];
+  int i;
+  
+  for (i = 0; i < 16; i ++)
+    {
+      asm ("");
+      x[i] = x[i + 144] = 5678;
+    }
+   
+  test1 (x + 16, 1234);
+  
+  for (i = 0; i < 128; i++)
+   if (x[i + 16] != 1234)
+     abort ();
+  
+  for (i = 0; i < 16; i++)
+    if (x[i] != 5678
+       || x[i + 144] != 5678)
+      abort ();
+         
+  return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */