https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123786
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2026-01-24
Priority|P3 |P1
Status|UNCONFIRMED |NEW
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The first change between the two tuning is in dep_fusion.
It moves:
(insn/s 74 73 69 10 (set (reg:SI 107 [ iftmp.3_10 ])
(if_then_else:SI (leu (reg:CC 66 cc)
(const_int 0 [0]))
(reg:SI 111 [ _36 ])
(const_int 0 [0]))) "t.c":28:33 discrim 2 504 {*cmovsi_insn}
(nil))
before a jump.
BUT 107 is live in and live out.
So we go from this cmov being conditional to unconditional.
That is wrong.