OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gcc.dg/] [compat/] [vector-check.h] - Diff between revs 298 and 384

Only display areas with differences | Details | Blame | View Log

Rev 298 Rev 384
#define TEST(NUM,TMODE,VAL)                             \
#define TEST(NUM,TMODE,VAL)                             \
extern v##NUM##TMODE g_v##NUM##TMODE;                   \
extern v##NUM##TMODE g_v##NUM##TMODE;                   \
extern TMODE g_##TMODE;                                 \
extern TMODE g_##TMODE;                                 \
                                                        \
                                                        \
extern void pass_v##NUM##TMODE (v##NUM##TMODE);         \
extern void pass_v##NUM##TMODE (v##NUM##TMODE);         \
extern v##NUM##TMODE return_v##NUM##TMODE (void);       \
extern v##NUM##TMODE return_v##NUM##TMODE (void);       \
                                                        \
                                                        \
void                                                    \
void                                                    \
checkp_##NUM##TMODE (TMODE *p)                          \
checkp_##NUM##TMODE (TMODE *p)                          \
{                                                       \
{                                                       \
  int i;                                                \
  int i;                                                \
  for (i = 0; i < NUM; i++)                              \
  for (i = 0; i < NUM; i++)                              \
    {                                                   \
    {                                                   \
      if (p[i] != g_##TMODE + i)                        \
      if (p[i] != g_##TMODE + i)                        \
        DEBUG_CHECK;                                    \
        DEBUG_CHECK;                                    \
    }                                                   \
    }                                                   \
}                                                       \
}                                                       \
                                                        \
                                                        \
void                                                    \
void                                                    \
checkg_##NUM##TMODE (void)                              \
checkg_##NUM##TMODE (void)                              \
{                                                       \
{                                                       \
  u##NUM##TMODE u;                                      \
  u##NUM##TMODE u;                                      \
  TMODE *p = u.a;                                       \
  TMODE *p = u.a;                                       \
                                                        \
                                                        \
  u.v = g_v##NUM##TMODE;                                \
  u.v = g_v##NUM##TMODE;                                \
  checkp_##NUM##TMODE (p);                              \
  checkp_##NUM##TMODE (p);                              \
}                                                       \
}                                                       \
                                                        \
                                                        \
void                                                    \
void                                                    \
init_##NUM##TMODE (void)                                \
init_##NUM##TMODE (void)                                \
{                                                       \
{                                                       \
  int i;                                                \
  int i;                                                \
  u##NUM##TMODE u;                                      \
  u##NUM##TMODE u;                                      \
  g_##TMODE = VAL;                                      \
  g_##TMODE = VAL;                                      \
  for (i = 0; i < NUM; i++)                              \
  for (i = 0; i < NUM; i++)                              \
    u.a[i] = VAL + i;                                   \
    u.a[i] = VAL + i;                                   \
  g_v##NUM##TMODE = u.v;                                \
  g_v##NUM##TMODE = u.v;                                \
}                                                       \
}                                                       \
                                                        \
                                                        \
void                                                    \
void                                                    \
test_v##NUM##TMODE (void)                               \
test_v##NUM##TMODE (void)                               \
{                                                       \
{                                                       \
  v##NUM##TMODE v;                                      \
  v##NUM##TMODE v;                                      \
  u##NUM##TMODE u;                                      \
  u##NUM##TMODE u;                                      \
  TMODE *p = u.a;                                       \
  TMODE *p = u.a;                                       \
                                                        \
                                                        \
  DEBUG_FPUTS ("v" #NUM #TMODE);                        \
  DEBUG_FPUTS ("v" #NUM #TMODE);                        \
  DEBUG_NL;                                             \
  DEBUG_NL;                                             \
  DEBUG_FPUTS ("  global variable:");                   \
  DEBUG_FPUTS ("  global variable:");                   \
  init_##NUM##TMODE ();                                 \
  init_##NUM##TMODE ();                                 \
  checkg_##NUM##TMODE ();                               \
  checkg_##NUM##TMODE ();                               \
  DEBUG_NL;                                             \
  DEBUG_NL;                                             \
  DEBUG_FPUTS ("  pass global variable:");              \
  DEBUG_FPUTS ("  pass global variable:");              \
  pass_v##NUM##TMODE (g_v##NUM##TMODE);                 \
  pass_v##NUM##TMODE (g_v##NUM##TMODE);                 \
  DEBUG_NL;                                             \
  DEBUG_NL;                                             \
  DEBUG_FPUTS ("  pass local variable:");               \
  DEBUG_FPUTS ("  pass local variable:");               \
  v = g_v##NUM##TMODE;                                  \
  v = g_v##NUM##TMODE;                                  \
  pass_v##NUM##TMODE (v);                               \
  pass_v##NUM##TMODE (v);                               \
  DEBUG_NL;                                             \
  DEBUG_NL;                                             \
  DEBUG_FPUTS ("  function return:");                   \
  DEBUG_FPUTS ("  function return:");                   \
  u.v = return_v##NUM##TMODE ();                        \
  u.v = return_v##NUM##TMODE ();                        \
  checkp_##NUM##TMODE (p);                              \
  checkp_##NUM##TMODE (p);                              \
  DEBUG_NL;                                             \
  DEBUG_NL;                                             \
}
}
 
 

powered by: WebSVN 2.1.0

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