https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80819
--- Comment #2 from Peter Cordes <peter at cordes dot ca> --- (In reply to Andrew Pinski from comment #1) > >-mtune=generic still stores/reloads instead of using movd for %edi and %edx, > >which is worse for most CPUs. > Worse on most Intel but not most AMD CPUs. You can use -mtune=intel if you > want to tune for Intel machines :). Store/reload isn't a lot better on AMD Bulldozer-family, not enough to justify making worse code for Intel CPUs. -mtune=generic doesn't mean tune=non-intel, it's a weighted average of all relevant CPUs, and should avoid slowing down common CPUs for small gains on rare CPUs. I wrote up my argument for -mtune=generic to favour a movd/movq strategy, or maybe a mix of movd and store/reload, as https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80820. (Also that znver1 should definitely use movd, and that there's a store/reload that slipped through the cracks for -mtune=haswell.) I probably should have made that two or three separate bugs, but I already have another 3 or 4 half-finished bug reports typed up :/