http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47744

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2011-02-18 14:05:00 
UTC ---
Another testcase:

[hjl@gnu-33 ilp32-24]$ cat x.i
typedef long unsigned int size_t;
typedef long int ssize_t;
typedef ssize_t index_type;
typedef __int128_t GFC_INTEGER_16;
typedef struct descriptor_dimension
{
  index_type _stride;
  index_type _lbound;
  index_type _ubound;
}
descriptor_dimension;
typedef struct { GFC_INTEGER_16 *data; size_t offset; index_type dtype;
descriptor_dimension dim[7];} gfc_array_i16;
void
matmul_i16 (gfc_array_i16 * const restrict retarray,
        gfc_array_i16 * const restrict a,
        GFC_INTEGER_16 bbase_yn)
{
  GFC_INTEGER_16 * restrict dest;
  index_type rxstride, rystride;
  index_type x, y, n, count, xcount;
  GFC_INTEGER_16 * restrict dest_y;
  GFC_INTEGER_16 s;
  const GFC_INTEGER_16 * restrict abase_n;
  rxstride = ((retarray)->dim[0]._stride);
  rystride = ((retarray)->dim[1]._stride);
  xcount = ((a)->dim[0]._ubound + 1 - (a)->dim[0]._lbound);
  dest = retarray->data;
  dest_y = &dest[y*rystride];
  for (x = 0; x < xcount; x++)
    dest_y[x] += abase_n[x] * bbase_yn;
  for (x = 0; x < xcount; x++)
    {
      for (n = 0; n < count; n++)
    dest_y[x*rxstride] = (GFC_INTEGER_16) 0;
    }
}
[hjl@gnu-33 ilp32-24]$ make
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o x.s -mx32 -O2
-std=gnu99 -ftree-vectorize   x.i
x.i: In function \u2018matmul_i16\u2019:
x.i:36:1: error: insn does not satisfy its constraints:
(insn 113 65 66 4 (set (reg:TI 0 ax)
        (mem:TI (zero_extend:DI (plus:SI (reg:SI 4 si [orig:112 ivtmp.28 ]
[112])
                    (reg:SI 39 r10 [orig:98 dest_y ] [98]))) [6 MEM[base:
dest_y_18, index: ivtmp.28_57, offset: 0B]+0 S16 A128])) x.i:30 60
{*movti_internal_rex64}
     (nil))
x.i:36:1: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:403
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [x.s] Error 1
[hjl@gnu-33 ilp32-24]$

Reply via email to