111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -fdump-tree-optimized -fno-ipa-icf" } */
|
|
3
|
|
4 /* Should produce <=. */
|
|
5 int test1 (int a, int b)
|
|
6 {
|
|
7 return (a < b || a == b);
|
|
8 }
|
|
9
|
|
10 /* Should produce <=. */
|
|
11 int test2 (int a, int b)
|
|
12 {
|
|
13 int lt = a < b;
|
|
14 int eq = a == b;
|
|
15
|
|
16 return (lt || eq);
|
|
17 }
|
|
18
|
|
19 /* Should produce <= (just deleting redundant test). */
|
|
20 int test3 (int a, int b)
|
|
21 {
|
|
22 int lt = a <= b;
|
|
23 int eq = a == b;
|
|
24
|
|
25 return (lt || eq);
|
|
26 }
|
|
27
|
|
28 /* Should produce <= (operands reversed to test the swap logic). */
|
|
29 int test4 (int a, int b)
|
|
30 {
|
|
31 int lt = a < b;
|
|
32 int eq = b == a;
|
|
33
|
|
34 return (lt || eq);
|
|
35 }
|
|
36
|
|
37 /* Should produce constant 0. */
|
|
38 int test5 (int a, int b)
|
|
39 {
|
|
40 int lt = a < b;
|
|
41 int eq = a == b;
|
|
42
|
|
43 return (lt && eq);
|
|
44 }
|
|
45
|
|
46 /* { dg-final { scan-tree-dump-times " <= " 4 "optimized" } } */
|
|
47 /* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
|
|
48 /* { dg-final { scan-tree-dump-not " < " "optimized" } } */
|
|
49 /* { dg-final { scan-tree-dump-not " == " "optimized" } } */
|