https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70045
Bug ID: 70045 Summary: [6 Regression] ICE error: mismatching comparison operand types Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ktkachov at gcc dot gnu.org Target Milestone: --- The testcase: int a, b, d, e, f; int c[9]; void fn1 () { e = 1; for (; e >= 0; e--) { d = 1; for (; d >= 0; d--) { f = 0; for (; f <= 1; f++) { a = 0; for (; a < 9; a++) { b = 0; for (; b < 2; b++) c[a + b] = 3; } } } } } ICEs for me on aarch64 with -Ofast -floop-interchange with ISL 0.15: mycrash.c: In function 'fn1': mycrash.c:4:1: error: bogus comparison result type fn1 () ^~~ int128_t graphite_IV.16_10 = _36 <= 1; mycrash.c:4:1: error: mismatching comparison operand types int128_t _Bool if (graphite_IV.16_15 < _8) mycrash.c:4:1: internal compiler error: verify_gimple failed 0xb540b6 verify_gimple_in_cfg(function*, bool) $SRC/gcc/tree-cfg.c:5125 0xa47300 execute_function_todo $SRC/gcc/passes.c:1958 0xa4750b do_per_function $SRC/gcc/passes.c:1645 0xa47653 execute_todo $SRC/gcc/passes.c:2010 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. I don't know if ISL is at fault here or it just exposes some other bug at tree level