https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105231
--- Comment #20 from rguenther at suse dot de <rguenther at suse dot de> --- On Tue, 12 Apr 2022, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105231 > > --- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> --- > It is true that float_extend from a constant or constant pool memory if the > constant isn't NaN should never raise any kind of exception or trap. > Shouldn't we handle that in may_trap_p_1 or whatever considers the RTL > potentially trapping or raising exception? > At least assuming it is a conversion between modes where the outer mode can > represent all the values of the inner mode. I'm not sure that's a general enough fix though since we seem to drop the REG_EQUAL note and as soon as we do that there's a disconnect between what CFG generation thinks throws and what combine thinks is good enough to put a REG_EH_REGION note on. It also looks like on RTL there's no way to mark an RTX as not trapping/throwing.