code: def _qnn_dense_legalize_arm_cpu(attrs, inputs, types):
      target = tvm.target.Target.current(allow_none=False)
      if target.features.has_asimd and not target.features.has_dotprod:
          return helper_no_fast_int8_hw_legalization(
              attrs, inputs, types, relay.nn.dense
          )
      # ARM prefers the dtypes to be same.
      return helper_change_dtypes_to_be_same(
          attrs, inputs, types, relay.qnn.op.dense
      )
  
imports: import numpy
  from scipy import special
  import tvm
  from tvm import relay
  from tvm._ffi.base import TVMError
  from tvm.relay.qnn.op.canonicalizations import create_integer_lookup_op
  from ....target.x86 import target_has_features
  from ....topi.utils import is_target
  from ..None import op
label_desc: Use image node_id 19 for calling a global function with example usage: _qnn_dense_legalize_arm_cpu(attrs, inputs, types) and returns: helper_change_dtypes_to_be_same, helper_no_fast_int8_hw_legalization