Hi, at the moment we do dispatch scheduling which is trying to optimize for Buldrozer's decoder. This does not make much sense as both decoders are significantly different.
Bootstrapped/regtested x86_64-linux, comitted. Honza * i386.c (has_dispatch): Disable for Ryzen. Index: i386.c =================================================================== --- i386.c (revision 253513) +++ i386.c (working copy) @@ -51798,8 +51801,9 @@ do_dispatch (rtx_insn *insn, int mode) static bool has_dispatch (rtx_insn *insn, int action) { + /* Current implementation of dispatch scheduler models buldozer only. */ if ((TARGET_BDVER1 || TARGET_BDVER2 || TARGET_BDVER3 - || TARGET_BDVER4 || TARGET_ZNVER1) && flag_dispatch_scheduler) + || TARGET_BDVER4) && flag_dispatch_scheduler) switch (action) { default: