https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113221
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- IRA decided to combine: ``` (insn 9 8 19 3 (set (reg/f:DI 104) (lo_sum:DI (reg/f:DI 105) (symbol_ref:DI ("bar") [flags 0x41] <function_decl 0x7ff639b05f00 bar>))) "t.c":5:10 discrim 1 -1 (expr_list:REG_DEAD (reg/f:DI 105) (expr_list:REG_EQUAL (symbol_ref:DI ("bar") [flags 0x41] <function_decl 0x7ff639b05f00 bar>) (nil)))) ... (insn 21 20 11 3 (set (reg/f:DI 110) (lo_sum:DI (reg/f:DI 109) (symbol_ref:DI ("bar") [flags 0x41] <function_decl 0x7ff639b05f00 bar>))) "t.c":5:10 discrim 1 -1 (expr_list:REG_DEAD (reg/f:DI 109) (expr_list:REG_EQUAL (symbol_ref:DI ("bar") [flags 0x41] <function_decl 0x7ff639b05f00 bar>) (nil)))) (insn 11 21 27 3 (parallel [ (set (reg:DI 106) (plus:DI (reg:DI 106) (const_int 4 [0x4]))) (set (mem:SI (reg:DI 106) [0 S4 A8]) (subreg:SI (reg/f:DI 104) 0)) (set (mem:SI (plus:DI (reg:DI 106) (const_int 4 [0x4])) [0 S4 A8]) (subreg:SI (reg/f:DI 110) 0)) ]) "t.c":5:10 discrim 1 102 {*storewb_post_pair_4} (nil)) ``` to: ``` (insn 11 20 27 3 (parallel [ (set (reg:DI 106) (plus:DI (reg:DI 106) (const_int 4 [0x4]))) (set (mem:SI (reg:DI 106) [0 S4 A8]) (subreg:SI (lo_sum:DI (reg/f:DI 105) (symbol_ref:DI ("bar") [flags 0x41] <function_decl 0x7ff639b05f00 bar>)) 0)) (set (mem:SI (plus:DI (reg:DI 106) (const_int 4 [0x4])) [0 S4 A8]) (subreg:SI (lo_sum:DI (reg/f:DI 109) (symbol_ref:DI ("bar") [flags 0x41] <function_decl 0x7ff639b05f00 bar>)) 0)) ]) "t.c":5:10 discrim 1 102 {*storewb_post_pair_4} (expr_list:REG_DEAD (reg/f:DI 109) (expr_list:REG_DEAD (reg/f:DI 105) (nil)))) ``` But I have no idea why though ...