https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72488
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- -fdisable-tree-vrp1 "fixes" it (yes, the revision uncovered a latent bug). VRP1 performs a lot of jump-threading thus it isn't very likely the culprit. Program received signal SIGFPE, Arithmetic exception. 0x0000000000401194 in fn1 () at t.c:130 130 t4 = -(~r % ~e | t17 & t23 / t18 / t4 - t9 % l ^ o); (gdb) p t18 $1 = 0 The testcase is extremely large and has many irreducible regions so it's hard to see what goes wrong. Passes sofar trimmed down to -Os -fno-tree-sink -fno-tree-reassoc -fno-tree-loop-im -fno-tree-pre -fdisable-tree-ifcombine -fno-tree-loop-optimize -fno-tree-forwprop -fdisable-tree-vrp2 -fdisable-tree-phiopt3 -fdisable-tree-phiopt2