------- Comment #6 from steven at gcc dot gnu dot org 2009-07-24 08:48 ------- In fact even the compare isn't a separate insn:
@(insn 6 5 7 t.c:5 (set (reg/v:SI 1 r1 [orig:133 v ] [133]) @ (reg:SI 0 r0)) 167 {*thumb1_movsi_insn} (nil)) @ 0x0004 mov r1, r0 @ 6 *thumb1_movsi_insn/1 [length = 2] @(jump_insn 7 6 8 t.c:6 (set (pc) @ (if_then_else (eq (reg:SI 0 r0 [orig:133 v ] [133]) @ (const_int 0 [0x0])) @ (label_ref:SI 14) @ (pc))) 201 {*cbranchsi4_insn} (expr_list:REG_DEAD (reg:SI 0 r0 [orig:133 v ] [133]) @ (expr_list:REG_BR_PROB (const_int 6102 [0x17d6]) @ (nil)))) @ 0x0006 cmp r0, #0 @ 7 *cbranchsi4_insn/1 [length = 4] beq .L1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40835