From e902dfbea7a75affbf645d024ff8c762afd9741e Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 3 Nov 2023 15:53:11 +0100 Subject: [PATCH] Testcases for vectorizer peeling 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. --- 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.11.4.GIT