https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80887
--- Comment #9 from Marc Glisse <glisse at gcc dot gnu.org> --- C testcase that ICEs (when the patch is installed): int pos; void f(){ ++pos; unsigned u=(unsigned)pos-1; int a = pos; unsigned t1=a-1; unsigned t2=(unsigned)a-2; } where again, during FRE1, gimple_simplify gets called recursively on the same arguments. I am quite convinced that the issue exists even without my patch, we are lucky if none of the existing transformations can trigger it.