https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121498
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2025-08-11 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Though the code is not enough to reproduce the issue. ``` (define_insn "*branch<mode>" [(set (pc) (if_then_else (match_operator 1 "ordered_comparison_operator" [(match_operand:X 2 "register_operand" "r") (match_operand:X 3 "reg_or_0_operand" "rJ")]) (label_ref (match_operand 0 "" "")) (pc)))] "!TARGET_XCVBI" { if (get_attr_length (insn) == 12) return "b%r1\t%2,%z3,1f; jump\t%l0,ra; 1:"; return "b%C1\t%2,%z3,%l0"; } [(set_attr "type" "branch") (set_attr "mode" "none")]) ``` Basically the problem is the long conditional branch requires ra to do the jump in some cases but the rtl pattern does not model this at all.