https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61747
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- The cases with constant arguments fail to be recognized by the x86 conditional move expansion because RTL expansion makes it too difficult to see they are equal where required. That is emit_conditional_move forcing the constant to two different regs via prepare_cmp_insn. I'm testing a patch for this.