libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / phi-opt-same-1.c
blob24e757b9b9f7f2405585854d42d09c7d5b64434f
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-phiopt1 -fdump-tree-optimized" } */
3 /* PR tree-optimization/19832 */
5 static inline int max_(int a, int b)
7 if (a > b) return a;
8 return b;
10 static inline int min_(int a, int b)
12 if (a < b) return a;
13 return b;
16 int f_minus(int a, int b)
18 if (a != b) return a - b;
19 return a - a;
21 int f_xor(int a, int b)
23 if (a != b) return a ^ b;
24 return a ^ a;
27 int f_ior(int a, int b)
29 if (a != b) return a | b;
30 return a | a;
32 int f_and(int a, int b)
34 if (a != b) return a & b;
35 return a & a;
37 int f_max(int a, int b)
39 if (a != b) return max_(a,b);
40 return max_(a,a);
42 int f_min(int a, int b)
44 if (a != b) return min_(a,b);
45 return min_(a,a);
47 int f_mult(int a, int b)
49 if (a != b) return a * b;
50 return a * a;
52 int f_plus(int a, int b)
54 if (a != b) return a + b;
55 return a + a;
58 /* All of the above function's if should have been optimized away even in phiopt1. */
59 /* { dg-final { scan-tree-dump-not "if " "phiopt1" } } */
60 /* { dg-final { scan-tree-dump-not "if " "optimized" } } */