def METHOD_NAME(cfg, data, kernel, strides, padding, dilation, out_dtype):
    """Compute function for v7e-m DSP instructions of conv1d on NWC layout."""
    if isinstance(strides, (tuple, list)):
        strides = strides[0]
    if isinstance(dilation, (tuple, list)):
        dilation = dilation[0]
    batch_size, data_width, in_channels = data.shape
    kernel_size, out_channels, _ = kernel.shape
    # Compute the output shape
    dilated_kernel_size = (kernel_size - 1) * dilation + 1
    pad_left, pad_right = get_pad_tuple1d(padding, (dilated_kernel_size,))
    out_channels = simplify(out_channels)
    out_width = simplify((data_width - dilated_kernel_size + pad_left + pad_right) // strides + 1)
    # Apply padding
    pad_before = [0, pad_left, 0]
    pad_after = [0, pad_right, 0]
    padded_data = pad(data, pad_before, pad_after, name="padded_data")
    # Compute graph
    rc = te.reduce_axis((0, in_channels), name="rc")
    rw = te.reduce_axis((0, kernel_size), name="rw")
    conv = te.compute(
        (batch_size, out_width, out_channels),
        lambda b, w, c: te.sum(
            padded_data[b, w * strides + rw * dilation, rc].astype(out_dtype)
            * kernel[rw, c, rc].astype(out_dtype),
            axis=[rw, rc],
        ),
        name="conv1d",
        tag="conv1d_nwc",
    )
    ###########################
    # Config Space Definition #
    ###########################
    n, ow, co = (
        cfg.axis(batch_size.value),
        cfg.axis(out_width.value),
        cfg.axis(out_channels.value),
    )
    kw, ci = (
        cfg.reduce_axis(kernel_size.value),
        cfg.reduce_axis(in_channels.value),
    )
    owo, owi = cfg.define_split("tile_ow", ow, policy="factors", num_outputs=2)
    cio, cii = cfg.define_split(
        "tile_ci",
        ci,
        policy="factors",
        num_outputs=2,
        # TODO: check case with in_channels.value % 4 != 0 with AutoTVM
        filter=None if cfg.is_fallback else lambda x: x.size[-1] % 4 == 0,
    )
    coo, coi = cfg.define_split("tile_co", co, policy="factors", num_outputs=2)
    cfg.define_reorder(
        "reorder_0_simd",
        [n, owo, owi, coo, coi, kw, cio, cii],
        policy="candidate",
        candidate=[
            [n, kw, owo, coo, cio, owi, coi, cii],
            [n, kw, coo, owo, cio, owi, coi, cii],
            [n, kw, owo, coo, cio, owi, coi, cii],
            [n, kw, coo, owo, cio, owi, coi, cii],
        ],
    )
    cfg.define_knob("auto_unroll_max_step", [0, 2, 4, 8, 16, 32])
    cfg.define_knob("unroll_explicit", [0, 1])
    if cfg.is_fallback:
        cfg.fallback_split("tile_ow", [-1, out_width.value])
        cfg.fallback_split("tile_ci", [-1, in_channels.value])
        cfg.fallback_split("tile_co", [-1, out_channels.value])
    return conv