------- Comment #1 from pinskia at gcc dot gnu dot org 2006-05-07 18:35 ------- For abs, we do get a difference in the RTL:
(insn 32 11 16 2 (set (subreg:SI (reg:DI 73) 0) (subreg:SI (reg:DI 72) 0)) -1 (nil) (expr_list:REG_DEAD (reg:DI 72) (nil))) (note 16 32 31 2 NOTE_INSN_FUNCTION_END) (insn 31 16 19 2 (set (reg:DI 73) (sign_extend:DI (subreg:SI (reg:DI 73) 0))) 1 {*extendsidi2_1} (nil) (nil)) --------- TO; (insn 12 11 16 2 (set (reg:DI 73) (sign_extend:DI (subreg:SI (reg:DI 72) 0))) 1 {*extendsidi2_1} (insn_list:REG_DEP_TRUE 11 (nil)) (expr_list:REG_DEAD (reg:DI 72) (nil))) (note 16 12 19 2 NOTE_INSN_FUNCTION_END) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27468