def METHOD_NAME(a: T.handle, filt: T.handle, b: T.handle) -> None:
    T.func_attr({"global_symbol": "main", "tir.noalias": True})
    A = T.match_buffer(a, data_shape, dtype=dtype)
    Filter = T.match_buffer(filt, weight_shape, dtype=dtype)
    B = T.match_buffer(b, output_shape, dtype=dtype)
    for n, k, bh, bw in T.grid(N, K, BH, BW):
        with T.block("init"):
            vn, vk, vbh, vbw = T.axis.remap("SSSS", [n, k, bh, bw])
            B[vn, vk, vbh, vbw] = T.float32(0)
        for ic, fh, fw in T.grid(IC, FH, FW):
            with T.block("update"):
                vn, vk, vbh, vbw, vc, vfh, vfw = T.axis.remap("SSSSRRR", [n, k, bh, bw, ic, fh, fw])
                B[vn, vk, vbh, vbw] = B[vn, vk, vbh, vbw] + A[vn, vc, vbh + vfh, vbw + vfw] * Filter[vk, vc, vfh, vfw]