OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [20030613-1.c] - Rev 297

Go to most recent revision | Compare with Previous | Blame | View Log

/* PR optimization/10955 */
/* Originator: <heinrich.brand@fujitsu-siemens.com> */
 
/* This used to fail on SPARC32 at -O3 because the loop unroller
   wrongly thought it could eliminate a pseudo in a loop, while
   the pseudo was used outside the loop.  */
 
extern void abort(void);
 
#define COMPLEX struct CS
 
COMPLEX {
  long x;
  long y;
};
 
 
static COMPLEX CCID (COMPLEX x)
{
  COMPLEX a;
 
  a.x = x.x;
  a.y = x.y;
 
  return a;
}
 
 
static COMPLEX CPOW (COMPLEX x, int y)
{
  COMPLEX a;
  a = x;
 
  while (--y > 0)
    a=CCID(a);
 
  return a;
}
 
 
static int c5p (COMPLEX x)
{
  COMPLEX a,b;
  a = CPOW (x, 2);
  b = CCID( CPOW(a,2) );
 
  return (b.x == b.y); 
}
 
 
int main (void)
{
  COMPLEX  x;  
 
  x.x = -7;
  x.y = -7;
 
  if (!c5p(x))
    abort();
 
  return 0;
}
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.