https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108681
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The peephole2 dump keeps repeating Finished finding needed instructions: processing block 3 lr out = 31 [sp] 34 [v2] 35 [v3] 36 [v4] 37 [v5] 40 [v8] Adding insn 12 to worklist Adding insn 36 to worklist Adding insn 35 to worklist Adding insn 34 to worklist Adding insn 33 to worklist Adding insn 8 to worklist processing block 2 lr out = 31 [sp] 34 [v2] 35 [v3] 36 [v4] 40 [v8] Adding insn 2 to worklist Adding insn 38 to worklist df_worklist_dataflow_doublequeue: n_basic_blocks 4 n_edges 3 count 4 ( 1) forever. bb 3 is: (code_label 13 4 7 3 2 (nil) [1 uses]) (note 7 13 9 3 [bb 3] NOTE_INSN_BASIC_BLOCK) (insn 9 7 8 3 (clobber (subreg:V1DI (reg/v:V4x1DI 34 v2 [orig:92 b ] [92]) 24)) "pr108681.C":10:14 -1 (expr_list:REG_UNUSED (reg/v:V4x1DI 34 v2 [orig:92 b ] [92]) (nil))) (insn:TI 8 9 33 3 (set (reg:DI 37 v5 [ b+24 ]) (reg:DI 40 v8 [orig:93 a ] [93])) "pr108681.C":10:14 65 {*movdi_aarch64} (nil)) (insn 33 8 34 3 (set (reg:DI 32 v0) (reg:DI 34 v2)) "pr108681.C":11:9 65 {*movdi_aarch64} (expr_list:REG_DEAD (reg:DI 34 v2) (nil))) (insn:TI 34 33 35 3 (set (reg:DI 33 v1) (reg:DI 35 v3)) "pr108681.C":11:9 65 {*movdi_aarch64} (expr_list:REG_DEAD (reg:DI 35 v3) (nil))) (insn 35 34 36 3 (set (reg:DI 34 v2) (reg:DI 36 v4)) "pr108681.C":11:9 65 {*movdi_aarch64} (expr_list:REG_DEAD (reg:DI 36 v4) (nil))) (insn:TI 36 35 11 3 (set (reg:DI 35 v3) (reg:DI 37 v5)) "pr108681.C":11:9 65 {*movdi_aarch64} (expr_list:REG_DEAD (reg:DI 37 v5) (nil))) (call_insn 11 36 12 3 (parallel [ (call (mem:DI (symbol_ref:DI ("_Z3foo11int64x1x4_t") [flags 0x41] <function_decl 0x7fffe9ef9c00 foo>) [0 foo S8 A8]) (const_int 0 [0])) (unspec:DI [ (const_int 0 [0]) ] UNSPEC_CALLEE_ABI) (clobber (reg:DI 30 x30)) ]) "pr108681.C":11:9 58 {*call_insn} (expr_list:REG_DEAD (reg:V4x1DI 32 v0) (expr_list:REG_CALL_DECL (symbol_ref:DI ("_Z3foo11int64x1x4_t") [flags 0x41] <function_decl 0x7fffe9ef9c00 foo>) (nil))) (expr_list (clobber (reg:DI 17 x17)) (expr_list (clobber (reg:DI 16 x16)) (expr_list:V4x1DI (use (reg:V4x1DI 32 v0)) (nil))))) (insn 12 11 30 3 (clobber (reg/v:V4x1DI 34 v2 [orig:92 b ] [92])) -1 (expr_list:REG_UNUSED (reg:TI 36 v4) (nil))) (jump_insn:TI 30 12 31 3 (set (pc) (label_ref 13)) 2 {jump} (nil) -> 13) and bb 2 (note 5 1 37 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn/f:TI 37 5 38 2 (parallel [ (set (reg/f:DI 31 sp) (plus:DI (reg/f:DI 31 sp) (const_int -32 [0xffffffffffffffe0]))) (set/f (mem:DI (plus:DI (reg/f:DI 31 sp) (const_int -32 [0xffffffffffffffe0])) [0 S8 A8]) (reg:DI 29 x29)) (set/f (mem:DI (plus:DI (reg/f:DI 31 sp) (const_int -24 [0xffffffffffffffe8])) [0 S8 A8]) (reg:DI 30 x30)) ]) "pr108681.C":7:1 127 {storewb_pairdi_di} (expr_list:REG_DEAD (reg:DI 30 x30) (expr_list:REG_DEAD (reg:DI 29 x29) (nil)))) (insn 38 37 39 2 (set (reg/f:DI 29 x29) (reg/f:DI 31 sp)) "pr108681.C":7:1 65 {*movdi_aarch64} (nil)) (insn:TI 39 38 40 2 (set (mem:BLK (scratch) [0 A8]) (unspec:BLK [ (reg/f:DI 31 sp) (reg/f:DI 29 x29) ] UNSPEC_PRLG_STK)) "pr108681.C":7:1 1140 {stack_tie} (expr_list:REG_DEAD (reg/f:DI 29 x29) (nil))) (insn/f 40 39 41 2 (set (mem/c:DF (plus:DI (reg/f:DI 31 sp) (const_int 16 [0x10])) [3 S8 A8]) (reg:DF 40 v8)) "pr108681.C":7:1 76 {*movdf_aarch64} (expr_list:REG_DEAD (reg:DF 40 v8) (nil))) (note 41 40 2 2 NOTE_INSN_PROLOGUE_END) (insn:TI 2 41 4 2 (set (reg:DI 40 v8 [orig:93 a ] [93]) (reg:DI 32 v0 [ a ])) "pr108681.C":7:1 65 {*movdi_aarch64} (expr_list:REG_DEAD (reg:DI 32 v0 [ a ]) (nil))) (note 4 2 13 2 NOTE_INSN_FUNCTION_BEG)