1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-original" } */
3 /* PR tree-optimization/111346 */
8 _Bool
test1(int a
, int b
)
10 return ((a
> b
) ? a
: b
) >= a
; // return 1;
12 _Bool
test1_(int a
, int b
)
14 return a
<= ((a
> b
) ? a
: b
); // return 1;
16 /* test1 and test1_ should be able to optimize to `return 1;` during fold. */
17 /* { dg-final { scan-tree-dump-times "return 1;" 2 "original" } } */
18 /* { dg-final { scan-tree-dump-not " MAX_EXPR " "original" } } */
20 _Bool
test2(int a
, int b
)
26 return t
>= a
; // return 1;
29 _Bool
test2_(int a
, int b
)
34 return t
>= a
; // return 1;
37 /* All of these should be optimized to just be the function calls and `return 1;` */
38 /* { dg-final { scan-tree-dump-times "return 1;" 4 "optimized" } } */
39 /* { dg-final { scan-tree-dump-not " MAX_EXPR " "optimized" } } */