/* PR tree-optimization/94718 */ /* { dg-do compile } */ /* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-times "= \[xy]_\[0-9]+\\\(D\\\) \\^ \[xy]_\[0-9]+\\\(D\\\);" 8 "optimized" } } */ /* { dg-final { scan-tree-dump-times "\[0-9]+ >= 0;" 8 "optimized" } } */ int f1 (int x, int y) { return (x < 0) == (y < 0); } int f2 (int x, int y) { return (x >= 0) == (y >= 0); } int f3 (int x, int y) { return (x < 0) != (y >= 0); } int f4 (int x, int y) { return (x >= 0) != (y < 0); } int f5 (int x, int y) { int s = (x < 0); int t = (y < 0); return s == t; } int f6 (int x, int y) { int s = (x >= 0); int t = (y >= 0); return s == t; } int f7 (int x, int y) { int s = (x < 0); int t = (y >= 0); return s != t; } int f8 (int x, int y) { int s = (x >= 0); int t = (y < 0); return s != t; }