https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71351
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |spop at gcc dot gnu.org --- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Also ICEs with -fgraphite-identity. The issue seems to be that ISL creates a new loop guard but the loop has a loop-close PHI node and we fail to generate/know the value to use on the edge that skips the loop. The condition we try to insert is _19 > 0 (that's trivially true by means of a dominating condition). Not sure how this is supposed to work for reductions when the orginal loops guard is not in the SESE region. That guard looks like _19 = *nc_18(D); if (_19 <= 0) ... so the BB is rejected because _19 = *nc_18(D) isn't a valid stmt. So for this case it might help if we'd split that block... Anyway, it looks like we have to fail code generation here somehow... (no good idea how).