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

Reply via email to