code: def test_double_splitting_with_indivisible_factors():
      m = 48
      dtype = "float32"
      A = te.placeholder((m,), name="A", dtype=dtype)
      C = te.compute((m,), lambda i: A[i], name="C")
      D = te.compute((m,), lambda i: C[i], name="D")
  
      s = te.create_schedule(D.op)
      co, ci = s[C].split(C.op.axis[0], factor=10)
      do, di = s[D].split(D.op.axis[0], 32)
      s[C].compute_at(s[D], do)
  
      target = "llvm"
      with tvm.transform.PassContext(
          config={"tir.LoopPartition": {"partition_const_loop": True}}
      ):
          f = tvm.lower(s, [A, C, D], name="fadd1", simple_mode=False)
          func = tvm.build(f, target=target)
  
      top_produce = f["fadd1"].body
      assert not any(
          collect_visit(
              top_produce, lambda x: isinstance(x, tvm.tir.IfThenElse)
          )
      )
  
      # check functional correctness of generated code
      dev = tvm.device(target, 0)
      a = tvm.nd.array(
          numpy.ones(
              m,
          ).astype(dtype),
          dev,
      )
      c = tvm.nd.array(
          numpy.zeros(
              m,
          ).astype(dtype),
          dev,
      )
      d = tvm.nd.array(
          numpy.zeros(
              m,
          ).astype(dtype),
          dev,
      )
      func(a, c, d)
      tvm.testing.assert_allclose(c.numpy(), a.numpy(), rtol=1e-5)
      tvm.testing.assert_allclose(d.numpy(), a.numpy(), rtol=1e-5)
  
imports: import pytest
  import tvm
  import tvm.testing
  from tvm import te
  from tvm.ir.module import IRModule
  from tvm.script import tir
  import numpy
label_desc: Use image node_id 21 for calling a global function with example usage: test_double_splitting_with_indivisible_factors() without return types