https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112304
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Most like the following pattern's predicates should be expanded to include constants and not just registers. (define_insn "*csinc2<mode>_insn" [(set (match_operand:GPI 0 "register_operand" "=r") (plus:GPI (match_operand 2 "aarch64_comparison_operation" "") (match_operand:GPI 1 "register_operand" "r")))] s/register_operand/general_operand/ here For the second predicate. And maybe a few others. It is similar what I just did for `*cmov<mode>_insn_insv` pattern.