libgcc has a module for __negsi2: REG_22:SI := - REG_22:SI.
This patch adds a pattern that allows to share that function
provided optimize_size.
gcc/
* config/avr/avr.md (*negsi2.libgcc): New insn.
""
[(set_attr "isa" "*,*,mov,movw")])
+(define_insn "*negsi2.libgcc"
+ [(set (reg:SI REG_22)
+ (neg:SI (reg:SI REG_22)))
+ (clobber (reg:CC REG_CC))]
+ "reload_completed
+ && optimize_size"
+ "%~call __negsi2"
+ [(set_attr "type" "xcall")])
+
(define_insn "*negsi2"
[(set (match_operand:SI 0 "register_operand" "=!d,r,&r,&r")
(neg:SI (match_operand:SI 1 "register_operand" "0,0,r ,r")))