1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-original" } */
3 /* PR tree-optimization/98710 */
5 signed foo(signed x
, signed y
, signed z
)
7 return (x
| z
) & ~(y
| z
); // x & ~(y | z);
9 // Note . here is `(` or `)`
10 /* { dg-final { scan-tree-dump "return x \& ~.y \\| z.;|return ~.y \\| z. \& x;" "original" } } */
12 signed foo_or(signed a
, signed b
, signed c
)
14 return (a
& c
) | ~(b
& c
); // a | ~(b & c);
16 /* { dg-final { scan-tree-dump "return a \\| ~.b \& c.;|return ~.b \& c. \\| a;" "original" } } */