https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102182
--- Comment #4 from Hongtao.liu <crazylht at gmail dot com> --- After emit libcall in convert_to_mode, it failed maybe_emit_unop_insn, so all insns deleted, but from here is already overrided, it seems to be a bug. if (icode != CODE_FOR_nothing) { rtx_insn *last = get_last_insn (); if (fmode != GET_MODE (from)) from = convert_to_mode (fmode, from, 0); if (must_trunc) { rtx temp = gen_reg_rtx (GET_MODE (from)); from = expand_unop (GET_MODE (from), ftrunc_optab, from, temp, 0); } if (imode != GET_MODE (to)) target = gen_reg_rtx (imode); if (maybe_emit_unop_insn (icode, target, from, doing_unsigned ? UNSIGNED_FIX : FIX)) { if (target != to) convert_move (to, target, unsignedp); return; } delete_insns_since (last); }