class_docstr: MatMul test class.
docstr: Test Add operator.
code: def test_add(
      self,
      hexagon_session,
      operation_name,
      operator_producer,
      expected_output_producer,
      operations,
      split_factor,
  ):
      """Test Add operator."""
  
      sch = tvm.tir.Schedule(operator_producer(operations))
      single_thread_runtime = evaluate(
          hexagon_session, operations, expected_output_producer, sch
      )
  
      sch = tvm.tir.Schedule(operator_producer(operations))
      block = sch.get_block("c_buffer")
      b = sch.get_loops(block)
      b_output, _ = sch.split(b[0], factors=[split_factor, None])
      sch.parallel(b_output)
      parallel_runtime = evaluate(
          hexagon_session, operations, expected_output_producer, sch
      )
  
      speedup = round(single_thread_runtime / parallel_runtime, 2)
      print(
          TEST_OUTPUT_TEMPLATE.format(
              operation_name,
              operations,
              single_thread_runtime,
              parallel_runtime,
              speedup,
          )
      )
  
file_path: tvm/tests/python/contrib/test_hexagon/test_parallel_scalar.py
imports: import numpy
  import tvm
  from tvm.script import tir
  from .infrastructure import get_hexagon_target
label_desc: Use image node_id 1 for calling the TestMatMulVec obj's underlying member method code with example usage: obj.test_add(hexagon_session, operation_name, operator_producer, expected_output_producer, operations, split_factor) without return types