/* The modulo constraints we generate for the niter expression (unsinged long)ubound - (unsigned long)lbound end up with a modulo that we cannot represent in the expression type we are using (int64_t), so we run into the codegen error where ISL generates a modulo/divide by sth that doesn't fit the type we code-generate with. Verify we properly elide those. */ void foo (double *a, long int lbound0, long int ubound0, long int lbound1, long int ubound1, long int stride1) { if (lbound0 < ubound0) for (long int i = lbound0; i <= ubound0; ++i) if (lbound1 < ubound1) for (long int j = lbound1; j <= ubound1; ++j) a[i*stride1 + j] = 0.; }