Split views bypass typechecker and allow incorrect loop unrolling
Opened this issue · 0 comments
Mark1626 commented
The following can be compiled
let C: float[32 bank 4];
split split_C = C[by 2];
for (let i=0..2) unroll 2 {
for (let j=0..16) unroll 2 {
split_C[i][j];
}
}
---
for (let i=0..2) unroll 2 {
for (let j=0..16) unroll 4 {
split_C[i][j];
}
}
---
for (let i=0..2) unroll 2 {
for (let j=0..16) unroll 8 {
split_C[i][j];
}
}
---
for (let i=0..2) unroll 2 {
for (let j=0..16) unroll 16 {
split_C[i][j];
}
}