http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55845
Bug #: 55845
Summary: 454.calculix miscompares with -march=btver2 -O3
-ffastmath -fschedule-insns -mvzeroupper for test data
run
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: [email protected]
ReportedBy: [email protected]
Host: x86_64-unknown-linux-gnu
Target: x86_64-unknown-linux-gnu
Build: x86_64-unknown-linux-gnu
GCC revision used: 194705
Flags used: -march=btver2 -O3 -ffastmath -fschedule-insns -mvzeroupper
Observation:
(Snip)
*** Miscompare of beampic.dat; for details see
/local/home/vekumar/specruns/benchspec/CPU2006/454.calculix/run/run_base_test_gcc480_bt_sched.exe_nofma.0000/beampic.dat.mis
Error: 1x454.calculix
Producing Raw Reports
(Snip)
On triaging further the file SPOOLES/Utilities/src/Utilities_DV.Utilities_DV.c
when compiled with -march=btver2 -O3 -ffastmath -fschedule-insns -mvzeroupper
seems to schedule vzeroupper incorrectly.
vzeroupper will clobber all ymm registers, so should not be moved arround.
Also using -march=corei7-avx seems to have problem.
I am drilling down further.