code: def test_storage_combine_with_vectorization():
      n = 1024
      A = te.placeholder((n,), name="A")
      B = te.placeholder((n,), name="B")
      C = te.compute((n,), lambda i: A[i] + B[i], name="C")
      s = te.create_schedule(C.op)
      AA = s.cache_read(A, "global:tag", readers=[C])
      BB = s.cache_read(B, "global:tag", readers=[C])
      CC = s.cache_write(C, "global:tag")
      s[CC].vectorize(s[CC].op.axis[0])
      mod = schedule_to_module(s, [A, B, C])
      mod = tvm.tir.transform.StorageFlatten(64)(mod)
      mod = tvm.tir.transform.VectorizeLoop()(mod)
      mod = tvm.tir.transform.StorageRewrite()(mod)
      mod = tvm.tir.transform.Simplify()(mod)
      stmt = mod["main"].body
      num_alloc = [0]
  
      def verify(v):
          # find add op
          if (
              isinstance(v, tvm.tir.Add)
              and isinstance(v.a, tvm.tir.BufferLoad)
              and isinstance(v.b, tvm.tir.BufferLoad)
          ):
              lhs_ramp = v.a.indices[0]
              rhs_ramp = v.b.indices[0]
              # these two ramp load should not overlap
              assert lhs_ramp.lanes == n
              assert rhs_ramp.lanes == n
              assert (
                  lhs_ramp.base >= rhs_ramp.base + n
                  or rhs_ramp.base >= lhs_ramp.base + n
              )
          elif isinstance(v, tvm.tir.Allocate):
              num_alloc[0] += 1
  
      tvm.tir.stmt_functor.post_order_visit(stmt, verify)
      assert num_alloc[0] == 1
  
imports: import sys
  import pytest
  import tvm
  import tvm.testing
  from tvm import te
  from tvm.driver.build_module import schedule_to_module
  from tvm.script import tir
label_desc: Use image node_id 7 for calling a global function with example usage: test_storage_combine_with_vectorization() without return types