code: def test_failure_3(self):
      ast = LazyOp(
          op=ReduceOps.SUM,
          src=(
              LazyOp(
                  op=BufferOps.LOAD,
                  src=(),
                  arg=MemBuffer(
                      idx=1,
                      dtype=dtypes.float,
                      st=ShapeTracker(
                          views=(
                              View(
                                  shape=(32, 8, 16, 16),
                                  strides=(2048, 256, 16, 1),
                                  offset=0,
                                  mask=None,
                                  contiguous=True,
                              ),
                          )
                      ),
                  ),
              ),
          ),
          arg=(32, 8, 16, 1),
      )
      opts = [
          Opt(op=OptOps.GROUP, axis=0, amt=4),
          Opt(op=OptOps.UPCAST, axis=0, amt=4),
          Opt(op=OptOps.UPCAST, axis=0, amt=2),
          Opt(op=OptOps.UNROLL, axis=1, amt=0),
          Opt(op=OptOps.UPCAST, axis=0, amt=4),
          Opt(op=OptOps.LOCAL, axis=0, amt=2),
          Opt(op=OptOps.LOCAL, axis=0, amt=2),
          Opt(op=OptOps.UPCAST, axis=1, amt=0),
          Opt(op=OptOps.LOCAL, axis=0, amt=32),
      ]
      # METAL: AssertionError: Error Domain=AGXMetalG13X Code=3 "Threadgroup memory size (65536) exceeds the maximum threadgroup memory allowed (32768)" UserInfo={NSLocalizedDescription=Threadgroup memory size (65536) exceeds the maximum threadgroup memory allowed (32768)}
      ast = helper_add_store(ast)
      helper_test_lin(
          Linearizer(ast),
          opts,
          failed_platforms=["METAL", "GPU", "CUDA"],
      )
  
imports: import unittest
  from tinygrad.codegen.linearizer import Linearizer
  from tinygrad.features.search import Opt, OptOps
  from tinygrad import Device, dtypes
  from tinygrad.helpers import OSX, CI
  from test.external.fuzz_linearizer import run_linearizer
  from tinygrad.ops import LazyOp, BinaryOps, UnaryOps, ReduceOps, BufferOps, MemBuffer, ConstBuffer, get_lazyop_info
  from tinygrad.shape.shapetracker import ShapeTracker
  from tinygrad.shape.view import View
label_desc: Use image node_id 3 for calling the TestLinearizerFailures obj's underlying member method code with example usage: obj.test_failure_3() without return types