blob: 13c302dea3a3b9ac6d5c6b69d56e31e8269d7251 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* { dg-do run } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target int32plus } */
void abort(void);
int bar(int x, int y)
{
int x1, y1;
int x2, y2;
unsigned int x3, y3, w;
int z = 1;
x1 = (x < (1 << 30));
y1 = (y < (1 << 30));
if (x1)
if (y1) {
x2 = ((x > 0)? (x): -(x));
y2 = ((y > 0)? (y): -(y));
x3 = x2;
y3 = y2;
w = x3 * y3;
if (w >= (1 << 30)) {
z = 1;
} else {
z = -1;
}
}
return z;
}
int main()
{
int x, y, z;
x = 536870912; /* 2^29 */
y = 2;
z = bar(x, y);
if (z != 1)
abort ();
return 0;
}
|