/* { dg-do run } */ | |
/* { dg-options "-O -fno-tree-fre -fdump-tree-dom2" } */ | |
extern void abort (void); | |
int a; | |
int __attribute__((noinline)) | |
foo (int b) | |
{ | |
a = 0; | |
if (b) | |
{ | |
a = 1; | |
return a; | |
} | |
/* DOM should be able to CSE both loads here, forwarding 0 and 1 | |
to the PHI feeding the return. */ | |
return a; | |
} | |
int | |
main() | |
{ | |
if (foo (0) != 0 | |
|| foo (1) != 1) | |
abort (); | |
return 0; | |
} | |
/* { dg-final { scan-tree-dump "= PHI <\[01\]\\\(.\\\), \[01\]\\\(.\\\)>" "dom2" } } */ |