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.