class_docstr: If multiple allocations occur, all are flattened.
class_docstr_tok: ["If","multiple","allocations","occur",",","all","are","flattened","."]
code: def expected(
      input_A: T.Buffer((4, 32), "float32"),
      input_D: T.Buffer((4, 32), "float32"),
  ):
      A = T.Buffer(128, "float32", data=input_A.data)
      D = T.Buffer(128, "float32", data=input_D.data)
  
      for i, j in T.grid(4, 32):
          B_data = T.allocate([128], "float32", scope="global")
          B = T.Buffer([128], "float32", scope="global", data=B_data)
          C_data = T.allocate([128], "float32", scope="global")
          C = T.Buffer([128], "float32", scope="global", data=C_data)
          B[i * 32 + j] = A[i * 32 + j] + 1.0
          C[i * 32 + j] = A[i * 32 + j] + B[i * 32 + j]
          D[i * 32 + j] = C[i * 32 + j] * 2.0
  
imports: import tvm
  import tvm.testing
  from tvm import te
  from tvm.script import tir
label_desc: Use image node_id 2 for calling the TestMultiAlloc obj's underlying member method code with example usage: obj.expected(input_A, input_D) without return types