1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-thread1-stats -fdump-tree-thread2-stats -fdump-tree-dom2-stats -fdump-tree-thread3-stats -fdump-tree-dom3-stats -fdump-tree-vrp2-stats -fno-guess-branch-probability" } */
3 /* { dg-final { scan-tree-dump "Jumps threaded: 16" "thread1" } } */
4 /* { dg-final { scan-tree-dump "Jumps threaded: 9" "thread2" } } */
5 /* { dg-final { scan-tree-dump "Jumps threaded: 1" "dom2" } } */
6 /* { dg-final { scan-tree-dump-not "Jumps threaded" "dom3" } } */
7 /* { dg-final { scan-tree-dump-not "Jumps threaded" "vrp2" } } */
9 /* Most architectures get 3 threadable paths here, whereas aarch64 and
10 possibly others get 5. We really should rewrite threading tests to
11 test a specific IL sequence, not gobs of code whose IL can vary
12 from architecture to architecture. */
13 /* { dg-final { scan-tree-dump "Jumps threaded: \[35\]" "thread3" } } */
26 int bar (enum STATE s
);
28 enum STATE
foo (unsigned char **y
, unsigned *c
)
30 unsigned char *x
= *y
;
34 for( ; *x
&& s
!= SI
; x
++ )
47 else if( n
== 'a' || n
== 'b' )
88 if( n
== 'E' || n
== 'e' )
100 if( n
== 'a' || n
== 'b' )