https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113217
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- From: ``` (insn 7 2 8 2 (set (mem:SI (reg/f:DI 103 [ this ]) [1 MEM[(struct vector *)this_4(D)].D.4476._M_end_of_storage+0 S4 A32]) (const_int 0 [0])) "/app/example.cpp":6:27 69 {*movsi_aarch64} (nil)) (debug_insn 8 7 11 2 (debug_marker:BLK) "/app/example.cpp":6:3 -1 (nil)) (insn 11 8 42 2 (set (mem:SI (plus:DI (reg/f:DI 103 [ this ]) (const_int 4 [0x4])) [1 MEM[(struct vector *)this_4(D) + 4B].D.4476._M_end_of_storage+0 S4 A32]) (const_int 0 [0])) "/app/example.cpp":6:27 69 {*movsi_aarch64} (expr_list:REG_EH_REGION (const_int 1 [0x1]) (nil))) ``` To: ``` (insn 7 2 8 2 (set (mem:V2x4QI (reg/f:DI 103 [ this ]) [0 +0 S8 A32]) (unspec:V2x4QI [ (const_int 0 [0]) repeated x2 ] UNSPEC_STP)) "/app/example.cpp":6:27 90 {*store_pair_4} (expr_list:REG_EH_REGION (const_int 1 [0x1]) (nil))) (debug_insn 8 7 42 2 (debug_marker:BLK) "/app/example.cpp":6:3 -1 (nil)) (note 42 8 44 3 [bb 3] NOTE_INSN_BASIC_BLOCK) ``` Most likely we should only handle stores instructions which cannot throw, insn_nothrow_p .