https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67153
Mikhail Maltsev <miyuki at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |miyuki at gcc dot gnu.org --- Comment #15 from Mikhail Maltsev <miyuki at gcc dot gnu.org> --- (In reply to ncm from comment #13) > I am very curious whether this has been reproduced on others' Haswells, > and on Ivybridge and Skylake. I could reproduce this with Haswell i7-5820K (affected) and also tested on Ivybridge i7-3770K (not affected). Haswell: GCC 4.9.3 native real 0m0.150s user 0m0.149s sys 0m0.001s GCC 6.0.0 native real 0m0.213s user 0m0.212s sys 0m0.000s GCC 6.0.0 native + count real 0m0.166s user 0m0.165s sys 0m0.000s ================ GCC 4.9.3 generic real 0m0.128s user 0m0.127s sys 0m0.001s GCC 6.0.0 generic real 0m0.213s user 0m0.213s sys 0m0.000s GCC 6.0.0 generic + count real 0m0.125s user 0m0.124s sys 0m0.000s Ivybridge: GCC 4.9.2 native real 0m0.218s user 0m0.216s sys 0m0.000s GCC 6.0.0 native real 0m0.186s user 0m0.184s sys 0m0.000s GCC 6.0.0 native + count real 0m0.266s user 0m0.264s sys 0m0.000s ================ GCC 4.9.2 generic real 0m0.224s user 0m0.220s sys 0m0.004s GCC 6.0.0 generic real 0m0.183s user 0m0.180s sys 0m0.000s GCC 6.0.0 generic + count real 0m0.181s user 0m0.176s sys 0m0.004s Here "native" means "-march=native -mtune=native", "generic" means no arch options. "+count" means adding a counter into the loop and writing it's value to a global volatile variable after the loop.