I have a case of simplify failing.
This SDFG computes:
@dace.program
def scatter_store(A: dace.float64[N], idx: dace.int64[N], B: dace.float64[N], scale: dace.float64):
for i, in dace.map[0:N:1]:
B[idx[i]] = A[i] * scale
Then I have a vectorized variant that does:
@dace.program
def scatter_store(A: dace.float64[N], idx: dace.int64[N], B: dace.float64[N], scale: dace.float64):
for i, in dace.map[0:N:8]:
B_buf[0:8] = A[i:i+8] * scale
indices[0:8] = idx[i:i+8]
B[indices[0:8] = B_buf[0:8]
In this case idx is used only on an interstate edge and it gets removed.
This is the pattern that causes it:

SDFGs are attached:
scatter_store.sdfg.json
scatter_store_vec.sdfg.json
I have a case of simplify failing.
This SDFG computes:
Then I have a vectorized variant that does:
In this case

idxis used only on an interstate edge and it gets removed.This is the pattern that causes it:
SDFGs are attached:
scatter_store.sdfg.json
scatter_store_vec.sdfg.json