------- Comment #11 from pinskia at gcc dot gnu dot org 2006-09-18 01:24 ------- So the only bug here is that -Os produces an extra move. That comes from the register allocator/reload:
Reloads for insn # 13 Reload 0: reload_in (SI) = (reg:SI 1 dx [65]) GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 3) reload_in_reg: (reg:SI 1 dx [65]) reload_reg_rtx: (reg:SI 2 cx) -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|minor |enhancement Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |missed-optimization, ra Last reconfirmed|0000-00-00 00:00:00 |2006-09-18 01:24:44 date| | Summary|bizarre code for int*int/2 |bizarre code for int*int/2 | |for -Os http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072