aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-07-27 01:01:48 +0000
committerAndrew Pinski <pinskia@physics.uc.edu>2005-07-27 01:01:48 +0000
commit55c6cd7f2a089b0f9c85309cc1e2097d98ab4a27 (patch)
tree88e11492ad7333af4066c979875b61d69c977c82
parente24d4fcd41fe2fb733c443623df07911188ba115 (diff)
commit three of testcases which I forgot to commit.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@102411 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/g++.dg/opt/loop2.C24
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c26
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr19055.c22
3 files changed, 72 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/loop2.C b/gcc/testsuite/g++.dg/opt/loop2.C
new file mode 100644
index 00000000000..aee612ab510
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/loop2.C
@@ -0,0 +1,24 @@
+// PR middle-end/22484
+// { dg-do compile }
+// { dg-options "-O3" }
+
+struct A { ~A(); };
+typedef bool B;
+
+bool foo();
+
+bool bar(A&)
+{
+ B b = true;
+
+ for (int i = 0; i < 2 && b; ++i)
+ b = foo();
+
+ return b;
+}
+
+void baz()
+{
+ A a;
+ if (bar(a)) foo();
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c
new file mode 100644
index 00000000000..2bc2f9bdfc2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-fdump-tree-gimple" } */
+int f1(int a,int b,int c,int d)
+{
+ return ((a&d)|(b&c)) ^ (b&c);
+}
+
+int f2(int a,int b,int c,int d)
+{
+ return (b&c) ^ ((a&d)|(b&c));
+}
+
+int f3(int a,int b,int c,int d)
+{
+ return ((b&c)|(a&d)) ^ (b&c);
+}
+
+int f4(int a,int b,int c,int d)
+{
+ return (b&c) ^ ((b&c)|(a&d));
+}
+
+/* There should be no ^, 4 ~ and 12 &. */
+/* { dg-final { scan-tree-dump-times "\\^" 0 "gimple"} } */
+/* { dg-final { scan-tree-dump-times "~" 4 "gimple"} } */
+/* { dg-final { scan-tree-dump-times "&" 12 "gimple"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c
new file mode 100644
index 00000000000..48484c67c39
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-fdump-tree-gimple" } */
+int f1(int a,int b)
+{
+ return (a|b) ^ b;
+}
+int f2(int a,int b)
+{
+ return (b|a) ^ b;
+}
+int f3(int a,int b)
+{
+ return b^(a|b);
+}
+int f4(int a,int b)
+{
+ return b^(b|a);
+}
+/* There should be no ^, 4 ~ and 4 &. */
+/* { dg-final { scan-tree-dump-times "\\^" 0 "gimple"} } */
+/* { dg-final { scan-tree-dump-times "~" 4 "gimple"} } */
+/* { dg-final { scan-tree-dump-times "&" 4 "gimple"} } */