1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-optimized --param logical-op-non-short-circuit=0" } */
3
f1(_Bool a,_Bool b)4 _Bool f1(_Bool a, _Bool b)
5 {
6 if (a)
7 {
8 if (b)
9 return 1;
10 else
11 return 0;
12 }
13 return 0;
14 }
15
16
17 /* There should be only one if, the outer one; the inner one
18 should have been changed to straight line code with the
19 value of b (except that we don't fold ! (b != 0) into b
20 which can be fixed in a different patch).
21 Test this only when known to be !LOGICAL_OP_NON_SHORT_CIRCUIT,
22 otherwise ifcombine may convert this into return a & b;. */
23 /* { dg-final { scan-tree-dump-times "if" 1 "optimized" } } */
24