c { dg-do compile } subroutine sgbcon(norm,n,kl,ku,ab,ldab,ipiv,anorm,rcond,work,iwork &,info) C C -- LAPACK routine (version 3.0) -- C Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., C Courant Institute, Argonne National Lab, and Rice University C September 30, 1994 C C .. Scalar Arguments .. character norm integer info,kl,ku,ldab,n real anorm,rcond C .. C .. Array Arguments .. integer ipiv(n),iwork(n) real ab(ldab,n),work(n) C .. C C Purpose C ======= C demonstrate g77 bug at -O -funroll-loops C ===================================================================== C C .. Parameters .. real one,zero parameter(one= 1.0e+0,zero= 0.0e+0) C .. C .. Local Scalars .. logical lnoti,onenrm character normin integer ix,j,jp,kase,kase1,kd,lm real ainvnm,scale,smlnum,t C .. C .. External Functions .. logical lsame integer isamax real sdot,slamch externallsame,isamax,sdot,slamch C .. C .. External Subroutines .. externalsaxpy,slacon,slatbs,srscl,xerbla C .. C .. Executable Statements .. C C Multiply by inv(L). C do j= 1,n-1 C the following min() intrinsic provokes this bug lm= min(kl,n-j) jp= ipiv(j) t= work(jp) if(jp.ne.j)then C but only when combined with this if block work(jp)= work(j) work(j)= t endif C and this subroutine call call saxpy(lm,-t,ab(kd+1,j),1,work(j+1),1) enddo return end