https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101821
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jeremy R. from comment #7) > Does the false dependency still apply to modern CPUs? How modern is modern? Skylake fixed this for lzcnt and tzcnt. Cannon Lake (and Ice Lake) fixed this for popcnt. https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/desktop-6th-gen-core-family-spec-update.pdf This is from https://stackoverflow.com/questions/25078285/replacing-a-32-bit-loop-counter-with-64-bit-introduces-crazy-performance-deviati/54429148#54429148