code: def test_mod():
      ck = IntSetChecker()
      x, y = te.var("x"), te.var("y")
      tmod = tvm.tir.truncmod
      ck.analyzer.update(
          y, tvm.arith.ConstIntBound(1, 100), override=True
      )
      ck.verify(
          tmod(x, y), {x: tvm.arith.IntervalSet(0, 10)}, (0, y - 1)
      )
      ck.verify(tmod(x, 10), {x: tvm.arith.IntervalSet(1, 10)}, (0, 9))
  
      flm = tvm.te.floormod
      ck.verify(flm(x, 10), {x: tvm.arith.IntervalSet(-10, 10)}, (0, 9))
      ck.verify(flm(x, 10), {x: tvm.arith.IntervalSet(3, 5)}, (3, 5))
      ck.verify(flm(x, 10), {x: tvm.arith.IntervalSet(13, 15)}, (3, 5))
      ck.verify(flm(x, 10), {x: tvm.arith.IntervalSet(3, 15)}, (0, 9))
      ck.verify(flm(x, 10), {x: tvm.arith.IntervalSet(3, 11)}, (0, 9))
      ck.verify(flm(x, 10), {x: tvm.arith.IntervalSet(1, 21)}, (0, 9))
  
      fld = tvm.te.floordiv
      z = te.var("z")
      ck.analyzer.bind(x, tvm.ir.Range.from_min_extent(0, 3))
      ck.verify(
          flm(y, 8),
          {y: tvm.arith.IntervalSet(z * 8 + x * 4, z * 8 + x * 4 + 3)},
          (
              z * 8 + x * 4 - 8 * fld(z * 8 + x * 4, 8),
              z * 8 + x * 4 + 3 - 8 * fld(z * 8 + x * 4, 8),
          ),
      )
      ck1 = IntSetChecker()
      ck1.analyzer.bind(x, tvm.ir.Range.from_min_extent(0, 2))
      ck1.verify(
          flm(y, 8),
          {y: tvm.arith.IntervalSet(z * 8 + x * 4, z * 8 + x * 4 + 3)},
          (x * 4, x * 4 + 3),
      )
  
imports: import tvm
  import tvm.testing
  from tvm import te
  from tvm import tir
  from tvm.arith.analyzer import Analyzer
label_desc: Use image node_id 5 for calling a global function with example usage: test_mod() without return types