code: def make_c_gemv_destructive(fgraph, node):
      if isinstance(node.op, CGemv) and not node.op.inplace:
          inputs = list(node.inputs)
          dest = inputs[0]
          if (
              dest.owner
              and isinstance(dest.owner.op, ptb.AllocEmpty)
              and len(fgraph.clients[dest]) > 1
          ):
              inputs[0] = ptb.AllocEmpty(dest.dtype)(*dest.owner.inputs)
  
          return [cgemv_inplace(*inputs)]
  
file_path: pytensor/pytensor/tensor/rewriting/blas_c.py
imports: from pytensor.configdefaults import config
  from pytensor.graph.rewriting.basic import in2out
  from pytensor.tensor import basic
  from pytensor.tensor.blas import gemv_inplace, gemv_no_inplace, ger, ger_destructive
  from pytensor.tensor.blas_c import CGemv, CGer, cgemv_inplace, cgemv_no_inplace, cger_inplace
  from pytensor.tensor.rewriting.blas import blas_optdb, node_rewriter, optdb
label_desc: Use image node_id 4 for calling a global function with example usage: make_c_gemv_destructive(fgraph, node) and returns: list