https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109086
--- Comment #8 from liwei at loongson dot cn --- (In reply to Xi Ruoyao from comment #7) > Things are already wrong in 255r: > > (jump_insn 17 16 42 4 (set (pc) > (if_then_else (ne (reg:DI 90) > (const_int 0 [0])) > (label_ref 20) > (pc))) "t.c":4:23 discrim 1 -1 > (int_list:REG_BR_PROB 536870916 (nil)) > -> 20) > (note 42 17 18 5 [bb 5] NOTE_INSN_BASIC_BLOCK) > (insn 18 42 19 5 (set (reg:SI 91) > (zero_extend:SI (mem:QI (plus:DI (reg/v/f:DI 82 [ filename ]) > (const_int 1 [0x1])) [0 MEM <char[1:2]> [(void > *)filename_3(D)]+1 S1 A8]))) "t.c":4:23 discrim 1 -1 > (nil)) > (insn 19 18 20 5 (set (reg:DI 92) > (plus:DI (subreg:DI (reg:SI 91) 0) > (const_int 0 [0]))) "t.c":4:23 discrim 1 -1 > (nil)) > (code_label 20 19 43 6 3 (nil) [1 uses]) > (note 43 20 21 6 [bb 6] NOTE_INSN_BASIC_BLOCK) > (insn 21 43 22 6 (set (reg:DI 80 [ _1 ]) > (sign_extend:DI (subreg:SI (reg:DI 92) 0))) "t.c":4:23 discrim 1 -1 > (nil)) > > Note that the jump_insn jumps over insn 19 which initializes the vreg 92 > (which would become r13). Thanks for the reply, i am trying to debug inline_string_cmp again to explain the problem in more detail.