https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63897
Igor Zamyatin <izamyatin at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at redhat dot com --- Comment #5 from Igor Zamyatin <izamyatin at gmail dot com> --- This again looks like RA issue (similar to the issue discussed in PR63620) After ira we have (insn/f 64 3 2 2 (parallel [ (set (reg:SI 94) (unspec:SI [ (const_int 0 [0]) ] UNSPEC_SET_GOT)) (clobber (reg:CC 17 flags)) ]) 683 {set_got} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_EQUIV (unspec:SI [ (const_int 0 [0]) ] UNSPEC_SET_GOT) (expr_list:REG_CFA_FLUSH_QUEUE (nil) (nil))))) ..... (insn 36 32 37 4 (set (reg/v:V4SI 92 [ t ]) (vec_merge:V4SI (vec_duplicate:V4SI (const_int 1 [0x1])) (const_vector:V4SI [ (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) (const_int 1 [0x1]))) /nfs/ims/home/izamyati/test_63897.c:11 2456 {vec_setv4si_0} (expr_list:REG_EQUAL (const_vector:V4SI [ (const_int 1 [0x1]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) (nil))) and after RA (insn/f 64 3 2 2 (parallel [ (set (reg:SI 0 ax [94]) <---- got is in ax (unspec:SI [ (const_int 0 [0]) ] UNSPEC_SET_GOT)) (clobber (reg:CC 17 flags)) ]) 683 {set_got} (expr_list:REG_EQUIV (unspec:SI [ (const_int 0 [0]) ] UNSPEC_SET_GOT) (expr_list:REG_CFA_FLUSH_QUEUE (nil) (nil)))) ....... (call_insn/i 21 20 22 2 (set (reg:SI 0 ax) <--- ax is changed (call (mem:QI (symbol_ref:SI ("memcmp") [flags 0x41] <function_decl 0x141d86bd0 __builtin_memcmp>) [0 __builtin_memcmp S1 A8]) (const_int 16 [0x10]))) /nfs/ims/home/izamyati/test_63897.c:21 664 {*call_value} (expr_list:REG_EH_REGION (const_int 0 [0]) (nil)) (nil)) (insn 22 21 23 2 (parallel [ (set (reg/f:SI 7 sp) (plus:SI (reg/f:SI 7 sp) (const_int 16 [0x10]))) (clobber (reg:CC 17 flags)) ]) /nfs/ims/home/izamyati/test_63897.c:21 220 {*addsi_1} (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil))) (insn 23 22 26 2 (set (reg:SI 0 ax [102]) (reg:SI 0 ax)) /nfs/ims/home/izamyati/test_63897.c:21 90 {*movsi_internal} (nil)) ..... (insn 72 32 36 4 (set (reg:SI 0 ax [116]) <--- ax is again used as got (plus:SI (reg:SI 0 ax [94]) (const:SI (unspec:SI [ (symbol_ref/u:SI ("*LC0") [flags 0x2]) ] UNSPEC_MACHOPIC_OFFSET)))) /nfs/ims/home/izamyati/test_63897.c:11 213 {*leasi} (expr_list:REG_EQUAL (symbol_ref/u:SI ("*LC0") [flags 0x2]) (nil))) (insn 36 72 37 4 (set (reg/v:V4SI 21 xmm0 [orig:92 t ] [92]) (vec_merge:V4SI (vec_duplicate:V4SI (mem/u/c:SI (reg:SI 0 ax [116]) [0 S4 A32])) (const_vector:V4SI [ (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) (const_int 1 [0x1]))) /nfs/ims/home/izamyati/test_63897.c:11 2456 {vec_setv4si_0} (expr_list:REG_EQUAL (const_vector:V4SI [ (const_int 1 [0x1]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) (nil)))