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
+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.
--- /dev/null
+/* { 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;
+ }
+}
--- /dev/null
+/* { 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);
+ }
+}