https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105231
--- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Yes, but still the float_extend:XF would have made may_trap_p say
> the insn possibly traps but there's no EH on it despite
> -fnon-call-exceptions.
The REG_EH note is added by make_reg_eh_region_note but then removed by
purge_dead_edges because of the REG_EQUAL note:
/* If this instruction cannot trap, remove REG_EH_REGION notes. */
if (NONJUMP_INSN_P (insn)
&& (note = find_reg_note (insn, REG_EH_REGION, NULL)))
{
rtx eqnote;
if (! may_trap_p (PATTERN (insn))
|| ((eqnote = find_reg_equal_equiv_note (insn))
&& ! may_trap_p (XEXP (eqnote, 0))))
remove_note (insn, note);
}