commit three of testcases which I forgot to commit.

From-SVN: r102411
This commit is contained in:
Andrew Pinski 2005-07-26 18:01:48 -07:00
parent 74160ccfa5
commit 9e52adc409
3 changed files with 72 additions and 0 deletions

View File

@ -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();
}

View File

@ -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"} } */

View File

@ -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"} } */