@triton.autotune(configs=[triton.Config({'TILE_SIZE': 16, 'BLOCK_SIZE': 
    4096}, num_threads=1), triton.Config({'TILE_SIZE': 16, 'BLOCK_SIZE': 
    4096}, num_threads=0), triton.Config({'TILE_SIZE': 16, 'BLOCK_SIZE': 
    8192}, num_threads=0), triton.Config({'TILE_SIZE': 16, 'BLOCK_SIZE': 
    16384}, num_threads=0), triton.Config({'TILE_SIZE': 16, 'BLOCK_SIZE': 
    32768}, num_threads=0), triton.Config({'TILE_SIZE': 16, 'BLOCK_SIZE': 
    65536}, num_threads=0)], key=['n_elements'])
@triton.jit
def add_kernel_tiled_autotuned(x_ptr, y_ptr, output_ptr, n_elements,
    BLOCK_SIZE: tl.constexpr, TILE_SIZE: tl.constexpr):
    pid = tl.program_id(axis=0)
    block_start = pid * BLOCK_SIZE
    for i in range(0, tl.cdiv(BLOCK_SIZE, TILE_SIZE)):
        offsets = block_start + i * TILE_SIZE + tl.arange(0, TILE_SIZE)
        mask = offsets < n_elements
        x = tl.load(x_ptr + offsets, mask=mask)
        y = tl.load(y_ptr + offsets, mask=mask)
        output = x + y
        tl.store(output_ptr + offsets, output, mask=mask)
