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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [cmpsi-2.c] - Rev 801

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

#define F 140
#define T 13
 
feq (int x, int y)
{
  if (x == y)
    return T;
  else
    return F;
}
 
fne (int x, int y)
{
  if (x != y)
    return T;
  else
    return F;
}
 
flt (int x, int y)
{
  if (x < y)
    return T;
  else
    return F;
}
 
fge (int x, int y)
{
  if (x >= y)
    return T;
  else
    return F;
}
 
fgt (int x, int y)
{
  if (x > y)
    return T;
  else
    return F;
}
 
fle (int x, int y)
{
  if (x <= y)
    return T;
  else
    return F;
}
 
fltu (unsigned int x, unsigned int y)
{
  if (x < y)
    return T;
  else
    return F;
}
 
fgeu (unsigned int x, unsigned int y)
{
  if (x >= y)
    return T;
  else
    return F;
}
 
fgtu (unsigned int x, unsigned int y)
{
  if (x > y)
    return T;
  else
    return F;
}
 
fleu (unsigned int x, unsigned int y)
{
  if (x <= y)
    return T;
  else
    return F;
}
 
unsigned int args[] =
{
  0L,
  1L,
  -1L,
  0x7fffffffL,
  0x80000000L,
  0x80000001L,
  0x1A3F2373L,
  0x93850E92L
};
 
int correct_results[] =
{
  T, F, F, T, F, T, F, T, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, F, T, T, F, F, T, T, F,
  T, F, F, T, F, T, F, T, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, F, T, T, F,
  T, F, F, T, F, T, F, T, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, T, F, F, T, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, T, F, F, T,
  T, F, F, T, F, T, F, T, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  T, F, F, T, F, T, F, T, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  T, F, F, T, F, T, F, T, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, F, T, T, F, T, F, F, T,
  T, F, F, T, F, T, F, T, F, T,
  F, T, F, T, T, F, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, F, T, T, F,
  F, T, T, F, F, T, T, F, F, T,
  F, T, T, F, F, T, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, F, T, T, F, F, T, T, F,
  F, T, T, F, F, T, F, T, T, F,
  T, F, F, T, F, T, F, T, F, T
};
 
int
main (void)
{
  int i, j, *res = correct_results;
 
  for (i = 0; i < 8; i++)
    {
      unsigned int arg0 = args[i];
      for (j = 0; j < 8; j++)
	{
	  unsigned int arg1 = args[j];
 
	  if (feq (arg0, arg1) != *res++)
	    abort ();
	  if (fne (arg0, arg1) != *res++)
	    abort ();
	  if (flt (arg0, arg1) != *res++)
	    abort ();
	  if (fge (arg0, arg1) != *res++)
	    abort ();
	  if (fgt (arg0, arg1) != *res++)
	    abort ();
	  if (fle (arg0, arg1) != *res++)
	    abort ();
	  if (fltu (arg0, arg1) != *res++)
	    abort ();
	  if (fgeu (arg0, arg1) != *res++)
	    abort ();
	  if (fgtu (arg0, arg1) != *res++)
	    abort ();
	  if (fleu (arg0, arg1) != *res++)
	    abort ();
	}
    }
  exit (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.