aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>2016-10-13 19:50:41 +0000
committerWilliam Schmidt <wschmidt@gcc.gnu.org>2016-10-13 19:50:41 +0000
commita269531973deae79d2d3aba10ff9eab0fb5df5a9 (patch)
tree989cd298381a9ee3c514dd79d425182eafb48976
parent2437d31d0e52f0ea67ef1c7a2761f6bff8870c82 (diff)
downloadgcc-a269531973deae79d2d3aba10ff9eab0fb5df5a9.zip
gcc-a269531973deae79d2d3aba10ff9eab0fb5df5a9.tar.gz
gcc-a269531973deae79d2d3aba10ff9eab0fb5df5a9.tar.bz2
re PR tree-optimization/77937 (ICE: in replace_one_candidate, at gimple-ssa-strength-reduction.c:3370)
2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/77937 * gcc.dg/torture/pr77937-1.c: New. * gcc.dg/torture/pr77937-2.c: New. From-SVN: r241139
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr77937-1.c14
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr77937-2.c17
3 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5e31162..0960e08 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/77937
+ * gcc.dg/torture/pr77937-1.c: New.
+ * gcc.dg/torture/pr77937-2.c: New.
+
2016-10-13 Jakub Jelinek <jakub@redhat.com>
* g++.dg/cpp1z/inline-var1.C: New test.
diff --git a/gcc/testsuite/gcc.dg/torture/pr77937-1.c b/gcc/testsuite/gcc.dg/torture/pr77937-1.c
new file mode 100644
index 0000000..5f921fd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr77937-1.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-do options "-O3 -march=amdfam10" { target { x86_64-*-* } } } */
+
+int *a;
+int b, c, d;
+void fn1(char *p1, int p2) {
+ int x;
+ while (1) {
+ x = 0;
+ for (; x < 8; x++)
+ p1[0] = -a[0] * d + p1[0] * c + 1 >> b >> 1;
+ p1 += p2;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr77937-2.c b/gcc/testsuite/gcc.dg/torture/pr77937-2.c
new file mode 100644
index 0000000..1c3dfc1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr77937-2.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-do options "-O3 -march=amdfam10" { target { x86_64-*-* } } } */
+
+extern int fn2(int);
+extern int fn3(int);
+int a, b, c;
+void fn1(long p1) {
+ char *d;
+ for (;; d += p1) {
+ d[0] = fn2(1 >> a);
+ fn3(0);
+ fn3(c >> a);
+ d[1] = fn3(d[1] * b + c >> a);
+ d[4] = fn3(d[4] * b + c >> a);
+ d[5] = fn3(d[5] * b + c >> a);
+ }
+}