This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Current CVS trunk on i686 produce new: Unrecognizable insn



Honza, 

I've compiled the appended file without problems on Friday.  I fear
one of your recent changes broke compilation.  I'm appending a
preprocessed and much simplified input file.

Andreas

gromit:/tmp:[1]$ /opt/gcc-3.1-devel/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1 -fpreprocessed spec.i -quiet -dumpbase spec.c -march=athlon -O2 -version -o spec.s -Wall
GNU CPP version 3.1 20010624 (experimental) (cpplib) (i386 Linux/ELF)
GNU C version 3.1 20010624 (experimental) (i686-pc-linux-gnu)
        compiled by GNU C version 3.1 20010624 (experimental).
spec.i: In function `spec_random_load':
spec.i:62: Unrecognizable insn:
(insn 55 54 57 (set (zero_extract:SI (reg:HI 71)
            (const_int 8 [0x8])
            (const_int 8 [0x8]))
        (const_int 12 [0xc])) -1 (insn_list 54 (nil))
    (nil))
spec.i:62: Internal compiler error in extract_insn, at recog.c:2173
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

typedef unsigned int size_t;

extern void *memcpy (void *__restrict __dest,
		     __const void *__restrict __src, size_t __n);


int dbglvl = 4;

struct spec_fd_t
{
  int limit;
  int len;
  int pos;
  unsigned char *buf;
}
spec_fd[3];

long int seedi;
double
ran ()
{
  long lo;
  long hi;
  long test;

  hi = seedi / 127773L;
  lo = seedi % 127773L;
  test = 16807L * lo - 2836L * hi;
  if (test > 0)
    {
      seedi = test;
    }
  else
    {
      seedi = test + 2147483647L;
    }
  return ((float) seedi / 2147483647L);
}


int
spec_random_load (int fd)
{
  int i, j;
  char random_text[(32)][(128 * 1024)];

  for (i = 0; i < (32); i++)
    {
      for (j = 0; j < (128 * 1024); j++)
	{
	  random_text[i][j] = (int) (ran () * 256);
	}
    }

  for (i = 0; i < spec_fd[fd].limit; i += (128 * 1024))
    {
      memcpy (spec_fd[fd].buf + i, random_text[(int) (ran () * (32))],
	      (128 * 1024));
    }

  spec_fd[fd].len = 1024 * 1024;
  return 0;
}


-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]