1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-original" } */
3 /* PR tree-optimization/111348 */
5 int test1(int a
, int b
, int c
)
7 return (a
> b
) ? ((a
> c
) ? a
: c
) : ((b
> c
) ? b
: c
);
11 int test1_(int a
, int b
, int c
)
13 return (b
< a
) ? ((a
> c
) ? a
: c
) : ((b
> c
) ? b
: c
);
16 /* test1 and test1_ should be able to optimize to `MAX_EXPR <MAX_EXPR <a, b>, c>;` during fold. */
17 /* { dg-final { scan-tree-dump-times "MAX_EXPR <MAX_EXPR <a, b>, c>" 2 "original" } } */
18 /* { dg-final { scan-tree-dump-not "b > a" "original" } } */
19 /* { dg-final { scan-tree-dump-not "a > b" "original" } } */
20 /* { dg-final { scan-tree-dump-times "MAX_EXPR " 4 "optimized" } } */
21 /* { dg-final { scan-tree-dump-not "if " "optimized" } } */