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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [complete-port.c] - Rev 154

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

/* This small program uses all the arithmetic operators that may
   generate calls to library routines which must be implemented in
   port-specific assembly language.  */
/* { dg-do link } */
 
#include <stddef.h>
 
int foo ();
double dfoo ();
void discard (int);
void ddiscard (double);
 
int
main (void)
{
  int a = foo (), b = foo ();
  unsigned int au = foo (), bu = foo ();
  float af = dfoo (), bf = dfoo ();
  double ad = dfoo (), bd = dfoo ();
 
  discard (a * b);
  discard (a / b);
  discard (a % b);
 
  discard (au / bu);
  discard (au % bu);
 
  discard (a >> b);
  discard (a << b);
 
  discard (au >> bu);
  discard (au << bu);
 
  ddiscard (ad + bd);
  ddiscard (ad - bd);
  ddiscard (ad * bd);
  ddiscard (ad / bd);
  ddiscard (-ad);
 
  ddiscard (af + bf);
  ddiscard (af - bf);
  ddiscard (af * bf);
  ddiscard (af / bf);
  ddiscard (-af);
 
  discard ((int) ad);
  discard ((int) af);
 
  ddiscard ((double) a);
  ddiscard ((float) a);
  ddiscard ((float) ad);
 
  discard (ad == bd);
  discard (ad < bd);
  discard (ad > bd);
  discard (ad != bd);
  discard (ad <= bd);
  discard (ad >= bd);
 
  discard (af == bf);
  discard (af < bf);
  discard (af > bf);
  discard (af != bf);
  discard (af <= bf);
  discard (af >= bf);
 
  return 0;
}
 
void
discard (x)
     int x __attribute__((__unused__));
{}
 
void
ddiscard (x)
     double x __attribute__((__unused__));
{}
 
int
foo ()
{
  static int table[] = {20, 69, 4, 12};
  static int idx;
 
  return table[idx++];
}
 
double
dfoo ()
{
  static double table[] = {20.4, 69.96, 4.4, 202.202};
  static int idx;
 
  return table[idx++];
}
 

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.