gcc.c-torture/compile/20020604-1.c ICEs if compiled with
-O3 -fomit-frame-pointer -mcpu=5485.

Here is a reduced testcase min.c.

unsigned int
foo (unsigned int n)
{
  float c[8192];
  unsigned int i;
  unsigned int d = 0;
  union {
    float r;
    unsigned int i;
  } e;
  for (i = 0; i < n; i++)
    {
      e.r = c[i];
      d = e.i;
    }
  return d;
}


I get:

$ ./cc1 -quiet -O3 -fomit-frame-pointer -mcpu=5485 min.c
min.c: In function 'foo':
min.c:17: error: insn does not satisfy its constraints:
(insn 42 73 43 5 min.c:13 (set (mem/s/c:SF (plus:SI (reg/f:SI 15 %sp)
                (reg:SI 2 %d2)) [0 e.r+0 S4 A16])
        (mem/s:SF (post_inc:SI (reg:SI 8 %a0 [orig:55 ivtmp.30 ] [55])) [3 c S4
A16])) 46 {movsf_cf_hard} (expr_list:REG_INC (reg:SI 8 %a0 [orig:55 ivtmp.30 ]
[55])
        (nil)))
min.c:17: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:396
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

A quick analysis shows that the following appears in min.c.172r.greg.

(insn 42 73 43 5 min.c:13 (set (mem/s/c:SF (plus:SI (reg/f:SI 15 %sp)
                (reg:SI 2 %d2)) [0 e.r+0 S4 A16])
        (mem/s:SF (post_inc:SI (reg:SI 8 %a0 [orig:55 ivtmp.30 ] [55])) [3 c S4
A16])) 46 {movsf_cf_hard} (expr_list:REG_INC (reg:SI 8 %a0 [orig:55 ivtmp.30 ]
[55])
        (nil)))

Notice that SET_SRC has an address of the form SP + D2, which is
invalid on ColdFire.


-- 
           Summary: gcc.c-torture/compile/20020604-1.c ICEs
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kazu at gcc dot gnu dot org
GCC target triplet: m68k-elf


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

Reply via email to