Storage alignment info lost?

I’m trying to use storage_align to ensure that the temporary storage will be allocated with a specific alignment. However, there is nothing in the produced module that reflects the alignment. Am I doing this right?

import tvm

N = tvm.te.var('N', 'int32')
A = tvm.te.placeholder((N,), dtype = 'int32', name = 'A')
C = tvm.te.compute((N,), lambda i: A[i]+i, name = 'C')

s = tvm.te.create_schedule(C.op)
# Create an artificial outer loop.
xo, xi = s[C].split(s[C].op.axis[0], nparts = 1)
# Align storage for the outer induction variable.
s[C].storage_align(xo, 128, 0)
m = tvm.lower(s, [A], name = 'storage_alignment_test')
print(m)

What happens is that the list of iteration variable attributes is matched in BaseComputeOpNode::BuildRealize against the original induction variables (from before split) and so nothing happens. But I’m wondering if this is a bug, or if I’m not using it correctly.

Does anyone know it? :sob: