]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/26515 (peephole2 causes unrecognized insn, zero_extending non-general...
authorHans-Peter Nilsson <hp@axis.com>
Mon, 12 Oct 2009 17:22:57 +0000 (17:22 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Mon, 12 Oct 2009 17:22:57 +0000 (17:22 +0000)
PR target/26515
* gcc.dg/torture/pr26515.c: New test.

From-SVN: r152674

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr26515.c [new file with mode: 0644]

index 2d5c6a8ca3d8c74ede949742372b726c71e47e92..d4e11af3a3e168e1377ec54e51dd6d8c7716e68c 100644 (file)
@@ -1,3 +1,8 @@
+2009-10-12  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR target/26515
+       * gcc.dg/torture/pr26515.c: New test.
+
 2009-10-05  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/41479
diff --git a/gcc/testsuite/gcc.dg/torture/pr26515.c b/gcc/testsuite/gcc.dg/torture/pr26515.c
new file mode 100644 (file)
index 0000000..a051e2e
--- /dev/null
@@ -0,0 +1,27 @@
+/* { dg-options "-march=v10" { target cris*-*-* } } */
+struct i
+{
+  long long i_size;
+  struct a *i_mapping;
+};
+struct p
+{
+  struct a *mapping;
+  long index;
+};
+extern void b (struct p*, unsigned);
+extern void u (struct p*);
+void
+block_page_mkwrite (struct i *i, struct p *p)
+{
+  unsigned end = 0;
+  long long size = 0;
+  size = i->i_size;
+  if ((p->mapping != i->i_mapping))
+    goto out_unlock;
+  if (((p->index + 1) << 13) > size)
+    end = size & ~(~(((1UL) << 13) - 1));
+  b (p, end);
+out_unlock:
+  u (p);
+}