code: def test_codegen_add():
      if skip_codegen_test():
          return
  
      inputs = {"a", "b"}
      for dtype, op_name, op, qnn_params in [
          ("float32", "add", relay.add, {}),
          ("uint8", "qnn.add", relay.qnn.op.add, _qnn_params),
          ("int8", "qnn.add", relay.qnn.op.add, _qnn_params),
      ]:
          for shape in [(1, 1), (2, 2, 2), (3, 3, 3, 3)]:
              func = _get_model(
                  shape, dtype, iter(inputs), op, qnn_params
              )
              exp_codegen = _get_expected_codegen(
                  shape, dtype, op_name, qnn_params
              )
              verify_codegen(func, exp_codegen, 1)
  
file_path: tvm/tests/python/contrib/test_arm_compute_lib/test_add.py
imports: import numpy
  import pytest
  import tvm
  import tvm.testing
  from tvm import relay
  from test_arm_compute_lib.infrastructure import skip_runtime_test, skip_codegen_test, build_and_run, verify, verify_codegen
  from test_arm_compute_lib.infrastructure import Device
label_desc: Use image node_id 4 for calling a global function with example usage: test_codegen_add() without return types