def METHOD_NAME(PaddedInput, Pool):
    if isinstance(PaddedInput.op, tvm.te.ComputeOp):
        s[PaddedInput].compute_inline()
    num_thread = tvm.target.Target.current(allow_none=False).max_num_threads
    num_thread = int(num_thread * 2)
    if Pool.op in s.outputs:
        Out = Pool
        OL = s.cache_write(Pool, "local")
    else:
        Out = outs[0].op.output(0)
        s[Pool].set_scope("local")
    fused = s[Out].fuse(*s[Out].op.axis[:-1])
    bx, tx = s[Out].split(fused, factor=num_thread)
    s[Out].bind(bx, te.thread_axis("blockIdx.x"))
    s[Out].bind(tx, te.thread_axis("threadIdx.x"))
    s[Out].vectorize(s[Out].op.axis[-1])
    if Pool.op in s.outputs:
        s[OL].compute_at(s[Out], tx)
        s[OL].vectorize(s[OL].op.axis[-1])
    else:
        s[Pool].compute_at(s[Out], tx)
        s[Pool].vectorize(s[Pool].op.axis[-1])