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.
tested on x86_64-unknown-linux-gnu, pushed.
* gfortran.dg/20231103-1.f90: New testcase.
* gfortran.dg/20231103-2.f90: Likewise.
---
gcc/testsuite/gfortran.dg/20231103-1.f90 | 22 ++++++++++++++++++++++
gcc/testsuite/gfortran.dg/20231103-2.f90 | 22 ++++++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 gcc/testsuite/gfortran.dg/20231103-1.f90
create mode 100644 gcc/testsuite/gfortran.dg/20231103-2.f90
diff --git a/gcc/testsuite/gfortran.dg/20231103-1.f90
b/gcc/testsuite/gfortran.dg/20231103-1.f90
new file mode 100644
index 00000000000..61ccf5c5e9d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/20231103-1.f90
@@ -0,0 +1,22 @@
+! { 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
diff --git a/gcc/testsuite/gfortran.dg/20231103-2.f90
b/gcc/testsuite/gfortran.dg/20231103-2.f90
new file mode 100644
index 00000000000..c510505d5ad
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/20231103-2.f90
@@ -0,0 +1,22 @@
+! { 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
--
2.35.3