https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35339
--- Comment #11 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- (In reply to Manfred Schwarb from comment #10) > As I understand this patch applies to read and write. > How does this optimization behave regarding my pet issue (short array reads)? > > I.e. > program internalread > integer m > parameter(m=10000000) > character value*10 > integer i,j,intvalues(m) > > DO j=1,100 > write(value,'(i3,a5)') j," 5 69" > CC read(value,*,end=20) (intvalues(i),i=1,m) > read(value,*,end=20) intvalues > 20 print*,"20" > write(*,*) j,i > ENDDO > end program internalread > > On my box this is 2.8s vs. 31s, i.e. the array version is more > than 10 times slower than the implied do loop. The patch to 53029 fixes this one. And I think Nicolas patch will improve further the implied do loop version by converting to an array section. Both patches would be needed for that. We are still testing of course.