code: def test_out_dtype_mm_numerical(self):
      class M(torch.nn.Module):
          def __init__(self, weight):
              super().__init__()
              self.weight = weight
  
          def forward(self, x):
              return out_dtype(
                  torch.ops.aten.mm.default, torch.int32, x, self.weight
              )
  
      weight = torch.randint(-128, 127, (5, 5), dtype=torch.int8)
      m = M(weight)
      x = torch.randint(-128, 127, (5, 5), dtype=torch.int8)
  
      gm = make_fx(m)(x)
  
      x_casted = x.to(torch.int32)
      weight_casted = weight.to(torch.int32)
      numerical_res = torch.ops.aten.mm.default(x_casted, weight_casted)
      self.assertTrue(torch.allclose(numerical_res, gm(x)))
  
imports: import unittest
  import torch
  import torch._dynamo
  import torch._inductor
  import torch._inductor.decomposition
  import torch._export
  from torch._higher_order_ops.out_dtype import out_dtype
  from torch.fx.experimental.proxy_tensor import make_fx
  from torch.testing._internal.common_utils import run_tests, TestCase, IS_WINDOWS, TEST_WITH_ROCM, IS_FBCODE, IS_REMOTE_GPU, TEST_CUDA
  from torch.testing._internal.common_quantization import skipIfNoDynamoSupport
  from torch.testing import FileCheck
  from torch.testing._internal.common_cuda import SM80OrLater, _get_torch_cuda_version
label_desc: Use image node_id 3 for calling the TestOutDtypeOp obj's underlying member method code with example usage: obj.test_out_dtype_mm_numerical() and returns: out_dtype