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.

Reply via email to