------- Comment #9 from reichelt at gcc dot gnu dot org  2008-10-09 20:51 
-------
I just stumbled over the same bug and a similar ICE in vectorizable_store:

The following valid code snippet triggers an ICE on mainline when compiled
with "-march=pentium4 -O2 -ftree-vectorize" on i686-pc-linux-gnu:

==================================================================
void foo(int* __restrict__ p, int* q, int* p1, int *q1)
{
  int i;

  p = p1;
  q = q1;

  for (i = 0; i < 4; ++i)
    *++q = *++p + 1;
}
==================================================================

bug.c: In function 'foo':
bug.c:1: internal compiler error: in vectorizable_load, at
tree-vect-transform.c:6675
Please submit a full bug report, [etc.]

Moving the restrict keyword triggers a slightly different ICE:

==================================================================
void foo(int* p, int* __restrict__ q, int* p1, int *q1)
{
  int i;

  p = p1;
  q = q1;

  for (i = 0; i < 4; ++i)
    *++q = *++p + 1;
}
==================================================================

bug.c: In function 'foo':
bug.c:1: internal compiler error: in vectorizable_store, at
tree-vect-transform.c:5447
Please submit a full bug report, [etc.]

This is a recent regression, introduced between 2008-09-29 and 2008-10-08.


-- 

reichelt at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |reichelt at gcc dot gnu dot
                   |                            |org
           Keywords|                            |monitored
            Summary|[4.4 Regression] ICE in     |[4.4 Regression] ICE in
                   |vectorizer with restrict    |vectorizer with restrict
                   |pointer to struct           |pointer


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

Reply via email to