https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86108
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The IL seems to be still correct in *.csa dump, where we have: (code_label/s 1755 2240 1758 246 1802 (nil) [1 uses]) (note 1758 1755 1756 246 [bb 246] NOTE_INSN_BASIC_BLOCK) (insn 1756 1758 1757 246 (set (reg:DI 41 r12 [469]) (reg:DI 0 ax)) 85 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 0 ax) (nil))) (insn 1757 1756 2081 246 (set (reg:DI 43 r14 [471]) (reg:DI 1 dx)) 85 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 1 dx) (nil))) (jump_insn/j 2081 1757 2082 246 (set (pc) (label_ref 1284)) 683 {jump} (nil) ... (code_label 1284 2082 1285 247 1737 (nil) [1 uses]) (note 1285 1284 1286 247 [bb 247] NOTE_INSN_BASIC_BLOCK) (insn 1286 1285 1287 247 (set (reg:DI 4 si) (const_int 48 [0x30])) "pr86108.C":1553 85 {*movdi_internal} (nil)) (insn 1287 1286 1288 247 (set (reg:DI 5 di) (reg/f:DI 3 bx [orig:94 rLoad ] [94])) "pr86108.C":1553 85 {*movdi_internal} (expr_list:REG_DEAD (reg/f:DI 3 bx [orig:94 rLoad ] [94]) (nil))) (call_insn 1288 1287 1289 247 (call (mem:QI (symbol_ref:DI ("_ZdlPvm") [flags 0x41] <function_decl 0x7ff737519100 operator delete>) [0 operator de (const_int 0 [0])) "pr86108.C":1553 689 {*call} (expr_list:REG_DEAD (reg:DI 5 di) (expr_list:REG_DEAD (reg:DI 4 si) (expr_list:REG_CALL_DECL (symbol_ref:DI ("_ZdlPvm") [flags 0x41] <function_decl 0x7ff737519100 operator delete>) (expr_list:REG_EH_REGION (const_int 0 [0]) (nil))))) (expr_list:DI (use (reg:DI 5 di)) (expr_list:DI (use (reg:DI 4 si)) (nil)))) (insn 1289 1288 1290 247 (set (reg:DI 0 ax [468]) (reg:DI 41 r12 [469])) 85 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 41 r12 [469]) (nil))) (insn 1290 1289 2241 247 (set (reg:DI 1 dx [470]) (reg:DI 43 r14 [471])) 85 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 43 r14 [471]) (nil))) (jump_insn 2241 1290 2242 247 (set (pc) (label_ref 1443)) 683 {jump} (nil) -> 1443) But *.jump2 breaks it by throwing away the saving/restoring of rax/rdx to/from r12/r14, apparently during RTL fast DCE during that pass.