The following exercise otherwise not exercised paths in the
vectorizer peeling code, resulting in CPU 2017 build ICEs
when patching but no fallout in the testsuite.
* gfortran.dg/
20231103-1.f90: New testcase.
* gfortran.dg/
20231103-2.f90: Likewise.
--- /dev/null
+! { dg-do compile }
+! { dg-options "-Ofast" }
+SUBROUTINE sedi_1D(QX1d, DZ1d,kdir,BX1d,kbot,ktop)
+ real, dimension(:) :: QX1d,DZ1d
+ real, dimension(size(QX1d)) :: VVQ
+ logical BX_present
+ do k= kbot,ktop,kdir
+ VVQ= VV_Q0
+ enddo
+ Vxmaxx= min0
+ if (kdir==1) then
+ dzMIN = minval(DZ1d)
+ endif
+ npassx= Vxmaxx/dzMIN
+ DO nnn= 1,npassx
+ if (BX_present) then
+ do k= ktop,kdir
+ BX1d= iDZ1d0
+ enddo
+ endif
+ ENDDO
+END
--- /dev/null
+! { dg-do compile }
+! { dg-options "-Ofast" }
+subroutine shr_map_checkFldStrshr_map_mapSet_dest(ndst,max0,eps,sum0,maxval0,min0,nidnjd,renorm)
+ allocatable sum(:)
+ logical renorm
+ allocate(sum(ndst))
+ do n=1,ndst
+ if (sum0 > eps) then
+ rmax = max0
+ endif
+ enddo
+ if (renorm) then
+ rmin = maxval0
+ rmax = minval(sum)
+ do n=1,nidnjd
+ if (sum0 > eps) then
+ rmin = min0
+ endif
+ enddo
+ write(*,*) rmin,rmax
+ endif
+end