def METHOD_NAME():
    for i in range(5):
        N, L, M = [np.random.randint(10, 128) * 4 for _ in range(3)]
        (input_dtype, acc_dtype) = random_dtypes()
        A = te.placeholder((N, L), dtype=input_dtype)
        B = te.placeholder((M, L), dtype=input_dtype)
        k = te.reduce_axis((0, L))
        bn = 4
        idxd = tvm.tir.indexdiv
        idxm = tvm.tir.indexmod
        A_pack = te.compute((N // bn, L, bn), lambda i, j, k: A[i * bn + k][j])
        B_pack = te.compute((M // bn, L, bn), lambda i, j, k: B[i * bn + k][j])
        C_pack = te.compute(
            (N // bn, M // bn, bn, bn),
            lambda i, j, ii, jj: te.sum(
                A_pack[i, k, ii].astype(acc_dtype) * B_pack[j, k, jj].astype(acc_dtype), axis=[k]
            ),
        )
        C = te.compute(
            (N, M), lambda i, j: C_pack[idxd(i, bn)][idxd(j, bn)][idxm(i, bn)][idxm(j, bn)]
        )
        s = te.create_schedule([C.op])
        assert compute_flop(s) == 2 * N * L * M