Testcases for vectorizer peeling
Checks
Commit Message
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
new file mode 100644
@@ -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
new file mode 100644
@@ -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