https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68365

            Bug ID: 68365
           Summary: gfortran test case showing performance loss with
                    vectorization
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tprince at computer dot org
  Target Milestone: ---

Created attachment 36716
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36716&action=edit
gzip tar file of Fortran and C source files

Just recently, it has become necessary to add the omp simd safelen(1) directive
in subroutine s111 in order to prevent a vectorization which reduces
performance on all known IA targets other than Intel Xeon Phi.
The same situation occurs in gcc/g++, and (for several years) icc/icpc (but not
ifort).
make -j 3 -f Makefile.cygwin lcd_ffast
I haven't tested the latest gfortran build on linux, but I do have a Makefile
for that, in case it's useful.
In the Makefile, CLOCK_RATE is set to enable accurate translation from rdtsc
ticks to seconds.
The timing quotations for VL=100 and VL=1000 will show the reduced performance
of s111 when vectorized by removing safelen(1) .
For gcc and g++, functions s128() and s4113() also need vectorization disable
for full performance, but gfortran doesn't exhibit that problem.  For this
filing, you can ignore everything but subroutine s111.

Reply via email to