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: unassig...@gcc.gnu.org ReportedBy: venkataramanan.ku...@amd.com 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.