blob: 95063d1f426f4f4c301fb14bc77aae6c5b3a0dd1 [file] [log] [blame]
/* x's mask should be meet(0xc, 0x3) == 0xf */
/* { dg-do compile } */
/* { dg-options "-O2 -fno-early-inlining -fdump-ipa-cp -fdump-tree-optimized" } */
extern int pass_test ();
extern int fail_test ();
__attribute__((noinline))
static int f1(int x)
{
if ((x & ~0xf) == 0)
return pass_test ();
else
return fail_test ();
}
__attribute__((noinline))
static int f2(int y)
{
return f1(y & 0x03);
}
__attribute__((noinline))
static int f3(int z)
{
return f1(z & 0xc);
}
extern int a;
extern int b;
int main(void)
{
int k = f2(a);
int l = f3(b);
return k + l;
}
/* { dg-final { scan-ipa-dump "Adjusting mask for param 0 to 0xf" "cp" } } */
/* { dg-final { scan-tree-dump-not "fail_test" "optimized" } } */