class_docstr: Like TestDoubleBuffer, but with a declared buffer object
class_docstr_tok: ["Like","TestDoubleBuffer",",","but","with","a","declared","buffer","object"]
code: def expected(
      A: T.Buffer((16, 32), "float32"), B: T.Buffer(16, "float32")
  ):
      cache = T.decl_buffer(64, "float32")
      for j in range(32):
          cache[j] = A[0, j]
  
      B[0] = T.float32(0)
      for j in range(32):
          B[0] = B[0] + cache[j]
  
      for i_outer in range(15):
          T.attr(cache.data, "double_buffer_write", 1)
          for j in range(32):
              cache[(i_outer + 1) % 2 * 32 + j] = A[i_outer + 1, j]
          B[i_outer + 1] = T.float32(0)
          for j in range(32):
              B[i_outer + 1] = (
                  B[i_outer + 1] + cache[(i_outer + 1) % 2 * 32 + j]
              )
  
file_path: tvm/tests/python/tir-transform/test_tir_transform_inject_double_buffer.py
imports: import tvm
  import tvm.testing
  from tvm.script import tir, ir
  from tvm import te
label_desc: Use image node_id 2 for calling the TestDoubleBufferWithDeclBuffer obj's underlying member method code with example usage: obj.expected(A, B) without return types