re PR target/54963 (Wrong code generated for libgfortran/generated/eoshift3_8.c on SH)
PR target/54963
* config/sh/iterators.md (SIDI): New mode iterator.
* config/sh/sh.md (negdi2): Use parallel around operation and T_REG
clobber in expander.
(*negdi2): Mark output operand as early clobbered. Add T_REG clobber.
Split after reload. Simplify split code.
(abssi2, absdi2): Fold expanders into abs<mode>2.
(*abssi2, *absdi2): Fold into *abs<mode>2 insn_and_split. Split insns
before reload.
(*negabssi2, *negabsdi2): Fold into *negabs<mode>2. Add T_REG clobber.
Split insns before reload.
(negsi_cond): Reformat. Use emit_move_insn instead of
gen_movesi.
(negdi_cond): Reformat. Use emit_move_insn instead of a pair
of gen_movsi. Split insn before reload.
From-SVN: r192983