Message ID | 20240620133418.350772-5-richard.sandiford@arm.com |
---|---|
State | New |
Headers | show |
Series | Add a late-combine pass | expand |
On Thu, 2024-06-20 at 14:34 +0100, Richard Sandiford wrote: > *minus_plus_one had no constraints, which meant that it could be > matched after RA with operands 0, 1 and 2 all being different. > The associated split instead requires operand 0 to be tied to > operand 1. Thanks for spotting this. Makes sense, please install. Best regards, Oleg Endo > > gcc/ > * config/sh/sh.md (*minus_plus_one): Add constraints. > --- > gcc/config/sh/sh.md | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md > index 92a1efeb811..9491b49e55b 100644 > --- a/gcc/config/sh/sh.md > +++ b/gcc/config/sh/sh.md > @@ -1642,9 +1642,9 @@ (define_insn_and_split "*addc" > ;; matched. Split this up into a simple sub add sequence, as this will save > ;; us one sett insn. > (define_insn_and_split "*minus_plus_one" > - [(set (match_operand:SI 0 "arith_reg_dest" "") > - (plus:SI (minus:SI (match_operand:SI 1 "arith_reg_operand" "") > - (match_operand:SI 2 "arith_reg_operand" "")) > + [(set (match_operand:SI 0 "arith_reg_dest" "=r") > + (plus:SI (minus:SI (match_operand:SI 1 "arith_reg_operand" "0") > + (match_operand:SI 2 "arith_reg_operand" "r")) > (const_int 1)))] > "TARGET_SH1" > "#" > -- > 2.25.1 >
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 92a1efeb811..9491b49e55b 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1642,9 +1642,9 @@ (define_insn_and_split "*addc" ;; matched. Split this up into a simple sub add sequence, as this will save ;; us one sett insn. (define_insn_and_split "*minus_plus_one" - [(set (match_operand:SI 0 "arith_reg_dest" "") - (plus:SI (minus:SI (match_operand:SI 1 "arith_reg_operand" "") - (match_operand:SI 2 "arith_reg_operand" "")) + [(set (match_operand:SI 0 "arith_reg_dest" "=r") + (plus:SI (minus:SI (match_operand:SI 1 "arith_reg_operand" "0") + (match_operand:SI 2 "arith_reg_operand" "r")) (const_int 1)))] "TARGET_SH1" "#"