https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89204
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2019-02-05 00:00:00 | CC| |amker at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- If I make the example more "similar": subroutine matrix_mul(n) integer, intent(in) :: n integer :: i, j, k do k = 1, n do j = 1, n do i = 1, n c(j,i) = c(j,i) + a(k,i)*b(j,k) end do end do end do end subroutine matrix_mul dumps tell me: Consider loop interchange for loop_nest<2 - 3> Access Strides for DRs: b[_13]: <4, 0> c[_5]: <4, 8192> a[_9]: <0, 8192> c[_5]: <4, 8192> but isn't very chatty about why exactly interchange didn't happen.