https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106751
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- On x86_64 we get: (jump_insn 5 2 8 2 (parallel [ (asm_operands/v ("# %0") ("") 0 [] [] [ (label_ref:DI 8) ] /app/example.cpp:7) (clobber (reg:CC 17 flags)) ]) "/app/example.cpp":7:3 -1 (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)) -> 8) (code_label 8 5 9 3 2 ("__label_warn_on") [1 uses]) (note 9 8 10 3 [bb 3] NOTE_INSN_BASIC_BLOCK) But on PowerPC we get: (jump_insn 5 2 12 2 (parallel [ (asm_operands/v ("# %0") ("") 0 [] [] [ (label_ref:SI 8) ] /app/example.cpp:7) (clobber (reg:SI 98 ca)) ]) "/app/example.cpp":7:3 -1 (expr_list:REG_UNUSED (reg:SI 98 ca) (nil)) -> 8) (insn 12 5 8 2 (set (reg:SI 118) (const_int 0 [0])) "/app/example.cpp":11:28 545 {*movsi_internal1} (nil)) (code_label 8 12 9 3 2 ("__label_warn_on") [1 uses]) Notice the move before the the label, that is wrong.