>From a benchmark which deals with vectorizing loops, I noticed that all of the >loops were not being vectorized because we don't merge two BBs together. subroutine s111 (ntimes,ld,n,ctime,dtime,a,b,c,d,e,aa,bb,cc) c c linear dependence testing c no dependence - vectorizable c integer ntimes, ld, n, i, nl real a(n), b(n), c(n), d(n), e(n), aa(ld,n), bb(ld,n), cc(ld,n) real t1, t2, second, chksum, ctime, dtime, cs1d do 1 nl = 1,2*ntimes do 10 i = 2,n,2 a(i) = a(i-1) + b(i) 10 continue call dummy(ld,n,a,b,c,d,e,aa,bb,cc,1.) 1 continue return end
Why we don't merge the loop with the label 10, I don't know. I wonder if it is related to PR 19038. -- Summary: not vectorizing fortran loops Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19049