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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [20020120-1.c] - Diff between revs 149 and 154

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

Rev 149 Rev 154
/* This ICEed on IA-32 with -O2 -mcpu=i386, because reload was trying
/* This ICEed on IA-32 with -O2 -mcpu=i386, because reload was trying
   to reload into %sil register.  */
   to reload into %sil register.  */
 
 
struct A
struct A
{
{
  void *a;
  void *a;
  unsigned int b, c, d;
  unsigned int b, c, d;
};
};
 
 
struct B
struct B
{
{
  struct A *e;
  struct A *e;
};
};
 
 
void bar (struct A *);
void bar (struct A *);
void baz (struct A *);
void baz (struct A *);
 
 
static inline unsigned int
static inline unsigned int
inl (unsigned int v, unsigned char w, unsigned char x, unsigned char y,
inl (unsigned int v, unsigned char w, unsigned char x, unsigned char y,
     unsigned char z)
     unsigned char z)
{
{
  switch (v)
  switch (v)
    {
    {
    case 2:
    case 2:
      return ((w & 0xf8) << 8) | ((x & 0xfc) << 3) | ((y & 0xf8) >> 3);
      return ((w & 0xf8) << 8) | ((x & 0xfc) << 3) | ((y & 0xf8) >> 3);
    case 4:
    case 4:
      return (z << 24) | (w << 16) | (x << 8) | y;
      return (z << 24) | (w << 16) | (x << 8) | y;
    default:
    default:
      return 0;
      return 0;
    }
    }
}
}
 
 
void foo (struct B *x, int y, const float *z)
void foo (struct B *x, int y, const float *z)
{
{
  struct A *a = x->e;
  struct A *a = x->e;
 
 
  if (y)
  if (y)
    {
    {
      if (x->e->a)
      if (x->e->a)
       bar (x->e);
       bar (x->e);
    }
    }
  else
  else
    {
    {
      unsigned char c[4];
      unsigned char c[4];
      unsigned int b;
      unsigned int b;
 
 
      c[0] = z[0]; c[1] = z[1]; c[2] = z[2]; c[3] = z[3];
      c[0] = z[0]; c[1] = z[1]; c[2] = z[2]; c[3] = z[3];
      b = inl (a->b, c[0], c[1], c[2], c[3] );
      b = inl (a->b, c[0], c[1], c[2], c[3] );
      if (a->a)
      if (a->a)
       bar (a);
       bar (a);
      else
      else
       baz (a);
       baz (a);
      a->c = b;
      a->c = b;
   }
   }
}
}
 
 

powered by: WebSVN 2.1.0

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