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

            Bug ID: 86054
           Summary: [8.1/9 Regression] SPEC CPU2006 416.gamess miscompare
                    after r259592 with march=skylake-avx512
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: alexander.nesterovskiy at intel dot com
  Target Milestone: ---

Created attachment 44237
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44237&action=edit
reproducer

r259592 introduced a runfail due to miscompare in SPEC CPU2006 416.gamess.
Minimal optset to reproduce is "-O3 -march=skylake-avx512".
There is no miscompare when vectorization is disabled with
"-fno-tree-vectorize".

This benchmark has some issues described in documentation
(https://www.spec.org/cpu2006/Docs/416.gamess.html):
"Some arrays are accessed past the end of the defined array size. This will,
however, not cause memory access faults" and
"The argument array sizes defined in some subroutines do not match the size of
the actual argument passed"

The problem is in "JKBCDF" function in "grd2c.F" and it's related to these
issues with wrong argument array sizes.
Patching the benchmark source solves a problem (but this patching is not
allowed according to SPEC rules):
"DIMENSION ABV(5,1),CV(18,1)" -> "DIMENSION ABV(5,NUMG),CV(18,NUMG)"

Reproducer is attached.
Symptoms here and in original 416.gamess case is that some loop iterations are
skipped.

Reply via email to