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.