From b63cb15373bf384f1d644c4cfae0c60422cc3909 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Thu, 31 Oct 2013 14:59:07 +0100
Subject: [PATCH] * gcc.dg/vect/vect-align-3.c: New test.

From-SVN: r204259
---
 gcc/testsuite/ChangeLog                  |  2 +
 gcc/testsuite/gcc.dg/vect/vect-align-3.c | 54 ++++++++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 gcc/testsuite/gcc.dg/vect/vect-align-3.c

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 769209d795ac..261e2e2c8b4a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,7 @@
 2013-10-31  Jakub Jelinek  <jakub@redhat.com>
 
+	* gcc.dg/vect/vect-align-3.c: New test.
+
 	* g++.dg/warn/pr33738.C (main): Initialize a2 again to make sure
 	we warn about it already during VRP1 pass.
 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-align-3.c b/gcc/testsuite/gcc.dg/vect/vect-align-3.c
new file mode 100644
index 000000000000..a8d3e485e6cc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-align-3.c
@@ -0,0 +1,54 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_int } */
+
+int a[2048];
+
+void
+f1 (int x, int y)
+{
+  int i;
+  x &= -256;
+  y &= -256;
+  for (i = x + 256; i < y; i++)
+    a[i]++;
+}
+
+void
+f2 (int x, int y)
+{
+  int i;
+  if (x & 31)
+    __builtin_unreachable ();
+  if (y & 31)
+    __builtin_unreachable ();
+  for (i = x + 256; i < x + y; i++)
+    a[i]++;
+}
+
+void
+f3 (int x, int y)
+{
+  int i;
+  if (x % 256)
+    __builtin_unreachable ();
+  if (y % 256)
+    __builtin_unreachable ();
+  for (i = x + 256; i < x + y; i++)
+    a[i]++;
+}
+
+void
+f4 (int x, int y)
+{
+  int i;
+  if ((x % 256) != 0)
+    __builtin_unreachable ();
+  if ((y % 256) != 0)
+    __builtin_unreachable ();
+  for (i = x + 256; i < x + y; i++)
+    a[i]++;
+}
+
+/* { dg-final { scan-tree-dump-not "vect_do_peeling_for_loop_bound" "vect" } } */
+/* { dg-final { scan-tree-dump-not "loop peeled for vectorization" "vect" } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
-- 
GitLab