blob: 0aad2e9494e7f7a9ca8e1a6e7fa5a204ffe0d34e [file] [log] [blame]
/* { dg-do compile} */
/* { dg-options "-O2 -fdump-tree-evrp" } */
unsigned char
foo (unsigned int x)
{
_Bool y = x;
return (((unsigned char) ~0) >> y) * 2;
}
unsigned char
bar (unsigned int x)
{
return (((unsigned char) ~0) >> (_Bool) x) * 2;
}
unsigned
baz (unsigned int x)
{
if (x >= 4) return 32;
return (-1U >> x) * 16;
}
/* { dg-final { scan-tree-dump-times "return 254" 2 "evrp" } } */
/* { dg-final { scan-tree-dump "= PHI <32.*, 4294967280" "evrp" } } */