https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79390
--- Comment #10 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Jakub Jelinek from comment #8) > Try --param=max-rtl-if-conversion-insns=2 . > Or try some -mtune that is not: > /* X86_TUNE_ONE_IF_CONV_INSNS: Restrict a number of set insns to be > if-converted to one. */ > DEF_TUNE (X86_TUNE_ONE_IF_CONV_INSN, "one_if_conv_insn", > m_SILVERMONT | m_KNL | m_INTEL | m_CORE_ALL | m_GENERIC) > See PR68920 for more details. cmov is a mixed bag, sometimes it helps > (usually when the jump can't be predicted well), sometimes it slows things > down tremendously. True, but here we converted to MAXSD, which I assume is not predicted. I think that the above tune is declared with CMOV in mind. OTOH, if the conversion results in non-predicted insn, such as MAX, SBB, etc... we can emit all of them without fear of slowdown.