https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104153
--- Comment #1 from rdapp at linux dot ibm.com ---
I was able to reproduce the ICE on a cross compiler. Curiously, we do not even
succeed with if-conversion here but nevertheless emit an insn
(jump_insn 78 9 79 6 (set (pc)
(if_then_else (ne:BI (reg:BI 34 ?sr_f)
(reg:SI 160))
(label_ref:SI 218)
(pc)))
"../../../../../../..//newlib-cygwin/newlib/libm/math/s_floor.c":90:14 77
{*cbranch}
(expr_list:REG_DEAD (reg:BI 34 ?sr_f)
(int_list:REG_BR_PROB 536870916 (nil)))
-> 218)
while reg:SI 160 is nowhere to be found.
Most likely the way I emit the sequences has side effects that I failed to
properly revert. Everything should be inside
begin_sequence ()
end_sequence ()
blocks but that is not sufficient. I guess if the optabs interfaces are
exposed and used like in the patch we also need delete_insns_since () or
similar? The problem is most likely latent on other targets as well.