For a particular schedule, the AST we are getting is not as efficient as expected, and the iteration domain is larger than expected. I was wondering if it's possible to get AST with an exact iteration domain in this case.
Consider the following Schedule:
```
[p0] -> {
C0[i0] -> [o0] :
exists (
e0 = floor((-1 + 32p0 - i0)/64) :
o0 = i0 and
64e0 >= -64 + 32p0 - i0 and
64e0 <= -33 + 32p0 - i0 and
p0 >= 0 and p0 <= 127 and
i0 <= 63 and i0 >= 0
)
}
```
The AST generated for this schedule is not as exact as possible. See below:
```
if (p0 >= 0 && p0 <= 127)
for (int c0 = 0; c0 <= 63; c0 += 1)
if (32 * p0 >= c0 + 64 * floord(32 * p0 - c0 - 1, 64) + 33)
C0(c0);
```
Is it possible to get the following AST instead?
```
if (p0 >= 0 && p0 <= 127)
for (int c0 = 32 * (p0 % 2); c0 <= 32 * (p0 % 2) + 31; c0 += 1)
();
```
ISL version used: isl-0.25-4-gbc0b9ac1-GMP
I really appreciate any suggestions on this issue.
Thanks,
Vimal Patel