The following code ICEs at -O2 on amd64.  It was reduced from galgel, 
which is broken at the moment because of this bug. 
 
      SUBROUTINE FOO (N, A, LDA, X, INCX) 
      INTEGER :: INCX, LDA, N 
      REAL*8  :: A(LDA,*), X(*) 
      REAL*8  :: TEMP 
      INTEGER :: I, J, IX, JX, KX 
      IF (INCX == 1) THEN 
        CONTINUE 
      ELSE 
        JX = KX + (N - 1)*INCX 
        DO 20, J = N, 1, -1 
          TEMP = X(JX) 
          IX   = JX 
          DO 10, I = J - 1, 1, -1 
            IX   = IX   - INCX 
            TEMP = TEMP + A(I,J)*X(IX) 
   10     CONTINUE 
          X(JX) = TEMP 
          JX    = JX   - INCX 
   20   CONTINUE 
      END IF 
      RETURN 
 
      END

-- 
           Summary: [4.1 regression] ICE in IVopts
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: steven at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


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

Reply via email to