re PR tree-optimization/33291 (a+=2; a+=2 not simplified to a+=4; with -O3 ...
[gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr26180.c
1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
3 /* { dg-require-effective-target int32plus } */
4
5 void abort(void);
6 int bar(int x, int y)
7 {
8 int x1, y1;
9 int x2, y2;
10 unsigned int x3, y3, w;
11 int z = 1;
12
13 x1 = (x < (1 << 30));
14 y1 = (y < (1 << 30));
15 if (x1)
16 if (y1) {
17 x2 = ((x > 0)? (x): -(x));
18 y2 = ((y > 0)? (y): -(y));
19
20 x3 = x2;
21 y3 = y2;
22 w = x3 * y3;
23
24 if (w >= (1 << 30)) {
25 z = 1;
26 } else {
27 z = -1;
28 }
29 }
30
31 return z;
32 }
33
34
35 int main()
36 {
37 int x, y, z;
38 x = 536870912; /* 2^29 */
39 y = 2;
40 z = bar(x, y);
41 if (z != 1)
42 abort ();
43 return 0;
44 }