URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 298 |
Rev 338 |
/* { dg-do run } */
|
/* { dg-do run } */
|
/* { dg-options "-O2" } */
|
/* { dg-options "-O2" } */
|
/* { dg-require-effective-target int32plus } */
|
/* { dg-require-effective-target int32plus } */
|
|
|
void abort(void);
|
void abort(void);
|
int bar(int x, int y)
|
int bar(int x, int y)
|
{
|
{
|
int x1, y1;
|
int x1, y1;
|
int x2, y2;
|
int x2, y2;
|
unsigned int x3, y3, w;
|
unsigned int x3, y3, w;
|
int z = 1;
|
int z = 1;
|
|
|
x1 = (x < (1 << 30));
|
x1 = (x < (1 << 30));
|
y1 = (y < (1 << 30));
|
y1 = (y < (1 << 30));
|
if (x1)
|
if (x1)
|
if (y1) {
|
if (y1) {
|
x2 = ((x > 0)? (x): -(x));
|
x2 = ((x > 0)? (x): -(x));
|
y2 = ((y > 0)? (y): -(y));
|
y2 = ((y > 0)? (y): -(y));
|
|
|
x3 = x2;
|
x3 = x2;
|
y3 = y2;
|
y3 = y2;
|
w = x3 * y3;
|
w = x3 * y3;
|
|
|
if (w >= (1 << 30)) {
|
if (w >= (1 << 30)) {
|
z = 1;
|
z = 1;
|
} else {
|
} else {
|
z = -1;
|
z = -1;
|
}
|
}
|
}
|
}
|
|
|
return z;
|
return z;
|
}
|
}
|
|
|
|
|
int main()
|
int main()
|
{
|
{
|
int x, y, z;
|
int x, y, z;
|
x = 536870912; /* 2^29 */
|
x = 536870912; /* 2^29 */
|
y = 2;
|
y = 2;
|
z = bar(x, y);
|
z = bar(x, y);
|
if (z != 1)
|
if (z != 1)
|
abort ();
|
abort ();
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.