class_docstr: Like TestSplitHostDevice, but with the default name already taken
  
  The default name is generated as `func.name + "_kernel"`.  If this
  name is already taken by another function in the IRModule, then
  SplitHostDevice should select a different name.
class_docstr_tok: ["Like","TestSplitHostDevice",",","but","with","the","default","name","already","taken","The","default","name","is","generated","as","`","func.name","+","``","_kernel","''","`",".","If","this","name","is","already","taken","by","another","function","in","the","IRModule",",","then","SplitHostDevice","should","select","a","different","name","."]
code: def expected(self):
      @I.ir_module
      class mod:
          @T.prim_func
          def main(n: T.int32):
              T.func_attr(
                  {"target": T.target("cuda", host="llvm -opt-level=0")}
              )
              mod.main_kernel_1(n)
  
          @T.prim_func(private=True)
          def main_kernel_1(n: T.int32):
              T.func_attr(
                  {
                      "target": T.target("cuda"),
                      "tir.noalias": T.bool(True),
                      "tir.is_global_func": True,
                  }
              )
              T.evaluate(n)
  
          @T.prim_func
          def main_kernel():
              T.func_attr({"target": T.target("llvm")})
              T.evaluate(0)
  
      return mod
  
imports: import tvm
  from tvm import te
  import tvm.testing
  from tvm.script import tir, ir
label_desc: Use image node_id 2 for calling the TestSplitHostDeviceNameCollision obj's underlying member method code with example usage: obj.expected() and returns: mod