| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-threadfull1-stats" } */ |
| |
| void foo (int nest, int print_nest) |
| { |
| _Bool t0 = nest != 0; |
| _Bool t1 = nest == print_nest; |
| _Bool t2 = t0 & t1; |
| if (t2) |
| __builtin_puts ("x"); |
| nest++; |
| if (nest > 2) |
| __builtin_abort (); |
| if (print_nest == nest) |
| __builtin_puts ("y"); |
| } |
| |
| /* We should be able to thread (t2) to !(print_nest == nest) using the |
| nest == print_nest relation implied by the entry block. */ |
| /* { dg-final { scan-tree-dump "Jumps threaded: 1" "threadfull1" } } */ |